TL; DR:
Точный вопрос заключается в том, как создать полуравные полигоны желаемого размера, например, около 100x100m, 1000x1000m, сетка 5000x5000m, которая покроет Землю? **
Фоновая история:
Я строю микросервис на основе Python, который для заданного LAT LON (WGS84) вернет json с некоторыми данными, например. подходящая страна / город / или выбранная сетка полигонов.
Деталь со страной / городом / беспорядком работает нормально, поскольку я использую шейп-файл и R-дерево для быстрой проверки, находится ли точка в пределах области.
Я борюсь со следующим случаем: представьте, что у меня есть большое количество выборок на основе GPS с некоторыми данными, которые я хотел бы, например, усреднить по некоторым геобинам (сетке).
Я пытаюсь разделить Землю на полукруглые области (для проекции Меркатора), которые позже я смог бы использовать с функциями «содержит» или «внутри».
В настоящее время это делается с помощью SQL-запроса и «GROUP BY» с использованием SIN / COS и округления
Образцы
в ящики
(ССЫЛКИ НА ФОТОГРАФИИ)
Поскольку при работе с шейп-файлами и поступающими данными из запросов я работаю с WGS84, моя идея заключалась в том, чтобы перейти в merkator (или webmerkator), сгенерировать геопанды и использовать функцию to_crs для возврата к WGS84.
world = world[(world.name != "Antarctica") & (world.name != "Fr. S. Antarctic Lands")]
world = world.to_crs({'init': 'epsg:3857'})
plotworld = world.plot( figsize=(20,10))
plotworld.set_title("Merkator")
# Keep map proportionate
plotworld.axis('equal')
#Draw saple polygon rectangle (in merkator)
x_point_list = [0.5*1e7,0.75*1e7,0.75*1e7,0.5*1e7]
y_point_list = [-0*1e7,0*1e7,0.25*1e7,0.25*1e7]
polygon_geom = Polygon(zip(x_point_list, y_point_list))
crs = {'init': 'epsg:3857'}
polygon = gp.GeoDataFrame(index=[0], crs=crs, geometry=[polygon_geom])
polygon.plot(ax=plotworld,color='red')
#transform to WGS84
world = world.to_crs({'init': 'epsg:4326'})
polygon = polygon.to_crs({'init': 'epsg:4326'})
plotworld2= world.plot( figsize=(20,10))
polygon.plot(ax=plotworld2,color='red')
У меня вопрос: как создать полуравные полигоны желаемого размера, например, около 100x100mx 1000x1000m, сетка 5000x5000m, которая покроет Землю?
Я прошел через несколько геопанд / фигурных сайтов, в которых показан некоторый учебник о некоторых фигурах, однако ни один из них не упоминает, как рисовать / генерировать ящики с желаемым размером.
Я действительно понимаю, что размеры многоугольников будут немного отличаться, но это не сильно меня ранит.
Любая помощь приветствуется!