ERROR

ArcGIS API for Python – GeoEnrichment Error: Country aggregation mode supports only global data collections

Last Published: July 22, 2021

Fehlermeldung

Die ArcGIS Python-Funktion "enrich_layer" (arcgis.features.enrich_data module) wird verwendet, um mithilfe des folgenden Codeausschnitts mehrere Punktpositionen mit demografischen Informationen anzureichern:

from arcgis.gis import GIS from arcgis.features.enrich_data import enrich_layer # Connect to GIS gis = GIS("Pro") # Use analysis variables available for the the countries of interest analysis_variables = [ "KeyFacts.TOTPOP_CY", "HouseholdTotals.AVGHHSZ_CY", "KeyFacts.PP_CY", "Spending.CS01_CY" ] points = [ {"country": "Australia", "coords": (-33.918199,151.202186)}, {"country": "Belgium", "coords": (51.051012,4.335651)}, {"country": "Netherlands", "coords": (51.848607,4.669177)} ] for point in points: country = point['country'] coords = point['coords'] pt_enrich = enrich_layer( coords, analysis_variables=analysis_variables, distance=30, units='Kilometers', buffer_type='StraightLine', return_boundaries=True, ) print(pt_enrich.layer.featureSet.features[0].attributes)

Dies funktioniert für einige Länder gut, bei anderen jedoch schlägt das Skript mit der folgenden Fehlermeldung fehl:

{"messageCode": "AO_100000", "message": "Country aggregation mode supports only global data collections. Following data collections couldn't be processed: 'KeyFacts', 'HouseholdTotals', 'Spending'."}

Gemäß dem Daten-Browser unter der URL https://la.arcgis.com/databrowser/index.html sollten diese Analysevariablen für alle Länder im Test (Australien, Belgien und die Niederlande) unterstützt werden.

Ursache

Die Fehlermeldung "Country aggregation mode supports only global data collections" weist darauf hin, dass der Pufferabstand um die Eingabe-Koordinaten zu einem Polygon-Eingabe-Feature für die Anreicherung führt, das mehrere Länder schneidet. Dies wird nur für globale Datensammlungen ohne Analysevariablen unterstützt.

Abhängig von der Position der Punktkoordinate kann ein 30-Kilometer-Puffer um die Eingabe-Koordinaten mehrere Länder schneiden. Daher tritt der Fehler nur in manchen Fällen auf.

Lösung oder Problemumgehung

Es gibt zwei Möglichkeiten, diesen Fehler zu umgehen:

Festlegen des optionalen Parameters "country" in der Methode "enrich_layer", um die Anreicherung für jeden zu puffernden Eingabepunkt auf ein einziges Land zu beschränken

from arcgis.gis import GIS from arcgis.features.enrich_data import enrich_layer # Connect to GIS gis = GIS("Pro") # Testing using analysis variables from a variety of collections analysis_variables = [ "KeyFacts.TOTPOP_CY", "HouseholdTotals.AVGHHSZ_CY", "KeyFacts.PP_CY", "Spending.CS01_CY" ] points = [ {"country": "Australia", "code": "AU", "coords": (-33.918199,151.202186)}, {"country": "Belgium", "code": "BE", "coords": (51.051012,4.335651)}, {"country": "Netherlands", "code": "NL", "coords": (51.848607,4.669177)} ] for point in points: country = point['country'] coords = point['coords'] code = point['code'] pt_enrich = enrich_layer( coords, analysis_variables=analysis_variables, country= code, distance=30, units='Kilometers', buffer_type='StraightLine', return_boundaries=True, ) print(pt_enrich.layer.featureSet.features[0].attributes)

Verwenden des Moduls "arcgis.geoenrichment", damit alle KeyGlobalFacts für alle Länder aggregiert werden können

from arcgis.gis import GIS from arcgis.geoenrichment import enrich, BufferStudyArea from arcgis.geometry import Point gis = GIS("Pro") points = [] points.append(Point({"x" : 4.335651, "y" : 51.051012, "spatialReference" : {"wkid" : 4326}})) points.append(Point({"x" : 151.202186, "y" : -33.918199, "spatialReference" : {"wkid" : 4326}})) points.append(Point({"x" : 4.669177, "y" : 51.848607, "spatialReference" : {"wkid" : 4326}})) points.append(Point({"x" : 114.125105, "y" : 22.343511, "spatialReference" : {"wkid" : 4326}})) for pt in points: buffered = BufferStudyArea(area= pt, radii=[30], units='Kilometers', overlap=False) enriched = enrich( study_areas=[buffered], data_collections=['KeyGlobalFacts'], ) print(enriched)

Artikel-ID:000025443

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden