geopandas не может правильно читать geojson

Я пробую следующее:

После загрузки http://eric.clst.org/assets/wiki/uploads/Stuff/gz_2010_us_050_00_20m.json

In [2]: import geopandas
In [3]: geopandas.read_file('./gz_2010_us_050_00_20m.json')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-83a1d4a0fc1f> in <module>
----> 1 geopandas.read_file('./gz_2010_us_050_00_20m.json')

~/miniconda3/envs/ml3/lib/python3.6/site-packages/geopandas/io/file.py in read_file(filename, **kwargs)
     24         else:
     25             f_filt = f
---> 26         gdf = GeoDataFrame.from_features(f_filt, crs=crs)
     27 
     28         # re-order with column order from metadata, with geometry last

~/miniconda3/envs/ml3/lib/python3.6/site-packages/geopandas/geodataframe.py in from_features(cls, features, crs)
    207 
    208         rows = []
--> 209         for f in features_lst:
    210             if hasattr(f, "__geo_interface__"):
    211                 f = f.__geo_interface__

fiona/ogrext.pyx in fiona.ogrext.Iterator.__next__()

fiona/ogrext.pyx in fiona.ogrext.FeatureBuilder.build()

TypeError: startswith first arg must be bytes or a tuple of bytes, not str

На странице http://eric.clst.org/tech/usgeojson/ с 4 geojson в столбце 20 м, указанный выше файл соответствует строке округов США и является единственным, который не может быть прочитан из четырех. Сообщение об ошибке не очень информативно. Интересно, в чем причина, пожалуйста?


person zyxue    schedule 21.12.2018    source источник
comment
Может ли QGIS, например, прочитать файл?   -  person Paul H    schedule 24.12.2018
comment
да, QGIS может открыть файл   -  person zyxue    schedule 24.12.2018
comment
Сообщение об ошибке выглядит так, как будто полигоны и мультиполигоны должны соответствовать правилу правой руки? Потому что, если это так, это означает, что вам следует отсортировать координаты в полигонах / мультиполигонах.   -  person oriash    schedule 25.12.2018
comment
@oriash, я не уверен, что в этом проблема. Но как отсортировать координаты по широте или долготе?   -  person zyxue    schedule 25.12.2018
comment
По часовой стрелке. mapster.me/right-hand-rule-geojson-fixer должен работать .   -  person oriash    schedule 25.12.2018
comment
@oriash, оказывается, ты прав, спасибо! Знаете ли вы, что такое более масштабируемое средство исправления, веб-мапстер почти зависает, когда я вставляю файл geojson. Кроме того, если вы хотите ответить на него как ответ, я буду счастлив выбрать его в качестве ответа.   -  person zyxue    schedule 25.12.2018


Ответы (2)


Если ваше сообщение об ошибке выглядит примерно так: «Полигоны и мультиполигоны должны соответствовать правилу правой руки», это означает, что порядок координат в этих геообъектах должен быть по часовой стрелке.

Вот онлайн-инструмент для «исправления» ваших объектов с кратким объяснением:

https://mapster.me/right-hand-rule-geojson-fixer/ < / а>

person oriash    schedule 25.12.2018
comment
Знаете ли вы более масштабируемый фиксатор? - person zyxue; 26.12.2018

Возможно, это ответ для людей, попавших на эту страницу, я получил ту же ошибку, и ошибка возникла из-за проблем с кодировкой.

Попробуйте закодировать исходный файл с помощью utf-8 или попробуйте открыть файл с кодировкой, которая, по вашему мнению, применена к файлу. Это устранило мою ошибку.

Дополнительная информация здесь

person Peter Nijhuis    schedule 20.05.2020