Я работаю с выходом модели в данный момент, и я не могу придумать хороший способ комбинирования двух массивов данных. Массивы A и B хранят разные данные, а записи в каждом соответствуют некоторой пространственной (x, y) точке - A содержит некоторый параметр, а B - выход модели. Проблема в том, что B является пространственным подразделением A, т.е. если модель была для всего мира, A сохранит параметр в каждой точке земли, а B сохранит модельный вывод только для тех точек в Африке ,Где два двухмерных массива начинают перекрывать друг друга?
Так что мне нужно найти, сколько B смещено от A - по-другому, мне нужно найти индексы, с которых они начинают перекрываться. Таким образом, если A.shape = (1000,1500), B является частью (750: 850, 200: 300) этого или подразделением (783: 835, 427: 440)? У меня есть массивы, ассоциированные с A и B, которые сохраняют (x, y) позиции точек сетки для каждого.
Это может показаться простой проблемой - найти, где два массива перекрываются. И я могу решить его с помощью KDTree scipy.spatial достаточно просто, но это очень медленно. У кого-нибудь есть лучшие идеи?
Ответ на этот вопрос действительно зависит от типа используемой сетки. Является ли это декартовой сеткой с равномерным распределением? –
Являются ли координаты возрастающими как по горизонтали, так и по вертикали для позиций точек сетки A и B? Если да, то просто выполните несколько бинарных поисков. –
Если это глобальная климатическая карта, соответствует ли B географическому региону, например, Африке (т. Е. Что-то, что не было бы точно прямоугольной по форме), или это просто прямоугольный подраздел? –