Mais

Classe de recurso de saída vazia após tentar exibi-la no mapa usando arcpy.mapping?


Estou tentando exibir a saída do meu script em um mxd depois de criado. Para fazer isso, criei uma função no final da minha aula que lida com todo o mapeamento. Eu testei o código até a função de mapeamento e funciona muito bem. Mas quando tento executar o script com a função de mapeamento, o arquivo de saída está vazio, assim como o arquivo de camada que criei com ele. Há algo que possa ser editado / salvo sobre meu arquivo de saída?

def MapOutput (self): "Esta função cria um documento de mapa, adiciona os dados de saída e exporta uma miniatura dos dados." # Criar recursos de documento de mapa. mxd = arcpy.mapping.MapDocument (self.MapDocument) dfs = arcpy.mapping.ListDataFrames (mxd) df = dfs [0] # Crie um arquivo de camada a partir dos dados de entrada e simbolize-o. arcpy.MakeFeatureLayer_management (self.dBaseComparison (), 'Layer') arcpy.ApplySymbologyFromLayer_management ('Layer', self.OutSymb) # Adicionar camada simbolizada para mapear o documento. addLayer = arcpy.mapping.Layer ('Layer') arcpy.mapping.AddLayer (df, addLayer) # Crie uma cópia do documento de mapa e salve-o. copyName = self.MapDocument [: - 4] + "_Output.mxd" mxd.saveACopy (copyName) del mxd # Exportar uma imagem PNG do documento de mapa. mxd = arcpy.mapping.MapDocument (copyName) arcpy.mapping.ExportToPNG (mxd, copyName [: - 4] + "_Map.png">

arcpy.MakeFeatureLayer_management ()não cria uma camada Arquivo, ele cria uma camada na memória. Adicionar uma camada na memória a um mxd não deve funcionar, você precisa salvar a camada em um arquivo de camada comarcpy.SaveToLayerFile_management_management ()depois (ou alternativamente, use uma camada já presente no TOC de um mxd):

… Arcpy.MakeFeatureLayer_management (self.dBaseComparison (), 'Layer') arcpy.ApplySymbologyFromLayer_management ('Layer', self.OutSymb) arcpy.SaveToLayerFile_management ('Layer', r'C:  folder  lyr.lyr ') ...


Assista o vídeo: Week13: 6 scripts for Arcmap layouts (Outubro 2021).