Ich versuche, ein Shapefile mit dem Restapi-Modul für Python vom Feature-Server zu exportieren
Posted: 03 Jan 2025, 11:12
Ich versuche, ein Shapefile von einem ArcGIS-Feature-Server herunterzuladen, um es mithilfe von Geopandas zu manipulieren. Ich bin auf das Restapi-Python-Modul gestoßen, das ziemlich benutzerfreundlich zu sein scheint, aber ich habe Schwierigkeiten beim Exportieren einer Ebene.
Hier ist der Code, den ich ausprobiert habe. Ich habe einige Änderungen vorgenommen, aber immer noch kein Glück.
Stellen Sie eine Verbindung zum USDOT REST-Server her
Shapefile exportieren
Hier ist meine Fehlermeldung:
AttributeError Traceback (letzter Aufruf zuletzt)
c:\Users\03760\Documents\PythonStuff.venv\lib\site-packages\restapi\rest_utils.py in getattr(self, name)
858 # Es ist ein Klassenattribut
--> 859 Rückgabeobjekt.getattribute(self, name)
860 außer AttributeError:
AttributeError: Das Objekt „FeatureCollection“ hat kein Attribut „Felder“.
Während der Behandlung der oben genannten Ausnahme ist eine weitere Ausnahme aufgetreten:
AttributeError Traceback (letzter Aufruf zuletzt)
~\AppData\Local\Temp\ipykernel_5700\447033721.py in
7
8 # Shapefile exportieren
----> 9 tracts.export_layer('C:/Users/03760/Documents/PythonStuff/cost_burdened_tracts.shp')
10
11 # Zugriff auf die kostenbelastete Zählungstraktebene
c:\Users\03760\Documents\PythonStuff.venv\lib\site-packages\restapi\common_types.py in export_layer(self, out_fc, Fields, Where, Records, Exceed_limit, sr, include_domains, include_attachments, qualifizierte_Feldnamen, Chunk_size, **kwargs)
2154 # beliebige Domain-Informationen abrufen
2155 f_dict = {f.name: f für f in self.fields}
-> 2156 für Feld in fs.fields:
2157 if field:
2158 field.domain = f_dict [field.name].get(DOMAIN)
...
--> 865 raise AttributeError(name)
866
867 def str(self):
AttributeError: Fields
Hier ist der Code, den ich ausprobiert habe. Ich habe einige Änderungen vorgenommen, aber immer noch kein Glück.
Code: Select all
import restapi
Code: Select all
tracts_url = 'https://services.arcgis.com/xOi1kZaI0eWDREZv/ArcGIS/rest/services/Transportation_Cost_Burden_Census_Tracts/FeatureServer/0'
tracts = restapi.FeatureLayer(tracts_url)
Code: Select all
tracts.export_layer('C:/Users/03760/Documents/PythonStuff/cost_burdened_tracts.shp')
AttributeError Traceback (letzter Aufruf zuletzt)
c:\Users\03760\Documents\PythonStuff.venv\lib\site-packages\restapi\rest_utils.py in getattr(self, name)
858 # Es ist ein Klassenattribut
--> 859 Rückgabeobjekt.getattribute(self, name)
860 außer AttributeError:
AttributeError: Das Objekt „FeatureCollection“ hat kein Attribut „Felder“.
Während der Behandlung der oben genannten Ausnahme ist eine weitere Ausnahme aufgetreten:
AttributeError Traceback (letzter Aufruf zuletzt)
~\AppData\Local\Temp\ipykernel_5700\447033721.py in
7
8 # Shapefile exportieren
----> 9 tracts.export_layer('C:/Users/03760/Documents/PythonStuff/cost_burdened_tracts.shp')
10
11 # Zugriff auf die kostenbelastete Zählungstraktebene
c:\Users\03760\Documents\PythonStuff.venv\lib\site-packages\restapi\common_types.py in export_layer(self, out_fc, Fields, Where, Records, Exceed_limit, sr, include_domains, include_attachments, qualifizierte_Feldnamen, Chunk_size, **kwargs)
2154 # beliebige Domain-Informationen abrufen
2155 f_dict = {f.name: f für f in self.fields}
-> 2156 für Feld in fs.fields:
2157 if field:
2158 field.domain = f_dict [field.name].get(DOMAIN)
...
--> 865 raise AttributeError(name)
866
867 def str(self):
AttributeError: Fields