geopandas无法正确读取geojson

时间:2018-12-21 20:56:22

标签: pandas geojson geopandas

我正在尝试以下操作:

下载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/页面上,在20m列下有4个geojson文件,上面的文件对应于US Counties行,并且是唯一无法从4中读出的文件。错误消息不是非常有用,请问是什么原因?

2 个答案:

答案 0 :(得分:1)

如果您的错误消息看起来像“多边形和多多边形应遵循正确的规则”,则意味着这些GeoObject中坐标的顺序应为顺时针。

这是一个在线工具,可“修复”您的对象,并提供简短说明:

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

答案 1 :(得分:1)

可能是到达此页面的人们的答案,我收到了相同的错误,并且由于编码问题而引发了该错误。

尝试使用utf-8 编码初始文件,或者尝试使用您认为应用于文件的编码打开文件。这解决了我的错误。

更多信息here