ERRO

ArcGIS API para Python GeoEnrichment Erro: O modo de agregação de país suporta apenas coletas de dados globais

Last Published: July 22, 2021

Mensagem de Erro

A função ArcGIS Python enriqu_layer (módulo arcgis.features.enrich_data) é usada para enriquecer vários locais de pontos com informações demográficas usando o seguinte trecho de código:

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)

Isso está funcionando bem para alguns países, mas está falhando em outros com a mensagem de erro:

{"messageCode": "AO_100000", "mensagem": "O modo de agregação de país suporta apenas coletas de dados globais. As seguintes coletas de dados não puderam ser processadas: 'KeyFacts', 'HouseholdTotals', 'Spending'."}

De acordo com o navegador de dados na seguinte URL, https://la.arcgis.com/databrowser/index.html, todos os países no teste (Austrália, Bélgica e Holanda) devem oferecer suporte a essas variáveis ​​de análise.

Causa

A mensagem de erro "O modo de agregação de país suporta apenas coletas de dados globais" indica que a distância do buffer das coordenadas de entrada resulta em uma feição de entrada de polígono para enriquecimento que cruza mais de um país, que só é compatível com coletas de dados globais e não com quaisquer variáveis ​​de análise.

Dependendo de onde a coordenada do ponto estiver localizada, um buffer de 30 quilômetros das coordenadas de entrada pode cruzar vários países, razão pela qual o erro só é encontrado em alguns casos.

Solução ou Solução Provisória

Há duas soluções alternativas para esse erro:

Defina o parâmetro opcional chamado país no método rich_layer para limitar o enriquecimento a um único país para cada ponto de entrada que é armazenado em buffer

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)

Use o módulo arcgis.geoenrichment, todos os KeyGlobalFacts podem ser agregados para todos os países

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)

ID do Artigo:000025443

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com suporte técnico

Baixe o Esri Support App

Ir para opções de download

Informações Relacionadas

Descubra mais sobre este tema