![](/wiki/download/attachments/29328261/odb-scatterplot-binning-thumb.png)
# Metview Macro # **************************** LICENSE START *********************************** # # Copyright 2014 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. # ------------------------------------------------------------------ # ODB MARS retrieval - for AMSUA channel 5 (all satellites) db = retrieve( type : "mfb", repres : "bu", obsgroup : "amsua", time : 00, filter : "select an_depar@body,fg_depar@body " & "where vertco_reference_1=5" ) # 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 media to_psfile = ps_output ( output_name : "plot" # extension is added automatically ) # Check the runmode and decide which media to putput the plot to mode = runmode() if (mode = "execute") then setoutput(to_psfile) else if (mode = "batch") then setoutput(to_psfile) else print('screen') end if # Plot plot(scatter_view,bin_plot,bin_grid_shade,title)