MML:n Muutostietopalvelun hyödyntäminen FME:llä

Onpa kulunutkin pitkä aika edellisestä postauksesta. Ehkä voisin tihentää blogin päivitystahtia :).

FME 2015 ja FeatureReader

Uutisia uutisia, FME 2015 on julkaistu, jos et ole sitä vielä ladannut, käy lataamassa täältä: http://www.safe.com/support/support-resources/fme-downloads/

FME 2015

Uusi versio sisältää suuren määrän parannuksia ja päivityksiä, ja FeatureReader on yksi niistä. FeatureReaderilla voi lukea aineistosta jostain lähteestä käyttäen jotain toista aineistoa syötteenä. Esim. tiettyä kuntarajaa voisi käyttää maastotietokannan lukemiseen. Tämä on ollut ennenkin mahdollista, mutta uudessa versiossa FeatureReaderin tulosportit voi niputtaa yhteen ja samaan, jolloin mm. muutostietopalvelun hyödyntäminen FME:llä on kätevää (siitä lisää myöhemmin):

FeatureReader

Vasemmalla FME 2014:n FeatureReader ja Maastotietokannan kohdeluokat tulosportteina. Oikealla FME 2015:n FeatureReader ja samat Maastotietokannan kohdeluokat portissa Generic.

Aineistojen lataaminen muutostietopalvelusta

Mennään seuraavaksi muutostietopalvelun hyödyntämiseen. Muutostietopalvelusta saa listattua aineistot, jotka ovat päivittyneet käyttäjän syöttämän päivämäärän jälkeen. Palvelusta saa myös aineistojen karttalehtien latauslinkit, ja FME pystyy lataamaan aineistot ilman, että dataa tarvitsee välitallentaa. Tavallisestihan käyttäjät joutuvat lataamaan karttalehtiä Maanmittauslaitoksen tiedostolatauspalvelusta valiten karttalehtiä, tehden tilauksen ja lopulta ladaten aineistot sähköpostiin tulleen linkin kautta.

Aineistojen lataaminen palvelusta toimii seuraavasti: Listataan tietyn päivämäärän jälkeen päivittyneet aineistot urlilla

https://tiedostopalvelu.maanmittauslaitos.fi/tp/feed/mtp/?

Urlin perään tulee apikey, joka pitää käydä tilaamassa muutostietopalvelusta: https://tiedostopalvelu.maanmittauslaitos.fi/tp/mtp/tilaus

Esim.

https://tiedostopalvelu.maanmittauslaitos.fi/tp/feed/mtp/?api_key=123

Kun aineistot on listattu, saat kullekin aineistolle uuden urlin, jonka perään voit syöttää päivämäärän, esim:

https://tiedostopalvelu.maanmittauslaitos.fi/tp/feed/mtp/maastotietokanta/kaikki?api_key=123&updated=2013-01-01T00:00:00

Tästä saat lopulta karttalehtikohtaisen urlin, jonka voit syöttää FeatureReaderille:

https://tiedostopalvelu.maanmittauslaitos.fi/tp/tilauslataus/tuotteet/maastotietokanta/kaikki/etrs89/gml/T5/T52/T5212L_mtk.zip?api_key=123

FME-prosessi

Varsinaisen FME-prosessin ensimmäinen osa koostuu seuraavista transformereista:

  1. Creator, jolla luodaan aineistolistauksen käynnistävä kohde.
  2. AttributeCreator, jolla luodaan aineistolistauksen url.
  3. HTTPCaller, jolla pyydetään muutostietopalvelusta aineistot.
  4. XMLFragmenter, jolla puretaan muutostietopalvelusta tuleva listaus XML:stä kohteiksi entry-elementin avulla.
  5. TestFilter, jolla jaetaan eri tyyppiset aineistot, esim. maastotietokanta ja ortokuvat.
  6. DateFormatter ja Tester, joilla testataan onko aineisto päivittynyt käyttäjän antaman päivämäärän jälkeen.
  7. DateFormatter, jolla muotoillaan käyttäjän antama päivämäärä muodosta 20130101 muotoon 2013-01-01T00:00:00.

Muutostietopalvelun_aineistojen_listaus

FME-prosessin toinen osa koostuu seuraavista transformereista:

  1. HTTPCaller, johon syötetään XMLFragmenterista saatu aineiston URL (attribuutti link{0}.href).
  2. AttributeKeeper, jolla poistetaan turhat attribuutit.
  3. XMLFragmenter, jolla puretaan XML jälleen entry-elementin avulla.
  4. FeatureReader, johon syötetään XMLFragmenterista saadut linkit (attribuutti link.href).
  5. Datan kirjoitus

Muutostietopalvelun_aineistojen_lataus

Lopulta datan voi kirjoittaa mihin tahansa FME:n tukemista formaateista. Itse käytän usein jotain kantaa, kuten PostGIS-kantaa, johon kirjoitan muuttuneet karttalehdet.

Hyödyt

Tavallisesti aineistojen lataaminen ja muuntaminen käyttäjän haluamaan formaattiin on hankalaa. Muutostietopalvelu auttaa, mutta sekin vaatii automaattisen prosessin rakentelun, mitä kautta selvitetään, mitkä aineistot ovat päivittyneet. Onneksi aineistojen lataamisen ja viennin esim. kantaan voi automatisoida täysin FME:llä. Kun listaa muuttuneet karttalehdet tietystä aineistosta FME:llä, koko aineistoa ei tarvitse ladata MML:n tiedostolatauspalvelusta, vaan vain muuttuneet karttalehdet riittää. Myös datan välivarastointi jää pois, koska FME voi lukea aineistot suoraan tiedostolatauspalvelusta ja lennosta muuntaa haluamaasi formaattiin.

Kertaus

Tärkeimmät transformerit, mitä tarvitset ovat Creator, AttributeCreator, HTTPCaller, XMLFragmenter ja FeatureReader. Ja toki Inspector, jos kaikki ei mene niinkuin pitää :).

5 ajatusta artikkelista “MML:n Muutostietopalvelun hyödyntäminen FME:llä

  1. Moi!

    Osaatko vetää yhteen eri formaatit, joissa paikkatietoa ym. tallennetaan ja siirretään? GML,KML,GPX, WKT… Mitä eri muotoja löytyy? Mitä eroa niillä on ja mihin eri formaatteja käytetään? Täydentävätkö ne toisiaan? Miten näitä voi mahdollisesti konvertoida muodosta toiseen? Yksi on geometrian tallentamiseen? Toinen paikkatiedon? Kolmas näiden yhdistelmä? Tai tiedätkö jonkun aikuisten oikeasti hyvän sivun, josta saisi käsityksen asiasta? Mielellään jopa suomeksi. Siis sellainen , jossa olisi esimerkki formaatista (katkelma tai vast.) sitä vastaava sovellus miten data esitetään tai voidaan esittää/hyödyntää jne.

    • Moi!

      Mistähän sitä lähtisi liikkeelle ;). Formaatteja on useita satoja, joissa tallennetaan ja siirretään paikkatietoa, ja tuntuu että niitä tulee koko ajan lisää. FME:n tukemia formaatteja on yli 325 kpl. Yleisimpiä ovat varmaan Esri Shape, Mapinfo TAB, KML, GML. Erojahan formaateilla on paljon. Geometria- ja attribuuttityypit vaihtelevat ja niiden käyttötarkoituskin vaihtelee. Toisia käytetään enemmän esim. webbisovelluksissa, toisia taas datan siirroissa järjestelmien välillä ja toisia suunnittelutyössä. Tämä voisi olla yksi hyvä lähde, tosin englanninkielinen: http://docs.safe.com/fme/html/FME_ReadersWriters/FME_Readers_Writers.htm

  2. Kiitos vastauksesta! Sepä se, ”mistähän sitä alottais”.

    Mihin tuo GML on ensisijaisesti tarkoitettu? Siirtoon vai piirtoon? Miksi tämä on ainoa formaatti, jossa MML jakaa esim. maakunta- ja kuntatiedot? Ei ole ainakaan toistaiseksi löytynyt helppoa tapaa hyödyntää missään ilman, että joutuu tekemään järjestelyjä esim. datan ja tietokantojen kanssa. Helpolla viittaan myös siihen, että käyttötarkoitus olisi varsin yksinkertainen, mutta menee säätämiseksi formaatin kanssa. Ja onko GML formaattina tulossa vai menossa?

    • Moi, ole hyvä! GML:ää käytetään paljon siirtoon, mutta myös webbirajapintapalveluissa, kuten WFS:ssä. EU:n Inspire-direktiivi velvoittaa MML:n jakamaan aineistojaan GML-muodossa, eli siihen ei ole paljoa vastaan sanomista :). Samoin se velvoittaa monia muitakin aineistotuottajia. Sen takia GML formaattina säilyy. Itse käytän FME:tä GML:n sisäänlukuun ja muuntamiseen tietokantojen ja eri softien ymmärtämiin muotoihin. FME pystyy onneksi lukemaan suoraan MML:n GML-aineistoja, ilman että tarvitsee tehdä temppuja esim. koodauksella.

Jätä kommentti