Невозможно перевести на проекцию Меркатора с помощью геопанд - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь построить карту Испании, используя Геопанды и Матплотлиб. Я использую файл GeoJSON, который вы видите ниже, в котором геометрия находится в географических координатах (EPSG 4326)

Я хотел бы построить карту в проекции Меркатора, но когда я пытаюсь преобразовать единицы измерения, используя

df.to_crs({'init': 'epsg:3395'})

Я получаю сообщение об ошибке:

RuntimeError: b'no arguments in initialization list'

Я следовал инструкциям в http://geopandas.org/projections.html. Там говорится, что если кадр данных геопанды не учитывается в информации CRS, вы должны определить ее. Но это не проблема здесь.

Это код, который у меня есть

import geopandas as gpd
%matplotlib inline
import matplotlib.pyplot as plt

geojson_url = 'https://raw.githubusercontent.com/codeforamerica/click_that_hood/master/public/data/spain-provinces.geojson'
df = gpd.read_file(geojson_url)

Если я запускаю следующую команду:

df.crs

Я получаю следующий ответ (что означает, что в геопанде DataFrame содержится информация о CRS)

{'init': 'epsg:4326'}

Тогда

df = df.to_crs({'init': 'epsg:3395'})

Возвращает ошибку

Чего мне не хватает? Заранее спасибо.

1 Ответ

0 голосов
/ 10 июня 2019

Похоже, что вы используете более старую версию геопанд и pyproj.Я бы порекомендовал перейти на более новые версии, где это работает:

>>> import geopandas
>>> geopandas.__version__
'0.5.0'
>>> import pyproj
>>> pyproj.__version__
'2.2.0'
>>> geojson_url = 'https://raw.githubusercontent.com/codeforamerica/click_that_hood/master/public/data/spain-provinces.geojson'
>>> df = geopandas.read_file(geojson_url)
>>> df.crs
{'init': 'epsg:4326'}
>>> df2 = df.to_crs({'init': 'epsg:3395'})
>>> df2.crs
{'init': 'epsg:3395'}
...