Gradsillä voi katsella Grib-tiedostoja Ubuntussa

Toisinaan on tarpeen visuaalisesti tarkastella GRIBejä, jotka ovat siis meteorologisia datapaketteja binäärimuodossa. Ilmatieteen laitos jakaa esimerkiksi Hirlam-ennustetta myös GRIB-muodossa. Windowsille löytyy joitakin ilmaisia ohjelmia (esim. UGrib), mutta Ubuntulle ei oikein löytynyt sopivaa. zyGrib on kehuttu ohjelma, ja näyttikin suht pätevältä, mutta en saanut sillä avattua Ilmatieteen laitoksen GRIB-tiedostoja.

Suht pitkän etsimisen jälkeen parhaaksi vaihtoehdoksi valikoitui GrADS Software, joka on ilmainen käyttää.

Asennus Ubuntuun on yksinkertainen.

$ sudo apt-get install grads

Ja GrADS on asennettu. Itseään 30 minuutin tutoriaaliksi mainostava opas kertoo, että grads käynnistetään ja sitä käytetään komentoriviltä.

$ grads

Ohjelma kysyy Landscape modea, johon voi vastata Enterillä. Aukeaa musta ikkuna ja komentoriville ilmestyy

ga->

Oppaan mukaan pitää vielä ladata esimerkkitiedostoja: model.ctl, model.grb ja model.gmp.

Seuraavissa vaiheissa avataan kuvaustiedosto model.ctl  (komentorivi ja musta ikkuna kannattaa pitää rinnakkain). model.ctl kutsuu grb- ja gmp-tiedostoja, joten ne pitää olla ladattuina:

ga-> open polku/model.ctl
ga-> query file
ga-> d ps

Viimeisin komento näyttää (d = display) parametrin ps (surface pressure) kontuureina mustassa ikkunassa. Seuraavaksi opas menee sellaisiin sfääreihin, jotka eivät kiinnosta, vaan jätän 30 minuutin oppaan omaan rauhaansa.

Selvisi kuitenkin, että ohjelman käyttämiseen ja grib-tiedostojen katseluun tarvitaan kuvaustiedostoja grib-tiedostoista. Käyttäjäopas kertoo lisää gribeistä. Mainitaan, että grib-tiedostojen sisältöä voi tarkastella tekstimuodossa wgrib-nimisellä ohjelmalla. Asennamme siis sen. Ubuntulle wgrib pitää compileä c-tiedostosta (Save Link As).

$ cc -c wgrib.c
$ cc -o wgrib wgrib.c
$ ./wgrib

Tässä vaiheessa on hyvä olla jokin pieni grib-tiedosto koneella ladattuna. Esimerkiksi Ilmatieteen laitoksen HIRLAM-dataa Suomesta on saatavilla seuraavasta linkistä apikeyn korvauksen jälkeen (vaatii rekisteröitymisen).

http://data.fmi.fi/fmi-apikey/KORVAA_TÄMÄ_TEKSTI_OMALLA_APIKEYLLÄ/wfs?request=getFeature&storedquery_id=fmi::forecast::hirlam::surface::finland::grid

Avautuvasta XML:stä voi etsiä kohdan <gml:fileReference> ja kopioida sen sisällä olevan URL-osoitteen. Grib-tiedosto kannattaa ladata grib1-muodossa (format=grib1), koska wgrib osaa avata vain grib1:tä. Ilmatieteen laitos tarjoaa oletuksena grib2:ta. Lataamme myös vain yhden aika-askeleen ja rajaamme parametreja, jotta tiedosto pysyisi pienenä.

Nyt wgribillä voi katsella, mitä ladattu grib-tiedosto on syönyt:

$ ./wgrib hirlam.grb
1:0:d=13101012:MSL:kpds5=151:kpds6=102:kpds7=0:TR=0:P1=0:P2=0:TimeU=1:MSL:anl:type=analysis:NAve=0
2:90692:d=13101012:2T:kpds5=167:kpds6=105:kpds7=2:TR=0:P1=0:P2=0:TimeU=1:2 m above gnd:anl:type=analysis:NAve=0
3:181384:d=13101012:PRATE:kpds5=59:kpds6=200:kpds7=0:TR=0:P1=0:P2=0:TimeU=1:atmos col:anl:type=analysis:NAve=0

Grib sisältää siis vain kolme tietuetta ja parametrit MSL (paine), 2T (lämpötila) sekä PRATE (tunnin sademäärä).  Aika-askelia on yksi. Tarvitsemme myös gribin lat- ja lon-koordinaatit. Oletamme, että ne ovat samat kaikille tietueille ,joten luemme koordinaatit vain ensimmäisestä tietueesta (optio -d 1).

$ ./wgrib -V -d 1 hirlam.grb
rec 1:0:date 2013101012 MSL kpds5=151 kpds6=102 kpds7=0 levels=(0,0) grid=255 MSL ECext=1 type=analysis stream=1025 Version=0001 anl: bitmap: 0 undef
  MSL=Mean sea level pressure [Pa]
  timerange 0 P1 0 P2 0 TimeU 1  nx 187 ny 155 GDS grid 0 num_in_ave 0 missing 0
  center 98 subcenter 0 process 127 Table 128 scan: WE:SN winds(N/S) 
  latlon: lat  59.639000 to 70.118000 by 0.068000  nxny 28985
          long 19.084000 to 31.733000 by 0.068000, (187 x 155) scan 64 mode 128 bdsgrid 1
  min/max data 99786.4 101501  num bits 24  BDS_Ref 99786.3  DecScale 0 BinScale -13

Nyt voimme muodostaa oman kuvaustiedoston (hirlam.ctl) tälle gribille:

                                                                                                                                     
dset ^hirlam.grb
index ^hirlam.idx
undef 9.999E+20
title hirlam.grb
dtype grib 255
ydef 155 linear 59.639000 0.068
xdef 187 linear 19.084000 0.068000
tdef 1 linear 12Z10oct2013 1mo
zdef 1 linear 1 1
vars 3
no2T2m  0 167,105,2 ** 2 m above ground 2 metre temperature [K]
MSLmsl  0 151,102,0 ** mean-sea level Mean sea level pressure [Pa]
PRATEclm  0 59,200,0 ** atmos column Precipitation rate [kg/m^2/s]
ENDVARS

Tuohon korvaillaan sopivat kohdat.  Paremmat ohjeet löytyvät täältä. Itse asiassa kaikkein helpoin on käyttää valmista grb2ctl-ohjelmaa, joka luo grib-tiedostosta suoraan ctl-kuvauksen.

Vielä pitää luoda indeksitiedosto, joka määritettiin yllä hirlam.idx:ksi. Se onnistuu ajamalla:

$ gribmap -v -i hirlam.ctl

Tässä pitää muuten kaikkien rivien edessä tulostua !!!!! MATCH tai jokin on pielessä.

Nyt grads ohjelma näyttääkin jo jotain, esim lämpötilakontuurit Suomen päällä:

ga-> open hirlam.ctl
ga-> query file
ga-> d no2t2m

grads_fmi_hirlam

Lisäämällä

ga-> set gxout shaded

ennen parametrin valintaa saadaan täytetyt kontuurit:

grads_fmi_hirlam_filled

Julkaistu kohteessa Uncategorized

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*