ELTE Meteorológiai Tanszék => Oktatás => Magics++ oktatóanyag => Fortran oktatóanyag

[Bevezetés] [Partvonalak és rácshálózat] [Kontúr mezők] [Szélmező]

FORTRAN - MAGICS++

A példaprogramok:

  1. Szélmező ábrázolása szélzászlókkal
  2. Szélmező ábrázolása nyilakkal
  3. Szélmező ábrázolása színesen
  4. Szél- és geopotenciálmező együttes ábrázolása

1. Szélmező ábrázolása szélzászlókkal

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:

A 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:

Az eredmény:

Europai szelmezo

További paraméterek:

Termé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.

Vissza


2. Szélmező ábrázolása nyilakkal

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:

Az eredmény:

Europai szelmezo nyilakkal

További paraméterek:

További beállítási lehetőségek, és információk a paraméterekről az ECMWF honlapján találhatók.

Vissza


3. Szélmező ábrázolása színesen

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:

szines szelmezo

További beállítási lehetőségek, és információk a paraméterekről az ECMWF honlapján találhatók.

Vissza


4. Szél- és geopotenciálmező együttes ábrázolása

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:

szines szelmezo

Vissza


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

Kezdőlap