Creazione di una tabella riassuntiva della simbologia di tutti i set di dati in più MXD?


9

Ciò è correlato alla seguente simbologia Mantieni ESRI in TAB Mapinfo . Come primo passo (in arcpia) voglio accedere alla simbologia di tutti i set di dati e creare un documento che abbia i dettagli della simbologia come da grafico sotto. inserisci qui la descrizione dell'immagine

È possibile (dovrei investire il tempo per risolverlo) o se non è possibile, dovrò solo provare a farlo manualmente su centinaia di MXD (: -

Per abbattere i passi, spero di poter automatizzare almeno una parte del processo.

  1. scorrere tra i mxd e ottenere i set di dati attivi non è un problema

    lyrFile = arcpy.mapping.Layer se lyrFile.visible == Vero:

  2. poiché trova un set di dati dovrebbe creare un file .lyr (poiché la maggior parte sono solo file shp / gdb) e quindi AttribXXX = lyrFile.xxx

dove sono xxx e xxx

BRIGHTNESS = lyrFile.brightness

(dal formato sopra al seguente)

CONTRAST contrast
DATASETNAME datasetName
DATASOURCE dataSource
DESCRIPTION description
LABELCLASSES labelClasses
LONGNAME longName
NAME name
SHOWLABELS showLabels
TRANSPARENCY transparency
WORKSPACEPATH A layer's workspace or connection file path

Il problema è che non riesco a trovare nulla che ottenga RGB, tipo di linea / punto / poligono, spessori di linea, carattere ecc. Se questi possono essere trovati, il passaggio successivo

  1. scrivere ciascuno dei valori sopra in un CSV (facile) ... per esempio (questo deve essere espanso)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
    
  2. Se possibile, dovrebbe essere prodotto un jpg della simbologia come nell'esempio e il collegamento ad esso aggiunto al csv.

Sto chiedendo a gran parte di arcpy?


Ciò può essere possibile con ArcObjects ma sicuramente non arcpico.
blah238,

Grazie. Qualcuno può aiutare con l'elaborazione degli oggetti arco allora?
GeorgeC,

Può solo indicare da dove iniziare: Guida SDK ArcObjects .NET ; Lavorare con simboli e colori e Lavorare con livelli e renderer . Se nient'altro, forse dopo aver letto quelli, sarai in grado di definire le tue esigenze in modo più preciso e limitare la portata del lavoro, perché sarà un sacco di lavoro, penso.
blah238,

Ecco un vecchio esempio VB6 per l'esportazione dei simboli di stile: Style Dump . Controlla StyleDump.bas per la carne di esso.
blah238,

Risposte:


3

Ho risolto un problema simile convertendo un documento MXD in un MSD (che è solo un file zip), quindi se si modifica l'estensione in ".zip" e si apre, si troveranno alcuni documenti .xml che contengono molte informazioni su come ciascuno viene visualizzato il layer all'interno del mxd. arcpy.ConvertToMSD Potrebbe esserci del lavoro necessario per ottenere le informazioni desiderate, ma dovrebbero essere lì da qualche parte. Spero che aiuti!


Grazie per questa idea fondamentale. È davvero utile Il codice generato nell'xml è piuttosto complesso, hai programmato automaticamente l'acquisizione dell'XML pertinente e, in tal caso, puoi condividerlo, altrimenti inizierò a lavorare su questo aspetto.
GeorgeC,

Ero interessato solo a due valori nell'xml, quindi qualsiasi cosa avessi sarà molto difficile da costruire. Ma ci sono un sacco di ottimi tutorial su Python XML là fuori, quindi se sei pronto a passare un po 'di tempo a leggere sono sicuro che risolverai il problema. Buona programmazione :)
dango,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.