def test_plot_gridded_3d_exits_with_CISError(self): variable = valid_cis_gridded_output_variable filename = valid_cis_gridded_output_filename out_name = '3d_out.png' args = ['plot', variable + ':' + filename, '-o', out_name] main_arguments = parse_args(args) plot_cmd(main_arguments)
def test_should_do_scatter_plot_of_valid_2d_file(self): # Actual file name: xglnwa.pm.k8dec-k9nov.col.tm.nc arguments = ['plot', valid_1d_variable+':'+valid_2d_filename, '--output', valid_2d_filename+'.png'] main_arguments = parse_args(arguments) plot_cmd(main_arguments) # Remove plotted file, will throw an OSError if file was not created os.remove(valid_2d_filename+'.png')
def test_iris_contourf(self): arguments = ["plot", "rain:" + escape_colons(valid_2d_filename), "--type", "contourf", "--ylabel", "Overidden Y Label", "--height", "5", "--width", "10", "--ymin", "15", "--ymax", "45", "--ystep", "10", "--nocolourbar", "--output", self.id() + ".png"] main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_iris_comparative_scatter(self): arguments = ["plot", "rain:" + escape_colons(valid_2d_filename) + ":color=green,itemstyle=^,itemwidth=40", "snow:" + escape_colons(valid_2d_filename), "--type", "comparativescatter", "--logx", "--logy", "--output", self.id() + ".png"] main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_other_histogram3d_doesnt_plot_coastlines(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type histogram3d".split() arguments = ["plot", "RVOD_liq_water_content:" + valid_cloudsat_RVOD_file, "Height:" + valid_cloudsat_RVOD_file] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_iris_histogram3d(self): opts = "--cmap RdBu --ylabel overiddeny --title overiddentitle --xmin 0.000002 --xmax 0.000006 " \ "--ybinwidth 0.000001 --output ".split() + [self.id() + ".png"] arguments = ["plot", "rain:" + valid_1d_filename, "snow:" + valid_1d_filename, "--type", "histogram3d"] + opts main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_iris_histogram(self): opts = "--xbins 5 --ymin 1 --logy --output".split() + [self.id() + ".png"] arguments = ["plot", "rain:" + escape_colons(valid_1d_filename) + ":color=red,itemstyle=step,label=overridenlabel", "snow:" + escape_colons(valid_1d_filename) + ":color=green,itemstyle=step", "--type", "histogram"] + opts main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_iris_one_line_with_step(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--ystep 0.00001 --xstep 25".split() arguments = ["plot", "rain:" + escape_colons(valid_1d_filename) ] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_plot_ungridded_histogram2d(self): filename = valid_GASSP_station_filename variable = valid_GASSP_station_vars[0] out_name = 'histogram2d.png' args = ['plot', variable + ':' + filename, '--type', 'histogram2d', '-o', out_name] args = parse_args(args) plot_cmd(args) os.remove(out_name)
def test_plot_heatmap_vertical_cbar(self): var = valid_echamham_variable_1 filename = valid_echamham_filename out_name = 'cbarv.png' args = ['plot', var + ':' + filename, '--cbarorient', 'vertical', '-o', out_name] args = parse_args(args) plot_cmd(args) os.remove(out_name)
def test_plot_ungridded_heatmap(self): filename = valid_GASSP_station_filename variable = valid_GASSP_station_vars[0] args = [ 'plot', variable + ':' + escape_colons(filename), '--type', 'heatmap' ] args = parse_args(args) plot_cmd(args)
def test_plot_heatmap_cbar_scale(self): var = valid_echamham_variable_1 filename = valid_echamham_filename out_name = 'cbarscale.png' args = ['plot', var + ':' + filename, '--cbarscale', '0.75', '-o', out_name] args = parse_args(args) plot_cmd(args) os.remove(out_name)
def test_should_do_scatter_plot_of_file_valid_aerosol_cci_file(self): # Actual file name: 20080612093821-ESACCI-L2P_AEROSOL-ALL-AATSR_ENVISAT-ORAC_32855-fv02.02.nc arguments = ['plot', valid_aerosol_cci_variable+':'+valid_aerosol_cci_filename, '--output', valid_aerosol_cci_filename+'.png'] main_arguments = parse_args(arguments) plot_cmd(main_arguments) # Remove plotted file, will throw an OSError if file was not created os.remove(valid_aerosol_cci_filename+'.png')
def test_iris_scatter(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type scatter --title overiddentitle --fontsize 10 --width 7 --ymin=-0.0005" \ " --ymax 0.0005".split() arguments = ["plot", "rain:" + escape_colons(valid_1d_filename) + ":itemstyle=^,itemwidth=30"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_scatter2d(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type scatter2d --title overiddentitle --vmax 175 --logy --xaxis Latitude" \ " --yaxis Height".split() arguments = ["plot", "RVOD_liq_water_content:" + escape_colons(valid_cloudsat_RVOD_file) + ":cmap=RdBu,itemwidth=20"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_scatter(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type scatter --xlabel overiddenx --ylabel overiddeny --title overiddentitle" \ " --fontsize 15 --height 5 --width 6 --logy --grid".split() arguments = ["plot", "AOT_440:" + escape_colons(valid_aeronet_filename) + ":itemwidth=2"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_many_scatter_points_given_color(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type scatter --ylabel overiddenylabel --ymin 0.1 --ymax 1 --logy".split() arguments = ["plot", "AOT_440:" + escape_colons(valid_aeronet_filename), "AOT_870:" + escape_colons(valid_aeronet_filename) + ":color=blue,itemstyle=x,itemwidth=4"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_iris_contour(self): arguments = ["plot", "rain:" + escape_colons(valid_2d_filename) + ":cmap=RdBu", "--type", "contour", "--xlabel", "Overidden X Label", "--title", "Overidded Title", "--height", "5", "--width", "5", "--xmin", "15", "--xmax", "45", "--xstep", "20", "--cbarorient", "vertical", "--fontsize", "10", "--output", self.id() + ".png"] main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_other_histogram(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type histogram --xlabel overiddenx --fontsize 10 --height 10 --width 10 --xmin 0 --xmax 1.5" \ " --xbins 20 --grid".split() arguments = ["plot", "AOT_440:" + escape_colons(valid_aeronet_filename) + ":itemstyle=step"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_contourf(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type contourf --xlabel overiddenxlabel --fontsize 15 --height 10 --ymin 0 --ymax 10000" \ " --vmin 0 --cbarorient horizontal --grid --xaxis Latitude --yaxis Height".split() arguments = ["plot", "RVOD_liq_water_content:" + escape_colons(valid_cloudsat_RVOD_file) + ":cmap=RdBu,itemwidth=4"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_aeronet_default_axes(self): output_file_opt = ["--output", self.id() + ".png"] opts = [] arguments = ["plot", valid_aeronet_variable + ":" + escape_colons(valid_aeronet_filename)] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_iris_heatmap_force_minus_180_to_180(self): arguments = ["plot", "rain:" + escape_colons(valid_2d_filename) + ":cmap=RdBu", "--type", "heatmap", "--ylabel", "Overidden Y", "--title", "OveriddenTitle", "--xmin", "-180", "--xmax", "180", "--height", "3.5", "--width", "3.5", "--vmax", "0.000135", "--fontsize", "10", "--output", self.id() + ".png"] main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_iris_one_line(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--xlabel overiddenxlabel --title overiddentitle --height 5 --width 10 --logx" \ " --grid".split() arguments = ["plot", "rain:" + escape_colons(valid_1d_filename) + ":itemstyle=dashed,label=overiddenlabel,itemwidth=4"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_iris_many_lines(self): opts = "--xlabel overiddenxlabel --ylabel overiddenylabel --width 10 --logy --grid " \ "--ymin 0.00000000001 --xmax 50 --output".split() + [self.id() + ".png"] arguments = ["plot", "rain:" + escape_colons(valid_1d_filename) + ":color=red,itemwidth=5", "snow:" + escape_colons(valid_1d_filename) + ":itemstyle=dashed,itemwidth=5,label=overiddenlabel2"] + opts main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_iris_histogram2d(self): opts = "--cmap RdBu --ylabel overiddeny --title overiddentitle --xmin 0.000002 --xmax 0.000006 " \ "--ybins 20 --output ".split() + [self.id() + ".png"] arguments = ["plot", "rain:" + escape_colons(valid_1d_filename), "snow:" + escape_colons(valid_1d_filename), "--type", "histogram2d"] + opts main_arguments = parse_args(arguments) plot_cmd(main_arguments) self.check_graphic()
def test_polar_projection(self): output_file_opt = ["--output", self.id() + ".png"] opts = ["--projection=NorthPolarStereo"] arguments = ["plot", valid_aerosol_cci_variable + ":" + escape_colons(valid_aerosol_cci_filename)] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_contour(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type contour --ylabel overiddenylabel --title overiddentitle --vmin 0 --cbarorient vertical --grid" \ " --xaxis Latitude --yaxis Height".split() arguments = ["plot", "RVOD_liq_water_content:" + escape_colons(valid_cloudsat_RVOD_file) + ":cmap=RdBu"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_setting_xrange_using_datetimes(self): output_file_opt = ["--output", self.id() + ".png"] opts = ["--xmin=2003-08-01", "--xmax=2003-12-01T12:30:12"] arguments = ["plot", valid_aeronet_variable + ":" + escape_colons(valid_aeronet_filename)] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_one_line(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type line --xlabel overiddenx --title overiddentitle --fontsize 7 --height 7" \ " --ymin 0.1 --ymax 1 --logy".split() arguments = ["plot", "AOT_440:" + escape_colons(valid_aeronet_filename) + ":itemstyle=dashed,label=overiddenlabel,itemwidth=4"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_should_do_plot_of_hybrid_pressure_using_calculated_air_pressure_variable(self): # Actual file name: hybrid-pressure.nc # Trac issue #416 (fixed in IRIS v.1.7.1) arguments = ['plot', valid_hybrid_pressure_variable+':'+valid_hybrid_pressure_filename, '--xaxis', 'air_pressure', '--output', valid_hybrid_pressure_filename+'.png'] main_arguments = parse_args(arguments) plot_cmd(main_arguments) # Remove plotted file, will throw an OSError if file was not created os.remove(valid_hybrid_pressure_filename+'.png')
def test_plot_gridded_3d_exits_with_ValueError(self): variable = valid_cis_gridded_output_variable filename = valid_cis_gridded_output_filename out_name = '3d_out.png' args = [ 'plot', variable + ':' + escape_colons(filename) + ":product=NetCDF_Gridded", '-o', out_name ] main_arguments = parse_args(args) plot_cmd(main_arguments)
def test_should_do_scatter_plot_of_valid_2d_file_with_x_as_lat_y_as_long(self): # Actual file name: xglnwa.pm.k8dec-k9nov.col.tm.nc # Trac issue #153 arguments = ['plot', valid_1d_variable+':'+valid_2d_filename, '--xaxis', 'latitude', '--yaxis', 'longitude', '--output', valid_2d_filename+'.png'] main_arguments = parse_args(arguments) plot_cmd(main_arguments) # Remove plotted file, will throw an OSError if file was not created os.remove(valid_2d_filename+'.png')
def test_should_do_plot_of_hybrid_height_when_formula_terms_not_marked_as_coordinates(self): # Actual file name: hybrid-height.nc # Trac issue #417 (fixed in IRIS v.1.7.1) arguments = ['plot', valid_hybrid_height_flat_variable+':'+valid_hybrid_height_flat_filename, '--output', valid_hybrid_height_filename+'.png'] main_arguments = parse_args(arguments) plot_cmd(main_arguments) # Remove plotted file, will throw an OSError if file was not created os.remove(valid_hybrid_height_filename+'.png')
def test_plot_gridded_2d_with_flattened_time(self): variable = valid_cis_gridded_output_variable filename = valid_cis_gridded_output_filename args = ['subset', variable + ':' + filename, 't=[2007-06-07T15]', '-o', self.OUTPUT_FILENAME] args = parse_args(args) subset_cmd(args) out_name = '3d_out.png' args = ['plot', variable + ':' + self.OUTPUT_FILENAME, '-o', out_name] main_arguments = parse_args(args) plot_cmd(main_arguments)
def test_other_histogram_bin_width(self): output_file_opt = ["--output", self.id() + ".png"] opts = " --type histogram --xbins 3".split() arguments = ["plot", "AOT_440:" + escape_colons(valid_aeronet_filename) + ":itemstyle=step", "AOT_870:" + escape_colons(valid_aeronet_filename) + ":itemstyle=step"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_histogram2d_doesnt_plot_coastlines(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type histogram2d".split() arguments = ["plot", "RVOD_liq_water_content:" + escape_colons(valid_cloudsat_RVOD_file), "Height:" + escape_colons(valid_cloudsat_RVOD_file)] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_other_many_lines(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type line --ylabel overiddenylabel --ymin 0.1 --ymax 1 --logy".split() arguments = ["plot", "AOT_440:" + escape_colons(valid_aeronet_filename) + ":color=green,itemstyle=dotted,itemwidth=2", "AOT_870:" + escape_colons(valid_aeronet_filename) + ":itemstyle=dashed,itemwidth=2", "AOT_1020:" + escape_colons(valid_aeronet_filename) + ":color=red,itemwidth=2"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_iris_contour_over_heatmap_binary_cmap(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--xmin -180 --xmax 180 --width 20 --height 15 --cbarscale 0.5".split() arguments = ["plot", "rain:" + escape_colons(valid_2d_filename) + ":type=heatmap,cmap=binary,cbarorient=vertical", "solarupclear:" + escape_colons(valid_2d_filename) + ":type=contour,cmap=jet,contlevels=[1,10,25,50,175],cbarorient=vertical"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_transparent_contour_over_bluemarble(self): output_file_opt = ["--output", self.id() + ".png"] opts = "--type contourf --xmin -180 --xmax 180 --width 20 --height 15 --cbarscale 0.5" \ " --nasabluemarble".split() arguments = ["plot", "rain:" + escape_colons(valid_2d_filename) + ":cmap=Reds,alpha=0.5,vmin=0.000075"] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_mercator_projection(self): output_file_opt = ["--output", self.id() + ".png"] # These limits are ignored opts = ["--projection=Mercator", "--xmin=-90", "--xmax=90", "--nasabluemarble"] arguments = ["plot", valid_aerosol_cci_variable + ":" + escape_colons(valid_aerosol_cci_filename)] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_aeronet_multiple_variable_plots(self): output_file_opt = ["--output", self.id() + ".png"] opts = [] # Plotting doesn't support multiple variables arguments = ["plot", "AOT_532,AOT_551" + ":" + escape_colons(valid_aeronet_filename)] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()
def test_plotting_heatmap_of_aggregated_ungridded_data(self): output_file_opt = ["--output", self.id() + ".png"] # opts = ['--xmin=-0.5', '--xmax=360'] opts = [] arguments = ["plot", 'AOD550:' + escape_colons(make_pathname('aggregated_aerosol_cci.nc'))] main_arguments = parse_args(arguments + opts + output_file_opt) plot_cmd(main_arguments) self.check_graphic()