Mais

Salvando MXDs em lote para agrupar arquivos de camada usando ArcPy?

Salvando MXDs em lote para agrupar arquivos de camada usando ArcPy?


Alguém tem / conhece um script que converte todos os MXDs em uma pasta em arquivos de camadas de grupos individuais?

Ele precisa usar o nome MXD como o nome do arquivo da camada do grupo.


Na verdade, eu só precisava fazer isso também. Eu postei uma caixa de ferramentas do ArcGIS, mas o código é:

import os import arcpy import inspecionar import glob import uuid import inspecionar codeDir = os.path.dirname (inspect.getfile (inspect.currentframe ())) EmptyGroupLayerFile = codeDir + "/ EmptyGroup.lyr" inArg1 = sys.argv [1] inArg2 = sys.argv [2] def printit (inMessage): arcpy.AddMessage (inMessage) def makeLyrFromMXD (inMXD, outLyr): se não (os.path.exists (inMXD)): printit ("ERRO: {} não existe" .format (inMXD)) retorna False se não (os.path.exists (EmptyGroupLayerFile)): printit ("ERROR: {} does not exist" .format (EmptyGroupLayerFile)) return False if (os.path.exists (outLyr) ): printit ("Ignorando: {} já existe" .format (outLyr)) return True printit ("Fazendo arquivo de camada: {0}". format (outLyr)) mxd = arcpy.mapping.MapDocument (inMXD) ### Agora, apenas fazendo o primeiro Dataframe, ele pode ser modificado df = arcpy.mapping.ListDataFrames (mxd) [0] theUUID = str (uuid.uuid1 ()) iGroupLayerRaw = arcpy.mapping.Layer (EmptyGroupLayerFile) iGroupLayerRaw.name) theUUID arcpy.mapping.AddLayer (df, iGroupLayerRaw, "TOP") groupBaseName = os.path.basename (outLyr) .split (".") [0] para lyr em arcpy.mapping.ListLayers (df): se não (lyr.name == theUUID): if (lyr.isGroupLayer): print "Adicionando Grupo:" + lyr.name arcpy.mapping.AddLayerToGroup (df, iGroupLayer, lyr, "Bottom") elif (lyr.longName == lyr.name): arcpy.mapping.AddLayerToGroup (df, iGroupLayer, lyr, "Bottom") else: iGroupLayer = lyr iGroupLayer.name = groupBaseName arcpy.SaveToLayerFile_management (iGroupLayer, outLyr) return os.path.exists (outLyr) def doMultiple (inDir, outDir): para iMxd em glob.glob (inDir + "/ * .mxd "): lyrFile = outDir +" / "+ os.path.basename (iMxd) .lower (). replace (". mxd ",". lyr ") makeLyrFromMXD (iMxd, lyrFile) se (não os.path. existe (EmptyGroupLayerFile)): printit ("Erro: {} está faltando, não é possível executar.". format (EmptyGroupLayerFile)) else: if (os.path.isdir (inArg1) e (os.path.isdir (inArg2)) ): doMultiple (inArg1, inArg2) elif (os.path.isfile (inArg1)): if (os.path.exists (inArg2)): printit ("Erro: {} já existe" .format (inArg2)) else: makeLyrFromMXD (inArg 1, inArg2) else: printit ("Incapaz de compreender os parâmetros de entrada")

Módulo arcgis.features¶

O módulo arcgis.features contém tipos e funções para trabalhar com recursos e camadas de recursos no GIS.

Entidades localizadas no espaço com uma representação geométrica (como pontos, linhas ou polígonos) e um conjunto de propriedades podem ser representadas como recursos. O módulo arcgis.features é usado para trabalhar com dados de feições, camadas de feições e coleções de camadas de feições no GIS. Ele também contém as funções de análise espacial que operam contra dados de recursos.

No SIG, entidades localizadas no espaço com um conjunto de propriedades podem ser representadas como feições. Os recursos são armazenados como classes de recursos, que representam um conjunto de recursos localizados usando um único tipo espacial (ponto, linha, polígono) e um conjunto comum de propriedades. Esta é a extensão geográfica da representação tabular ou relacional clássica para entidades - um conjunto de entidades é modelado como linhas em uma tabela. As tabelas representam classes de entidade com propriedades uniformes. Além de trabalhar com entidades com localização como recursos, o sistema também pode trabalhar com entidades não espaciais como linhas em tabelas. O sistema também pode modelar relacionamentos entre entidades usando propriedades que atuam como chaves primárias e estrangeiras. Uma coleção de classes e tabelas de feições, com os relacionamentos associados entre as entidades, é uma coleção de camadas de feições. FeatureLayerCollections é um dos tipos de conjunto de dados contidos em um Datastore. Finalmente, os recursos não são simplesmente entidades em um conjunto de dados. Os recursos têm uma representação visual e experiência do usuário - em um mapa, em uma cena 3D, como entidades com uma folha de propriedades ou pop-ups.


Assista o vídeo: 33. Kurs Java dla początkujących - Zapis do pliku File