💻 En smakebit av Python#

Oversikt#

I denne forelesningen skal vi få en smakebit av Python og se på noen grunnleggende konsepter som variabler og datatyper. Å kunne forstå disse grunnleggende prisippene er helt essensielt for å jobbe med romlige data. Med variabler kan du lagre og manipulere informasjon, mens datatyper definere hvilke operasjoner du kan utføre på disse variablene.

Denne forelesningen er inspirert av Introduction to GIS Programming fra University of Tennessee.

Variabler i Python#

I Python er variabler et symbolsk navn som refererer eller peker til et objekt. Etter at et objekt har blitt tildelt til en variabel kan du referere til objektet ved å bruke variabelnavnet.

Vi kan begynne med å opprette en enkel variabel som representerer et antall punkter i et datasett.

antall_punkt = 120

Variablen antall_punkt representerer nå heltallet 120 som vi nå kan bruke videre.

For å se hva verdien av variablen er, kan vi bruke print()-funksjonen.

print(antall_punkt)
120

I en Notebook som denne, kan vi også bare skrive variabelnavnet i en kodecelle og kjøre cellen for å vise variabelverdien.

antall_punkt
120

Datatyper#

Python støtter et hav av datatyper og de aller fleste som vi bruker når vi jobber med romlige data. De vanligste datatypene inkluderer:

a) Heltall (int): Dette er heltall som for eksempel: 1, 120, -5

antall_datapunkt = 500  # Representerer antall datapunkt i et datasett

b) Flyttall (float): Dette er tall med desimaler så som: 3.14, -0.001, 100.0. Desimaler skrives med punktum som desimaltegn.

breddegrad = 59.665  # Representerer verdien til breddegraden til et punkt på jordens overflate
lengdegrad = 10.776  # Representerer verdien til lengdegraden til et punkt på jordens overflate

c) Strenger (str): Strenger er tekst eller bokstavkombinasjoner så som: “Hello”, “Lat/Long”

koordinatsystem = "WGS 84"  # Representerer et vanlig koordinatsystem

Strenger kan omringes av ett anførselestegn (') eller doble anførselestegn ("). Du kan også bruke triple anførselestegn (''' or """) for strenger som går over flere linjer.

d) Boolske variabler (bool): Boolske variabler representerer en av to verdier: sant eller falsk / True or False

er_georeferert = True  # Representerer hvorvidt et dataset er georeferert eller ikke

e) Lister: Lister er en ordnet samling av objekter. Lister kan innehold ulike typer objekter.

koordinater = [
    10.776,
    59.665,
]  # En liste som representerer breddegrad og lengdegradene til et punkt

f) Ordbøker/Dictionaries (dict): Ordbøker er en samling av par bestående av nøkkel og verdi.

attributter = {
    "navn": "Ås",
    "befolkning": 10962,
    "type": "tettsted",
    "koordinater": [10.776, 59.665]
}

Kommentarer#

Kommentarer brukes i koding til å forklare hva koden gjør og å gjøre koden mer lesbar. I Python starter kommentarer på en enkelt linje med #. Alt etter # på den linjen blir tolket som kommentar og blir ignorert av Python. For kommentarer som går over flere linjer, kan du bruke triple anførselestegn (''' or """).

# Dette er en kommentar
antall_punkt = 120  # Dette er en "inline"-kommentar

Jobbe med variabler og datatyper#

Nå som vi kjenner til de grunnleggende datatypene og hvordan variabler fungerer, kan vi begynne å jobbe med de:

Vi begynner med en enkel operasjon, å legge til en bestemt verdi til en allerede eksisterende variabel:

antall_datapunkt += 20
print("Et oppdatert antall datapunkt:", antall_datapunkt)
Et oppdatert antall datapunkt: 520

Konvertere lengdegrader fra grader til radianer:

import math

lengdegrad = 10.776
lengdegrad_radianer = math.radians(lengdegrad)
print("Lengdegrad i radianer:", lengdegrad_radianer)
Lengdegrad i radianer: 0.18807668019490895

Legge til koordinater til en liste:

koordinater = [10.776, 59.665]
koordinater.append(24.952)
koordinater.append(60.169)
print("Oppdaterte koordinater:", koordinater)
Oppdaterte koordinater: [10.776, 59.665, 24.952, 60.169]

Bruke innholdet i en ordbok:

aas_navn = attributter["navn"]
aas_befolkning = attributter["befolkning"]
print(f"I {aas_navn} bor det {aas_befolkning} mennesker.")
I Ås bor det 10962 mennesker.

Bruk i en romlig kontekst#

Si at du har fått en liste med koordinatpar og har blitt bedt om å regne ut centroiden eller midtpunktet:

Her er listen med koordinater (lengdegrad/breddegrad) som representerer fire byer:

punkter = [
    [10.738, 59.913],  # Oslo
    [5.323333, 60.3925],  # Bergen
    [10.4, 63.44],  # Trondheim
    [18.96366, 69.65455],  # Tromsø
]

Regn ut centroiden:

centroid_lengdegrad = sum([punkt[0] for punkt in punkter]) / len(punkter)
centroid_breddegrad = sum([punkt[1] for punkt in punkter]) / len(punkter)
centroid = [centroid_lengdegrad, centroid_breddegrad]
print("Centroid for punktene er:", centroid)
Centroid for punktene er: [11.35624825, 63.3500125]