Czy tworzysz tabelę podsumowań symboli wszystkich zestawów danych w wielu MXD?

9

Jest to związane z następującą Zachowaj symbolikę ESRI w Mapinfo TAB . Na wstępie (w trybie arcpy) chcę uzyskać dostęp do symboliki wszystkich zestawów danych i utworzyć dokument, który ma szczegóły dotyczące symboliki zgodnie z poniższą grafiką. wprowadź opis zdjęcia tutaj

Czy jest to możliwe (czy powinienem poświęcić czas na wypracowanie tego), czy jeśli nie jest to możliwe, będę musiał po prostu popękać za zrobienie tego ręcznie na setkach MXD (: -

Aby rozbić kroki - mam nadzieję, że mogę zautomatyzować przynajmniej część procesu.

  1. przewijanie mxd i pobieranie zestawów danych nie stanowi problemu

    lyrFile = arcpy.mapping.Layer if lyrFile.visible == True:

  2. gdy znajdzie zestaw danych, powinien utworzyć plik .lyr (ponieważ większość to tylko pliki shp / gdb), a następnie AttribXXX = lyrFile.xxx

gdzie są XXX i xxx

BRIGHTNESS = lyrFile.brightness

(powyżej formatu do następujących)

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

Problemem jest to, że nie mogę znaleźć niczego, co otrzyma RGB, typ linii / punktu / wieloboku, grubości linii, czcionkę itp. Jeśli można je znaleźć, to następny krok

  1. zapisz każdą z powyższych wartości do pliku CSV (łatwe) ... na przykład (należy to rozwinąć)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
    
  2. Jeśli to możliwe, należy wygenerować plik JPG z symboliki jak w przykładzie, a link do niego dodać do pliku CSV.

Czy pytasz zbyt wiele o arkowanie?

GeorgeC
źródło
Może to być możliwe w przypadku ArcObjects, ale na pewno nie jest to arcpy.
blah238
dzięki. Czy ktoś może wtedy pomóc w przetwarzaniu obiektów łukowych?
GeorgeC,
Tylko może wskazać od czego zacząć: ArcObjects .NET SDK Pomoc ; Praca z symbolami i kolorami oraz Praca z warstwami i rendererami . Jeśli nic więcej, być może po ich przeczytaniu, nie będziesz w stanie precyzyjniej określić swoich wymagań i ograniczyć zakres pracy, ponieważ myślę , że będzie to dużo pracy.
blah238,
Oto stara próbka VB6 do eksportowania symboli stylu: Zrzut stylu . Sprawdź StyleDump.bas, aby zobaczyć jego mięso.
blah238,

Odpowiedzi:

3

Rozwiązałem podobny problem, konwertując dokument MXD na MSD (który jest tylko plikiem zip), więc jeśli zmienisz rozszerzenie na „.zip” i otworzysz, znajdziesz kilka dokumentów .xml, które zawierają wiele informacji o tym, jak każdy z nich wyświetlana jest warstwa w mxd. arcpy.ConvertToMSD Może być trochę pracy przy uzyskiwaniu potrzebnych informacji, ale powinna gdzieś tam być. Mam nadzieję, że to pomaga!

Dango
źródło
Dzięki za ten przełomowy pomysł. To jest naprawdę pomocne. Kod wygenerowany w xml jest dość złożony, czy program automatycznie przechwytywał odpowiedni xml i jeśli tak, możesz go udostępnić, jeśli nie, zacznę pracować nad tym aspektem.
GeorgeC
Interesowały mnie tylko dwie wartości w xml, więc wszystko, co miałem, będzie bardzo trudne do zbudowania. Ale istnieje mnóstwo naprawdę dobrych samouczków w języku Python xml, więc jeśli jesteś gotowy poświęcić trochę czasu na czytanie, jestem pewien, że rozwiążesz problem. Miłego kodowania :)
Dango