Objektorientert programmering av vassdragselement Jostein Orvedal Sognekraft AS
Kven er Jostein? Arbeidar som produksjonsingeniør i Sognekraft AS Bakgrunn: Ingeniør elektronikk Meir enn 25 års erfaring frå prosessindustri og offshore industri. Siste 2 år med vasskraft i Sognekraft Hobby: Bygge mitt eige mikrokraftverk
Om Sognekraft Eig og driftar Årøy kraftverk produksjon på 446 GWh medeigar i Vikfalli netteigar i 4 kommunar fjordspenn, fjordkabel, krevjande terreng 8000 nettkundar 66 tilsette Hovedkontor Vik i Sogn
Mål med denne presentasjon Vise korleis ein kan nytte moderne dataverktøy innan hydrologi/vasskraft Gjere objektorientert metodikk tilgjengelig for sluttbrukar
Objektorientert programmering Konseptet stammer fra arbeidet nordmennene Kristen Nygaard og Ole-Johan Dahl gjorde ved Norsk Regnesentral med programmeringsspråket Simula på 1960- tallet.
Objekt orientert programmering henta frå wikipedia: Objekter - pakke data og funksjonalitet sammen i enheter i programmet. Dette er basis for modularitet, en av kvalitetene man prøver å oppnå. Abstraksjon - gjøre at programmereren underveis kan ignorere noen av detaljene ved implementasjon av det han jobber med. Innkapsling - skjule den interne tilstanden til et objekt fra andre. Dette gjør at utenforstående kode ikke kan endre på tilstanden til objektet på uforutsette måter. Polymorfi - gjøre at et objekt kan oppføre seg som et annet, bare den oppfyller den «kontrakten» grensesnittet spesifiserer. Arv - lette arbeidet med innkapsling og polymorfi ved å tillate programmereren å lage objekter som er mer spesialiserte utgaver av andre objekter.
Python Scriptspråk Støtter objektorientert programmering Plattform uavhengig (Windows /Linux) Basert på åpen kjeldekode
Kvifor akkurat Python Lettlest Lett å lera Lett å dokumentera Rikt standard bibliotek ( batteries included ) Tilleggsbibliotek for det meste ein kan tenkje seg. Enkelt å bygge opp sine eigne bibliotek
Kven brukar Python? Google; Python er saman med C++ og Java dei tre offisielle språka ESRI /ArcGis ; blir levert med Python som scriptspråk Mange web-rammeverk er basert på Python Plone (vert nytta av bla. NASA) Django
Funksjons orientert programmering Her blir funksjonen SUMMER kalla opp med ei tallrekke 2..6. Returverdien frå funksjonen er summen av tala 2..6, altså 20
Objektorientert programmering
Objektorientert programmering
Vassmagasin som eit objekt Her definerer vi HafsloVn som eit objekt i sin enklaste form
Objekttype/klasse vassmagasin HafsloVn(vassmagasin) Namn: HafsloVatnet HRV: 168.50 LRV: 167.20 Areal: 6. VeitastrVn(vassmagasin) Namn: Veitastrondvatnet HRV: 170.50 LRV: 168.00 Areal: 18.
Hente eigenskapar
Lese siste verdi for vasstand
Plot av data
Vassbalanse
Vassbalanse
Vassbalanse Alle objekt som kan lagre eller forbruke vatn, inneheld metoden vassbalanse24h. Denne metoden returnerer ein ny objekttype som kan summerast. Dette gjer at vi kan lage ein enkel formel for å rekne ut tilsig
Summere objekt -Virkar dette fornuftig? -Vi har valgt at ved summering av vassmagsin så skal magasin energi summerast:
Mange vassmagasin..
Vassmagasin - infobilete Infobilete som blir lagt ut på internett:
Simulering Vi nullstiller simulering og set startverdi på vasstand: Vi køyrer simulering med dataserie tilrenning :
Simulering plot av resultat
Vise kart over målebolt Objektet har informasjon om UTM koordinatane for målebolt Kart blir automatisk henta ned frå Statkart Utsnitt 500x500m med kartsenter lik koordinat for målebolt Automatisk annotering av kartkoordinat for målebolt
Kart over målebolt
Generere datablad gendatablad er ein metode for å samanstille data om eit vassmagasin som eit formatert.pdf dokument
Objekttypar vi nyttar Vassmagasin Turbin (Francis og Pelton) Minstevassføring Tunelløp og luker med berekning ut frå interpolering. Overløp (matematisk berekning): V-notch rectweir
Eksempel på inheritance/ Arv turbin pelton(turbin) -Omdefinere typisk kurve for virkningsgrad -Legge til metodar/ eigenskapar for regulering av dyser francis(turbin) -Omdefinere typisk kurve for virkningsgrad -Legge til metodar /eigenskapar for regulering av ledeapparat
Verktøy for dokumentasjon - Sphinx
Grafisk visning for vasshushald Meteorologiske data Prognoser vær Hydrologiske data Tid no Luker Produksjonsplan Produksjon
Periode med stor tilrenning
Viser heile perioden omrekna til døgnverdiar
Område der Sognekraft nyttar desse bibliotek Dagleg vasshushald Publisering av vasstand og vassføring på internett og informasjonstavler Hente /utforske data frå eklima.no (grensesnitt mot web services) Hente data frå Statens kartverk Generere GS2 data Innsamling av data frå værstasjonar og vasstands sensorar.
Takk for merksemda For meir info ta gjerne kontakt jostein@sognekraft.no