это мой первый вопрос здесь, поэтому, пожалуйста, будьте терпеливы со мной. Я пишу программу на Python, чтобы организовать некоторые пространственные данные из разных источников. В этой части кода я создаю геоданные (только точечные объекты) из двух csv-файлов. Я хочу объединить все точки из двух информационных фреймов в радиусе 150 метров. Поэтому я создаю буфер, а затем делаю пространственное соединение. Однако мне нужны оба кадра данных с точками для дальнейшей обработки данных позже. Поэтому я делаю копию БД, которая получает буфер. Объединение работает, но после этого оригинальный df (hikr_gdf) содержит полигоны, а не точки. Я не понимаю, так как я работаю не с hikr_gdf, а над buffer_gdf? Возможно, я наблюдаю за чем-то простым, но кто-то может помочь, пожалуйста?
gdfs = []
for file in files:
df = pd.read_csv(file, delimiter=",")
gdf = GeoDataFrame(
df.drop(['latitude', 'longitude'], axis=1),
crs={'init': 'epsg:4326'}, # wgs84
geometry=[Point(xy) for xy in zip(df.longitude, df.latitude)])
gdfs.append(gdf)
gdf.to_file(f"{file[:-4]}_processed")
hikr_gdf = gdfs[0]
osm_gdf = gdfs[1]
hikr_gdf = hikr_gdf.to_crs({'init': 'epsg:3857'})
osm_gdf = osm_gdf.to_crs({'init': 'epsg:3857'})
hikr_gdf.to_file("../spatial_data/hikr_gdv.shp")
buffer_gdf = hikr_gdf
print(f"print1:\n{hikr_gdf.geometry}")
buffer_gdf.geometry = buffer_gdf.geometry.buffer(150)
print(f"print2:\n{hikr_gdf.geometry}")
hikr_gdf.to_file("../spatial_data/test.shp")
waypoints_gdf = gpd.sjoin(osm_gdf, buffer_gdf, how='left', op='within', lsuffix="osm", rsuffix='hikr')
проблема заключается в утверждении между двумя print-утверждениями. Вот вывод:
print1:
0 POINT (1238304.930 5936603.562)
1 POINT (1240420.095 5937074.189)
2 POINT (1241967.945 5936348.037)
3 POINT (1241604.869 5936252.491)
4 POINT (1258256.795 5973883.395)
...
478 POINT (1426811.788 6067915.272)
479 POINT (1430399.552 6066195.439)
480 POINT (1436366.417 6008753.012)
481 POINT (1437629.379 6017117.804)
482 POINT (1436299.730 6016980.603)
Name: geometry, Length: 483, dtype: geometry
print2:
0 POLYGON ((1238454.930 5936603.562, 1238454.208...
1 POLYGON ((1240570.095 5937074.189, 1240569.373...
2 POLYGON ((1242117.945 5936348.037, 1242117.223...
3 POLYGON ((1241754.869 5936252.491, 1241754.147...
4 POLYGON ((1258406.795 5973883.395, 1258406.073...
...
478 POLYGON ((1426961.788 6067915.272, 1426961.066...
479 POLYGON ((1430549.552 6066195.439, 1430548.829...
480 POLYGON ((1436516.417 6008753.012, 1436515.695...
481 POLYGON ((1437779.379 6017117.804, 1437778.657...
482 POLYGON ((1436449.730 6016980.603, 1436449.008...
Name: geometry, Length: 483, dtype: geometry
Как я уже сказал, объединение работает правильно, но я хочу понять, почему изменился hikr_gdf? Спасибо за вашу помощь!