fmi avoin lahdekoodi
TRANSCRIPT
Avoin lähdekoodi
Ilmatieteen laitos
Mikko Rauhala, Roope Tervo
Data avautui
24.1.2017 2
FMI avoin lähdekoodi
https://en.ilmatieteenlaitos.fi/open-data
Ensimmäiset
ohjelmistot avautuivat
2013 2016
Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala
Ilmatieteen laitos avasi datansa vuonna 2013.
Lähes kaikki data, johon Ilmatieteen laitos omistaa oikeudet on avointa.
Dataa jaetaan vapaasti koneluettavassa muodossa.
24.1.2017 3
FMI avoin data
https://en.ilmatieteenlaitos.fi/open-data
Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala
Data set Description Time
Interval
Estimated
publish date
Weather
Observations
Temperature, Wind,
Humidity, Ground
Temperature…
10 min Open,
older data to be
added
Weather forecast
model HIRLAM RCR
Point forecasts and grid
dataLatest
model run
(4 times a
day) 0…54
h
Open
Aviation Observations METAR 30 min open
Weather Radars Precipitation Rate,
Precipitation Amount…5 min Open,
older data to be
added
Lightning Thunder Strikes in
Finland5 min Open
Esimerkkiaineistoja
1/24/2017 4Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala
FMI avoin data on INSPIRE yhteensopiva
FMI avoin data
Meta dataServices
1/24/2017 5
ISO19115 WFS WMS
CSW
Grid SeriesObservations
Time SeriesObservations
Data Models O&M
SimpleFeature
GRIBNetCDF GeoTiff
Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala
Käyttörajoitukset
Yhdellä API-avaimella saa tehdä
o enintään 20 000 pyyntöä päivässä (Download Service)
o enintään 10 000 pyyntöä päivässä (View Service)
o enintään 600 pyyntöä 5 minuutissa molempiin palveluihin
o Jos jokainen havainto lasketaan erikseen, vähän yli 17 000 uutta data settiä julkaistaan joka päivä
o Yhdellä API-avaimella voi siis ladata kaiken kerran
o Katselupalvelu on tarkoitettu testaukseen, sovelluksiin sitä ei kuitenkaan voi käyttää suoraan taustapalveluna
24.1.2017 6Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala
MIKSI AVATAAN?
• Julkisin varoin tuotetut ohjelmistot mahdollisimman laajasti
kansalaisten, yritysten ja muiden organisaatioiden
käytettävissä
• Avoin tieto ja jatkuvasti kehittyvät suurten tietomassojen
hyödyntämismenetelmät tarjoavat merkittäviä mahdollisuuksia
niin liiketoiminnalle kuin yhteiskunnalle
• Julkisen tiedon saatavuus on yhteiskunnan palvelukehityksen
ja innovaatiotoiminnan sekä yhteiskunnan läpinäkyvyyden
kannalta tärkeä tekijä
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala7
MIKSI AVATAAN?
• Parantaa avoimen datan käytettävyyttä
• Kehitystyön tehostaminen
• Yhteistyö helpottuu kumppanien kanssa
• Tutkimusprojetien tukeminen
• Yritystoiminnan tukeminen
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala8
Sallittu
Vastuuta
Takuuta
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala9
LISENSSI
Ohjelmistot julkaistaan pääsääntöisesti MIT-lisenssillä, joka asettaa hyvin
vähän rajoituksia ohjelmiston käytölle. Ohjelmistokohtaisesti saatetaan käyttää
myös muuta avointa lisenssiä yhteistyötahojen ja/tai rahoittajan toivomuksesta.
Kaupallinen
käyttö
Jakelu
Muokkaus
Yksityinen käyttö
Alkuperäinen
lisenssi ja
tekijänoikeus
merkintä
säilytettävä
Ehdolla Ilman
MITÄ AVATAAN?
• 2016: SmartMet Server
• 2017: HIMAN (hila manipulaattori), SmartMet työasema
• Noin 30 muuta ohjelmistoa harkitaan avattavaksi
• Uudet ohjelmistot lähtökohtaisesti avoimia
• Arviointityö käynnissä• Onko ohjelmisto erotettavissa tuotantojärjestelmästä?
• Ollaanko ohjelmistoa vielä jatkokehittämässä?
• Onko ohjelmistosta mahdollisesti hyötyä Ilmatieteen laitoksen ulkopuolella?
• Onko turvallisuuteen liittyviä kysymyksiä tai kolmannen osapuolen IPR?
• Onko rahoittajalla vaatimuksia?
• Onko projektin nimi vapaa?
• Onko projekti dokumentoitu riittävällä tasolla ja mitä pitää tehdä että avaaminen voidaan tehdä?
• Laitoksen johto tekee jokaisesta ohjelmistosta päätöksen erikseen
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala10
MITÄ AVATTU?
• Ennestään avoimia ohjelmistoja
• SILAM leviämismallin lasketaohjelmisto
• RACK tutkadatan käsittelyyn tarkoitettu ohjelmisto
• MetOLib avoimen datan käyttämistä helpottava kirjasto
• PyTroll satelliittidatojen käsittelyyn tarkoitettu ohjelmisto, jonka
kansainvälisessä kehitystiimissä Ilmatieteen laitos on merkittävällä
panoksella mukana http://pytroll.org/
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala11
MAHDOLLISET KÄYTTÄJÄT
• Muiden maiden kansalliset sääpalvelut
• Ympäristöalan kansainväliset organisaatiot (ECMWF,
EUMETSAT jne)
• Ympäristöalan yritykset ja organisaatiot
• Ilmatieteen laitoksen avointa dataa käyttävät yritykset ja
organisaatiot
• Yksityiset kehittäjät
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala12
JULKAISU
• Ohjelmistot julkaistaan GitHub-verkkopalvelussa, joka on yksi
maailman suurimmista lähdekoodi-verkkopalveluista
• GitHub tarjoaa GIT-versionhallinnan, wiki-sivun, bug-
trackkerin sekä tehtävien hallinnan ohjelmistoprojekteille
• Ohjelmistot dokumentoidaan GitHub-palveluun
• Ilmatieteen laitos tekee oman kehitystyönsä suoraan GitHub-
palveluun
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala13
https://github.com/fmidev
KÄYTÄNNÖT
• Pienet muutokset lähdekoodiin -> Pull Request
• Isommista muutoksista on syytä tehdä ensin suunnitelma
GitHub wikiin
• Kehitystyöhön osallistuvien on hyväksyttävä CLA (Contributor
License Agreement). Tällä varmistetaan että henkilöllä on
oikeus annettavaan lähdekoodiin.
• Havaituista ongelmista voi kuka tahansa GitHub-tunnuksen
omaava raportoida GitHub Issue Tracker työkalulla
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala14
SmartMet datapalvelin
• Data- ja tuotepalvelin MetOcean datalle
• Korkea saatavuus ja kapasiteetti
• Data haetaan ja tuotteet luodaan aina lennosta
• INSPIRE yhteensopiva
• Operatiivinen vuodesta 2008 Ilmatieteen laitoksella
• Avoimen datan taustapalveluna vuodesta 2013
• Lisätietoja http://www.slideshare.net/tervo/smartmet-server-
providing-metocean-data
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala15
SmartMet Server
Pikaopas / Kääntäminen
• Asenna RHEL 7 tai CentOS 7
• Asenna repot: rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm &&
https://download.postgresql.org/pub/repos/yum/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-3.noarch.rpm
• Asenna riippuvuudet: yum install bzip2-devel cairo-devel cairo-gobject-devel elfutils-devel file fmt-devel gcc gcc-c++ gdal-devel
geos-devel gdk-pixbuf2-devel git grib_api grib_api-devel gobject-introspection-devel jemalloc-devel jsoncpp-devel libaio-devel
libcroco-devel libtool libatomic libconfig-devel libicu-devel libjpeg-devel libpqxx-devel libspatialite-devel make cmake imake
mariadb-devel mysql++-devel netcdf-devel netcdf-cxx-devel openssl-devel pango-devel protobuf-devel protobuf-compiler
postgresql93-devel python-devel scons soci-devel soci-sqlite3-devel
• Lataa ja asenna Oraclen paketit oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm ja oracle-instantclient11.2-basic-
11.2.0.4.0-1.x86_64.rpm
• Lataa ja käännä kirjastot http://ctpp.havoc.ru/download/ctpp2-2.8.3.tar.gz
http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz https://github.com/sparsehash/sparsehash.git
• Lataa: mkdir -p /usr/local/include/jssatomic && wget -O /usr/local/include/jssatomic/atomic_shared_ptr.hpp
https://bitbucket.org/anthonyw/atomic_shared_ptr/raw/7bdef03f6536f4b9118d267b68da211297cc0143/atomic_shared_pt
• Kloonaa, käännä ja asenna seuraavat paketit (git clone / make / make install)
• Kirjastot: smartmet-library-* (newbase,macgyver,gis,spine,locus,tron,imagine)
• Serveri: smartmet-server
• Enginet: smartmet-engine-* (sputnik,querydata,geonames,observation,gis,contour)
• Pluginit: smartmet-plugin-* (timeseries,download,admin,backend,meta,wfs)
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala16
SmartMet Server
Pikaopas / Käyttäminen
• Lataa Ilmatieteen laitoksen HIRLAM malli:
http://data.fmi.fi/download?param=Temperature,DewPoint,WindUMS,WindVMS,TotalCloudCover,Precipitati
on1h,WindSpeedMS,Humidity,Pressure&format=qd&producer=hirlam&origintime=2017-01-24T00Z&fmi-
apikey=$APIKEY
• Tee serverille konffi esim. /etc/smartmetd/server.conf sekä tarvittavat engine ja plugin konffit (esimerkit
löytyvät git paketeista). Helpointa on aloittaa timeseries pluginin käytöllä. Datan sijainti konfiguroidaan
/etc/smartmetd/engines/querydata.conf tiedostoon (edellä ladattu data tiedosto)
• Käynnistä serveri /usr/sbin/smartmetd -d -v –logrequests
• Testaa timeseries
http://localhost/timeseries?producer=hirlam&lonlat=24.5,66¶m=time,FeelsLike,Temperature,WindDirec
tion,WindCompass8,WindSpeedMS&format=debug
• Käytä sovelluksessa, javascript sovulluksissa formaatti kannattaa muuttaa format=json
• Timeseries dokumentaatio https://github.com/fmidev/smartmet-plugin-timeseries/wiki/SmartMet-plugin-
TimeSeries
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala17
SmartMet Server
Pikaopas / Huomioitavaa
• Dokumentaatio GitHubin wikissä ja REAME.md tiedostoissa
• Tällä hetkellä vai querydata tiedostoformaatti tuettu, muut formaatit
konvertoitava querydataksi
• Suomalaisen HIRLAM mallin saa ladattua Ilmatieteen laitoksen avoin data porttaalista. Pikaohje: http://ilmatieteenlaitos.fi/latauspalvelun-pikaohje (huom käytä formaattina qd)
• Muut mallit on ensin konvertoitava Grib v1 & v2 tai NetCDF formaatista querydataksihttps://github.com/fmidev/smartmet-qdtools
• Dataa voi ladata koordinaateilla, jos haluaa käyttää nimiä on lisäksi asennettava nimistötietokanta. Esimerkin voi asentaa dockeriin https://hub.docker.com/r/fmidev/smartmet-server-test-db/
• Server konffissa kannattaa ladata vain tarvittavat pluginit ja niiden
tarvitsemat enginet.
• Kokeilun helpottamiseksi tulossa Docker Hubiin SmartMet Server image ja
RPM-repository
24.1.2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala18
Mitä seuraavaksi?
Seuraa:
https://github.com/fmidev
https://facebook.com/fmibeta
Uusista julkaisuista kerrotaan näissä osoitteissa.
1/24/2017Ilmatieteen laitoksen avoimet ohjelmistot
Mikko Rauhala19
www.fmi.fi
http://ilmatieteenlaitos.fi/avoin-lahdekoodi
https://github.com/fmidev/
https://hub.docker.com/r/fmidev/
https://en.ilmatieteenlaitos.fi/open-data
https://facebook.com/fmibeta
http://www.slideshare.net/rauhala