Instrução

preservar Global IDs ao anexar feições de um arquivo geodatabase a uma camada de feição hospedada no ArcGIS Online

Last Published: September 30, 2024

Resumo

Às vezes, o campo Global ID não é preservado ao anexar feições de um arquivo geodatabase a uma camada de feição hospedada no ArcGIS Online. Preservar Global IDs é crucial, pois eles identificam exclusivamente cada feição e são frequentemente utilizados para rastrear relacionamentos, sincronizar dados e gerenciar o histórico de edição, particularmente em fluxos de trabalho offline e serviços da feição.

Este artigo fornece um fluxo de trabalho para anexar um arquivo geodatabase a uma camada de feição hospedada no ArcGIS Online utilizando um script Python executado na janela Python dentro do ArcGIS Pro.

Procedimento

  1. Abra o projeto no ArcGIS Pro.
  2. Abra a janela Python. Consulte ArcGIS Pro: Janela Python para obter mais informações.
Note:
To preserve GlobalIDs and avoid the automatic creation of new GlobalIDs, ensure the GlobalID field is already present in the hosted feature layer.
  1. Execute o seguinte script:
    1. Defina os caminhos para o arquivo geodatabase de entrada e para a camada de feição hospedada de destino.
import arcpy 

file_gdb_path = r"<file_geodatabase_path>"
hosted_feature_layer = r"<hosted_feature_layer_URL>"
    1. Crie um objeto FieldMappings. Este objeto define como os campos de origem (arquivo geodatabase) são mapeados para o destino (camada de feição hospedada).
field_mappings = arcpy.FieldMappings()
    1. Crie um objeto FieldMap para o campo Global ID e defina as propriedades do campo de saída para o campo GlobalID.
global_id_field_map = arcpy.FieldMap()
global_id_field_map.addInputField(file_gdb_path, "GlobalID")
global_id_field_map.outputField.name = "GlobalID"
    1. Adicione o mapa de campo do Global ID ao objeto FieldMappings.
field_mappings.addFieldMap(global_id_field_map)
    1. Adicione mapas de campo para outros campos, se necessário. Substitua <nome_campo> pelo nome do campo a ser mapeado.
field1_field_map = arcpy.FieldMap()
field1_field_map.addInputField(file_gdb_path, "<field_name>")
field1_field_map.outputField.name = "<field_name>"
field_mappings.addFieldMap(field1_field_map)
    1. Anexe as feições à camada de feição hospedada.
arcpy.Append_management(file_gdb_path, hosted_feature_layer, schema_type="NO_TEST", field_mapping=field_mappings)

O bloco de código abaixo demonstra o funcionamento completo do script.

import arcpy

file_gdb_path = r"C:\Users\dpalzaniappan\Documents\ArcGIS\Projects\MyProject91\MyProject91.gdb\Testi"
hosted_feature_layer = r"https://services9.arcgis.com/LMjydzYxR6YFiqk8/arcgis/rest/services/Testio123/FeatureServer/0"

field_mappings = arcpy.FieldMappings()

global_id_field_map = arcpy.FieldMap()
global_id_field_map.addInputField(file_gdb_path, "GlobalID")
global_id_field_map.outputField.name = "GlobalID"

field_mappings.addFieldMap(global_id_field_map)

field1_field_map = arcpy.FieldMap()
field1_field_map.addInputField(file_gdb_path, "Name")
field1_field_map.outputField.name = "Name"
field_mappings.addFieldMap(field1_field_map)

arcpy.Append_management(file_gdb_path, hosted_feature_layer, schema_type="NO_TEST", field_mapping=field_mappings)

A imagem abaixo exibe o script Python utilizado na janela Python no ArcGIS Pro para anexar o arquivo geodatabase à camada de feição hospedada.

O script Python na janela Python

ID do Artigo: 000032358

Obtenha suporte com IA

Resolva seu problema rapidamente com o chatbot de IA de suporte da Esri.

Comece a conversar agora

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Comece a conversar agora

Ir para as opções de download