Изменение координат долготы и широты в GeoPandas

Я работаю с наборами данных, где широта и долгота иногда неправильно обозначаются, и мне нужно перевернуть долготу и широту. Лучшее решение, которое я мог придумать, - это извлечь координаты x и y с помощью df.geometry.x и df.geometry.y, создать новый столбец геометрии и восстановить GeoDataFrame с помощью нового столбца геометрии. Или в виде кода:

import geopandas
from shapely.geometry import Point

gdf['coordinates']  = list(zip(gdf.geometry.y, gdf.geometry.x))
gdf['coordinates'] = gdf['coordinates'].apply(Point)
gdf= gpd.GeoDataFrame(point_data, geometry='coordinates', crs = 4326)

Это довольно уродливо, требует создания нового столбца и неэффективно для больших наборов данных. Есть ли более простой способ изменить координаты долготы и широты GeoSeries / GeoDataFrame?


person Ajjit Narayanan    schedule 16.07.2018    source источник
comment
Я не думаю, что есть более простой способ, я думаю, что у вас есть более разумное решение.   -  person joris    schedule 17.07.2018


Ответы (1)


Вы можете создать столбец геометрии напрямую:

df['geometry'] = df.apply(lambda row: Point(row['y'], row['x']), axis=1)
df = gpd.GeoDataFrame(df, crs=4326)
person Nicolas    schedule 01.08.2018