def test_latlon(): """Test our handling of lat/lon information.""" data = xr.open_dataset(get_test_data('irma_gfs_example.nc', as_file_obj=False)) img = ImagePlot() img.data = data img.field = 'Temperature_isobaric' img.level = 500 * units.hPa img.time = datetime(2017, 9, 5, 15, 0, 0) contour = ContourPlot() contour.data = data contour.field = 'Geopotential_height_isobaric' contour.level = img.level contour.time = img.time panel = MapPanel() panel.projection = 'lcc' panel.area = 'us' panel.plots = [img, contour] pc = PanelContainer() pc.panel = panel pc.draw() return pc.figure
def test_latlon(): """Test our handling of lat/lon information.""" data = xr.open_dataset(get_test_data('irma_gfs_example.nc', as_file_obj=False)) img = ImagePlot() img.data = data img.field = 'Temperature_isobaric' img.level = 500 * units.hPa img.time = datetime(2017, 9, 5, 15, 0, 0) img.colorbar = None contour = ContourPlot() contour.data = data contour.field = 'Geopotential_height_isobaric' contour.level = img.level contour.time = img.time panel = MapPanel() panel.projection = 'lcc' panel.area = 'us' panel.plots = [img, contour] pc = PanelContainer() pc.panel = panel pc.draw() return pc.figure
def test_show(): """Test that show works properly.""" pc = PanelContainer() # Matplotlib warns when using show with Agg with warnings.catch_warnings(): warnings.simplefilter('ignore', UserWarning) pc.show()
def test_show(set_agg_backend): """Test that show works properly.""" pc = PanelContainer() # Matplotlib warns when using show with Agg with warnings.catch_warnings(): warnings.simplefilter('ignore', UserWarning) pc.show()
def test_save(): """Test that our saving function works.""" pc = PanelContainer() fobj = BytesIO() pc.save(fobj, format='png') fobj.seek(0) # Test that our file object had something written to it. assert fobj.read()
def test_panel(): """Test the functionality of the panel property.""" panel = MapPanel() pc = PanelContainer() pc.panels = [panel] assert pc.panel is panel pc.panel = panel assert pc.panel is panel
def test_copy(): """Test that the copy method works for all classes in `declarative.py`.""" # Copies of plot objects objects = [ImagePlot(), ContourPlot(), FilledContourPlot(), BarbPlot(), PlotObs(), PlotGeometry()] for obj in objects: obj.time = datetime.now() copied_obj = obj.copy() assert obj is not copied_obj assert obj.time == copied_obj.time # Copies of MapPanel and PanelContainer obj = MapPanel() obj.title = 'Sample Text' copied_obj = obj.copy() assert obj is not copied_obj assert obj.title == copied_obj.title obj = PanelContainer() obj.size = (10, 10) copied_obj = obj.copy() assert obj is not copied_obj assert obj.size == copied_obj.size # Copies of plots in MapPanels should not point to same location in memory obj = MapPanel() obj.plots = [PlotObs(), PlotGeometry(), BarbPlot(), FilledContourPlot(), ContourPlot(), ImagePlot()] copied_obj = obj.copy() for i in range(len(obj.plots)): assert obj.plots[i] is not copied_obj.plots[i]
def test_global(): """Test that we can set global extent.""" data = xr.open_dataset(GiniFile(get_test_data('NHEM-MULTICOMP_1km_IR_20151208_2100.gini'))) img = ImagePlot() img.data = data img.field = 'IR' panel = MapPanel() panel.area = 'global' panel.plots = [img] pc = PanelContainer() pc.panel = panel pc.draw() return pc.figure
def test_ndim_error_vector(cfeature): """Make sure we get a useful error when the field is not set.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) barbs = BarbPlot() barbs.data = data barbs.field = ['u_wind', 'v_wind'] barbs.level = None panel = MapPanel() panel.area = (-110, -60, 25, 55) panel.projection = 'lcc' panel.plots = [barbs] pc = PanelContainer() pc.panel = panel with pytest.raises(ValueError): pc.draw()
def test_declarative_image(): """Test making an image plot.""" data = xr.open_dataset(GiniFile(get_test_data('NHEM-MULTICOMP_1km_IR_20151208_2100.gini'))) img = ImagePlot() img.data = data.metpy.parse_cf('IR') img.colormap = 'Greys_r' panel = MapPanel() panel.title = 'Test' panel.plots = [img] pc = PanelContainer() pc.panel = panel pc.draw() assert panel.ax.get_title() == 'Test' return pc.figure
def test_projection_object(): """Test that we can pass a custom map projection.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.level = 700 * units.hPa contour.field = 'Temperature' panel = MapPanel() panel.area = (-110, -60, 25, 55) panel.projection = ccrs.Mercator() panel.layers = [cfeature.LAKES] panel.plots = [contour] pc = PanelContainer() pc.panel = panel pc.draw() return pc.figure
def test_projection_object(ccrs, cfeature): """Test that we can pass a custom map projection.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.level = 700 * units.hPa contour.field = 'Temperature' panel = MapPanel() panel.area = (-110, -60, 25, 55) panel.projection = ccrs.Mercator() panel.layers = [cfeature.LAKES] panel.plots = [contour] pc = PanelContainer() pc.panel = panel pc.draw() return pc.figure
def test_ndim_error_scalar(cfeature): """Make sure we get a useful error when the field is not set.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Temperature' contour.level = None panel = MapPanel() panel.area = (-110, -60, 25, 55) panel.projection = 'lcc' panel.layers = [cfeature.LAKES] panel.plots = [contour] pc = PanelContainer() pc.panel = panel with pytest.raises(ValueError): pc.draw()
def test_declarative_sfc_obs_full(ccrs): """Test making a full surface observation plot.""" data = pd.read_csv(get_test_data('SFC_obs.csv', as_file_obj=False), infer_datetime_format=True, parse_dates=['valid']) obs = PlotObs() obs.data = data obs.time = datetime(1993, 3, 12, 13) obs.time_window = timedelta(minutes=15) obs.level = None obs.fields = ['tmpf', 'dwpf', 'emsl', 'cloud_cover', 'wxsym'] obs.locations = ['NW', 'SW', 'NE', 'C', 'W'] obs.colors = ['red', 'green', 'black', 'black', 'blue'] obs.formats = [None, None, lambda v: format(10 * v, '.0f')[-3:], 'sky_cover', 'current_weather'] obs.vector_field = ('uwind', 'vwind') obs.reduce_points = 1 # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.area = (-124, -72, 20, 53) panel.area = 'il' panel.projection = ccrs.PlateCarree() panel.layers = ['coastline', 'borders', 'states'] panel.plots = [obs] # Bringing it all together pc = PanelContainer() pc.size = (10, 10) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_smooth_field(): """Test the smoothing of the field with smooth_field trait.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Geopotential_height' contour.level = 700 * units.hPa contour.contours = list(range(0, 4000, 30)) contour.linewidth = 1 contour.linecolor = 'black' contour.smooth_field = 3 panel = MapPanel() panel.area = 'us' panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour] pc = PanelContainer() pc.size = (10.5, 10.5) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_contour_convert_units(fix_is_closed_polygon): """Test making a contour plot.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Temperature' contour.level = 700 * units.hPa contour.contours = 30 contour.linewidth = 1 contour.linecolor = 'red' contour.linestyle = 'dashed' contour.clabels = True contour.plot_units = 'degC' panel = MapPanel() panel.area = 'us' panel.proj = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_colored_barbs(ccrs): """Test making a surface plot with a colored barb (gh-1274).""" data = pd.read_csv(get_test_data('SFC_obs.csv', as_file_obj=False), infer_datetime_format=True, parse_dates=['valid']) obs = PlotObs() obs.data = data obs.time = datetime(1993, 3, 12, 13) obs.level = None obs.vector_field = ('uwind', 'vwind') obs.vector_field_color = 'red' obs.reduce_points = .5 # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.projection = ccrs.PlateCarree() panel.area = 'NE' panel.layers = ['states'] panel.plots = [obs] # Bringing it all together pc = PanelContainer() pc.size = (10, 10) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_station_plot_fontsize(): """Test adjusting the font size for station plots in PlotObs.""" data = parse_metar_file(get_test_data('metar_20190701_1200.txt', as_file_obj=False), year=2019, month=7) obs = PlotObs() obs.data = data obs.time = datetime(2019, 7, 1, 12) obs.time_window = timedelta(minutes=15) obs.level = None obs.fields = ['cloud_coverage', 'air_temperature', 'dew_point_temperature', 'air_pressure_at_sea_level', 'current_wx1_symbol'] obs.plot_units = [None, 'degF', 'degF', None, None] obs.locations = ['C', 'NW', 'SW', 'NE', 'W'] obs.formats = ['sky_cover', None, None, lambda v: format(v * 10, '.0f')[-3:], 'current_weather'] obs.reduce_points = 3 obs.vector_field = ['eastward_wind', 'northward_wind'] obs.fontsize = 8 panel = MapPanel() panel.area = 'centus' panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [obs] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_colorbar_fontsize(): """Test adjusting the font size of a colorbar.""" data = xr.open_dataset(get_test_data('GFS_test.nc', as_file_obj=False)) cfill = FilledContourPlot() cfill.data = data cfill.field = 'Temperature_isobaric' cfill.level = 300 * units.hPa cfill.time = datetime(2010, 10, 26, 12) cfill.contours = list(range(210, 250, 2)) cfill.colormap = 'BuPu' cfill.colorbar = 'horizontal' cfill.colorbar_fontsize = 'x-small' panel = MapPanel() panel.area = (-124, -72, 20, 53) panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [cfill] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_title_fontsize(): """Test adjusting the font size of a MapPanel's title text.""" data = xr.open_dataset(get_test_data('NAM_test.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Geopotential_height_isobaric' contour.level = 300 * units.hPa contour.linewidth = 2 contour.contours = list(range(0, 2000, 12)) contour.scale = 1e-1 panel = MapPanel() panel.area = (-124, -72, 20, 53) panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour] panel.title = '300 mb Geopotential Height' panel.title_fontsize = 20 pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_multiple_sfc_obs_change_units(ccrs): """Test making a surface observation plot.""" data = parse_metar_file(get_test_data('metar_20190701_1200.txt', as_file_obj=False), year=2019, month=7) obs = PlotObs() obs.data = data obs.time = datetime(2019, 7, 1, 12) obs.time_window = timedelta(minutes=15) obs.level = None obs.fields = ['air_temperature', 'dew_point_temperature', 'air_pressure_at_sea_level'] obs.locations = ['NW', 'W', 'NE'] obs.colors = ['red', 'green', 'black'] obs.reduce_points = 0.75 obs.plot_units = ['degF', 'degF', None] # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.projection = ccrs.PlateCarree() panel.area = 'in' panel.layers = ['states'] panel.plots = [obs] # Bringing it all together pc = PanelContainer() pc.size = (12, 12) pc.panels = [panel] pc.draw() return pc.figure
def test_attribute_error_station(ccrs): """Make sure we get a useful error when the station variable is not found.""" data = pd.read_csv(get_test_data('SFC_obs.csv', as_file_obj=False), infer_datetime_format=True, parse_dates=['valid']) data.rename(columns={'station': 'location'}, inplace=True) obs = PlotObs() obs.data = data obs.time = datetime(1993, 3, 12, 12) obs.level = None obs.fields = ['tmpf'] obs.time_window = timedelta(minutes=15) # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.projection = ccrs.PlateCarree() panel.area = 'in' panel.layers = ['states'] panel.plots = [obs] panel.title = f'Surface Observations for {obs.time}' # Bringing it all together pc = PanelContainer() pc.size = (10, 10) pc.panels = [panel] with pytest.raises(AttributeError): pc.draw()
def test_declarative_upa_obs(): """Test making a full upperair observation plot.""" data = pd.read_csv(get_test_data('UPA_obs.csv', as_file_obj=False)) obs = PlotObs() obs.data = data obs.time = datetime(1993, 3, 14, 0) obs.level = 500 * units.hPa obs.fields = ['temperature', 'dewpoint', 'height'] obs.locations = ['NW', 'SW', 'NE'] obs.formats = [None, None, lambda v: format(v, '.0f')[:3]] obs.vector_field = ('u_wind', 'v_wind') obs.vector_field_length = 7 obs.reduce_points = 0 # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.area = (-124, -72, 20, 53) panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'states', 'land'] panel.plots = [obs] # Bringing it all together pc = PanelContainer() pc.size = (15, 10) pc.panels = [panel] pc.draw() obs.level = 300 * units.hPa return pc.figure
def test_declarative_sfc_obs_changes(ccrs): """Test making a surface observation plot, changing the field.""" data = pd.read_csv(get_test_data('SFC_obs.csv', as_file_obj=False), infer_datetime_format=True, parse_dates=['valid']) obs = PlotObs() obs.data = data obs.time = datetime(1993, 3, 12, 12) obs.level = None obs.fields = ['tmpf'] obs.colors = ['black'] obs.time_window = timedelta(minutes=15) # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.projection = ccrs.PlateCarree() panel.area = 'in' panel.layers = ['states'] panel.plots = [obs] panel.title = f'Surface Observations for {obs.time}' # Bringing it all together pc = PanelContainer() pc.size = (10, 10) pc.panels = [panel] pc.draw() obs.fields = ['dwpf'] obs.colors = ['green'] return pc.figure
def test_declarative_sfc_text(): """Test making a surface observation plot with text.""" data = pd.read_csv(get_test_data('SFC_obs.csv', as_file_obj=False), infer_datetime_format=True, parse_dates=['valid']) obs = PlotObs() obs.data = data obs.time = datetime(1993, 3, 12, 12) obs.time_window = timedelta(minutes=15) obs.level = None obs.fields = ['station'] obs.colors = ['black'] obs.formats = ['text'] # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.projection = 'lcc' panel.area = 'in' panel.layers = ['states'] panel.plots = [obs] # Bringing it all together pc = PanelContainer() pc.size = (10, 10) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_smooth_contour(): """Test making a contour plot using smooth_contour.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Temperature' contour.level = 700 * units.hPa contour.contours = 30 contour.linewidth = 1 contour.linecolor = 'red' contour.smooth_contour = 5 panel = MapPanel() panel.area = 'us' panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour] pc = PanelContainer() pc.size = (8.0, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_plotobs_units_with_formatter(ccrs): """Test using PlotObs with a field that both has units and a custom formatter.""" df = pd.read_csv(get_test_data('SFC_obs.csv', as_file_obj=False), infer_datetime_format=True, parse_dates=['valid']) df.units = {'alti': 'inHg'} # Plot desired data obs = PlotObs() obs.data = df obs.time = datetime(1993, 3, 12, 12) obs.time_window = timedelta(minutes=15) obs.level = None obs.fields = ['alti'] obs.plot_units = ['hPa'] obs.locations = ['NE'] # Set a format for plotting MSLP obs.formats = [lambda v: format(v * 10, '.0f')[-3:]] obs.reduce_points = 0.75 # Panel for plot with Map features panel = MapPanel() panel.layout = (1, 1, 1) panel.projection = 'lcc' panel.area = 'in' panel.plots = [obs] # Bringing it all together pc = PanelContainer() pc.panels = [panel] pc.size = (10, 10) pc.draw() return pc.figure
def test_declarative_global_gfs(): """Test making a global contour plot using GFS.""" data = xr.open_dataset(get_test_data('GFS_global.nc', as_file_obj=False)) cntr = ContourPlot() cntr.data = data cntr.time = datetime(2021, 1, 30, 12) cntr.field = 'Geopotential_height_isobaric' cntr.level = 300 * units.hPa cntr.contours = np.arange(0, 100000, 120).tolist() cntr.linecolor = 'darkblue' cntr.linewidth = 1 panel = MapPanel() panel.area = [-180, 180, 10, 90] panel.projection = 'ps' panel.layers = ['coastline'] panel.plots = [cntr] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_barb_scale(): """Test making a contour plot.""" data = xr.open_dataset(get_test_data('GFS_test.nc', as_file_obj=False)) barb = BarbPlot() barb.data = data barb.level = 300 * units.hPa barb.field = ['u-component_of_wind_isobaric', 'v-component_of_wind_isobaric'] barb.skip = (3, 3) barb.earth_relative = False barb.scale = 2 panel = MapPanel() panel.area = 'us' panel.projection = 'data' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [barb] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() barb.level = 700 * units.hPa return pc.figure
def test_declarative_overlay_projections(): """Test making a contour plot.""" data = xr.open_dataset(get_test_data('NAM_test.nc', as_file_obj=False)) data2 = xr.open_dataset(get_test_data('GFS_test.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Geopotential_height_isobaric' contour.level = 300 * units.hPa contour.linecolor = 'red' contour.linestyle = '-' contour.linewidth = 2 contour.contours = np.arange(0, 20000, 120).tolist() contour2 = ContourPlot() contour2.data = data2 contour2.field = 'Geopotential_height_isobaric' contour2.level = 300 * units.hPa contour2.linecolor = 'blue' contour2.linestyle = '-' contour2.linewidth = 2 contour2.contours = np.arange(0, 20000, 120).tolist() panel = MapPanel() panel.area = (-124, -72, 20, 53) panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour, contour2] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_gridded_scale(): """Test making a contour plot.""" data = xr.open_dataset(get_test_data('NAM_test.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Geopotential_height_isobaric' contour.level = 300 * units.hPa contour.linewidth = 2 contour.contours = np.arange(0, 2000, 12).tolist() contour.scale = 1e-1 contour.clabels = True panel = MapPanel() panel.area = (-124, -72, 20, 53) panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_barb_earth_relative(): """Test making a contour plot.""" data = xr.open_dataset(get_test_data('NAM_test.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Geopotential_height_isobaric' contour.level = 300 * units.hPa contour.linecolor = 'red' contour.linestyle = '-' contour.linewidth = 2 contour.contours = range(0, 20000, 120) barb = BarbPlot() barb.data = data barb.level = 300 * units.hPa barb.time = datetime(2016, 10, 31, 12) barb.field = ['u-component_of_wind_isobaric', 'v-component_of_wind_isobaric'] barb.skip = (5, 5) barb.color = 'black' barb.barblength = 6.5 barb.earth_relative = False panel = MapPanel() panel.area = (-124, -72, 20, 53) panel.projection = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour, barb] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_barb_options(): """Test making a contour plot.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) barb = BarbPlot() barb.data = data barb.level = 300 * units.hPa barb.field = ['u_wind', 'v_wind'] barb.skip = (10, 10) barb.color = 'blue' barb.pivot = 'tip' barb.barblength = 6.5 panel = MapPanel() panel.area = 'us' panel.projection = 'data' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [barb] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
def test_declarative_events(): """Test that resetting traitlets properly propagates.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Temperature' contour.level = 850 * units.hPa contour.contours = 30 contour.linewidth = 1 contour.linecolor = 'red' img = ImagePlot() img.data = data img.field = 'v_wind' img.level = 700 * units.hPa img.colormap = 'hot' img.image_range = (3000, 5000) panel = MapPanel() panel.area = 'us' panel.proj = 'lcc' panel.layers = ['coastline', 'borders', 'states'] panel.plots = [contour, img] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() # Update some properties to make sure it regenerates the figure contour.linewidth = 2 contour.linecolor = 'green' contour.level = 700 * units.hPa contour.field = 'Specific_humidity' img.field = 'Geopotential_height' img.colormap = 'plasma' return pc.figure
def test_declarative_contour(): """Test making a contour plot.""" data = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False)) contour = ContourPlot() contour.data = data contour.field = 'Temperature' contour.level = 700 * units.hPa contour.contours = 30 contour.linewidth = 1 contour.linecolor = 'red' panel = MapPanel() panel.area = 'us' panel.proj = 'lcc' panel.layers = ['coastline', 'borders', 'usstates'] panel.plots = [contour] pc = PanelContainer() pc.size = (8, 8) pc.panels = [panel] pc.draw() return pc.figure
########################### # Create a contour plot of temperature contour = ContourPlot() contour.data = narr contour.field = 'Temperature' contour.level = 850 * units.hPa contour.linecolor = 'red' contour.contours = 15 ########################### # Create an image plot of Geopotential height img = ImagePlot() img.data = narr img.field = 'Geopotential_height' img.level = 850 * units.hPa ########################### # Plot the data on a map panel = MapPanel() panel.area = 'us' panel.layers = ['coastline', 'borders', 'states', 'rivers', 'ocean', 'land'] panel.title = 'NARR Example' panel.plots = [contour, img] pc = PanelContainer() pc.size = (10, 8) pc.panels = [panel] pc.show()
# Distributed under the terms of the BSD 3-Clause License. # SPDX-License-Identifier: BSD-3-Clause """ Simple Plotting =============== Demonstrate the use of MetPy's simplified plotting interface. Plots a sample satellite image file. """ import xarray as xr from metpy.cbook import get_test_data from metpy.io import GiniFile from metpy.plots import ImagePlot, MapPanel, PanelContainer data = xr.open_dataset(GiniFile(get_test_data('NHEM-MULTICOMP_1km_IR_20151208_2100.gini'))) img = ImagePlot() img.data = data img.field = 'IR' img.colormap = 'Greys_r' panel = MapPanel() panel.plots = [img] pc = PanelContainer() pc.panels = [panel] pc.show()