fmi avoin lahdekoodi

20
Avoin lähdekoodi Ilmatieteen laitos Mikko Rauhala, Roope Tervo

Upload: mikko-rauhala

Post on 23-Jan-2018

70 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Fmi avoin lahdekoodi

Avoin lähdekoodi

Ilmatieteen laitos

Mikko Rauhala, Roope Tervo

Page 2: Fmi avoin lahdekoodi

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

Page 3: Fmi avoin lahdekoodi

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

Page 4: Fmi avoin lahdekoodi

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

Page 5: Fmi avoin lahdekoodi

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

Page 6: Fmi avoin lahdekoodi

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

Page 7: Fmi avoin lahdekoodi

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

Page 8: Fmi avoin lahdekoodi

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

Page 9: Fmi avoin lahdekoodi

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

Page 10: Fmi avoin lahdekoodi

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

Page 11: Fmi avoin lahdekoodi

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

Page 12: Fmi avoin lahdekoodi

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

Page 13: Fmi avoin lahdekoodi

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

Page 14: Fmi avoin lahdekoodi

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

Page 15: Fmi avoin lahdekoodi

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

Page 16: Fmi avoin lahdekoodi

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

Page 17: Fmi avoin lahdekoodi

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&param=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

Page 18: Fmi avoin lahdekoodi

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

Page 19: Fmi avoin lahdekoodi

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

Page 20: Fmi avoin lahdekoodi

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