Download source and data
Cross Section Going Through the South Pole Example
#Metview Macro # **************************** LICENSE START *********************************** # # Copyright 2020 ECMWF. This software is distributed under the terms # of the Apache License version 2.0. In applying this license, ECMWF does not # waive the privileges and immunities granted to it by virtue of its status as # an Intergovernmental Organization or submit itself to any jurisdiction. # # ***************************** LICENSE END ************************************ # # get input (pressure level) data use_mars = 0 # 0 or 1 # retrieve analysis data from MARS if use_mars = 1 then f_o3 = retrieve( levelist : [1000,850,700,500,400,300,250,200,150,100,70,50,30,20,10,7,5,3,2,1], param : "o3", date : 20191015, time : 12, area : [-65,-180,-90,180], grid : [1,1] ) # read data from file else f_o3 = read("ozone_pl.grib") end if # --------------------------- # Cross section # ---------------------------- # define cross section line via the South Pole going # from [65S, 10E] to [65S, 170W]. line = [-65,10,-115,10] # define vertical axis vertical_axis = maxis( axis_tick_label_height: 0.4 ) # define cross section view wind projected to the normal vector of the # cross section plane xs = mxsectview( bottom_level : 100, top_level : 1, line : line, wind_parallel : "off", wind_perpendicular : "on", wind_intenisty : "off", vertical_scaling : "log", vertical_axiix : vertical_axis ) # define contour shading for ozone o3_shade = mcont( legend : "on", contour_line_colour : "charcoal", contour_highlight : "off", contour_max_level : 1.5E-5, contour_min_level : 0, contour_shade : "on", contour_shade_colour_method : "palette", contour_shade_method : "area_fill", contour_shade_palette_name : "m_blue_green2_10", grib_scaling_of_retrieved_fields: "off" ) # --------------------------------------------- # Map view with cross section line # --------------------------------------------- # define coastlines coast = mcoast( map_coastline_thickness : 3, map_grid_longitude_increment : 30, map_label : "off", map_coastline_land_shade : "on", map_coastline_land_shade_colour: "grey" ) # define map view map = geoview( map_projection : "polar_stereographic", map_area_definition : "corners", area : [-50.67,-148.88,-50.2,30.29], map_hemisphere : "south", map_vertical_longitude : 160, coastlines : coast, subpage_y_lenght : 75 ) # cross section line visualiser vis_line = input_visualiser( input_plot_type : "geo_points", input_longitude_values : [line[2],line[4]], input_latitude_values : [line[1],line[3]] ) graph_line = mgraph( graph_line_colour : "red", graph_line_thickness : 4 ) # --------------------------------------------- # Define layout # -------------------------------------------- map_page = plot_page( bottom: 30, view : map ) xs_page = plot_page( top : 30, view : xs ) dw = plot_superpage( pages : [map_page, xs_page] ) # --------------------------------------------- # Generate plot # -------------------------------------------- # xs legend xs_legend = mlegend(legend_text_font_size: "0.35") # xs title xs_title = mtext(text_font_size: "0.45") # define the output plot file setoutput(pdf_output(output_name : 'cross_section_via_pole')) # generate plot plot(dw[1], vis_line, graph_line) plot(dw[2], f_o3, o3_shade, xs_legend, xs_title)
Cross Section Going Through the South Pole Example
""" Cross Section Going Through the South Pole ============================================ """ # **************************** LICENSE START *********************************** # # Copyright 2020 ECMWF. This software is distributed under the terms # of the Apache License version 2.0. In applying this license, ECMWF does not # waive the privileges and immunities granted to it by virtue of its status as # an Intergovernmental Organization or submit itself to any jurisdiction. # # ***************************** LICENSE END ************************************ # import metview as mv # get input (pressure level) data use_mars = False # retrieve analysis data from MARS if use_mars: f_o3 = mv.retrieve( levelist=[ 1000, 850, 700, 500, 400, 300, 250, 200, 150, 100, 70, 50, 30, 20, 10, 7, 5, 3, 2, 1, ], param="o3", date=20191015, time=12, area=[-65, -180, -90, 180], grid=[1, 1], ) # read data from file else: f_o3 = mv.read("ozone_pl.grib") # --------------------------- # Cross section # ---------------------------- # define cross section line via the South Pole going # from [65S, 10E] to [65S, 170W]. line = [-65, 10, -115, 10] # define vertical axis vertical_axis = mv.maxis(axis_tick_label_height=0.4) # define cross section view wind projected to the normal vector of the # cross section plane xs = mv.mxsectview( bottom_level=100, top_level=1, line=line, wind_parallel="off", wind_perpendicular="on", wind_intenisty="off", vertical_scaling="log", vertical_axiix=vertical_axis, ) # define contour shading for ozone o3_shade = mv.mcont( legend="on", contour_line_colour="charcoal", contour_highlight="off", contour_max_level=1.5e-5, contour_min_level=0, contour_shade="on", contour_shade_colour_method="palette", contour_shade_method="area_fill", contour_shade_palette_name="m_blue_green2_10", grib_scaling_of_retrieved_fields="off", ) # --------------------------------------------- # Map view with cross section line # --------------------------------------------- # define coastlines coast = mv.mcoast( map_coastline_thickness=3, map_grid_longitude_increment=30, map_label="off", map_coastline_land_shade="on", map_coastline_land_shade_colour="grey", ) # define map view map = mv.geoview( map_projection="polar_stereographic", map_area_definition="corners", area=[-50.67, -148.88, -50.2, 30.29], map_hemisphere="south", map_vertical_longitude=160, coastlines=coast, subpage_y_lenght=75, ) # cross section line visualiser vis_line = mv.input_visualiser( input_plot_type="geo_points", input_longitude_values=[line[1], line[3]], input_latitude_values=[line[0], line[2]], ) graph_line = mv.mgraph(graph_line_colour="red", graph_line_thickness=4) # --------------------------------------------- # Define layout # -------------------------------------------- map_page = mv.plot_page(bottom=30, view=map) xs_page = mv.plot_page(top=30, view=xs) dw = mv.plot_superpage(pages=[map_page, xs_page]) # --------------------------------------------- # Generate plot # -------------------------------------------- # xs legend xs_legend = mv.mlegend(legend_text_font_size="0.35") # xs title xs_title = mv.mtext(text_font_size="0.45") # define the output plot file mv.setoutput(mv.pdf_output(output_name = 'cross_section_via_pole')) # generate plot mv.plot(dw[0], vis_line, graph_line, dw[1], f_o3, o3_shade, xs_legend, xs_title)