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ää :).