FMI avoin data beta ja sen kokeilut

Aloittaja weatherc, torstai, 28.02.2013, 15:25

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.


weatherc

#1
Ja ihka ensimmäinen kokeilu on tässä  ;D

Palvelussa on käytössä API-avain. Tässä vaiheessa se on sama kaikille mutta muuttuu jossain vaiheessa rekisteröitymisen taakse.

Dataa löytyy tässä vaiheessa havainnot sekä Hirlam piste-ennuste. Lisää tulossa.
Pientä hakuilua koska mitään dokumentaatiota ei ole vielä, beta kun on.

Tässä se kokeilun tulos:

Lämpötila"ennuste" Saloon:
Salo
2013-02-28T10:00:00: 3.240816
2013-02-28T11:00:00: 3.414790
2013-02-28T12:00:00: 3.510423
2013-02-28T13:00:00: 2.919032

Ennusteessa näyttää olevan yhteenä 30 arvoa, mukaanlukien KI-Index ja Ukkosen todennäköisyys.

;D

EDIT: Ja koko lista:

[times] => Array
        (
            [0] => 2013-02-28T10:00:00
            [1] => 2013-02-28T11:00:00
            [2] => 2013-02-28T12:00:00
            [3] => 2013-02-28T13:00:00
        )

    [Salo] => Array
        (
            [mts-Temperature] => Array
                (
                    [0] => 3.240816
                    [1] => 3.414790
                    [2] => 3.510423
                    [3] => 2.919032
                )

            [mts-Pressure] => Array
                (
                    [0] => 1006.625793
                    [1] => 1005.473328
                    [2] => 1003.909180
                    [3] => 1002.196716
                )

            [mts-Humidity] => Array
                (
                    [0] => 71.995979
                    [1] => 72.058296
                    [2] => 72.521797
                    [3] => 78.223709
                )

            [mts-PrecipitationConv] => Array
                (
                    [0] => 0.000000
                    [1] => 0.000000
                    [2] => 0.000000
                    [3] => 0.000000
                )

            [mts-PrecipitationLarge] => Array
                (
                    [0] => 0.000000
                    [1] => 0.000000
                    [2] => 0.002312
                    [3] => 0.054624
                )

            [mts-KIndex] => Array
                (
                    [0] => 12.334578
                    [1] => 12.948599
                    [2] => 14.081673
                    [3] => 15.469868
                )

            [mts-DewPoint] => Array
                (
                    [0] => -1.320240
                    [1] => -1.143304
                    [2] => -0.963980
                    [3] => -0.489549
                )

            [mts-RadiationLW] => Array
                (
                    [0] => 267.152832
                    [1] => 280.013397
                    [2] => 291.879974
                    [3] => 313.152344
                )

            [mts-RadiationGlobal] => Array
                (
                    [0] => 276.271576
                    [1] => 253.902206
                    [2] => 200.019653
                    [3] => 102.193398
                )

            [mts-CloudSymbol] => Array
                (
                    [0] => 2307.000000
                    [1] => 3604.000000
                    [2] => 3604.000000
                    [3] => 3604.000000
                )

            [mts-Visibility] => Array
                (
                    [0] => 26367.728516
                    [1] => 23325.773438
                    [2] => 20984.746094
                    [3] => 15998.487305
                )

            [mts-RadiationNetTopAtmLW] => Array
                (
                    [0] => -185.566345
                    [1] => -166.220917
                    [2] => -165.091187
                    [3] => -167.302872
                )

            [mts-WindSpeedMS] => Array
                (
                    [0] => 3.570293
                    [1] => 3.370293
                    [2] => 3.467455
                    [3] => 3.822966
                )

            [mts-WindDirection] => Array
                (
                    [0] => 260.000000
                    [1] => 251.848129
                    [2] => 250.000000
                    [3] => 251.848129
                )

            [mts-WindVectorMS] => Array
                (
                    [0] => 426.000000
                    [1] => 425.000000
                    [2] => 425.000000
                    [3] => 425.000000
                )

            [mts-HourlyMaximumGust] => Array
                (
                    [0] => 8.173285
                    [1] => 7.628797
                    [2] => 7.793568
                    [3] => 8.404591
                )

            [mts-WindUMS] => Array
                (
                    [0] => 3.516052
                    [1] => 3.190446
                    [2] => 3.258342
                    [3] => 3.619164
                )

            [mts-WindVMS] => Array
                (
                    [0] => 0.619975
                    [1] => 1.065352
                    [2] => 1.185939
                    [3] => 1.207696
                )

            [mts-TotalCloudCover] => Array
                (
                    [0] => 70.000000
                    [1] => 90.000000
                    [2] => 90.000000
                    [3] => 100.000000
                )

            [mts-LowCloudCover] => Array
                (
                    [0] => 2.595878
                    [1] => 15.834955
                    [2] => 40.283794
                    [3] => 56.760921
                )

            [mts-MediumCloudCover] => Array
                (
                    [0] => 30.000000
                    [1] => 67.329536
                    [2] => 42.595879
                    [3] => 100.000000
                )

            [mts-HighCloudCover] => Array
                (
                    [0] => 50.000000
                    [1] => 90.000000
                    [2] => 61.669910
                    [3] => 30.000000
                )

            [mts-MiddleAndLowCloudCover] => Array
                (
                    [0] => 30.000000
                    [1] => 70.000000
                    [2] => 40.000000
                    [3] => 100.000000
                )

            [mts-Precipitation1h] => Array
                (
                    [0] => 0.000000
                    [1] => 0.000000
                    [2] => 0.000000
                    [3] => 0.050658
                )

            [mts-PrecipitationForm] => Array
                (
                    [0] => NaN
                    [1] => NaN
                    [2] => NaN
                    [3] => 1.000000
                )

            [mts-PrecipitationType] => Array
                (
                    [0] => NaN
                    [1] => NaN
                    [2] => NaN
                    [3] => 1.000000
                )

            [mts-ProbabilityThunderstorm] => Array
                (
                    [0] => 0.000000
                    [1] => 0.000000
                    [2] => 0.000000
                    [3] => 0.000000
                )

            [mts-FogIntensity] => Array
                (
                    [0] => 0.000000
                    [1] => 0.000000
                    [2] => 0.000000
                    [3] => 0.000000
                )

            [mts-WeatherSymbol3] => Array
                (
                    [0] => 2.000000
                    [1] => 3.000000
                    [2] => 3.000000
                    [3] => 31.000000
                )

            [mts-WeatherSymbol1] => Array
                (
                    [0] => 0.000000
                    [1] => 0.000000
                    [2] => 0.000000
                    [3] => 60.000000
                )

        )

weatherc

Ja luettavammassa taulukomuodossa: http://www.nordicweather.net/fmiennuste.php?fi

Ei tarvinne olla kovin suuri ennustaja että keksii mihin tämä tähtää aikanaan?  ;D

weatherc

#3
Laitetaanpa samaan sysyyn kun kerran häkkyrät tuossa hollilla kehiin FMI:n Salon havainnot:
http://www.nordicweather.net/index.php?fi
Löytyy sieltä omien mittareiden alapuolelta  ;D

EDIT: Ja kyllä, voin tehdä molemmista jaettavat häkkyrät ettei jokainen tarvi keksiä pyörää uudestaan, kunhan nähdään mihin muotoon tuo data tulee (beta-vaiheessa se voi muuttua ilman erillistä ilmoitusta) ja saadaan kaikki nippelit kehiin (kuten uupuvat ikonit ja monipaikkakunta-funktio ennusteessa).  ;D

weatherc

Ennusteeseen saatu säätilaikonit, kunhan saan oikean malliset koordinaatit xml:stä niin saadaan myös yö/päivävaihto toimimaan.

Tosin niitä ei tarvita tällä hetkellä, mutta KIndex ja TS-probability katosi, pitääpi kysäistä että minne...

weatherc

Jos joku haluaa kokeilla niin tässä tämän hetkinen hakuhäkkyrä sääasemien dataan.

Pari huomautusta:
- Koska beta-vaiheessa niin voi lakata toimimasta ihan milloin tahansa
- Jossain vaiheessa vaatii API-avaimen, toimii nytten FMI:n antamalla beta-avaimella
- Tässä säädetty 30 min haarukalle eli data joka tulee on :00 tai :30 päivitetty riippuen haun ajankohdasta
- Kuten kaikki external data jota haetaan sivuille hidastaaa se sivun latausta, siksi tämä on suunniteltu käyettäväksi cronjobilla, 05 ja 35 minuutit näyttää saavan nuo :00 ja :30 datat. Se tallentaa sen fmi.json nimiseen filuun josta sitten voi hakea sen sivulle.
- Häkkyrässä olevassa haku-urlissa löytyy place=salo, se on paikkakunta jota se hakee, ei hajuakaan mitkä kaikki paikkakunnat löytyvät mutta että niitä olisi saatavailla 20000 vilahti ohi jossain kohtaa..
- Paikkakunnat ovat numeroina, esim 100955, samat numerot löytyvät FMI:n websivujen ennusteiden urleissa joten sieltä saa haettua, toistaiseksi en ole löytänyt nimeä kaikille paikkakunnille tuosta datasta (kerrottu FMI:lle siitä)
- Tietoa ei ole vielä millaiset krediitit FMI haluaa näkösälle mutta suosittelen jos sivuille laittaa että jonkin sortin krediitit laittaa

Ja HUOM tämä on kaikkea muuta kun valmis häkkyrä ainakin tässä vaiheessa.

Ja miten tuon fmi.jsonin parsii sivuilla:

$GMfilename = 'cache/fmi.json';
$fp = file_get_contents($GMfilename);
$wxdata = json_decode($fp,true);

for($i=1;$i<count($wxdata)+1;$i++){
 $time = $wxdata[$i][time];
 $id = $wxdata[$i][id];
 $nimi = getfminame($id);
 $temp = $wxdata[$i][t2m];
 $wind = $wxdata[$i][ws_10min];
 $wdir = windDir($wxdata[$i][wd_10min]);
 $hum = $wxdata[$i][rh];
 $dew = $wxdata[$i][td];
 $prec = sprintf("%01.1f", $wxdata[$i][r_1h]);
 if($prec>-0.1){$prec=$prec.' mm';}else{$prec='';}
 $sno = $wxdata[$i][snow_aws];
 if($sno<>"NaN"){$sno=round($sno).' cm';}else{$sno='';}
 $baro = $wxdata[$i][p_sea];
 if($baro<>"NaN"){$baro=$baro.' hPa';}else{$baro='';}
}


Tuosta voi sitten tehdä mitä haluaa $variaableiden kanssa.

Lisäinfoa mahdollisita urli-yhdistelmistä löytyy: http://ilmatieteenlaitos.fi/avoin-data-beta

weatherc

Ensimmäinen kokeilu moni-paikkaunta-ennusteesta, eli samanlainen haku kuin YR-ennusteessa: http://www.nordicweather.net/fmiennuste.php?fi  ;D

Rakenne suurilta osin kopio YR-ennusteesta joten fillaria ei keksitty uudestaan vaan parit polut ja nimet vaihdettiin sekä sisälle tuo xml-parsija joka osaa FMI-dataa :)


kapo

Tuo on hieno!!!
Kunpa sais nuo vanhat punksuneeraamaan, niin tämä ennuste on saatava sitten omille sivuille ....
Pts: Tällä vauhdilla vuonna 2098.... ;D ;D

-kapo-

systeemi

Tässä on kyllä yksi vaihtoehto WXSIM tilalle (tai kun sitä ei ole). Jos tästä nyt liikenisi aikaa tehdä uusiksi sääasema sivusto niin tämä voisi olla sääennustuksien lähtökohta!?
Sääasema Nauska, Kemi

www.kemiweather.fi

Snowi