Keskustelu Järviwikistä:Avoin data ja rajapinnat
Et voi luoda uusia viestiketjuja tälle keskustelusivulle, koska se on suojattu uusilta viestiketjuilta tai sinulla ei ole muokkausoikeutta.
Sisältö
Ketjun otsikko | Vastauksia | Viimeksi muokattu |
---|---|---|
Rajapinnan tarjoamat tiedot ja niiden rajaus | 6 | 13. marraskuuta 2014 kello 13.11 |
Rajapinnan tarjoamat tiedot ja niiden rajaus
Mitä tietoja Järviwikistä tulisi saada haettua avoimen rajapinnan kautta? Varmaan ensi alkuun ainakin havainnot. Miten niitä pitää voida rajata? Tietysti päivämäärän mukaan ja havaintotyypin. Ilmeisesti myös koordinaatin (keskikoordinaatti + säde) mukaan? Entä kunnan, maakunnan, ELY-keskuksen, järven, vesistöalueen, päävesistön tai vesienhoitoalueen mukaan?
Ensimmäiseksi tulee mieleen (kaikkien) viimeisimpien lämpötilahavaintojen kysely (tämänkaltaisen näkymän luomiseksi: http://wwwi3.ymparisto.fi/i3/tilanne/fin/Lampotila/Lampotila.htm). Sama jää- ja levähavainnoille. Historiadata ehkä pienemmällä prioriteetilla kuin viimeisin havainto (eli rajauksena viimeisin tulos)?
Mittauspaikasta normaalien tietojen lisäksi olisi kätevä saada latitude/longitude koordinaatti (WGS84 datum).
Järvihaku olisi myös hyödyllinen: koordinaatista x,y n kilometrin säteellä olevat, kuten wikissäkin haetaan. Paluuarvona järven nimi, koordinaatti ja järvinumero? Haku myös nimen perusteella.
Ja tietenkin järven tietojen hakeminen järvinumeron perusteella.
Jos siellä alla on SQL-tietokanta, miten olisi jos käyttäisi rajapintana suoraan SQL:ää ts. sallisi mielivaltaiset haut sieltä ja sillä siisti? Hyvin helppo toteuttaa (toki vaatisi hieman tietoturvasäätöä vandaalien ja "Little Bobby Tables" -tapausten estämiseksi, mutta ei se oikeasti vaikeaa ole - tarvittaessa voin auttaa) eikä rajoittaisi sovelluksia ennalta kuviteltuihin.
Itse asiassa olisi kiva jos koko tietokannan pystyisi downloadaamaan (ihan sql-dumppina siis).
Akuutisti kaipasin täydellistä listaa järvistä koko- ja sijaintitietoineen mallintaakseni niiden jakaumaa, enkä keksinyt miten moisen helposti saisi sieltä nyt ladatuksi. Ainakin moinen esim. csv-tiedostona olisi kiva saada tehdyksi sillä rajapinnalla, millainen siitä sitten tuleekin.
Moi. Lähes kaikki Järviwikin sisältämistä tiedoista on määritelty semanttisiksi ominaisuuksiksi, joita voi hakea, listata jne. julkaisujärjestelmään (Mediawiki, Semantic Mediawiki) koodatuilla tavoilla. Ainoa ongelma on, etten ole ehtinyt millään tavalla dokumentoimaan Järviwikin ontologiaa eli esimerkiksi semanttisten ominaisuuksien nimiä.
Jos haluat saada csv:n, jossa on kaikki Suomen järvet pinta-aloineen ja koordinaatteineen, onnistuu se helpoiten täällä: Toiminnot:Kysy
Syötä Kysely-kenttään hakuehdot. Ne annetaan esimerkiksi näin [[Luokka:Järvi]], joka tuo kaikki järvet-luokkaan kuuluvat sivut. Jos haluat rajata tuloksia jonkun ominaisuuden mukaan, voit lisätä toisen hakuehdon, kuten [[Pinta-ala::>100 ha]], joka rajaa haun koskemaan vain vähintään 100 hehtaarin kokoisia järviä.
Valinnaiset näytettävät tiedot -kenttään lisätään halutut ominaisuudet, jotka sivuista näytetään. Järville mahdollisia ominaisuuksia ovat ainakin Pinta-ala, Syvyys, Keskisyvyys, Korkeustaso, Koordinaatit, KoordPohj, KoordIta, Kunta, Maakunta, Päävesistö ja Vesistöalue. Syvyys-, keskisyvyys- ja korkeustaso-ominaisuutta ei ole kaikilla järvillä.
Valitse Muotoilu-kohtaan haluttu muotoilu, esimerkiksi siis "CSV-vienti". CSV:ssä oletusvälimerkki on muistaakseni ",", mikä ei ainakaan excelissä toimi ihan suoraan avattaessa. Välimerkin voi vaihtaa puolipisteeksi Muut valinnat -osion sep -kentässä.
Haku palauttaa oletuksena vain osan hakutuloksista. Jos haluat kaikki järvet samaan listaukseen, täytyy Limit-kohtaan laittaa vähintään 56000. Limit ja offset-kohtien avulla tulokset voi myös hakea useassa osassa, jos yksi haku on liian iso (palvelin ei ehdi palauttaa sitä ennen time-out-virhettä).
Paina "Hae tuloksia".
Onnistuuko?
Muuten hyvä mutta en sa sitä palauttamaan kuin 100 kerrallaan, limit-asetuksesta huolimatta. Pienemmät limit-arvot (siis alle 100) toimivat kyllä odotetusti.
No nyt!? Kyselyille oli näköjään asetuksissa maksimi, ja jos sen ylitti, niin kysely palautti vain 100. Nostin nyt maksimin 60 000:een, mutta ihan noin isoa kyselyä en saanut kerralla tehtyä. Suosittelen, että haet tuloksesi vaikka kolmessa erässä: laitat limit-arvoksi 20000 ja teet sitten haut offset arvoilla 0, 20000 ja 40000.
OK?
Jees, nyt onnistui (kolmessa palassa siis) - kiitos!
Hidas se kyllä on, ja jos tuon semantic mediawikin dokuista jotain ymmärsin, saattaisi kuitenkin kannattaa tehdä siihen sql-rajapinta: siinähän on alla kuitenkin mysql (ellei peräti postgresql, toivottavasti ei sentään sqlite) ja rajapinnan tekoon ei tarvitsisi juuri muuta kuin määritellä oikeudet sopivasti. Käyttömukavuudeltaan paremman rajapinnan voisi sitten tehdä rinnalle jos ja kun ehtii.