Python-simulator for klimatiltak
Klimakrisa gjer at verda står overfor ei enorm utfordring. Vi blir bombarderte dagleg med nyheiter, tips, tal og statistikk om verda i dag og i framtida, og om kva vi kan gjere. Det er lett å bli handlingslamma når vi stadig blir overauste med nye tal og dystre varsel. Føremålet med programmet du skal lage no, er å gi deg (og den som bruker programmet ditt) litt betre oversikt over kva som kan gjerast, og kva konsekvensar det vil ha.
I programmet skal du legge inn valfrie klimatiltak og late programmet vise korleis klimatiltaka dine påverkar verda dei neste 30 åra. Fellesnemnaren for samanhengen mellom tiltak og konsekvensar er -mengd. Med andre ord: Kor mykje vil tiltaket redusere
Data, føresetnader og kjelder
Døma i oppgåvene baserer seg på følgande data:
- Begge referansane tek utgangspunkt i ei oppvarming på opptil 2 grader, noko som svarer til ein auke av utslepp på 50 gigatonn
årleg. (Desse prognosane blir kalla RCP 4.5 eller RCP 6.)CO 2 - For at det skal bli enkelt, gjer dømeprogrammet desse samanhengane lineære.
Programmet legg opp til at brukaren er ein slags verdsherskar som kan vedta eit tiltak kvart femte år fram til 2045. Til slutt reknar programmet ut korleis resultatet blir i 2050.
Du kan sjå heile programmet under, men prøv å forstå kva kvar enkelt del gjer, før du skriv han inn i ditt eige program.
Etter programkoden ligg det ei meir detaljert forklaring til kvar del, så ta gjerne ein titt der viss det er noko i koden som er vanskeleg å forstå.
Viktig info før du køyrer programmet
Dersom du køyrer programmet under slik det er sett inn i Trinket, vil du berre få fram ein graf (ei avgrensing i Trinket). Vi tilrår derfor at du kopierer koden inn i eit Python-program som til dømes Spyder, slik at du får det fullstendige resultatet frå klimatiltaka dine. Då får du òg fordelen av å sjå koden og resultatet ved sida av kvarandre.
Når du har fått programmet til å fungere, kan du prøve å finne andre tiltak på Drawdown-nettsida og legge dei til i tiltakslista. Du kan òg endre programmet slik at brukaren kan setje i verk tiltak oftare, til dømes kvart andre år. (Hugs i så fall å legge til fleire tiltak først, slik at brukaren har nok å velje mellom.)
Når du har endra programmet slik du ønsker, kan du få ein medelev til å køyre programmet og sjå om hen klarer å finne dei beste tiltaka.
Vi ser no på dei ulike delane programmet er bygt opp av. Viss du alt har forstått kva heile koden gjer, treng du ikkje å lese dette.
Klipp frå klimaprogrammet
Dei følgande kodeeksempla er berre utdrag av klimasimulatoren over og blir følgde av forklaringar. Desse gir ingen resultat om du køyrer dei separat.
- Tiltaksliste
- lagar ei liste med alle tiltaka. Alle partal (og 0) i listeindeksen er tiltaksnamn, og alle tilhøyrande verdiar står på oddetalsplassane.
- Spartliste
- er ei tom liste som blir fylt med tal når brukaren vel tiltak.
- TempSluttAr
- er prognosen for 2050.
- Flyktningar
- er prognosen for kor mange som blir klimaflyktningar på grunn av havstiging fram mot 2050.
- CO2prAr
- er prognosen for kor mykje CO2-utsleppet vil auke fram mot 2050.
For-lykkjer og tiltak
For-lykkja begynner i år 2020 (30 år før 2050) og minkar med 5 kvar gong ho køyrer, heilt til ho kjem til 0, som då er år 2050.
Inne i den første lykkja blir det køyrt ei ny lykkje som viser moglege tiltak som kan setjast i verk. Denne er laga i ei lykkje fordi vi berre ønsker å skrive ut namnet på tiltaket, og ikkje verdien. (Du hugsar kanskje at tiltaksnamn låg på partalsplassane i Tiltaksliste? Det nyttar vi oss av no.)
Tiltak er ein variabel som brukaren skriv inn (nummeret på tiltaket hen ønsker å setje i verk). Dette nummeret gjer vi om til eit indeksnummer (første indeks er 0), og så legg vi til den tilhøyrande verdien i Spart-lista vår.
del betyr Delete, og det som skjer her, er at tiltaket blir fjerna frå Tiltaksliste, slik at brukaren ikkje kan setje i verk det same tiltaket fleire gonger.
Resultat
Vi har no kome så langt at vi ønsker å skrive ut resultatet av tiltaka til brukaren. Vi startar med grafane.
np.cumsum er ein funksjon som ligg i Numpy, og som summerer tala i ei liste (legg indeks 0 til indeks 1, deretter indeks 1 til indeks 2, osb.). Dette gjer vi fordi tiltaka vi set i verk, skal vare heilt til år 2050. Dei stoppar ikkje opp når vi set i verk nye tiltak.
I Kum2 gjer vi summeringa éin gong til for å lage ein graf som viser summen av alle innsparingar i heile 30-årsperioden, og ikkje kor mykje som er spart kvart femte år.
Sidan vi skal lage fleire grafar med same verdiar på x-aksen, lagar vi ei liste som heiter xliste, slik at vi slepp å skrive inn desse verdiane for kvar graf.
MaxCO2list er verdiane på y-aksen. Sidan utsleppa skal auke med anslagsvis 50 gigatonn
plt.title er namnet på figuren.
plt.xlabel og plt.ylabel er namna på høvesvis x-aksen og y-aksen.
ax1.plot er sjølve grafteikninga. Ho angir først kva tal vi vil bruke på x-aksen, og deretter tala på y-aksen. Viss vi ønsker det, kan vi legge til label= for å gi grafen eit namn.
Vi legg til "%.2f" % for å endre måten Python skriv ut tal på. I dette tilfellet ønsker vi 2 desimalar.
Tilbakemelding ved hjelp av if og else
Til slutt ønsker vi å gi ei tilbakemelding til brukaren om hen gjorde gode val. Viss spart
Døme på tilbakemelding
"Gratulerer! Du klarte å redusere forventa utslepp med 255.66 gigatonn CO2. Temperaturen steig berre med 1,66 grader, og 18,75 millionar menneske kan takke deg for at dei ikkje har blitt klimaflyktningar!
Bra forsøk! Du valde godt, men det fanst meir effektive tiltak."