Download source and data
Coloured Observation Values in Circles_TEST
""" BUFR, Geopoints - Coloured Observation Values in Circles """ # **************************** LICENSE START *********************************** # # Copyright 2021 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 # read BUFR data filename = "synop.bufr" if mv.exist(filename): synop_bufr = mv.read(filename) else: synop_bufr = mv.gallery.load_dataset(filename) # filter just the 500 hPa temperature from the obs data (Geopoints) gpt = mv.obsfilter(output="geopoints", parameter="airTemperatureAt2M", data=synop_bufr) # convert values to C units gpt = gpt - 273.16 # define coloured symbols (filled circles) sym = mv.msymb( legend="on", symbol_type="marker", symbol_table_mode="advanced", symbol_advanced_table_selection_type="interval", symbol_advanced_table_interval=1, symbol_advanced_table_min_value=-20, symbol_advanced_table_max_value=40, symbol_advanced_table_max_level_colour="red", symbol_advanced_table_min_level_colour="lavender", symbol_advanced_table_colour_director="clockwise", symbol_advanced_table_marker_list=15, symbol_advanced_table_height_list=1.4, ) # define value (as number) plotting sym_text = mv.msymb( legend="off", symbol_table_mode="advanced", symbol_format="(F3.1)", symbol_advanced_table_selection_type="interval", symbol_advanced_table_interval=1000, symbol_advanced_table_max_level_colour="black", symbol_advanced_table_min_level_colour="black", symbol_advanced_table_colour_director="clockwise", symbol_advanced_table_text_display_mode="centre", symbol_advanced_table_text_font_size=0.35, ) # shaded land and sea coast = mv.mcoast( map_coastline_land_shade="on", map_coastline_land_shade_colour="RGB(0.29,0.29,0.29)", map_coastline_sea_shade="on", map_coastline_sea_shade_colour="RGB(0.35,0.35,0.35)", map_coastline_colour="RGB(0.79,0.79,0.79)", map_boundaries="on", map_boundaries_colour="red", map_grid_latitude_increment=10, map_grid_longitude_increment=20, map_grid_colour="RGB(0.25,0.25,0.25)", ) # adjust the legend legend = mv.mlegend(legend_text_font_size=0.3) # define title title = mv.mtext(text_lines="SYNOP - 2m Temperature", text_font_size=0.4) # set the view area view = mv.geoview( map_area_definition="corners", area=[12, -100, 32, -70], coastlines=coast ) # define the output plot file mv.setoutput(mv.pdf_output(output_name="coloured_obs_values_in_circles")) # plot the data with the style mv.plot(view, gpt, sym, sym_text, legend, title)