A parancs lefuttat egy általunk megírt scriptet egy vagy több GRIB fájlon. A script ún. szabályokat tartalmaz (angolul "rules"), ezért "rules fájl"-nak (röviden RF) nevezzük ezeket a scripteket. A grib_filter többféle feladatra használható, például leválaszthatunk egy nagyobb GRIB állományból adatokat és egy kisebb fájlt hozunk létre, vagy egy fájlba statisztikát készíthetünk a GRIB fájl adataiból, stb.
A script fájlt C-hez hasonló nyelvben kell megírni, viszont csak néhány parancsot használhatunk. Fontos, hogy nem kell külön ciklusokat írni, mivel minden parancs végigfut az egész fájl minden egyes táviratán.
Akkor is lefuttatja a parancsot, ha hibát talál.
Ha szükséges kimeneti GRIB fájl, akkor így adhatjuk meg a nevét. Ha nem használjuk, akkor filtered.out lesz a kimeneti fájl neve.
Kikapcsolja a multi-grib támogatást.
Verziószám.
A GTS fejléc másolása.
Nincs hibaüzenet, ha a rossz méretű a kimeneti fájl.
Részletek közlése ("bőbeszédű" mód).
Parancs | Jelölés | Példa |
parancs vége | ; | print "komment"; |
grib kulcsok | [ ]-ben | print "[level]"; |
egyenlő | == | |
egyező szöveg | is | |
nem egyenlő | != | |
vagy | || | |
és | && | |
nem | ! |
A standard kimenetre kiírja az idézőjelben lévő kulcsoknak megfelelő tartalmat. A zárójelben megadhatjuk a kimeneti fájl nevét. Ha nem adunk meg fájl-t, a képernyőre írja ki a szöveget.
Példa: Írassuk ki egy GRIB fájl táviratainak dátumát a képernyőre. A rules fájl (jelen esetben rf1) tartalma:
Az utasítás, amivel ezt végrehajthatjuk:
Az eredmény:
1981 10 1 1981 10 1 1981 10 2 1981 10 2 1981 10 3 1981 10 3 1981 10 4 1981 10 4 1981 10 5 1981 10 5 1981 10 6 1981 10 6 1981 10 7 1981 10 7 1981 10 8 1981 10 8 1981 10 9 1981 10 9 1981 10 10 1981 10 10 1981 10 11 1981 10 11
Látható, hogy kétszer szerepelnek a dátumok, mert az ex1.grb 2 változót tartalmaz.
Az aktuális GRIB-et kiírja az idézőjelben meghatározott fájlnévvel egy fájlba. Fontos, hogy különböző kulcs érékekhez külön fájlt hoz létre.
Az RF fájl szintaktikája:
Példa: Hozzunk létre minden egyes magassági szintre egy GRIB fájlt egy eredeti fájlból!
rf2 tartalma:
Futtatása:
A parancs eredményeképpen a következő állományok keletkeznek: out200.grb out300.grb out500.grb
Az aktuális GRIB-et hozzáteszi egy meglévő GRIB-hez.
Szintaktikája:
Pl. az rf3 tartalma:
Futtatás:
Ha az előző példa eredményfájljait használjuk bemenetként, az eredeti fájllal (example.grb) megegyező tartalmú lesz a parancs végrehajtása közben keletkező új fájl, az out.grb.
Feltételes elágazás. Ha a zárójelben írt feltételek teljesülnek, a {} közötti parancsok lefutnak.
Szintaxis:
Példa: Irassuk ki az 1981.10.06. és 1981.10.11 közötti napok dátumát!
Rules file (rf3) tartalma:
Futtatás:
Eredmény:
19811006 19811006 19811007 19811007 19811008 19811008 19811009 19811009 19811010 19811010 19811011 19811011
Megváltoztathatjuk egy a GRIB fájlban már létező kulcs értékét, de csak az éppen futtatott scripten belül lesz érvényes a módosítás, tehát nem változtatja meg magának a GRIB fájlnak a tartalmát.
Példa: Írjuk át egy GRIB fájl minden napját 11-re!
Rules fájl (rf4) tartalma:
Futtatás:
Eredmény:
11 11 11 11 11 ...
Létrehoz egy a felhasználó által definiált változót, amely később úgy használható, mintha egy kulcs lenne.
Példa: Hozzunk létre egy "filename" nevű változót! Írassuk ki ezt a változót a képernyőre!
Rules fájl (rf5) tartalma:
Futtatás:
Eredmény:
f1.grib f1.grib f1.grib f1.grib f1.grib ... (22-szer)
Látható, hogy 22 alkalommal futott le az rf5, hiszen 11 nap (napi egy érték) és 2 változó van a GRIB fájlban.
A switch függvény egy változó értékét vizsgálja, és a megadott esetek (case-ek) közül azt hajtja végre amely, megegyezik a változóval.
Használat:
Meg lehet adni több kulcsot is a switch sorban, ekkor a case sorokban mátrix-szerűen kell meghatározni az egyes kombinációkra vonatkozó parancsokat.
Példa.
Rules file (rf6) tartalma: