[英]GeoPandas .to_crs running into errors
我正在尝试导入形状文件并更改其crs,以获取具有正确投影的地图。
map_sh = gpd.read_file(r'C:\PATH\VG250_Gemeindegrenzen_2018.shp')
map_sh = map_sh.to_crs({'init' :'epsg:25832'})
当我尝试执行它时,会出现以下错误:
RuntimeError Traceback (most recent call last)
<ipython-input-7-8354f57e24ce> in <module>
----> 1 map_sh = map_sh.to_crs({'init' :'epsg:25832'})
~\AppData\Local\Continuum\miniconda3\lib\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
~\AppData\Local\Continuum\miniconda3\lib\site-packages\geopandas\geoseries.py in to_crs(self, crs, epsg)
302 except TypeError:
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)
~\AppData\Local\Continuum\miniconda3\lib\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'
我已经有这个特定的错误,可以通过将pyproj更新到2.2.1版来解决,但是从昨天开始我又遇到了同样的错误。
可能会发生什么变化,从一天到另一天,代码都出现错误? 如何检查我的代码正在运行哪个版本的pyproj? 我只知道命令:
pip freeze
确保您指向的是有效的epsg
文件。 根据您安装软件包的方式,可以在以下位置找到它:
这可以通过许多方式实现,但是我通常更喜欢手动指向要使用的gdal资源。 为此,添加一个名为GDAL_DATA的环境变量,并将其指向上面列表中的第一个文件夹。 之后,您可能必须重新启动python解释器或计算机,这取决于您使用的是什么。
如果您使用的是Windows,则设置GDAL以及所有依赖于GDAL的过程可能会很痛苦,但是我发现使用那些预编译的滚轮进行安装是最简单,最可靠的解决方案。 它们也经常更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.