SlideShare a Scribd company logo
1 of 29
Download to read offline
Kom igang med
Pythonskripting
Margrete Schei Olsen
Agenda
• Hva er python og hvorfor bruke det?
• Grunnleggende om python
• ArcGISfunksjonalitet i python
• Feilhåndtering
• Automatisere oppgaver
• Beskrive data
• Lage scriptverktøy
Hva er Python?
• Skriptspråket til ArcGIS
• Fordeler:
• Open source  gratis å bruke
• Virker på de fleste platformer
• Enkelt å lære
• Stort bibliotek
• Raskt
«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
• Lage egne verktøy som tjenester til web applikasjoner
• Utvide mulighetene i ArcGIS
Python 1-2-3
• Hvor skriver man Python kode?
• Python-vindu i ArcGIS
• IDE (Integrated Developer
Environment)
• PyScripter
• PythonWin
• IDLE
• ...
Pythonfiler er tekstfiler med .py
filendelse
Python 1-2-3
• Hvordan kjører et pythonscript?
• ArcGIS
• IDE
• Dobbeltklikk
Python 1-2-3
• 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)
"C:/Data/Vegtrase.shp"
Variabel Verdi
Stringverdier:
Inndata = "C:/Data/Vegtrase.shp"
Tallverdier:
Avstand = 50
Python 1-2-3
• Hva er en liste?
• En samling av verdier eller
objekter [..., ..., ...]
• En kan iterere gjennom hver verdi
i listen
liste =["C:/Data/Arealtype.shp", "C:/Data/Eiendom.shp"]
Verdi i listen
Python 1-2-3
• Løkker:
• While-løkker og for-løkker
• Kolon eller while/for
• Innrykk bestemmer hva som
kjøres når betingelsen til løkka er
oppfylt
X = 1
1 < 5?
Ja  x = 1 +1 = 2
x = 1
while x < 5:
print(x)
x = x + 1
x = [1, 2, 3, 4]
for num in x:
print(num)
X = 2
2 < 5?
Ja  x = 2 +1 = 3
X = 4
4 < 5?
Ja  x = 4 +1 = 5
X = 3
3 < 5?
Ja  x = 3 +1 = 4
X = 5
5 < 5?
Nei
1
2
3
4
Python 1-2-3
• If, else betingelser
• Sammenligning av verdier som betingelse
• Kolon etter betingelsen
• Innrykk sier hva som skal kjøres
• ==, >, <, != 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")
ArcPy
• Site package som legger til ArcGIS-funksjonalitet i Python
• Tilgang til 800+ geoprosesseringsverktøy
• Funksjoner, klasser og moduler
• Hjelpefunksjoner som ListFeatureClasses, Describe
• Klasser som kan brukes til å lage komplekse objekter som SpatialReference,
FieldMap
• Moduler som inneholder spesialisert funksjonalitet som Mapping,
SpatialAnalyst, NetworkAnalyst, DataAccess
DEMO
Kjøre geoprosesseringsverktøy
Kjøre geoprosesseringsverktøy - oppsummert
• Import arcpy
• Følg verktøysyntaks
• Arcpy.toolname_toolboxalias()
• Legg inn parametere
• Hvordan effektivt finne koden for et
verktøy
• Hjelpeteksten for verktøyet har
pythoneksempel og syntaksbeskrivelse
• Kjør verktøy i ArcMap og kopier som
python snippet
• Bruk pythonvinduet
• Help(arcpy.Buffer_analysis)
Geoprosessering miljøinnstillinger
• Bruk geoprosesseringmiljø som globale parametere
• Se hjelpetekst 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
• Bruk et IDE for å sjekke linje for linje (debug)
Feilhåndtering i Python
• Try, Except
Prøv å gjør noe og hvis en feil oppstår, gjør noe annet
# 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
Debugging og feilhåndtering
ArcPy-funksjoner
• Utføre nyttige oppgaver
• Liste data, eks: ListFeatureClasses
• Hente dataegenskaper, eks: Describe
• Mulighet for 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
ListFeatureClasses
• 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)
Describe - Få egenskaper for datasett
• 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
Bruk av ListFeatureClass og Describe for automatisering og batchprosessering
Scriptverktøy
• Toolbox (.tbx)
DEMO
Lage egne skriptverktøy
Cursor
• SearchCursor
• InsertCursor
• UpdateCursor
• Data access module (da)
• da.SearchCursor
• da.InsertCursor
• da.UpdateCursor
fc = "C:/Temp/Land.shp"
cursor = arcpy.SearchCursor(fc)
for row in cursor:
print(row.getValue("Navn")
verdier = [row[0] for row in arcpy.da.SearchCursor(fc, "Navn")]
unikeverdier = set(verdier)
print(unikeverdier)
Oppsummering
• Integrated Development Environment
• Pyscripter, PyWin ++
• 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
• Skript verktøy
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/gateway/index.cfm?fa=search.results&searchterm=python
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 BK2015 Kom i gang med pythonskritping

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.2014Geodata AS
 
BK2015 Arcgis pro
BK2015 Arcgis proBK2015 Arcgis pro
BK2015 Arcgis proGeodata AS
 
BK2011 Model builder
BK2011 Model builderBK2011 Model builder
BK2011 Model builderGeodata 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 - BK2016Geodata 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 2014Geodata 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
 
BK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformenBK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformenGeodata 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 2014Geodata AS
 
Et sanntids, utendørs lagspill med .NET og Azure
Et sanntids, utendørs lagspill med .NET og AzureEt sanntids, utendørs lagspill med .NET og Azure
Et sanntids, utendørs lagspill med .NET og AzureRune Rystad
 
BK2011 Hva er geodatabase
BK2011 Hva er geodatabaseBK2011 Hva er geodatabase
BK2011 Hva er geodatabaseGeodata AS
 
Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014Geodata AS
 
Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016Geodata AS
 
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 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10BK2011 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10Geodata AS
 
BK2011 Introduksjon til arc gis desktop add ins
BK2011 Introduksjon til arc gis desktop add insBK2011 Introduksjon til arc gis desktop add ins
BK2011 Introduksjon til arc gis desktop add insGeodata AS
 
Fra desktop til web - BK 2016
Fra desktop til web - BK 2016Fra desktop til web - BK 2016
Fra desktop til web - BK 2016Geodata AS
 

Similar to BK2015 Kom i gang med pythonskritping (20)

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
 
Mas135 forelesning7
Mas135 forelesning7Mas135 forelesning7
Mas135 forelesning7
 
BK2011 Model builder
BK2011 Model builderBK2011 Model builder
BK2011 Model builder
 
Bli kjent med PostgreSQL!
Bli kjent med PostgreSQL!Bli kjent med PostgreSQL!
Bli kjent med PostgreSQL!
 
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
 
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 ...
 
BK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformenBK2011 Hvordan videreutvikle arc gis plattformen
BK2011 Hvordan videreutvikle arc gis plattformen
 
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
 
Cassandra intro
Cassandra introCassandra intro
Cassandra intro
 
Et sanntids, utendørs lagspill med .NET og Azure
Et sanntids, utendørs lagspill med .NET og AzureEt sanntids, utendørs lagspill med .NET og Azure
Et sanntids, utendørs lagspill med .NET og Azure
 
BK2011 Hva er geodatabase
BK2011 Hva er geodatabaseBK2011 Hva er geodatabase
BK2011 Hva er geodatabase
 
Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014Administrasjon av Geodatabasen - Esri norsk BK 2014
Administrasjon av Geodatabasen - Esri norsk BK 2014
 
Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016Hvordan lage en god datamodell? - BK2016
Hvordan lage en god datamodell? - BK2016
 
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 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10BK2011 Redigering i ArcGIS Desktop 10
BK2011 Redigering i ArcGIS Desktop 10
 
BK2011 Introduksjon til arc gis desktop add ins
BK2011 Introduksjon til arc gis desktop add insBK2011 Introduksjon til arc gis desktop add ins
BK2011 Introduksjon til arc gis desktop add ins
 
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 - BK2016Geodata AS
 
Kartlegging av flomveier i Oslo - BK2015
Kartlegging av flomveier i Oslo - BK2015Kartlegging av flomveier i Oslo - BK2015
Kartlegging av flomveier i Oslo - BK2015Geodata AS
 
Imagery and beyond - BK 2016
Imagery and beyond - BK 2016Imagery and beyond - BK 2016
Imagery and beyond - BK 2016Geodata AS
 
ArcGIS i samferdselsplanlegging - BK2016
ArcGIS i samferdselsplanlegging - BK2016ArcGIS i samferdselsplanlegging - BK2016
ArcGIS i samferdselsplanlegging - BK2016Geodata AS
 
Disrupt or be disrupted - BK 2016
Disrupt or be disrupted - BK 2016Disrupt or be disrupted - BK 2016
Disrupt or be disrupted - BK 2016Geodata 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 - BK2016Geodata 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 - BK2016Geodata 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 - BK2016Geodata 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 - BK2016Geodata AS
 
Enkel tilgang på live trafikkinformasjon - BK2016
Enkel tilgang på live trafikkinformasjon - BK2016Enkel tilgang på live trafikkinformasjon - BK2016
Enkel tilgang på live trafikkinformasjon - BK2016Geodata 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 - BK2016Geodata 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 - BK2016Geodata 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 - BK2016Geodata 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 - BK2016Geodata AS
 
Geografiske analyser i ArcGIS - BK 2016
Geografiske analyser i ArcGIS - BK 2016Geografiske analyser i ArcGIS - BK 2016
Geografiske analyser i ArcGIS - BK 2016Geodata AS
 
Skredregistrering.no og norsk skreddatabase - BK2016
Skredregistrering.no og norsk skreddatabase - BK2016Skredregistrering.no og norsk skreddatabase - BK2016
Skredregistrering.no og norsk skreddatabase - BK2016Geodata 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 - BK2016Geodata 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å? - BK2016Geodata 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...
 

BK2015 Kom i gang med pythonskritping

  • 2. Agenda • Hva er python og hvorfor bruke det? • Grunnleggende om python • ArcGISfunksjonalitet i python • Feilhåndtering • Automatisere oppgaver • Beskrive data • Lage scriptverktøy
  • 3. Hva er Python? • Skriptspråket til ArcGIS • Fordeler: • Open source  gratis å bruke • Virker på de fleste platformer • Enkelt å lære • Stort bibliotek • Raskt «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 • Lage egne verktøy som tjenester til web applikasjoner • Utvide mulighetene i ArcGIS
  • 5. Python 1-2-3 • Hvor skriver man Python kode? • Python-vindu i ArcGIS • IDE (Integrated Developer Environment) • PyScripter • PythonWin • IDLE • ... Pythonfiler er tekstfiler med .py filendelse
  • 6. Python 1-2-3 • Hvordan kjører et pythonscript? • ArcGIS • IDE • Dobbeltklikk
  • 7. Python 1-2-3 • 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) "C:/Data/Vegtrase.shp" Variabel Verdi Stringverdier: Inndata = "C:/Data/Vegtrase.shp" Tallverdier: Avstand = 50
  • 8. Python 1-2-3 • Hva er en liste? • En samling av verdier eller objekter [..., ..., ...] • En kan iterere gjennom hver verdi i listen liste =["C:/Data/Arealtype.shp", "C:/Data/Eiendom.shp"] Verdi i listen
  • 9. Python 1-2-3 • Løkker: • While-løkker og for-løkker • Kolon eller while/for • Innrykk bestemmer hva som kjøres når betingelsen til løkka er oppfylt X = 1 1 < 5? Ja  x = 1 +1 = 2 x = 1 while x < 5: print(x) x = x + 1 x = [1, 2, 3, 4] for num in x: print(num) X = 2 2 < 5? Ja  x = 2 +1 = 3 X = 4 4 < 5? Ja  x = 4 +1 = 5 X = 3 3 < 5? Ja  x = 3 +1 = 4 X = 5 5 < 5? Nei 1 2 3 4
  • 10. Python 1-2-3 • If, else betingelser • Sammenligning av verdier som betingelse • Kolon etter betingelsen • Innrykk sier hva som skal kjøres • ==, >, <, != 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")
  • 11. ArcPy • Site package som legger til ArcGIS-funksjonalitet i Python • Tilgang til 800+ geoprosesseringsverktøy • Funksjoner, klasser og moduler • Hjelpefunksjoner som ListFeatureClasses, Describe • Klasser som kan brukes til å lage komplekse objekter som SpatialReference, FieldMap • Moduler som inneholder spesialisert funksjonalitet som Mapping, SpatialAnalyst, NetworkAnalyst, DataAccess
  • 13. Kjøre geoprosesseringsverktøy - oppsummert • Import arcpy • Følg verktøysyntaks • Arcpy.toolname_toolboxalias() • Legg inn parametere • Hvordan effektivt finne koden for et verktøy • Hjelpeteksten for verktøyet har pythoneksempel og syntaksbeskrivelse • Kjør verktøy i ArcMap og kopier som python snippet • Bruk pythonvinduet • Help(arcpy.Buffer_analysis)
  • 14. Geoprosessering miljøinnstillinger • Bruk geoprosesseringmiljø som globale parametere • Se hjelpetekst 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 • Bruk et IDE for å sjekke linje for linje (debug)
  • 16. Feilhåndtering i Python • Try, Except Prøv å gjør noe og hvis en feil oppstår, gjør noe annet # 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. ArcPy-funksjoner • Utføre nyttige oppgaver • Liste data, eks: ListFeatureClasses • Hente dataegenskaper, eks: Describe • Mulighet for automatisering av manuelle oppgaver
  • 19. 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
  • 20. ListFeatureClasses • 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)
  • 21. Describe - Få egenskaper for datasett • 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"
  • 22. DEMO Bruk av ListFeatureClass og Describe for automatisering og batchprosessering
  • 25. Cursor • SearchCursor • InsertCursor • UpdateCursor • Data access module (da) • da.SearchCursor • da.InsertCursor • da.UpdateCursor fc = "C:/Temp/Land.shp" cursor = arcpy.SearchCursor(fc) for row in cursor: print(row.getValue("Navn") verdier = [row[0] for row in arcpy.da.SearchCursor(fc, "Navn")] unikeverdier = set(verdier) print(unikeverdier)
  • 26. Oppsummering • Integrated Development Environment • Pyscripter, PyWin ++ • 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 • Skript verktøy
  • 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/gateway/index.cfm?fa=search.results&searchterm=python
  • 28. 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