Python GeoPandas在笔记本上丢失.crs信息

Python GeoPandas在笔记本上丢失.crs信息,python,gis,geopandas,Python,Gis,Geopandas,我遇到了一个奇怪的问题:当使用GeoPandas(在Jupyter笔记本中)时,.crs数据在我的第一个笔记本中运行良好,然后在我的第二个笔记本中丢失 只要看看图书馆里的世界地图,运行这个单元格 world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) world.crs 。。。在我的第一本笔记本中 {'init': 'epsg:4326'} {'init': 'epsg:4326'} …而在我的第二本笔记本里我

我遇到了一个奇怪的问题:当使用GeoPandas(在Jupyter笔记本中)时,.crs数据在我的第一个笔记本中运行良好,然后在我的第二个笔记本中丢失

只要看看图书馆里的世界地图,运行这个单元格

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world.crs
。。。在我的第一本笔记本中

{'init': 'epsg:4326'}
{'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'}
{'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'
---------------------------------------------------------------------------
运行时错误回溯(上次最近调用)
在里面
1 mal0=gpd.read_文件('./bird species/E00039600_mallard.gdb',层=0)
---->2 mal0=mal0.至crs(world.crs)
3.0.crs
~/anaconda3/lib/python3.6/site-packages/geopandas/geodataframe.py in to_crs(self、crs、epsg、inplace)
441其他:
442 df=self.copy()
-->443 geom=df.几何体至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('必须为输出设置crs或epsg')
304 proj_in=pyproj.proj(self.crs,preserve_units=True)
-->305项目输出=pyproj.proj(crs,保存单位=True)
306项目=部分(pyproj.transform、proj_in、proj_out)
307结果=self.apply(lambda geom:transform(project,geom))
~/anaconda3/lib/python3.6/site packages/pyproj/\uuuuuuu init\uuuuuuuuuuuuuuuu.py in\uuuuuuuuuu new\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
360(在不区分大小写的文件系统上)。
361 projstring=projstring.replace('EPSG','EPSG'))
-->362返回项目项目新项目(自身、项目字符串)
363
364 def_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
_项目项目中的项目pyx
运行时错误:b'初始化列表中没有参数'

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

我也有同样的问题。我可以用geopandas 0.6.1在没有jupyter的情况下复制这个


这是一种无效错误消息的情况。实际的错误是您的crs不受geopandas支持。

我遇到了完全相同的问题。我可以用geopandas 0.6.1在没有jupyter的情况下复制这个


这是一种无效错误消息的情况。实际的错误是您的crs不受geopandas支持。

作为旁注,我已经查找了运行时错误是否有合理的解决方案,但我发现的只是这个线程-----在这个线程中,似乎每个设法克服它的人都做了完全不同的事情。我尝试过那里建议的几个修复,但到目前为止都没有效果:(什么是
gpd.read_文件('./bird species/E00039600_mallard.gdb',layer=0)。crs
?如果层中还没有我正在使用的数据文件,你就无法转换为新的crs,从类似的地方,我会得到(格式不同)crs信息来自第一个笔记本中的数据,但不是第二个笔记本。这是最疯狂的事情。我试图复制你的问题,但没有任何成功。你如何打开第二个笔记本?你使用的是相同的内核吗?这对我来说就像预期的一样。是的,奇怪的是,有时通过重新启动Jupyter可以解决这个问题。问题是解决了,我猜?作为旁注,我已经查找了那个运行时错误是否有合理的解决方案,但我所发现的只是这个线程---在这个线程中,似乎每个试图克服它的人都做了一些完全不同的事情。我试过了这里建议的几个修复,但到目前为止都并没有效果:(什么是
gpd.read\u文件('./bird species/E00039600_mallard.gdb',layer=0).crs
?如果层中没有我正在使用的数据文件,则无法转换为新的crs,类似地,我从中获得(格式不同)crs信息来自第一个笔记本中的数据,但不是第二个笔记本。这是最疯狂的事情。我试图复制你的问题,但没有任何成功。你如何打开第二个笔记本?你使用的是相同的内核吗?这对我来说就像预期的一样。是的,奇怪的是,有时通过重新启动Jupyter可以解决这个问题。问题是我想是吧?