GeoPandas在笔记本之间丢失了.crs信息

问题描述 投票:1回答:1

我遇到了一个奇怪的问题:在Jupyter笔记本电脑中使用GeoPandas时,.crs数据在我的第一个笔记本电脑上运行正常,然后在我的第二个笔记本电脑上丢失了。

仅查看库随附的一张世界地图,运行此单元格...

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world.crs

...在我的第一个笔记本中返回...

{'init': 'epsg:4326'}

...,在我的第二个笔记本中,我得到...

{}

[基于(或由于)原因,匹配的crs在第一个笔记本中有效,但在第二个笔记本中无效。在笔记本1中...

mal0 = gpd.read_file('./bird-species/E00039600_mallard.gdb', layer=0)
mal0 = mal0.to_crs(world.crs)
mal0.crs

返回...

{'init': 'epsg:4326'}

...符合预期,但在笔记本2中会引发错误:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-10-fd67623093a6> in <module>
      1 mal0 = gpd.read_file('./bird-species/E00039600_mallard.gdb', layer=0)
----> 2 mal0 = mal0.to_crs(world.crs)
      3 mal0.crs

~/anaconda3/lib/python3.6/site-packages/geopandas/geodataframe.py in to_crs(self, crs, epsg, inplace)
    441         else:
    442             df = self.copy()
--> 443         geom = df.geometry.to_crs(crs=crs, epsg=epsg)
    444         df.geometry = geom
    445         df.crs = geom.crs

~/anaconda3/lib/python3.6/site-packages/geopandas/geoseries.py in to_crs(self, crs, epsg)
    303                 raise TypeError('Must set either crs or epsg for output.')
    304         proj_in = pyproj.Proj(self.crs, preserve_units=True)
--> 305         proj_out = pyproj.Proj(crs, preserve_units=True)
    306         project = partial(pyproj.transform, proj_in, proj_out)
    307         result = self.apply(lambda geom: transform(project, geom))

~/anaconda3/lib/python3.6/site-packages/pyproj/__init__.py in __new__(self, projparams, preserve_units, **kwargs)
    360         # on case-insensitive filesystems).
    361         projstring = projstring.replace('EPSG','epsg')
--> 362         return _proj.Proj.__new__(self, projstring)
    363 
    364     def __call__(self, *args, **kw):

_proj.pyx in _proj.Proj.__cinit__()

RuntimeError: b'no arguments in initialization list'

有人知道这是怎么回事吗?

python gis geopandas
1个回答
0
投票

我有完全相同的问题。对我来说,在jupyter Notebook中重新运行该单元格也会导致此错误。

仍不清楚为什么会发生这种情况,但是升级到Jupyter Lab可以解决此问题。我没有尝试升级到Jupyter Notebook的更高版本,但这可能也可行。

© www.soinside.com 2019 - 2024. All rights reserved.