Seite 1 von 1
arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 19:10
von wooglevogel
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
Re: arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 19:16
von 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.
Re: arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 19:22
von wooglevogel
Das habe ich mir auch gedacht ja, aber wie genau mache ich das denn, dass ich eine variable für mehrere dateien habe?
Re: arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 19:27
von 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.)
Re: arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 19:35
von wooglevogel
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?
Re: arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 20:05
von Sirius3
"test" ist ja auch ein String. Warum sollte da auf magische Weise der Inhalt der Variable test an Describe übergeben werden?
Re: arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 20:14
von wooglevogel
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?
Re: arcpy.Describe - Funktion auf eine Liste anwenden?
Verfasst: Samstag 8. November 2014, 20:39
von EyDu
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.