Tekstit

Näytetään blogitekstit, joiden ajankohta on toukokuu, 2025.

OpenStreetMapin ja Maanmittauslaitoksen nimistöjen vertailu

Kuva
Monet Lajitietokeskuksen lajihavainnoista ovat kansalaistiedettä ja vieläpä usein ei-teknisten ihmisten syöttämiä. Luontoharrastajien keski-ikäkin melko korkea. Tämä johtaa väistämättä vahinkoihin lajihavaintoja syöttäessä. Koordinaatit ovat asiantuntijoillekin monimutkaisia, ja saattavat helposti mennä väärin. Yksi keino havaintojen laadunvarmistamiseen on verrata koordinaatteja havaintoa tehdessä sanallisesti ilmoitettuun paikkaan. Jos luontoharrastaja on kertonut havaintonsa löytyneen Suomenlinnasta, mutta koordinaatit osoittavat Keravalle, jokin saattaa olla pielessä. Datan laadun kannalta se ei ole hyvä asia. Tätä ongelmaa lähdin ratkomaan vertaamalla sanallisesti ilmoitettuja sijainteja Maanmittauslaitoksen nimistöaineistoon ja Nominatim-geokoodauspalveluun , joka perustuu OpenStreetMapin paikannimiin. Nominatim-tietokannan asensin paikallisesti Dockeriin ( ohje ) ja vertailun tein Pythonin Geopandas ja Pandas -kirjastoilla. Ennen itse vertailua siivosin ilmoitetut paikan...

Kuinka rakentaa QGIS-plugin?

Kuva
Yllätyin, kuinka helppoa QGIS-lisäosan tekeminen oli. Aloittaminen vaatii vain idean ja hieman Python-osaamista. Oma ajatukseni oli yhdistää lajitietokeskuksen GeoJSON-dataa tuottava REST-rajapinta suoraan QGIS:iin, joka helpottaisi lajitiedon käyttäjiä huomattavasti. Lisäosaa käyttämällä dataa ei tarvitse enää filtteröidä selaimessa, odotella hitaita latausprosesseja tai täyttää tietokonetta tiedostoilla, vaan kaiken voisi tehdä QGIS:ssä suoraan näppärässä käyttöliittymässä. Toki ilman lisäosaakin QGIS tukisi GeoJSON-tiedostojen hakemista REST-rajapinnan URL-osoitteesta, muttei kovinkaan luontevasti. Jokainen rajapinnan sivu pitäisi syöttää erikseen ja datan tietomalli olisi ainakin tässä tapauksessa kömpelö, sillä QGIS ei tue GeometryCollection-muotoisia havaintoja sellaisenaan. Pluginin avulla voi muutenkin siivotan datan käyttäjäystävälliseksi. Pluginin rakentamisen voi aloittaa helposti lataamalla valmiin templaten GitHubista . Tuon paketin __init__.py tiedostoon voi sitten vai...