Учитывая следующий GeoDataFrame:
h=pd.DataFrame({'zip':[19152,19047],
'Lat':[40.058841,40.202162],
'Lon':[-75.042164,-74.924594]})
crs='none'
geometry = [Point(xy) for xy in zip(h.Lon, h.Lat)]
hg = GeoDataFrame(h, crs=crs, geometry=geometry)
hg
Lat Lon zip geometry
0 40.058841 -75.042164 19152 POINT (-75.042164 40.058841)
1 40.202162 -74.924594 19047 POINT (-74.924594 40.202162)
Мне нужно установить CRS, как я сделал с другим GeoDataFrame (вот так):
c=c.to_crs("+init=epsg:3857 +ellps=GRS80 +datum=GGRS87 +units=mi +no_defs")
Я пробовал это:
crs={'init': 'epsg:3857'}
и это:
hg=hg.to_crs("+init=epsg:3857 +ellps=GRS80 +datum=GGRS87 +units=mi +no_defs")
... но не повезло.
Некоторые важные примечания:
Другой GeoDataFrame, для которого работал вышеупомянутый метод .to_crs, был из файла формы, а столбец геометрии был для полигонов, а не точек. Его значения 'geometry' после применения метода .to_crs выглядели так:
POLYGON ((-5973.005380655156 3399.646267693398 ... и когда я пробую описанное выше с hg GeoDataFrame, они по-прежнему выглядят как обычные координаты широты и долготы.
Если / когда это сработает, я объединю эти точки с многоугольником GeoDataFrame, чтобы построить оба (точки поверх многоугольников).
Когда я сначала пытаюсь объединить GeoDataFrames перед использованием метода .to_crs, а затем использую этот метод одновременно для точечных и многоугольных строк, я получаю следующую ошибку:
ValueError: невозможно преобразовать наивную геометрию. Пожалуйста, сначала установите crs для объекта.
Заранее спасибо!