我尝试自己解决这个问题但没有成功,我尝试了所有你能想象到的格式运行这个代码,在ArcGIS Pro软件中也是一样,我在其他问题中找不到这个错误信息。从类似的问题来看,似乎可能是某些数据文件丢失了?
import geopandas as gpdimport jsonimport numpy as npfrom shapely.geometry import LineString, Point, boximport astfrom pyproj import Proj
paths = road_features.SHAPE.map(lambda x: np.array(ast.literal_eval(x)["paths"][0]))pathLineStrings = paths.map(LineString)gdf = gpd.GeoDataFrame(road_features,geometry=pathLineStrings)#gdf.crs = {'init': 'epsg:3857'}gdf.crs = {'init': 'epsg:4326'}
gdf = gdf.to_crs({'init': 'epsg:4326'})
我得到这个错误
RuntimeError: b'no arguments in initialization list'
我在ArcGIS Pro中也尝试了,得到的是同样的错误
Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\site-packages\geopandas\geodataframe.py", line 443, in to_crs geom = df.geometry.to_crs(crs=crs, epsg=epsg) File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\site-packages\geopandas\geoseries.py", line 304, in to_crs proj_in = pyproj.Proj(self.crs, preserve_units=True) File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\site-packages\pyproj\__init__.py", line 362, in __new__ return _proj.Proj.__new__(self, projstring) File "_proj.pyx", line 129, in _proj.Proj.__cinit__
RuntimeError: b'no arguments in initialization list'
回答:
是否定义了初始的crs
?我遇到同样的问题,仅当我传递了epsg命令时:gdf.to_crs('epsg:4326')
。
如你所示
my_geoseries.crs = {'init' :'epsg:3857'}
应该是第一步,然后转换为
gdf = gdf.to_crs({'init': 'epsg:4326'})
如果你在使用ArcGIS,你也可以检查属性中是否定义了初始的epsg?