GIS Shape Datein Ordner und Unterordner auslesen
Ich habe es jetzt geschafft, pathlib zu installieren. War gar nicht so einfach, denn ich habe erst noch pip installiert. Da ich Python Version 2.7 nutze war das gar nicht so einfach, aber mit viel Suchen gings dann, zumindest habe ich kein Fehlermeldung bekommen.
Morgen gehts dann weiter. Ich danke Euch für Euren Input!
Morgen gehts dann weiter. Ich danke Euch für Euren Input!
- sls
- User
- Beiträge: 480
- Registriert: Mittwoch 13. Mai 2015, 23:52
- Wohnort: Country country = new Zealand();
Die Installation zusätzlicher Pakete sollte aber eigentlich keinen Einfluss darauf haben. Was heißt in deiner Welt denn "komme ich aber an arcpy nicht mehr dran"? Gibt's Fehlermeldungen? Welche IDE verwendest du? Man sollte generell für jedes Projekt eine eigene virtuelle Umgebung erstellen, um die projektspezifischen Abhängigkeiten sauber von der systemweiten Python-Umgebung zu trennen.
pip und virtualenv sind für sowas gemacht.
pip und virtualenv sind für sowas gemacht.
When we say computer, we mean the electronic computer.
Ich habe einen einfachen Code, mit dem ich arcpy anspreche. Das hat nach der Installation von pip und pathlib nicht mehr funktioniert. Das Modul arcpy existiert nicht.
Ich habe versucht, arcpy neu zu installieren, das hat alles nicht funktioniert.
Nachdem ich Python deinstalliert habe und ArcGIS repariert ging es wieder.
Ich habe versucht, arcpy neu zu installieren, das hat alles nicht funktioniert.
Nachdem ich Python deinstalliert habe und ArcGIS repariert ging es wieder.
Hurra! Es scheint zu klappen, zumindest bekomme ich keine Fehlermeldung mehr zurück. Danke Dir @sls für die Vorlage! Ich musste noch ein paar Sachen modifizieren. Ob die Benennung der Exeptions sinnvoll ist, weiß ich auch nicht.
Wenn ich allerdings statt "arcpy.AddMessage" "print" eingebe, bekomme ich immer die Meldung, dass kein Koordinatensystem vorhanden ist, was in meinen Testordner bei nur 2 von 3 Shapes der Fall sein sollte. Da muss ich also noch weiter probieren. Und das ganze dann noch in ArcGIS implementieren...
Wenn ich allerdings statt "arcpy.AddMessage" "print" eingebe, bekomme ich immer die Meldung, dass kein Koordinatensystem vorhanden ist, was in meinen Testordner bei nur 2 von 3 Shapes der Fall sein sollte. Da muss ich also noch weiter probieren. Und das ganze dann noch in ArcGIS implementieren...
Code: Alles auswählen
import arcpy
import glob
FILES = glob.glob(r'C:\Test\*.shp')
def set_coordinate_status(message, *args):
try:
for status in args:
arcpy.SetParameterAsText(status[0], status[1])
arcpy.AddMessage(message)
except Exception:
arcpy.AddError("koordinaten status failed")
def resolve_shape(path):
try:
describe = arcpy.Describe(path)
spatial_reference = dsc.spatialReference
return spatial_reference.name.lower()
except Exception:
arcpy.AddError("Resolve failed")
def main():
for shape in FILES:
prj = resolve_shape(shape)
if prj is None:
arcpy.AddMessage = "To continue, first define a coordinate system!"
statuses = ((1, 'true'), (2, 'true'))
else:
arcpy.AddMessage = "Coordinate system is known"
statuses = ((1, 'false'), (2, 'false'))
set_coordinate_status(shape, statuses)
if __name__ == '__main__':
main()
- __blackjack__
- User
- Beiträge: 13099
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Karamell: Ich denke mal Du solltest ``print`` vertrauen, denn was Du da mit `AddMessage` machst, unterscheidet sich von dem was Du mit `AddError` machst, und das sieht mir irgendwie korrekter aus. Also Aufrufen und nicht durch Zuweisung einer Zeichenkette überschreiben.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
- __blackjack__
- User
- Beiträge: 13099
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Karamell: Das ist kein Code sondern die Einschaltmeldung meines Lieblingscomputers, und meine Signatur. Sollte ich vielleicht doch mal wieder ändern. Leider kann man Code nicht kleiner machen oder in einer anderen Farbe einbinden, und soweit ich das gesehen habe auch nicht auf andere Weise eine nicht-proportionale Schriftart wählen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman