Introduksjon til python skriping i arc gis plattformen

855 views
760 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
855
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduksjon til python skriping i arc gis plattformen

  1. 1. Introduksjontil Python-skriping iArcGISplattformen
  2. 2. Hvorfor pythonskripting?• Python: et gratis, plattformuavhenging og lettlært språk• Brukes for å eksekvere ett eller koblinger av flere gp-verktøy• Utvikle, eksekvere og dele geoprosesserings arbeidsflyter• Automatisering
  3. 3. Intro python• Hvor skriver jeg pythonkode? – PythonWin, Eclipse, Wing, Idle, Pythonvinduet i ArcGIS• Hvilke kodelinjer kjøres? – Kommenter ut ved å bruke # # Jeg er en kommentar og vil ikke bli kjørt import arcpy• Hva er variabler? – Et navn som lagrer en verdi; tildeles ved å bruke = variabel1 = “C:/Data/roads.shp” variabel2 = 50 # Variabler fungerer som erstattere for råverdier arcpy.Buffer_analysis(variabel1, “resultat.shp”, variabel2)
  4. 4. Intro python• Python innehar logikk for å teste betingelser – if, else spørring – Kolon på slutten av hver betingelse – Indentering styrer hva som blir eksekvert – == tester likhet; andre tegn >, <, != var = “a” if var == “a”: # Indentering etter kolon print “variabelen er a” else: print “variabelen er ikke a”
  5. 5. Intro python• Teknikker for iterering eller looping – “While”-looper, telle-looper, liste-looper x = 1 while x < 5: print x x = x + 1 for num in range(1,5): print num x = [1, 2, 3, 4] for num in x: print num
  6. 6. Intro python• Bokstav-sensitive – Variabler, funksjoner, osv. er bokstav-sensitive – Vanlig feil: name ‘X’ is not defined• For stier, bruk skråstrek som deler “C:/Data/Vegnett.shp” (evt r”C:DataVegnett.shp”)• Funksjoner & Moduler – Funksjon: en definert funksjonalitet som utfører en spesifikk oppgave – Modul: en Python-fil hvor funksjoner bor; importert – math.sqrt(100) … 10.0
  7. 7. ArcPy• Aksesseringspunktet til alle geoprosesseringsverktøy• Et bibliotek av funksjoner, klasser og moduler, hvor alt er relatert til skripting i ArcGIS – Funksjoner som fremmer arbeidsflyt i geoprosessering (ListFeatureClasses, Describe, SearchCursor ) – Klasser som kan bli brukt til å lage komplekse objekter (SpatialReference og FieldMap objekter) – Moduler som tilføyer tilleggsfunksjonalitet (Mapping og SpatialAnalyst moduler)• Bygger på arcgisscripting modulen (pre-10.0)
  8. 8. Pythonvinduet i ArcGIS• Interaktivt Pythonvindu som en del av ArcGIS – Aksess til ArcPy, all python-funksjonalitet• Effektiv for å eksperimentere med og lære pythonskripting
  9. 9. Eksekvere GP-verktøy med python• ArcPy må være importert• Syntax: arcpy.verktøynavn_toolboxalias()• Legge til input- og output-parametere # Importere ArcPy import arcpy # Sette workspace instillingen arcpy.env.workspace = ”C:/Data” # Eksekverer geoprosesseringsverktøy arcpy.Buffer_analysis(“vegnett.shp", “vegnett_buffer.shp", “50 Meters”)
  10. 10. Finne rett syntaks• Resultatvinduet, ‘Copy as Python Snippet’• Eksportere modell til pythonskript• Trekke verktøy inn i pythonvinduet• Dokumentasjon for verktøyene• arcpy.Usage(“Buffer_analysis”)
  11. 11. MiljøinstillingerAksessert fra arcpy.envVanlige miljøinstillinger: Workspace, coordinate system, extentEksempler: arcpy.env.workspace arcpy.env.outputCoordinateSystem arcpy.env.extent
  12. 12. Beskjeder fra geoprosesseringVerktøy returnerer tre typer beskjeder: Informative meldinger Advarsler Feilmeldingerarcpy.GetMessages() GetMessages(): Alle beskjeder GetMessages(0): Kun informative beskjeder GetMessages(1): Kun advarsler GetMessages(2): Kun feilmeldinger error messages
  13. 13. Arcpy.getMessages()# Eksekvere geoprosesseringsverktøyetarcpy.Buffer_analysis(“roads.shp", “roads_buffer.shp", “50 Meters”)# Skrive ut alle beskjedene som resultat av verkøyetprint arcpy.GetMessages()Executing: Buffer roads.shp roads_buffer.shp ’50 Meters’Start Time: Tue July 13 13:52:40 2010Executing (Buffer) successfully.End Time: Tue July 13 13:52:45 2010(Elapsed Time: 5.00…
  14. 14. Feilhåndteringmessagesfeiler det? Hvorfor • Feil bruk av verktøy • Skrivefeil • Syntax-feil Python feilhåndtering Try…Except… try: # Gjør noe except: # En feil har skjedd, gjør noe annet
  15. 15. Try, except# Begynn med try messagestry: arcpy.Buffer_analysis(“roads.shp", “roads_buffer.shp", “50 Meters”)# Hvis en feil intreffer hopper den til exceptexcept: # Skriv til skjerm at buffer feilet og selve feilmeldingen print "Buffer feilet” print arcpy.GetMessages(2)
  16. 16. ArcPy funksjonermessages
  17. 17. ArcPy funksjonermessages • Utføre hendige oppgaver – Skrive ut GP-meldinger (GetMessages) – Liste opp data for batch-processering (ListFeatureClasses, ListFields; 12 liste- funksjoner totalt) – Hente egenskaper på datasett (Describe) • Viktig for automatisering
  18. 18. Batch prosessering• Repetere geoprosesseringsrutine flere ganger for automatisering • Eksempel: Kjøre “Clip” for hver feature-klasse i en satt workspace mot en satt grense.• Liste-funksjoner blir brukt i python for å kjøre batch-prosessering
  19. 19. ArcPy funksjon: ListFeatureClasses # Setter workspace arcpy.env.workspace = “C:/Data/FileGDB.gdb/FDs" # Hente liste over alle flate-featureklassene fcList = arcpy.ListFeatureClasses("*", "polygon") # Skriv ut navnet på alle featureklassene som ble satt i lista for fc in fcList: print fc
  20. 20. DEMO
  21. 21. Veien videre…• Det finnes masse pythondokumentasjon på nettet• Head First serien er veldig intuitiv/pedagogisk
  22. 22. Kurs hos Geodata• Geoprosessering med skripting i Python – 23 - 25 februar – 9 - 11 mai kurs@geodata.no

×