SlideShare a Scribd company logo
Kom i gang med Pythonskripting
Åshild Lysaker, Geodata AS
Agenda
•
•
•
•
•
•
•
•
•

Hva er python og hvorfor bruke det
Grunnleggende om python
Hvor skrive python kode?
ArcGIS funksjonalitet i python - hva er ArcPy?
Feilhåndtering
Automatisere oppgaver
Beskrive data
Lage script verktøy
Hvordan lære mer…
Hva er Python ?
• Skriptspråket til ArcGIS
• Fordeler:
–
–
–
–
–
–
–

Open source  gratis å bruke og dele
Støtter de fleste plattformer
Enkelt å lære
Stort bibliotek
Rask
Stor brukergruppe
Mange gratis tillegg

«Python is a
remarkably powerful
dynamic programming
language that is used
in a wide variety of
application domains.»
- python.org
Hvorfor bruke Python med ArcGIS?
•
•
•
•
•
•

Automatisere repeterende oppgaver
Lage egne og tilpassede verktøy
Tilpasse Desktop applikasjonene med egne verktøylinjer
Legge egne verktøy som tjenester i web applikasjoner
Scheduled Task
Utvide mulighetene i ArcGIS
Grunnleggende om Python
• Hvor skriver jeg Python kode ?
– Python fil er en tekstfil med .py filendelse
– IDE (Integrated Developer Environment)
• PyScripter (Gratis)
• Wing IDE
• …

– Python vindu i ArcGIS

• Hvordan kjører python script ?
– Dobbeltklikk
– IDE
– ArcGIS
Grunnleggende om Python
• Hva er variabel ?
– Et navn som lagrer en verdi:
navn = verdi
inndata = "C:/Data/Vegtrase.shp"
utdata = "C:/Data/VegtraseBuffer.shp"
avstand = 50
# Variable fungerer som erstatning for selve verdien
arcpy.Buffer_analysis(inndata, utdata, avstand)

• Hva er liste ?
– en samling av verdier [ …, … ,…]
– Kan brukes til å løpe gjennom hver verdi i listen
liste =["C:/Data/Arealtype.shp", "C:/Data/Eiendom.shp"]
Grunnleggende om Python
• Teknikker for iterasjon
– while, for
– Kolon etter while/for
– Innrykk bestemmer hva som kjøres

x = 1
while x < 5:
print(x)
x = x + 1

x = [1, 2, 3, 4]
for num in x:
print(num)
Grunnleggende om Python
• Python har logikk for testing av betingelser
– if, else
– ==, >, <, != brukes for test av betingelsen

var = "a"
if var == "a":
# Kjør linjer som er rykket inn
print("variabelen er a")
else:
print("variabelen er ikke a")
Byggesteiner i Python
• Funksjon:
– en definert funksjonalitet som gjør en bestemt oppgave. Krever
argumenter inn

• Modul:
– en python fil hvor alle funksjoner er definert: Import
– Python har mange innebygde moduler:
os, math, datetime, …

math.sqrt(100)
Modulen «math»

• Package:
– en samling av relaterte moduler

Funksjonen «sqrt»
ArcPy
• Site package som legger til ArcGIS funksjonalitet i Python
• Tilgang til 800+ geoprosesseringsverktøy
• Funksjoner, klasser og moduler
– Hjelpefunksjoner:
• ListFeatureClasses
• Describe

– Klasser som kan brukes til å lage komplekse objekter:
• SpatialReference
• FieldMap

– Moduler for spesialisert funksjonalitet:
•
•
•
•

Mapping
SpatialAnalyst
NetworkAnalyst
DataAccess
ArcGIS Python vinduet
• Interaktivt Pyhon vindu i ArcGIS Desktop
• Få tak i Python og moduler innenfor ArcGIS applikasjoner
• God syntakshjelp, fint miljø for å lære
DEMO
Kjøre geoprosesseringsverktøy
• Import arcpy
• Følg verktøy syntaks
– arcpy.toolname_toolboxalias()
– Legg inn parametere

• Hvordan effektivt finne koden for et verktøy
–
–
–
–

Hjelpeteksten for verktøyet har python eksempel og syntaks beskrivelse
Kjør verktøyet og kopier som python snippet
Bruk python vinduet
help(arcpy.Buffer_analysis)
Geoprosessering miljøinnstillinger
• Bruk geoprosesseringsmiljø som globale parametere
– Se hjelpeteksten for hvilke innstillinger som støttes for et verktøy

• Enkelt å endre kun ett sted
• arcpy.env
arcpy.env.workspace = "C:/Data"
arcpy.env.extent = "0 0 100 100"
arcpy.env.outputCoordinateSystem = 4326 #WKID

arcpy.env.overwriteOutput = True
Håndtere feil
• Hvorfor oppstår feil?
– Feil bruk av verktøy, skrivefeil, syntaksfeil, … (bugs)

• Hva gjør du?
– Se på geoprosesseringsmeldinger
– Bruke python feilhåndtering
– Bruk et IDE for å sjekke linje for linje (debug)
import arcpy
arcpy.Buffer_analysis("C:/Temp/Vegtrasse.shp", "C:/Temp/Buffer.shp", 1000)
Meldinger fra geoprosesseringsverktøy
• Tre typer meldinger
– Info (0), warning (1), error (2)

• Vises i python vinduet
• Feil vist i IDE
• arcpy.GetMessages()
arcpy.Buffer_analysis("C:/Temp/Vegtrase.shp", "C:/Temp/Buffer.shp", 1000)
print arcpy.GetMessages()
Feilhåndtering i Python
• Try… Except…
• Innrykk styrer hva som testes for feil

# Start Try blokken
try:
arcpy.Buffer_analysis("C:/Temp/Vegtrase.shp", … )
# Hvis en feil oppstår gå til except
except:
# Skriv at buffer feilet og hvorfor
print("Buffer feilet")
print(arcpy.GetMessages())
DEMO
ArcPy funksjoner
• Utføre nyttige oppgaver
– Liste data, eks. ListFeatureClasses
– Hente data egenskaper, eks Describe

• Gir deg automatisering av manuelle oppgaver
Batch prosessering
• Automatisere en operasjon til å kjøre flere ganger
• Eksempler:
– klipp alle featureklasser i en geodatabase til et polygon
– beregne statistikk for alle raster i en mappe

• Bruker Liste funksjoner i python for batch prosessering
arcpy.ListFeatureClasses

# Angi workspace
arcpy.env.workspace = "C:/Data/ProsjektGDB.gdb"
# Få en liste av alle geoobjektklasser
fcList = arcpy.ListFeatureClasses()
# Rapporter navnet på geoobjektklassene
for fc in fcList:
print(fc)
Få data egenskaper
• Describe funksjoner leser data egenskapene
• Returnerer et objekt med egenskaper
–
–
–
–

Data type
Shape type
Spatial Reference
Felter
# Beskrive en geoobjektklasse
desc = arcpy.Describe("C:/Temp/Vegtrase.shp")
print(desc.shapeType)
>>> "Polyline"
DEMO
Lage et skript verktøy
• Toolbox (.tbx)

• Python toolbox
– .pyt
DEMO
Cursorer
• SearchCursor
• InsertCursor
• UpdateCursor
# Legge til kolonne som rangerer areal
fc = "C:/BK2014/ProsjektGDB.gdb/DekTeigFlate"
arcpy.AddField_management(fc, "Rangering", "Long")
cursor = arcpy.UpdateCursor(fc, fields="Rangering", sort_fields= "Shape_Area D")
n = 1
for row in cursor:
row.setValue("Rangering", n)
cursor.updateRow(row)
13000 flater  70 sekunder
n = n + 1

• Data access modul
with arcpy.da.UpdateCursor(fc, ["Rangering"], sql_clause=(None, "order by Shape_Area DESC"))
as cursor:
for row in cursor:
row[0] = n
cursor.updateRow(row)
13000 flater  1.5 sekunder
n = n + 1
Lære mer ?
• Kurs: Introduksjon til geoprosessering med scripting i Python
–
–
–
–
–
–
–
–

3 dager
Python scriptemiljø
Bruke cursorer, beskrive objekter og administrere og oppdatere data
Utføre geoprosesseringsoperasjoner
arcpy.mapping for automatisering av kartdokument
Teknikker for å sikre riktig syntaks og feilhåndtering
Opprette egendefinerte script-verktøy
Geoprosesseringspakker og deling

• Web kurs:
– http://training.esri.com
Oppsummering
• Integrated Development Environment
– Pyscripter, Wing, ++

• ArcPy
– Alle geoprosesseringsverktøy
– Hjelpefunksjoner som Describe, ListFeatureClasses, SearchCursor, +++

• Finn riktig syntaks
– ArcGIS Hjelp, python snippet, python window
– Søk i python brukerforum

• Feil håndtering
– Try... except…
– GetMessages()
– Debug linje for linje i IDE

• Automatisering
• Skript verktøy
Python og arcpy ressurser
• http://resources.arcgis.com
– Python, Analysis

• http://arcpy.wordpress.com
• http://pro.arcgis.com/en/analysis/python
• http://www.python.org
SPØRSMÅL ?

More Related Content

Similar to Kom i gang med pythonskritping - Esri norsk BK 2014

ArcGIS for Desktop og veien videre - Esri norsk BK 2014
ArcGIS for Desktop og veien videre - Esri norsk BK 2014ArcGIS for Desktop og veien videre - Esri norsk BK 2014
ArcGIS for Desktop og veien videre - Esri norsk BK 2014
Geodata AS
 
BK2011 Workflow manager i ArcGIS Desktop
BK2011 Workflow manager i ArcGIS DesktopBK2011 Workflow manager i ArcGIS Desktop
BK2011 Workflow manager i ArcGIS DesktopGeodata AS
 
Enterprise GIS-administratorer seminar 29.10.2014
Enterprise GIS-administratorer seminar 29.10.2014Enterprise GIS-administratorer seminar 29.10.2014
Enterprise GIS-administratorer seminar 29.10.2014
Geodata AS
 
BK2015 Arcgis pro
BK2015 Arcgis proBK2015 Arcgis pro
BK2015 Arcgis pro
Geodata AS
 
BK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformenBK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformenGeodata AS
 
Mas135 forelesning7
Mas135 forelesning7Mas135 forelesning7
Mas135 forelesning7
Victoria Popsueva
 
2010 ArcGIS 10 Roadshow: Web og deling
2010 ArcGIS 10 Roadshow: Web og deling2010 ArcGIS 10 Roadshow: Web og deling
2010 ArcGIS 10 Roadshow: Web og delingGeodata AS
 
BK2011 Model builder
BK2011 Model builderBK2011 Model builder
BK2011 Model builderGeodata AS
 
BK2011 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10BK2011 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10Geodata AS
 
Utvikle applikasjoner og funksjoner med ArcGIS - BK2016
Utvikle applikasjoner og funksjoner med ArcGIS - BK2016Utvikle applikasjoner og funksjoner med ArcGIS - BK2016
Utvikle applikasjoner og funksjoner med ArcGIS - BK2016
Geodata AS
 
Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geodata AS
 
Introduksjon til geodatabasen - Esri norsk BK 2014
Introduksjon til geodatabasen - Esri norsk BK 2014Introduksjon til geodatabasen - Esri norsk BK 2014
Introduksjon til geodatabasen - Esri norsk BK 2014
Geodata AS
 
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Geodata AS
 
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Geodata AS
 
Hva kommer i ArcGIS fremover - BK2016
Hva kommer i ArcGIS fremover - BK2016Hva kommer i ArcGIS fremover - BK2016
Hva kommer i ArcGIS fremover - BK2016
Geodata AS
 
Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016
Geodata AS
 
Hvordan få med deg gis’et ut av kontoret
Hvordan få med deg gis’et ut av kontoretHvordan få med deg gis’et ut av kontoret
Hvordan få med deg gis’et ut av kontoretGeodata AS
 
BK2011 Hva er geodatabase
BK2011 Hva er geodatabaseBK2011 Hva er geodatabase
BK2011 Hva er geodatabaseGeodata AS
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnP
Ole Kristian Mørch-Storstein
 
Fra desktop til web - BK 2016
Fra desktop til web - BK 2016Fra desktop til web - BK 2016
Fra desktop til web - BK 2016
Geodata AS
 

Similar to Kom i gang med pythonskritping - Esri norsk BK 2014 (20)

ArcGIS for Desktop og veien videre - Esri norsk BK 2014
ArcGIS for Desktop og veien videre - Esri norsk BK 2014ArcGIS for Desktop og veien videre - Esri norsk BK 2014
ArcGIS for Desktop og veien videre - Esri norsk BK 2014
 
BK2011 Workflow manager i ArcGIS Desktop
BK2011 Workflow manager i ArcGIS DesktopBK2011 Workflow manager i ArcGIS Desktop
BK2011 Workflow manager i ArcGIS Desktop
 
Enterprise GIS-administratorer seminar 29.10.2014
Enterprise GIS-administratorer seminar 29.10.2014Enterprise GIS-administratorer seminar 29.10.2014
Enterprise GIS-administratorer seminar 29.10.2014
 
BK2015 Arcgis pro
BK2015 Arcgis proBK2015 Arcgis pro
BK2015 Arcgis pro
 
BK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformenBK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformen
 
Mas135 forelesning7
Mas135 forelesning7Mas135 forelesning7
Mas135 forelesning7
 
2010 ArcGIS 10 Roadshow: Web og deling
2010 ArcGIS 10 Roadshow: Web og deling2010 ArcGIS 10 Roadshow: Web og deling
2010 ArcGIS 10 Roadshow: Web og deling
 
BK2011 Model builder
BK2011 Model builderBK2011 Model builder
BK2011 Model builder
 
BK2011 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10BK2011 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10
 
Utvikle applikasjoner og funksjoner med ArcGIS - BK2016
Utvikle applikasjoner og funksjoner med ArcGIS - BK2016Utvikle applikasjoner og funksjoner med ArcGIS - BK2016
Utvikle applikasjoner og funksjoner med ArcGIS - BK2016
 
Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014
 
Introduksjon til geodatabasen - Esri norsk BK 2014
Introduksjon til geodatabasen - Esri norsk BK 2014Introduksjon til geodatabasen - Esri norsk BK 2014
Introduksjon til geodatabasen - Esri norsk BK 2014
 
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
 
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
Tilstandsregistrering av landbruksveger i Hedmark ved hjelp av collector for ...
 
Hva kommer i ArcGIS fremover - BK2016
Hva kommer i ArcGIS fremover - BK2016Hva kommer i ArcGIS fremover - BK2016
Hva kommer i ArcGIS fremover - BK2016
 
Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016
 
Hvordan få med deg gis’et ut av kontoret
Hvordan få med deg gis’et ut av kontoretHvordan få med deg gis’et ut av kontoret
Hvordan få med deg gis’et ut av kontoret
 
BK2011 Hva er geodatabase
BK2011 Hva er geodatabaseBK2011 Hva er geodatabase
BK2011 Hva er geodatabase
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnP
 
Fra desktop til web - BK 2016
Fra desktop til web - BK 2016Fra desktop til web - BK 2016
Fra desktop til web - BK 2016
 

More from Geodata AS

Øvelse Oslofjord - BK2016
Øvelse Oslofjord  - BK2016Øvelse Oslofjord  - BK2016
Øvelse Oslofjord - BK2016
Geodata AS
 
Kartlegging av flomveier i Oslo - BK2015
Kartlegging av flomveier i Oslo - BK2015Kartlegging av flomveier i Oslo - BK2015
Kartlegging av flomveier i Oslo - BK2015
Geodata AS
 
Imagery and beyond - BK 2016
Imagery and beyond - BK 2016Imagery and beyond - BK 2016
Imagery and beyond - BK 2016
Geodata AS
 
ArcGIS i samferdselsplanlegging - BK2016
ArcGIS i samferdselsplanlegging - BK2016ArcGIS i samferdselsplanlegging - BK2016
ArcGIS i samferdselsplanlegging - BK2016
Geodata AS
 
Disrupt or be disrupted - BK 2016
Disrupt or be disrupted - BK 2016Disrupt or be disrupted - BK 2016
Disrupt or be disrupted - BK 2016
Geodata AS
 
ArcGIS Server og FME som duo i dokumentproduksjon - BK2016
ArcGIS Server og FME som duo i dokumentproduksjon - BK2016ArcGIS Server og FME som duo i dokumentproduksjon - BK2016
ArcGIS Server og FME som duo i dokumentproduksjon - BK2016
Geodata AS
 
Workflow manager - Kystverkets bruk og erfaringer - BK2016
Workflow manager - Kystverkets bruk og erfaringer - BK2016Workflow manager - Kystverkets bruk og erfaringer - BK2016
Workflow manager - Kystverkets bruk og erfaringer - BK2016
Geodata AS
 
Workflow manager – hva er det og hva kan det brukes til - BK2016
Workflow manager – hva er det og hva kan det brukes til - BK2016Workflow manager – hva er det og hva kan det brukes til - BK2016
Workflow manager – hva er det og hva kan det brukes til - BK2016
Geodata AS
 
ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016
ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016
ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016
Geodata AS
 
Enkel tilgang på live trafikkinformasjon - BK2016
Enkel tilgang på live trafikkinformasjon - BK2016Enkel tilgang på live trafikkinformasjon - BK2016
Enkel tilgang på live trafikkinformasjon - BK2016
Geodata AS
 
Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016
Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016
Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016
Geodata AS
 
Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...
Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...
Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...
Geodata AS
 
Arctic Risk Map - kommuniserer regionens sikkerhet og miljø risiko - BK2016
Arctic Risk Map -  kommuniserer regionens sikkerhet og miljø risiko - BK2016Arctic Risk Map -  kommuniserer regionens sikkerhet og miljø risiko - BK2016
Arctic Risk Map - kommuniserer regionens sikkerhet og miljø risiko - BK2016
Geodata AS
 
Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016
Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016
Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016
Geodata AS
 
ArcGIS en plattform for hele virksomheten - BK2016
ArcGIS  en plattform for hele virksomheten - BK2016ArcGIS  en plattform for hele virksomheten - BK2016
ArcGIS en plattform for hele virksomheten - BK2016
Geodata AS
 
Geografiske analyser i ArcGIS - BK 2016
Geografiske analyser i ArcGIS - BK 2016Geografiske analyser i ArcGIS - BK 2016
Geografiske analyser i ArcGIS - BK 2016
Geodata AS
 
Skredregistrering.no og norsk skreddatabase - BK2016
Skredregistrering.no og norsk skreddatabase - BK2016Skredregistrering.no og norsk skreddatabase - BK2016
Skredregistrering.no og norsk skreddatabase - BK2016
Geodata AS
 
Laserskanning av skog fra drone gir nye muligheter - BK2016
Laserskanning av skog fra drone gir nye muligheter - BK2016Laserskanning av skog fra drone gir nye muligheter - BK2016
Laserskanning av skog fra drone gir nye muligheter - BK2016
Geodata AS
 
Ajourhold av N50 kartdata – før nå og så? - BK2016
Ajourhold av N50 kartdata – før nå og så? - BK2016Ajourhold av N50 kartdata – før nå og så? - BK2016
Ajourhold av N50 kartdata – før nå og så? - BK2016
Geodata AS
 
Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...
Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...
Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...
Geodata AS
 

More from Geodata AS (20)

Øvelse Oslofjord - BK2016
Øvelse Oslofjord  - BK2016Øvelse Oslofjord  - BK2016
Øvelse Oslofjord - BK2016
 
Kartlegging av flomveier i Oslo - BK2015
Kartlegging av flomveier i Oslo - BK2015Kartlegging av flomveier i Oslo - BK2015
Kartlegging av flomveier i Oslo - BK2015
 
Imagery and beyond - BK 2016
Imagery and beyond - BK 2016Imagery and beyond - BK 2016
Imagery and beyond - BK 2016
 
ArcGIS i samferdselsplanlegging - BK2016
ArcGIS i samferdselsplanlegging - BK2016ArcGIS i samferdselsplanlegging - BK2016
ArcGIS i samferdselsplanlegging - BK2016
 
Disrupt or be disrupted - BK 2016
Disrupt or be disrupted - BK 2016Disrupt or be disrupted - BK 2016
Disrupt or be disrupted - BK 2016
 
ArcGIS Server og FME som duo i dokumentproduksjon - BK2016
ArcGIS Server og FME som duo i dokumentproduksjon - BK2016ArcGIS Server og FME som duo i dokumentproduksjon - BK2016
ArcGIS Server og FME som duo i dokumentproduksjon - BK2016
 
Workflow manager - Kystverkets bruk og erfaringer - BK2016
Workflow manager - Kystverkets bruk og erfaringer - BK2016Workflow manager - Kystverkets bruk og erfaringer - BK2016
Workflow manager - Kystverkets bruk og erfaringer - BK2016
 
Workflow manager – hva er det og hva kan det brukes til - BK2016
Workflow manager – hva er det og hva kan det brukes til - BK2016Workflow manager – hva er det og hva kan det brukes til - BK2016
Workflow manager – hva er det og hva kan det brukes til - BK2016
 
ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016
ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016
ArcGIS Portal og sharepoint - en fleksibel kombinasjon - BK2016
 
Enkel tilgang på live trafikkinformasjon - BK2016
Enkel tilgang på live trafikkinformasjon - BK2016Enkel tilgang på live trafikkinformasjon - BK2016
Enkel tilgang på live trafikkinformasjon - BK2016
 
Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016
Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016
Anvendelse av ArcGIS-plattformen for planlegging gjennomføring - BK2016
 
Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...
Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...
Dynamisk ressurs modellering - miljørisikoanalyse for arktiske olje og gass a...
 
Arctic Risk Map - kommuniserer regionens sikkerhet og miljø risiko - BK2016
Arctic Risk Map -  kommuniserer regionens sikkerhet og miljø risiko - BK2016Arctic Risk Map -  kommuniserer regionens sikkerhet og miljø risiko - BK2016
Arctic Risk Map - kommuniserer regionens sikkerhet og miljø risiko - BK2016
 
Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016
Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016
Bruks av ArcGIS Online som samhandlingsplattform i beredskap og krise - BK2016
 
ArcGIS en plattform for hele virksomheten - BK2016
ArcGIS  en plattform for hele virksomheten - BK2016ArcGIS  en plattform for hele virksomheten - BK2016
ArcGIS en plattform for hele virksomheten - BK2016
 
Geografiske analyser i ArcGIS - BK 2016
Geografiske analyser i ArcGIS - BK 2016Geografiske analyser i ArcGIS - BK 2016
Geografiske analyser i ArcGIS - BK 2016
 
Skredregistrering.no og norsk skreddatabase - BK2016
Skredregistrering.no og norsk skreddatabase - BK2016Skredregistrering.no og norsk skreddatabase - BK2016
Skredregistrering.no og norsk skreddatabase - BK2016
 
Laserskanning av skog fra drone gir nye muligheter - BK2016
Laserskanning av skog fra drone gir nye muligheter - BK2016Laserskanning av skog fra drone gir nye muligheter - BK2016
Laserskanning av skog fra drone gir nye muligheter - BK2016
 
Ajourhold av N50 kartdata – før nå og så? - BK2016
Ajourhold av N50 kartdata – før nå og så? - BK2016Ajourhold av N50 kartdata – før nå og så? - BK2016
Ajourhold av N50 kartdata – før nå og så? - BK2016
 
Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...
Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...
Frå tråkk til plankart - en analyse av barnetråkkregistreringer i Giske kommu...
 

Kom i gang med pythonskritping - Esri norsk BK 2014

  • 1. Kom i gang med Pythonskripting Åshild Lysaker, Geodata AS
  • 2. Agenda • • • • • • • • • Hva er python og hvorfor bruke det Grunnleggende om python Hvor skrive python kode? ArcGIS funksjonalitet i python - hva er ArcPy? Feilhåndtering Automatisere oppgaver Beskrive data Lage script verktøy Hvordan lære mer…
  • 3. Hva er Python ? • Skriptspråket til ArcGIS • Fordeler: – – – – – – – Open source  gratis å bruke og dele Støtter de fleste plattformer Enkelt å lære Stort bibliotek Rask Stor brukergruppe Mange gratis tillegg «Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains.» - python.org
  • 4. Hvorfor bruke Python med ArcGIS? • • • • • • Automatisere repeterende oppgaver Lage egne og tilpassede verktøy Tilpasse Desktop applikasjonene med egne verktøylinjer Legge egne verktøy som tjenester i web applikasjoner Scheduled Task Utvide mulighetene i ArcGIS
  • 5. Grunnleggende om Python • Hvor skriver jeg Python kode ? – Python fil er en tekstfil med .py filendelse – IDE (Integrated Developer Environment) • PyScripter (Gratis) • Wing IDE • … – Python vindu i ArcGIS • Hvordan kjører python script ? – Dobbeltklikk – IDE – ArcGIS
  • 6. Grunnleggende om Python • Hva er variabel ? – Et navn som lagrer en verdi: navn = verdi inndata = "C:/Data/Vegtrase.shp" utdata = "C:/Data/VegtraseBuffer.shp" avstand = 50 # Variable fungerer som erstatning for selve verdien arcpy.Buffer_analysis(inndata, utdata, avstand) • Hva er liste ? – en samling av verdier [ …, … ,…] – Kan brukes til å løpe gjennom hver verdi i listen liste =["C:/Data/Arealtype.shp", "C:/Data/Eiendom.shp"]
  • 7. Grunnleggende om Python • Teknikker for iterasjon – while, for – Kolon etter while/for – Innrykk bestemmer hva som kjøres x = 1 while x < 5: print(x) x = x + 1 x = [1, 2, 3, 4] for num in x: print(num)
  • 8. Grunnleggende om Python • Python har logikk for testing av betingelser – if, else – ==, >, <, != brukes for test av betingelsen var = "a" if var == "a": # Kjør linjer som er rykket inn print("variabelen er a") else: print("variabelen er ikke a")
  • 9. Byggesteiner i Python • Funksjon: – en definert funksjonalitet som gjør en bestemt oppgave. Krever argumenter inn • Modul: – en python fil hvor alle funksjoner er definert: Import – Python har mange innebygde moduler: os, math, datetime, … math.sqrt(100) Modulen «math» • Package: – en samling av relaterte moduler Funksjonen «sqrt»
  • 10. ArcPy • Site package som legger til ArcGIS funksjonalitet i Python • Tilgang til 800+ geoprosesseringsverktøy • Funksjoner, klasser og moduler – Hjelpefunksjoner: • ListFeatureClasses • Describe – Klasser som kan brukes til å lage komplekse objekter: • SpatialReference • FieldMap – Moduler for spesialisert funksjonalitet: • • • • Mapping SpatialAnalyst NetworkAnalyst DataAccess
  • 11. ArcGIS Python vinduet • Interaktivt Pyhon vindu i ArcGIS Desktop • Få tak i Python og moduler innenfor ArcGIS applikasjoner • God syntakshjelp, fint miljø for å lære
  • 12. DEMO
  • 13. Kjøre geoprosesseringsverktøy • Import arcpy • Følg verktøy syntaks – arcpy.toolname_toolboxalias() – Legg inn parametere • Hvordan effektivt finne koden for et verktøy – – – – Hjelpeteksten for verktøyet har python eksempel og syntaks beskrivelse Kjør verktøyet og kopier som python snippet Bruk python vinduet help(arcpy.Buffer_analysis)
  • 14. Geoprosessering miljøinnstillinger • Bruk geoprosesseringsmiljø som globale parametere – Se hjelpeteksten for hvilke innstillinger som støttes for et verktøy • Enkelt å endre kun ett sted • arcpy.env arcpy.env.workspace = "C:/Data" arcpy.env.extent = "0 0 100 100" arcpy.env.outputCoordinateSystem = 4326 #WKID arcpy.env.overwriteOutput = True
  • 15. Håndtere feil • Hvorfor oppstår feil? – Feil bruk av verktøy, skrivefeil, syntaksfeil, … (bugs) • Hva gjør du? – Se på geoprosesseringsmeldinger – Bruke python feilhåndtering – Bruk et IDE for å sjekke linje for linje (debug) import arcpy arcpy.Buffer_analysis("C:/Temp/Vegtrasse.shp", "C:/Temp/Buffer.shp", 1000)
  • 16. Meldinger fra geoprosesseringsverktøy • Tre typer meldinger – Info (0), warning (1), error (2) • Vises i python vinduet • Feil vist i IDE • arcpy.GetMessages() arcpy.Buffer_analysis("C:/Temp/Vegtrase.shp", "C:/Temp/Buffer.shp", 1000) print arcpy.GetMessages()
  • 17. Feilhåndtering i Python • Try… Except… • Innrykk styrer hva som testes for feil # Start Try blokken try: arcpy.Buffer_analysis("C:/Temp/Vegtrase.shp", … ) # Hvis en feil oppstår gå til except except: # Skriv at buffer feilet og hvorfor print("Buffer feilet") print(arcpy.GetMessages())
  • 18. DEMO
  • 19. ArcPy funksjoner • Utføre nyttige oppgaver – Liste data, eks. ListFeatureClasses – Hente data egenskaper, eks Describe • Gir deg automatisering av manuelle oppgaver
  • 20. Batch prosessering • Automatisere en operasjon til å kjøre flere ganger • Eksempler: – klipp alle featureklasser i en geodatabase til et polygon – beregne statistikk for alle raster i en mappe • Bruker Liste funksjoner i python for batch prosessering
  • 21. arcpy.ListFeatureClasses # Angi workspace arcpy.env.workspace = "C:/Data/ProsjektGDB.gdb" # Få en liste av alle geoobjektklasser fcList = arcpy.ListFeatureClasses() # Rapporter navnet på geoobjektklassene for fc in fcList: print(fc)
  • 22. Få data egenskaper • Describe funksjoner leser data egenskapene • Returnerer et objekt med egenskaper – – – – Data type Shape type Spatial Reference Felter # Beskrive en geoobjektklasse desc = arcpy.Describe("C:/Temp/Vegtrase.shp") print(desc.shapeType) >>> "Polyline"
  • 23. DEMO
  • 24. Lage et skript verktøy • Toolbox (.tbx) • Python toolbox – .pyt
  • 25. DEMO
  • 26. Cursorer • SearchCursor • InsertCursor • UpdateCursor # Legge til kolonne som rangerer areal fc = "C:/BK2014/ProsjektGDB.gdb/DekTeigFlate" arcpy.AddField_management(fc, "Rangering", "Long") cursor = arcpy.UpdateCursor(fc, fields="Rangering", sort_fields= "Shape_Area D") n = 1 for row in cursor: row.setValue("Rangering", n) cursor.updateRow(row) 13000 flater  70 sekunder n = n + 1 • Data access modul with arcpy.da.UpdateCursor(fc, ["Rangering"], sql_clause=(None, "order by Shape_Area DESC")) as cursor: for row in cursor: row[0] = n cursor.updateRow(row) 13000 flater  1.5 sekunder n = n + 1
  • 27. Lære mer ? • Kurs: Introduksjon til geoprosessering med scripting i Python – – – – – – – – 3 dager Python scriptemiljø Bruke cursorer, beskrive objekter og administrere og oppdatere data Utføre geoprosesseringsoperasjoner arcpy.mapping for automatisering av kartdokument Teknikker for å sikre riktig syntaks og feilhåndtering Opprette egendefinerte script-verktøy Geoprosesseringspakker og deling • Web kurs: – http://training.esri.com
  • 28. Oppsummering • Integrated Development Environment – Pyscripter, Wing, ++ • ArcPy – Alle geoprosesseringsverktøy – Hjelpefunksjoner som Describe, ListFeatureClasses, SearchCursor, +++ • Finn riktig syntaks – ArcGIS Hjelp, python snippet, python window – Søk i python brukerforum • Feil håndtering – Try... except… – GetMessages() – Debug linje for linje i IDE • Automatisering • Skript verktøy
  • 29. Python og arcpy ressurser • http://resources.arcgis.com – Python, Analysis • http://arcpy.wordpress.com • http://pro.arcgis.com/en/analysis/python • http://www.python.org