Проблема при соединении двух геоданных


data_2['geometry'] = data_2.apply(lambda x: Point(x['lng'], x['lat']), axis=1)

data_jams['geometry'] = data_jams['shape'].apply(lambda x: LineString(eval(x)))


gdf_jams = gpd.GeoDataFrame(data_jams, geometry='geometry')


gdf_jams.set_crs('EPSG:4326', inplace=True)


gdf_jams = gdf_jams.to_crs("EPSG:32637") 

gdf_data = gpd.GeoDataFrame(data_2, geometry='geometry',)


gdf_data.set_crs('EPSG:4326', inplace=True)

gdf_data = gdf_data.to_crs(gdf_jams.crs)  


data = gpd.sjoin_nearest( gdf_data, gdf_jams)

в левой таблице находятся данные о точках в виде координат точек Москвы и номера в правой таблице находятся данные о графе дорог в виде shape файлов для каждой дороги и текущих пробках. Данные из левой таблицы находятся около дорог, но не пересекаются с ними в идеале нужно соотнести данные из левой таблицы в виде точек и подобрать к ним ближайшую дорогу из правой таблицы. сначала я пытался создать некий буффер для точек левой таблицы и пытался присоединить их с помощью sjoin() Может быть, есть более адекватные способы решения этой задачи?


Ответы (1 шт):

Автор решения: Сергей

Я разобрался в чем было дело. В первой таблице были указаны сначала lat, потом lng, а во второй точки были указаны в обратном порядке

→ Ссылка