arcpy.Describe - Funktion auf eine Liste anwenden?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
wooglevogel
User
Beiträge: 5
Registriert: Samstag 8. November 2014, 19:02

Hallo!

Ich habe derzeit in der Uni ein Seminar, das in ArcPy einführt. Nun habe ich dort eine Hausaufgabe bekommen und stehe am Rande der Verzweiflung. Ich glaube ich bin von der Lösung nicht allzu weit entfernt, aber ich komme einfach nicht ganz drauf. Da dachte iich mir vielleicht kann mir ja hier jemand helfen!

Zu meinem Problem:

Wir haben in der Lektion zu arcpy.Describe gelernt:

Code: Alles auswählen

desc = arcpy.Describe ("bla.shp")
print desc.baseName
print desc.shapeType
print desc.spatialrreference.Name
So weit ist das ganze ja noch easy. Nun soll ich aber alle Objektklassen aus einem Ordner mittels einer for-Schleife automatisch die describe Funktion anwenden. Ich habe schon unzählige scripte ausprobiert, aber sie funktionieren einfach nicht. Ich habe beispielsweise eine Liste mit den Objektklassen erstellt, aber was schreibe ich denn dann für die Datei die beschrieben werden soll? Es sind ja mehrere, das heißt ich kann nicht einen Dateinamen nehmen sondern brauche etwas allgemeines.

Ich hoffe mein Problem ist verständlich!

Danke im voraus!
Liebe Grüße!
Tobi
Zuletzt geändert von Anonymous am Samstag 8. November 2014, 19:13, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
BlackJack

@wooglevogel: Wenn Du das für mehrere Dateinamen machen willst, dann musst Du eine Schleife über diese Dateinamen schreiben und darin dann die Zeilen die Du gezeigt hast ausführen. Halt mit der Laufvariable anstelle des festen Dateinamens.
wooglevogel
User
Beiträge: 5
Registriert: Samstag 8. November 2014, 19:02

Das habe ich mir auch gedacht ja, aber wie genau mache ich das denn, dass ich eine variable für mehrere dateien habe?
BlackJack

@wooglevogel: Die Namen müssen halt irgendwo her kommen über das man in einer Schleife iterieren kann. Eine Liste zum Beispiel. Vielleicht solltest Du mal ein Grundlagentutorial zu Python durcharbeiten. In der Python-Dokumentation ist eines. Und für absolute Programmieranfänger wird oft Learn Python The Hard Way empfohlen (nicht vom Titel irritieren lassen.)
wooglevogel
User
Beiträge: 5
Registriert: Samstag 8. November 2014, 19:02

Auch das habe ich versucht, hat aber alles nicht funktioniert... :-(
Zum Beispiel habe ich eine Liste mit den Dateinamen erstellt und dann folgendes gemacht:

Code: Alles auswählen

for element in liste:
test = element
test = arcpy.Describe ("test")
print test.shapeType
Dabei kommt aber die Fehlermeldung, dass test entweder nicht exisitiert oder dass test keine Attribute für die describe Funktion hat? Wass läuft da denn schief?
Zuletzt geändert von Anonymous am Samstag 8. November 2014, 21:01, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Sirius3
User
Beiträge: 17757
Registriert: Sonntag 21. Oktober 2012, 17:20

"test" ist ja auch ein String. Warum sollte da auf magische Weise der Inhalt der Variable test an Describe übergeben werden?
wooglevogel
User
Beiträge: 5
Registriert: Samstag 8. November 2014, 19:02

Na weil ich es vorher mit den elementen in der Liste verknüpft habe? Ich weiß es ja nicht, dswegen frage ich. Wie mache ich das denn, dass es kein string mehr ist?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

wooglevogel hat geschrieben:Wie mache ich das denn, dass es kein string mehr ist?
Eines der von BlackJack empfohlenen Tutorials durcharbeiten. Dir fehlen ganz offensichtlich die einfachsten Grundlagen, die must du drauf haben.
Das Leben ist wie ein Tennisball.
Antworten