web-dev-qa-db-ja.com

RuntimeError:b '初期化リストに引数がありません'

私は自分で問題を解決しようとしていますが、解決できませんでした。想像できるすべての形式でこのコードを実行しようとしています。ArcGISプロソフトウェアでは、他のどのエラーメッセージにもこのエラーメッセージはありません。問題。同様の問題から、いくつかのデータファイルが欠落している可能性があるようです?

import geopandas as gpd
import json
import numpy as np
from shapely.geometry import LineString, Point, box
import ast
from 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'
5
Maram Mubarak

初期のcrsは定義されていますか? epsgコマンドgdf.to_crs('epsg:4326')のみを渡したときにのみ、同じ問題が発生しました。

あなたが示すように

_my_geoseries.crs = {'init' :'epsg:3857'}_

最初のステップであり、次に変換する必要があります

gdf = gdf.to_crs({'init': 'epsg:4326'})

ArcGISで作業している場合は、プロパティで初期epsgが定義されているかどうかを確認することもできますか?

素晴らしい答えでしたありがとう

1
Trish

私はPycharmを使用しています。 Stone Shiの発言とDorregarayの発言を組み合わせて使用​​する必要がありました。

import pyproj
pyproj.Proj("+init=epsg:4326")
> RuntimeError: b'no arguments in initialization list'

Stone Shiによれば、上記はpyproj errであることを証明しています。だから私はPycharm-> Settingsを使用してpyprojを再インストールしました。その後

import pyproj
pyproj.Proj("+init=epsg:4326")
> RuntimeError: b'no arguments in initialization list'

だから、それはpyprojのエラーですbut Pycharm->設定pyprojを再インストールしても役に立ちません。

次に、C:\ Anaconda3\Lib\site-packages\pyproj\datadir.pyを以下から編集しました:

pyproj_datadir="C:/Anaconda3\share\proj"

ドレガレーの:

pyproj_datadir="C:\Anaconda3\Library\share"

次に、もう一度テストします。

import pyproj
pyproj.Proj("+init=epsg:4326")
>Process finished with exit code 0

ランタイムエラーなし!

次に、私のテスト

wgs84  = data.to_crs({'init': 'epsg:4269'})
>Process finished with exit code 0
1
JDOaktown

Geopandasを使用して、それを試してください(それはうまくいくはずです):

gdf = gpd.GeoDataFrame(gdf, geometry=gdf['geometry'])
gdf.crs = {'init' :'epsg:2154'}
gdf = gdf.to_crs({'init' :'epsg:4326'}) 

Geodataframeを適切に再定義してから、最初のgeo参照を定義し、最後にそれを適切なものに変換する必要があります。ある場合は、必ずNaNを削除してください。

0
Willy_Fro