Download source and data
ODB Scatterplot Example
# Metview Macro # **************************** LICENSE START *********************************** # # Copyright 2018 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 ************************************ # ------------------------------------------------------------------ # Tags: ODB,Cartesian # Title: ODB scatterplot with binning # Description: Demonstrates how to generate a scatterpot from ODB # using binning. # ------------------------------------------------------------------ use_mars = 0 if use_mars then # retrieve from MARS - for AMSUA channel 5 (all satellites) db = retrieve( type : "mfb", repres : "bu", obsgroup : "amsua", time : 00, date : -2, filter : "select an_depar@body,fg_depar@body " & "where vertco_reference_1=5" ) else db = read('amsua.odb') end if # Define binning - with 100 bins both in the horizontal and vertical axes bin_100 = binning( binning_x_count : 100, binning_y_count : 100 ) # Define visualiser for scatterplot with binning bin_plot = odb_visualiser( odb_plot_type : "xy_binning", odb_x_variable : "fg_depar@body", odb_y_variable : "an_depar@body", odb_value_variable : "", #odb_where : "vertco_reference_1@body =5 ", odb_data : db, odb_binning : bin_100 ) # Define grid shading - the binned dataset will be defined on a grid bin_grid_shade = mcont( legend : "on", contour : "off", contour_min_level : 1, contour_shade_min_level : 1, contour_level_count : 20, contour_shade : "on", contour_shade_technique : "grid_shading", contour_shade_method : "area_fill", contour_shade_max_level_colour : "red", contour_shade_min_level_colour : "blue", contour_shade_colour_direction : "clockwise" ) # Define title title = mtext( text_line_count : 1, text_line_1 : "Sensor: AMSU-A Channel: 5 Param: Tb" ) # Define horizontal axis hor_axis = maxis( axis_position : "left", axis_title_text : "fg_depar (K)", axis_tick_interval : 0.5, axis_minor_tick : "on", axis_minor_tick_count : 4, axis_grid : "on", axis_grid_colour : "black", axis_grid_line_style : "dot" ) # Define vertical axis ver_axis = maxis( axis_orientation : "vertical", axis_title_text : "an_depar (K)", axis_tick_interval : 0.5, axis_minor_tick : "on", axis_minor_tick_count : 4, axis_grid : "on", axis_grid_colour : "black", axis_grid_line_style : "dot" ) # Define Catresian view scatter_view = cartesianview( x_min : -1, x_max : 1, y_min : -1, y_max : 1, subpage_y_position : 12.5, subpage_y_length : 75, horizontal_axis : hor_axis, vertical_axis : ver_axis ) # define the output plot file setoutput(pdf_output(output_name : 'odb_scatterplot_binning')) # Plot plot(scatter_view,bin_plot,bin_grid_shade,title)
ODB Scatterplot Example
# Metview Example # **************************** LICENSE START *********************************** # # Copyright 2018 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 ************************************ # ------------------------------------------------------------------ # Tags: ODB,Cartesian # Title: ODB scatterplot with binning # Description: Demonstrates how to generate a scatterpot from ODB # using binning. # ------------------------------------------------------------------ import metview as mv use_mars = 0 if use_mars: # retrieve from MARS - for AMSUA channel 5 (all satellites) db = mv.retrieve( type = "mfb", repres = "bu", obsgroup = "amsua", time = 00, date = -2, filter = "select an_depar@body,fg_depar@body " + "where vertco_reference_1=5" ) else: db = mv.read("amsua.odb") # Define binning - with 100 bins both in the horizontal and vertical axes bin_100 = mv.binning( binning_x_count = 100, binning_y_count = 100 ) # Define visualiser for scatterplot with binning bin_plot = mv.odb_visualiser( odb_plot_type = "xy_binning", odb_x_variable = "fg_depar@body", odb_y_variable = "an_depar@body", odb_value_variable = "", #odb_where = "vertco_reference_1@body =5 ", odb_data = db, odb_binning = bin_100 ) # Define grid shading - the binned dataset will be defined on a grid bin_grid_shade = mv.mcont( legend = "on", contour = "off", contour_min_level = 1, contour_shade_min_level = 1, contour_level_count = 20, contour_shade = "on", contour_shade_technique = "grid_shading", contour_shade_method = "area_fill", contour_shade_max_level_colour = "red", contour_shade_min_level_colour = "blue", contour_shade_colour_direction = "clockwise" ) # Define title title = mv.mtext( text_line_count = 1, text_line_1 = "Sensor: AMSU-A Channel: 5 Param: Tb" ) # Define horizontal axis hor_axis = mv.maxis( axis_position = "left", axis_title_text = "fg_depar (K)", axis_tick_interval = 0.5, axis_minor_tick = "on", axis_minor_tick_count = 4, axis_grid = "on", axis_grid_colour = "black", axis_grid_line_style = "dot" ) # Define vertical axis ver_axis = mv.maxis( axis_orientation = "vertical", axis_title_text = "an_depar (K)", axis_tick_interval = 0.5, axis_minor_tick = "on", axis_minor_tick_count = 4, axis_grid = "on", axis_grid_colour = "black", axis_grid_line_style = "dot" ) # Define Catresian view scatter_view = mv.cartesianview( x_min = -1, x_max = 1, y_min = -1, y_max = 1, subpage_y_position = 12.5, subpage_y_length = 75, horizontal_axis = hor_axis, vertical_axis = ver_axis ) # define the output plot file mv.setoutput(mv.pdf_output(output_name = 'odb_scatterplot_binning')) # Plot mv.plot(scatter_view,bin_plot,bin_grid_shade,title)