web-dev-qa-db-fra.com

RuntimeError: b'aucun argument dans la liste d'initialisation '

J'essaie de résoudre mon problème dans le mien mais je ne pouvais pas, j'essaie d'exécuter ce code dans tous les formats que vous pouvez imaginer et dans le logiciel ArcGIS pro c'est la même chose, je ne trouve pas ce message d'erreur dans aucun autre problème. De problèmes similaires, il semble que certains fichiers de données pourraient être manquants?

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'})

j'ai cette erreur

RuntimeError: b'no arguments in initialization list'

aussi je l'ai essayé dans arcgis pro j'ai le même

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

Y a-t-il un crs initial défini? Je suis tombé sur le même problème que lorsque j'ai passé uniquement la commande epsg: gdf.to_crs('epsg:4326').

Comme vous le montrez

my_geoseries.crs = {'init' :'epsg:3857'}

devrait être la première étape, puis la transformation en

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

Si vous travaillez dans ArcGIS, vous pouvez également vérifier dans les propriétés si l'EPSG initial est défini.

super c'était la réponse merci

1
Trish

J'utilise Pycharm. J'ai dû utiliser une combinaison de la remarque de Stone Shi et de Dorregaray.

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

Selon Stone Shi, ce qui précède prouve que c'est une erreur de pyproj. J'ai donc utilisé Pycharm-> Paramètres et réinstallé pyproj. ensuite

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

Donc, c'est une erreur pyproj mais Pycharm-> Paramètres réinstaller pyproj ne m'aide pas.

J'ai ensuite édité mon C:\Anaconda3\Lib\site-packages\pyproj\datadir.py à partir de:

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

à Dorregaray:

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

Puis testez à nouveau:

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

Aucune erreur d'exécution!

Puis testez sur mon

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

À l'aide de Geopandas, essayez cela (cela devrait fonctionner):

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

Vous devez bien redéfinir votre géodonnées, puis définir le référentiel géo initial et enfin le convertir dans le bon. N'oubliez pas de laisser tomber le NaN s'il y en a.

0
Willy_Fro