Liigu edasi põhisisu juurde

Üldinfo

Meteoroloogiliste ja hüdroloogiliste avaandmete kasutamise andmelugu Soomaa näitel

Keskkonna ja ilma valdkonna andmeteenusete keskkond on loodud avaandmete direktiivist tulenevate väärtuslike andmestikele esitatavate nõuete täitmiseks ning sisaldab keskkonna ja ilma valdkonna andmeteenuseid. Andmeteenuste väljundvorminguks on json ja andmed on mõeldud tarbimiseks peamiselt masin-masin liidese kaudu. Keskkond on aktiivses arenduses ja täieneb jooksvalt väärtuslike andmestikega. Hetkel on valmis arendatud hüdroloogilise seire andmestikust tunniandmete andmeteenused ja kliimaandmestikust jaama, elemendi, kuu, ööpäeva, tunni ja minuti andmeteenused.

NB! Seoses jõudlusest tulenevatemahupiirangutega tuleb f_kliima päringutes kasutada päeva, tunni ja minuti päringutes filtreid nagu on allolevates näidetes.

Teenuse vaatamiseks internetilehitsejaga inimsõbralikus vormis on soovituslik lisada Chrome-ile laiendus JSON formatter või kasutada Mozilla Firefox-i või MS EDGE-i

 

OpenAPI definitsioon:

JuurURL https://keskkonnaandmed.envir.ee annab OpenAPI formaadis teenuse kirjelduse.

Kliima andmete jaoks leia sektsioonist "definitions" prefiksiga "f_kliima_" algavad teenused (nt metaandmete teenused f_kliima_element ja  f_kliima_jaam_vaatlus, või perioodi pikkusega mõõtmisi väljastavad teenused f_kliima_kuu, f_kliima_paev, f_kliima_tund, f_kliima_minut)

Hüdroloogilise seire jaoks leia sektsioonist "definitions" teenus nimega "f_hydroseire".

 

Kliima andmeteenuse tarvitamise näide

Teenust f_kliima_paev võib ilma lisaargumentideta kasutada ainult metaandmeid andvaid teenusete puhul. Mõõtetulemuste andmete jaoks tuleb ALATI piirata päringut filtritega. Näiteks ajaga (küsides konkreetse aasta ja kuu andmeid).

Brauserist (aadressiribale)

https://keskkonnaandmed.envir.ee/f_kliima_paev?aasta=eq.2023&kuu=gt.10&paev=lt.8&element_kood=eq.DRH08&jaam_kood=in.(AJRUHN01,AJKIHN01)

https://keskkonnaandmed.envir.ee/f_kliima_paev?jaam_nimi=like.V%C3%B5ru&aasta=eq.2006&element_kood=like.DTA08&order=kuu.asc,paev.asc

ENG:

https://keskkonnaandmed.envir.ee/f_kliima_paev?aasta=eq.2023&kuu=gt.10&paev=lt.8&element_kood=eq.DRH08&jaam_kood=in.(AJRUHN01,AJKIHN01)&select=station_code:jaam_kood,station_name:jaam_nimi,year:aasta,month:kuu,day:paev,value:vaartus,element_code:element_kood,timestamp:avaandmed_ts

Ülaltoodud näites on nõutud ("equal" abil) täpset aastat (2023), ("greater than" abil) kahte kuud aasta lõpust (11 ja 12), ("lesser than" abil) 7 päeva kuu algusest, ühte elementi (DRH08) kahes jaamas (Ruhnu ja Kihnu). 

Loe lisaks: https://postgrest.org/en/stable/api.html#horizontal-filtering-rows

 

Curl (ja muud programeeritavad vahendid)

curl "https://keskkonnaandmed.envir.ee/f_kliima_paev?aasta=eq.2023&kuu=gt.10&paev=lt.8&element_kood=eq.DRH08&jaam_kood=in.(AJRUHN01,AJKIHN01)" -H "Accept-Profile: apijahialad" -H "Accept: application/json"

Arendajal (API tarbijal) võtta kasutusse HTTP päis "Accept-Profile: apijahialad" (See "apijahialad" on andmebaasi-skeem, mida läbi API avalikustataks). Kui tulevikus avalikustatakse mitut skeemi, siis pole määratud, mida API annab ja see võib olla eksitav. Tulevased konfiguratsiooni muudatused ja arendused võivad seda veelgi segada ning seega peaks tarbija selle päise abil soorituse enda suunas ära tagama). Loe lisaks: https://postgrest.org/en/stable/api.html#switching-schemas

Täiendavalt on hea kasutustava kohaselt lisada soovitud vastuse formaat (JSON) ehk header "Accept: application/json". On ka teisi formaate (csv), aga need on piiratud juhtude jaoks. Loe lisaks: https://postgrest.org/en/stable/api.html#response-format. JSONi etteandmine on meede tulevikukindluse jaoks.

 

Tulemus

[

  {

    "jaam_kood""AJKIHN01",

    "jaam_nimi""Kihnu",

    "aasta"2023,

    "kuu"12,

    "paev"1,

    "vaartus"93,

    "element_kood""DRH08",

    "element_nimi""Relative humidity (daily avg)",

    "element_yhik""%",

    "avaandmed_ts""2023-12-08T12:29:17.766171+02:00"

  },

  {

    "jaam_kood""AJRUHN01",

    "jaam_nimi""Ruhnu",

    "aasta"2023,

    "kuu"12,

    "paev"1,

    "vaartus"83,

    "element_kood""DRH08",

    "element_nimi""Relative humidity (daily avg)",

    "element_yhik""%",

    "avaandmed_ts""2023-12-08T12:29:17.767031+02:00"

  },

  {

    "jaam_kood""AJKIHN01",

    "jaam_nimi""Kihnu",

    "aasta"2023,

    "kuu"12,

    "paev"2,

    "vaartus"89,

    "element_kood""DRH08",

    "element_nimi""Relative humidity (daily avg)",

    "element_yhik""%",

    "avaandmed_ts""2023-12-08T12:29:18.400034+02:00"

  },

  {

    "jaam_kood""AJRUHN01",

    "jaam_nimi""Ruhnu",

    "aasta"2023,

    "kuu"12,

    "paev"2,

    "vaartus"76,

    "element_kood""DRH08",

    "element_nimi""Relative humidity (daily avg)",

    "element_yhik""%",

    "avaandmed_ts""2023-12-08T12:29:18.400912+02:00"

  },

  {

    "jaam_kood""AJKIHN01",

    "jaam_nimi""Kihnu",

    "aasta"2023,

    "kuu"12,

    "paev"3,

    "vaartus"84,

    "element_kood""DRH08",

    "element_nimi""Relative humidity (daily avg)",

    "element_yhik""%",

    "avaandmed_ts""2023-12-08T12:29:19.005902+02:00"

  }

]

 

Hüdroloogilise seire andmeteenuse tarvitamise näide

Teenust f_hydroseire võib ilma lisaargumentideta kasutada ainult metaandmeid andvaid teenusete puhul. Mõõtetulemuste andmete jaoks tuleb ALATI piirata päringut filtritega. Näiteks ajaga (küsides konkreetse aasta ja kuu andmeid).

NB! Hetkel on saadaval f_hydroseire teenuses paari aasta andmed, kuid plaanis on avalikustada kõik andmed ja vastavad arendustööd on teostamisel. 

Brauserist (aadressiribale)

https://keskkonnaandmed.envir.ee/f_hydroseire?timeline_ts_utc=lt.2023-01-02T03:00:00&timeline_ts_utc=gt.2023-01-01T23:00:00&aegrida_nimi=eq.WL%20min

Ülaltoodud näites on nõutud ("equal" abil) täpset aegrea nime ("WL min") ja ("greater than" ja "lesser than" abil) ajalõiku

Loe lisaks: https://postgrest.org/en/stable/api.html#horizontal-filtering-rows

 

Curl (ja muud programeeritavad vahendid)

curl "https://keskkonnaandmed.envir.ee/f_hydroseire?timeline_ts_utc=lt.2023-01-02T03:00:00&timeline_ts_utc=gt.2023-01-01T23:00:00&aegrida_nimi=eq.WL%20min" -H "Accept-Profile: apijahialad" -H "Accept: application/json"

Arendajal (API tarbijal) võtta kasutusse HTTP päis "Accept-Profile: apijahialad" (See "apijahialad" on andmebaasi-skeem, mida läbi API avalikustataks). Kui tulevikus avalikustatakse mitut skeemi, siis pole määratud, mida API annab ja see võib olla eksitav. Tulevased konfiguratsiooni muudatused ja arendused võivad seda veelgi segada ning seega peaks tarbija selle päise abil soorituse enda suunas ära tagama). Loe lisaks: https://postgrest.org/en/stable/api.html#switching-schemas

Täiendavalt on hea kasutustava kohaselt lisada soovitud vastuse formaat (JSON) ehk header "Accept: application/json". On ka teisi formaate (csv), aga need on piiratud juhtude jaoks. Loe lisaks: https://postgrest.org/en/stable/api.html#response-format. JSONi etteandmine on meede tulevikukindluse jaoks.

 

Tulemus

[{"jaam_kood":26115,"jaam_nimi":"Ristna","valgala_nimi":"---","valgala_suurus_km2":null,"kaugus_suudmest_km":null,"jaam_laiuskraad":58.920824,"jaam_pikkuskraad":22.056593,"jaam_taisnimi":"Ristna rannikumere veetasemejaam","veekogu_nimi":"Läänemeri","timeline_ts_utc":"2023-01-02T00:00:00","timeline_ts_local":"2023-01-02T02:00:00","aegrida_nimi":"WL min","vaartus":530.300},

 {"jaam_kood":26115,"jaam_nimi":"Ristna","valgala_nimi":"---","valgala_suurus_km2":null,"kaugus_suudmest_km":null,"jaam_laiuskraad":58.920824,"jaam_pikkuskraad":22.056593,"jaam_taisnimi":"Ristna rannikumere veetasemejaam","veekogu_nimi":"Läänemeri","timeline_ts_utc":"2023-01-02T01:00:00","timeline_ts_local":"2023-01-02T03:00:00","aegrida_nimi":"WL min","vaartus":529.200},

 {"jaam_kood":26115,"jaam_nimi":"Ristna","valgala_nimi":"---","valgala_suurus_km2":null,"kaugus_suudmest_km":null,"jaam_laiuskraad":58.920824,"jaam_pikkuskraad":22.056593,"jaam_taisnimi":"Ristna rannikumere veetasemejaam","veekogu_nimi":"Läänemeri","timeline_ts_utc":"2023-01-02T02:00:00","timeline_ts_local":"2023-01-02T04:00:00","aegrida_nimi":"WL min","vaartus":527.800},

 {"jaam_kood":41097,"jaam_nimi":"Pajupea","valgala_nimi":"Pirita jõgi","valgala_suurus_km2":84.0,"kaugus_suudmest_km":2.4,"jaam_laiuskraad":59.380909,"jaam_pikkuskraad":24.968918,"jaam_taisnimi":"Pajupea hüdromeetriajaam","veekogu_nimi":"Leivajõgi","timeline_ts_utc":"2023-01-02T00:00:00","timeline_ts_local":"2023-01-02T02:00:00","aegrida_nimi":"WL min","vaartus":111.100},

 {"jaam_kood":41097,"jaam_nimi":"Pajupea","valgala_nimi":"Pirita jõgi","valgala_suurus_km2":84.0,"kaugus_suudmest_km":2.4,"jaam_laiuskraad":59.380909,"jaam_pikkuskraad":24.968918,"jaam_taisnimi":"Pajupea hüdromeetriajaam","veekogu_nimi":"Leivajõgi","timeline_ts_utc":"2023-01-02T01:00:00","timeline_ts_local":"2023-01-02T03:00:00","aegrida_nimi":"WL min","vaartus":110.800},

...

 

Lisainfo

Kõik muud võimalused (pagineerimine, valikulised veerud) on kirjas PostgREST manualis (https://postgrest.org/en/stable/api.html).

Andmeid ei saa API kaudu muuta ega kustutada (raamistik võimaldaks ja näited on juhendis toodud, aga süsteemselt määratud õigused ei luba).

Juhistes on toodud ka pöördumise autentimise võimalus, aga antud API on avalik ja JWT kasutamine pole vajalik.

 

Avaldatud: 19.01.2024  /  Uuendatud: 22.03.2024