Ebben a példában megtanuljuk hogyan kell egy grib fájlból kinyerni a széladatokat, és megjeleníteni azt szélzászlók segítségével.
program wind1 c Magics++ megnyitása és a kimenet megadása call popen call psetc ('ps_device','ps_a4') call psetc ('ps_file_name', 'wind_1.ps') c A térképvetület méreteinek beállítása (alapértelmezésben: hengervetület) call psetr ('subpage_lower_left_longitude',-15.0) call psetr ('subpage_lower_left_latitude',30.0) call psetr ('subpage_upper_right_longitude',40.0) call psetr ('subpage_upper_right_latitude',70.0) c A partvonal és a rácshálózat beállítása call psetc ('map_coastline_colour','tan') call pseti ('map_coastline_thickness', 2) call psetc ('map_coastline_land_shade', 'on') call psetc ('map_coastline_land_shade_colour', + 'HSL(0.40, 0.15,0.95)') call psetc ('map_grid_colour','grey') c A vetület kirajzolása call pcoast c Az adatok beolvasása grib fájlból call psetc ('grib_input_type','file') call pseti ('grib_wind_position_1',1) call pseti ('grib_wind_position_2',2) call psetc ('grib_input_file_name', 'uv500_tc.grib') call pgrib c A széladatok megjelenítésének beállításai:
c 5 m/s, vagy annál nagyobb értékek kirajzolása szélzászlókkal call psetc ('wind_field_type','flags') call psetr ('wind_flag_min_speed',5.0) call psetc ('wind_flag_origin_marker','dot') call psetc ('wind_flag_colour','navy') c A szélmező kirajzolása call pwind c Magics++ bezárása call pclose end
A grib fájl beolvasásához szükséges paraméterek:
'grib_input_type'
: a beolvasás típusa (ARRAY / FILE
)'grib_wind_position_1'
: az egyik széladat helyzete a bemenő fájlban'grib_wind_position_2'
: a másik széladat helyzete a bemenő fájlban'grib_input_file_name'
: a grib fájl neveA szélmező kirajzolásához először is meg kell adni a típust, hogy mivel akarjuk megjeleníteni a szélmezőt. Erre szolgál a 'wind_field_type'
paraméter, amely nyilakkal történő ábrázoláshoz lehet ARROWS
vagy szélzászlókkal való ábrázoláshoz FLAGS
. Ettől a típustól függnek a további beállítások is.
A szélzászlókkal történő rajzoláshoz a példában használt paraméterek:
'wind_field_type'
: a szél megjelenítésének típusa (ARROWS / FLAGS
)'wind_flag_min_speed'
: a legkisebb érték, amit még ki akarunk rajzolni'wind_flag_origin_marker'
: a rácsháló pontjában megjelenő szimbólum (CIRCLE / DOT / OFF
)'wind_flag_colour'
: a szélzászló színeAz eredmény:
További paraméterek:
'wind_thinning_factor'
: a jelölések gyakorisága'wind_flag_calm_indicator'
: szélcsend megjelenítése egy körrel'wind_flag_calm_indicator_size'
: a szélcsend megjelenítéséhez használt kör sugara (cm-ben)'wind_flag_calm_below'
: a szélcsend küszöbértéke'wind_flag_length'
: a szélzászló hossza'wind_flag_max_speed'
:a legnagyobb érték, amit még ki akarunk rajzolni'wind_flag_min_speed'
:a legkisebb érték, amit még ki akarunk rajzolni'wind_flag_style'
: a szélzászló kirajzolásához használt vonaltípus'wind_flag_thickness'
: a szélzászló vastagságaTermészetesen nem szükséges az összes paramétert megadni, mindegyiknek van alapértelmezett beállítása. A további lehetőségekről, illetve az egyes paraméterekről az ECMWF honlapján találunk bővebb információkat.
Következő példánkban a szélmezőt nyilakkal ábrázoljuk.
program wind2 c Magics++ megnyitása és a kimenet megadása call popen call psetc ('ps_device','ps_a4') call psetc ('ps_file_name', 'wind_2.ps') c Polár sztereografikus vetület - európai kivágat call psetc ('subpage_map_projection','polar_stereographic') call psetc ('subpage_map_area_definition','centre') call psetr ('subpage_map_centre_longitude',0.) call psetr ('subpage_map_centre_latitude',50.) call psetr ('subpage_map_vertical_longitude',0.) call psetr ('subpage_map_scale',15.e6) call psetc ('map_coastline_colour','black') call psetc ('map_grid_colour','black') call psetc ('map_coastline_land_shade', 'on') call psetc ('map_coastline_land_shade_colour', + 'RGB(0.9, 0.9,0.9)') call pseti ('map_coastline_thickness',2) call psetc ('map_grid_line_style','dot') call psetr ('map_grid_latitude_increment',5.0) call psetr ('map_grid_longitude_increment',5.0) c A vetület kirajzolása call pcoast c Az adatok beolvasása grib fájlból call psetc ('grib_subarea_extraction','off') call psetc ('grib_input_type','file') call pseti ('grib_wind_position_1',1) call pseti ('grib_wind_position_2',2) call psetc ('grib_input_file_name', 'data/uv500_tc.grib') call pgrib c A széladatok megjelenítésének beállításai:
c zöld nyilak a 30 m/s vagy annál kisebb szél ábrázolására c nyílvastagság faktora 3, és minden rácsponti érték(nincs ritkítás) call psetc ('wind_field_type','arrows') call psetr ('wind_thinning_factor',1.0) call pseti ('wind_arrow_thickness',3) call psetc ('wind_arrow_colour','evergreen') call psetr ('wind_arrow_max_speed',30.0) c A szélmező kirajzolása call pwind c Magics++ bezárása call pclose end
A fájlbeolvasáshoz használt paraméterek magyarázata az 1. példában találhatók.
Ebben az esetben a 'wind_field_type'
értéke ARROWS
. A nyilakkal való ábrázoláshoz a példában használt paraméterek:
'wind_thinning_factor'
: a jelölések gyakorisága'wind_arrow_thickness'
: a nyíl vastagsága'wind_arrow_colour'
: a nyíl színe'wind_arrow_max_speed'
: a legnagyobb érték, amit még ki akarunk rajzolniAz eredmény:
További paraméterek:
'wind_arrow_calm_indicator'
: szélcsend megjelenítése egy körrel'wind_arrow_calm_indicator_size'
: a szélcsend megjelenítéséhez használt kör sugara (cm-ben)'wind_arrow_calm_below'
: a szélcsend küszöbértéke'wind_arrow_head_shape'
és 'wind_arrow_head_ratio'
: a nyíl alakját meghatározó paraméterek'wind_arrow_head_shape'
: a nyíl hegyének alakját határozza meg'wind_arrow_head_ratio'
: a nyíl hegyének és testének arányát határozza meg'wind_arrow_legend'
: jelmagyarázat megjelenítése, hogy mekkora nagyságú szelet jelent az egységnyi nyílhossz'wind_arrow_max_speed'
:a legnagyobb érték, amit még ki akarunk rajzolni'wind_arrow_min_speed'
:a legkisebb érték, amit még ki akarunk rajzolni'wind_arrow_origin_position'
: ezzel azt lehet megadni, hogy a nyíl a rácspontból induljon (TAIL
) vagy a nyíl közepe essen a rácspontra (CENTRE
)'wind_arrow_style'
: a nyíl kirajzolásához használt vonaltípusTovábbi beállítási lehetőségek, és információk a paraméterekről az ECMWF honlapján találhatók.
Következő példánkban eddigi tudásunkra támaszkodva úgy rajzoljuk ki a szélmezőt, hogy a különböző nagyságú szelet más-más színnel ábrázoljuk. Legyen zöld az 5 m/s alatti, sárga az 5 és 10 m/s közötti, narancs a 10 és 15 m/s közötti, piros a 15 m/s feletti szél!
program wind3 c Magics++ megnyitása és a kimenet megadása call popen call psetc ('ps_device','ps_a4') call psetc ('ps_file_name', 'wind_4.ps') c A térképvetület beállítása (alapértelmezésben: hengervetület) call psetr ('subpage_lower_left_longitude',-15.0) call psetr ('subpage_lower_left_latitude',30.0) call psetr ('subpage_upper_right_longitude',40.0) call psetr ('subpage_upper_right_latitude',70.0) call psetc ('map_coastline_colour','tan') call psetc ('map_grid_colour','tan') call psetc ('map_coastline_land_shade', 'on') call psetc ('map_coastline_land_shade_colour', + 'RGB(0.9, 0.9,0.9)') call pseti ('map_coastline_thickness',2) call psetc ('map_grid_line_style','dot') call psetr ('map_grid_latitude_increment',5.0) call psetr ('map_grid_longitude_increment',5.0) c A vetület kirajzolása call pcoast c Az adatok beolvasása grib fájlból call psetc ('grib_input_type','file') call pseti ('grib_wind_position_1',1) call pseti ('grib_wind_position_2',2) call psetc ('grib_input_file_name', x 'data/uv500_tc.grib') call pgrib c A széladatok megjelenítésének beállításai call pseti ('wind_flag_thickness', 3) call psetc ('wind_field_type','flags') call psetr ('wind_flag_max_speed',5.0) call psetc ('wind_flag_origin_marker','dot') call psetc ('wind_flag_colour','green') call pwind call psetr ('wind_flag_min_speed',5.0) call psetr ('wind_flag_max_speed',10.0) call psetc ('wind_flag_colour','yellow') call pwind call psetr ('wind_flag_min_speed',10.0) call psetr ('wind_flag_max_speed',15.0) call psetc ('wind_flag_colour','orange') call pwind call psetr ('wind_flag_min_speed',15.0) call preset ('wind_flag_max_speed') call psetc ('wind_flag_colour','red') call pwind c Magics++ bezárása call pclose return end
A példaprogramból láthatjuk, hogy úgy érhetjük el a kívánt hatást, ha a különböző nagyságú szeleket mind egy külön paranccsal rajzoljuk ki úgy, hogy a rajzolás előtt megadjuk az aktuális paramétereket.
Az eredmény:
További beállítási lehetőségek, és információk a paraméterekről az ECMWF honlapján találhatók.
Ebben a példában rávilágítunk arra, hogy egyszerre több mezőt is ábrázolhatunk: a szélmező mellett például egy geopotenciálmezőt.
program wind4 c Magics++ megnyitása és a kimenet megadása call popen call psetc ('ps_device','ps_a4') call psetc ('ps_file_name', 'wind_3.ps') c Polár sztereografikus vetület - európai kivágat call psetc ('subpage_map_projection','polar_stereographic') call psetc ('subpage_map_area_definition','centre') call psetr ('subpage_map_centre_longitude',0.) call psetr ('subpage_map_centre_latitude',50.) call psetr ('subpage_map_vertical_longitude',0.) call psetr ('subpage_map_scale',15.e6) call psetc ('map_coastline_colour','black') call psetc ('map_grid_colour','black') call pseti ('map_coastline_thickness',3) call psetc ('map_grid_line_style','dot') call psetr ('map_grid_latitude_increment',5.0) call psetr ('map_grid_longitude_increment',5.0) call psetc ('legend','on') c A vetület kirajzolása call pcoast c A széladatok beolvasása grib fájlból call psetc ('grib_specification','off') call psetc ('grib_input_type','file') call pseti ('grib_wind_position_1',1) call pseti ('grib_wind_position_2',2) call psetc ('grib_input_file_name', x 'data/uv500_tc.grib') call pgrib c A szélmező kirajzolása call pwind c Az geopotenciál-adatok beolvasása grib fájlból call psetc ('grib_input_file_name', x 'data/z500_tc.grib') call pgrib c A geopotenciálmező megjelenítésének beállításai call psetc ('contour_highlight', 'off') call psetc ('contour_line_colour', 'grey') call psetc ('contour_line_style', 'dash') call psetr ('contour_shade_min_level_density',10.) call psetr ('contour_shade_max_level_density', 70.) call psetc ('contour_shade_min_level_colour','green') call psetc ('contour_shade_max_level_colour','red') call psetc ('contour_shade','on') c A geopotenciálmező kirajzolása call pcont c Magics++ bezárása call pclose end
A végeredmény:
Készítette: Homonnai Viktória, V. éves meteorológus hallgató, 2009/2010 I. félév
Az elektronikus oktatóanyag a Korszerű meteorológiai adatformátumok című
speciális kollégium keretén belül készült.
Oktató: dr. Barcza Zoltán