From 08730519dbd6893e186fd917fdc4f86d9306aa63 Mon Sep 17 00:00:00 2001 From: Witt-D Date: Fri, 26 Jul 2024 10:49:44 +0100 Subject: [PATCH 1/7] added plotting script and plot it produces --- ...oclinic_wave_temperature_pressure_plot.png | Bin 0 -> 150182 bytes compressible/plot_dry_baroclinic_sphere.py | 121 ++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 compressible/dry_baroclinic_wave_temperature_pressure_plot.png create mode 100644 compressible/plot_dry_baroclinic_sphere.py diff --git a/compressible/dry_baroclinic_wave_temperature_pressure_plot.png b/compressible/dry_baroclinic_wave_temperature_pressure_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..c3546c024d8bd0be640ab3aaa65aaa807e4c87a7 GIT binary patch literal 150182 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

G6(S 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 2 else -10 + + tomplot_field_title(ax, title, minmax=True, field_data=field_data) + + # These subplots tend to be quite clustered together, so move them apart a bit + fig.subplots_adjust(wspace=0.3, hspace=0.3) + fig.suptitle(f'Baroclinic Wave at {time_in_days} days') + # ---------------------------------------------------------------------------- # + # Save figure + # ---------------------------------------------------------------------------- # + plot_name = f'{plot_stem}_{time_in_days}_days.png' + print(f'Saving figure to {plot_name}') + fig.savefig(plot_name, bbox_inches='tight') + plt.close() + + From cd802b3a89f280a8973261eda213721205c750be Mon Sep 17 00:00:00 2001 From: Witt-D <91120222+Witt-D@users.noreply.github.com> Date: Tue, 17 Dec 2024 10:29:19 +0000 Subject: [PATCH 2/7] plotting script adjustments --- compressible/plot_dry_baroclinic_sphere.py | 48 ++++++++++++---------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/compressible/plot_dry_baroclinic_sphere.py b/compressible/plot_dry_baroclinic_sphere.py index 1876935..754ec20 100644 --- a/compressible/plot_dry_baroclinic_sphere.py +++ b/compressible/plot_dry_baroclinic_sphere.py @@ -1,5 +1,5 @@ """ -Plot for a 2x1 grpah of surface tempeorature and surface pressure fields. +Plot for a 2x1 graph of surface temperature and surface pressure fields. """ import numpy as np import matplotlib.pyplot as plt @@ -7,7 +7,7 @@ from tomplot import (tomplot_contours, tomplot_cmap, plot_contoured_field, add_colorbar_ax, regrid_vertical_slice, tomplot_field_title, - extract_gusto_vertical_slice, + extract_gusto_vertical_slice, reshape_gusto_data, extract_gusto_field, extract_gusto_coords, area_restriction) @@ -26,20 +26,20 @@ # ---------------------------------------------------------------------------- # # Specify lists for variables that are different between subplots field_names = ['Temperature', 'Pressure_Vt'] -titles = ['Temperature (850 HPa)', 'Surface Pressure'] +titles = ['Temperature', 'Surface Pressure'] slice_along_values = ['z', 'z'] - + field_labels = [r'$T \ / $K', r'$P \ / $Pa'] remove_contour_vals = [None, None] -domain_limit = {'X' : (0, 180), 'Y' : (0, 90)} -colour_schemes = ['jet', 'jet'] -contours = ['contour a','contour b','contour c ','contour d'] +domain_limit = {'X': (0, 180), 'Y': (0, 90)} +colour_schemes = ['RdPu', 'RdBu_r'] +contours = ['contour a', 'contour b', 'contour c ', 'contour d'] # Things that are the same for all subplots time_idxs = [0, 768, -1] contour_method = 'tricontour' -slice_at_vals = [0, 0 , 0, 0] +slice_at_vals = [0, 0, 0, 0] # 1D grids for vertical regridding coords_lon_1d = np.linspace(-180, 180, 50) coords_lat_1d = np.linspace(-90, 90, 50) @@ -47,6 +47,8 @@ plotting_grids = {'lat': coords_lon_1d, 'lon': coords_lat_1d} # Level for horizontal slices levels = [0, 0] +xlims = domain_limit['X'] +ylims = domain_limit['Y'] # ---------------------------------------------------------------------------- # # Things that are likely the same for all plots # ---------------------------------------------------------------------------- # @@ -57,8 +59,8 @@ # Loop through subplots for i, (ax, field_name, field_label, colour_scheme, slice_along, remove_contour, slice_at, title, level, contour) in \ - enumerate(zip(axarray.flatten(), field_names, field_labels, - colour_schemes, slice_along_values, remove_contour_vals, slice_at_vals, titles, levels, contours)): + enumerate(zip(axarray.flatten(), field_names, field_labels, colour_schemes, + slice_along_values, remove_contour_vals, slice_at_vals, titles, levels, contours)): # ------------------------------------------------------------------------ # # Data extraction # ------------------------------------------------------------------------ # @@ -71,22 +73,22 @@ # Reshape field_full, coords_X_full, coords_Y_full, _ = \ reshape_gusto_data(field_full, coords_X_full, - coords_Y_full, coords_Z_full) + coords_Y_full, coords_Z_full) # Domain restriction field_data, coords_hori, coords_Z = \ - area_restriction(field_full[:, level], coords_X_full[:, level], + area_restriction(field_full[:, level], coords_X_full[:, level], coords_Y_full[:, level], domain_limit) else: orig_field_data, orig_coords_X, orig_coords_Y, orig_coords_Z = \ extract_gusto_vertical_slice(data_file, field_name, time_idx, - slice_along=slice_along, slice_at=slice_at) + slice_along=slice_along, slice_at=slice_at) # Slices need regridding as points don't cleanly live along lon or lat = 0.0 field_data, coords_hori, coords_Z = regrid_vertical_slice(plotting_grids[slice_along], - slice_along, slice_at, - orig_coords_X, orig_coords_Y, - orig_coords_Z, orig_field_data) + slice_along, slice_at, + orig_coords_X, orig_coords_Y, + orig_coords_Z, orig_field_data) time = data_file['time'][time_idx] time_in_days = time / (24*60*60) # ------------------------------------------------------------------------ # @@ -95,17 +97,23 @@ contours = tomplot_contours(field_data) if field_name == 'Temperature': contours = np.arange(220, 320, 10) - + cmap, lines = tomplot_cmap(contours, colour_scheme, remove_contour=remove_contour) cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, contours, cmap=cmap, - line_contours=lines) + contour_method, contours, cmap=cmap, + line_contours=lines) add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) # Don't add ylabels unless left-most subplots ylabel = True if i % 3 == 0 else None ylabelpad = -30 if i > 2 else -10 tomplot_field_title(ax, title, minmax=True, field_data=field_data) + ax.set_xlim(xlims) + ax.set_xticks(xlims) + ax.set_xticklabels(xlims) + ax.set_ylim(ylims) + ax.set_yticks(ylims) + ax.set_yticklabels(ylims) # These subplots tend to be quite clustered together, so move them apart a bit fig.subplots_adjust(wspace=0.3, hspace=0.3) @@ -117,5 +125,3 @@ print(f'Saving figure to {plot_name}') fig.savefig(plot_name, bbox_inches='tight') plt.close() - - From 2f1052d9e52cc8f03d54104c0df308bf2c63f6ab Mon Sep 17 00:00:00 2001 From: Witt-D <91120222+Witt-D@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:02:48 +0000 Subject: [PATCH 3/7] added intial plotting --- compressible/plot_dry_baroclinic_sphere.py | 185 +++++++++++++-------- 1 file changed, 117 insertions(+), 68 deletions(-) diff --git a/compressible/plot_dry_baroclinic_sphere.py b/compressible/plot_dry_baroclinic_sphere.py index 754ec20..4b1a401 100644 --- a/compressible/plot_dry_baroclinic_sphere.py +++ b/compressible/plot_dry_baroclinic_sphere.py @@ -22,31 +22,42 @@ plot_stem = f'{plot_dir}/output_testing' # ---------------------------------------------------------------------------- # -# Things that should be altered based on the plot +#Initial plot details # ---------------------------------------------------------------------------- # -# Specify lists for variables that are different between subplots -field_names = ['Temperature', 'Pressure_Vt'] -titles = ['Temperature', 'Surface Pressure'] -slice_along_values = ['z', 'z'] -field_labels = [r'$T \ / $K', r'$P \ / $Pa'] +initial_field_names = ['Temperature', 'u_zonal'] +initial_titles = ['Temperature', 'Zonal wind'] +initial_slices = ['lon', 'lon'] +intial_slice_ats = [0, 0] +initial_field_labels = [r'$T \ / $K', r'$u \ / $m/s'] -remove_contour_vals = [None, None] +## ----------------------------------------------------------------------------# +# Main plot details +# ---------------------------------------------------------------------------- # +field_names = ['Temperature', 'Pressure_Vt'] +titles = ['Temperature', 'Pressure'] +slices = ['z', 'z'] +levels = [0, 0] +field_labels = [r'$T \ / $K', r'$P \ / $Pa'] domain_limit = {'X': (0, 180), 'Y': (0, 90)} +xlims = domain_limit['X'] +ylims = domain_limit['Y'] colour_schemes = ['RdPu', 'RdBu_r'] -contours = ['contour a', 'contour b', 'contour c ', 'contour d'] +temperature_contour = np.arange(220, 320, 10) +pressure_contour = np.arange(955, 1025, 5 ) +contours = [temperature_contour, pressure_contour] # Things that are the same for all subplots -time_idxs = [0, 768, -1] +time_idxs = [0, 16, -1] contour_method = 'tricontour' -slice_at_vals = [0, 0, 0, 0] + # 1D grids for vertical regridding coords_lon_1d = np.linspace(-180, 180, 50) coords_lat_1d = np.linspace(-90, 90, 50) # Dictionary to hold plotting grids -- keys are "slice_along" values plotting_grids = {'lat': coords_lon_1d, 'lon': coords_lat_1d} # Level for horizontal slices -levels = [0, 0] + xlims = domain_limit['X'] ylims = domain_limit['Y'] # ---------------------------------------------------------------------------- # @@ -55,16 +66,63 @@ data_file = Dataset(results_file_name, 'r') for time_idx in time_idxs: - fig, axarray = plt.subplots(2, 1, figsize=(16, 8), sharey='row') - - # Loop through subplots - for i, (ax, field_name, field_label, colour_scheme, slice_along, remove_contour, slice_at, title, level, contour) in \ - enumerate(zip(axarray.flatten(), field_names, field_labels, colour_schemes, - slice_along_values, remove_contour_vals, slice_at_vals, titles, levels, contours)): - # ------------------------------------------------------------------------ # - # Data extraction - # ------------------------------------------------------------------------ # - if slice_along == 'z': + if time_idx == 0: + fig, axarray = plt.subplots(1, 2, figsize=(8, 16)) + # Loop through subplots + for i, (ax, field_name, field_label, colour_scheme, slice_along, slice_at, title) in \ + enumerate(zip(axarray.flatten(), initial_field_names, initial_field_labels, colour_schemes, + initial_slices, initial_slices, initial_titles)): + # ------------------------------------------------------------------------ # + # Data extraction + # ------------------------------------------------------------------------ # + orig_field_data, orig_coords_X, orig_coords_Y, orig_coords_Z = \ + extract_gusto_vertical_slice(data_file, field_name, time_idx, + slice_along=slice_along, slice_at=slice_at) + + # Slices need regridding as points don't cleanly live along lon or lat = 0.0 + field_data, coords_hori, coords_Z = regrid_vertical_slice(plotting_grids[slice_along], + slice_along, slice_at, + orig_coords_X, orig_coords_Y, + orig_coords_Z, orig_field_data) + time = data_file['time'][time_idx] + time_in_days = time / (24*60*60) + # ------------------------------------------------------------------------ # + # Plot data + # ------------------------------------------------------------------------ # + contours = tomplot_contours(field_data) + if field_name == 'Temperature': + contours = np.arange(220, 320, 10) + + cmap, lines = tomplot_cmap(contours, colour_scheme) + cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, + contour_method, contours, cmap=cmap, + line_contours=lines) + add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) + # Don't add ylabels unless left-most subplots + ylabel = True if i % 3 == 0 else None + ylabelpad = -30 if i > 2 else -10 + + tomplot_field_title(ax, title, minmax=True, field_data=field_data) + fig.subplots_adjust(wspace=0.3, hspace=0.3) + fig.suptitle(f'Baroclinic Wave initial fields') + # ---------------------------------------------------------------------------- # + # Save figure + # ---------------------------------------------------------------------------- # + plot_name = f'{plot_stem}_intial_fields.png' + print(f'Saving figure to {plot_name}') + fig.savefig(plot_name, bbox_inches='tight') + plt.close() + + + else: + fig, axarray = plt.subplots(2, 1, figsize=(16, 8), sharey='row') + # Loop through subplots + for i, (ax, field_name, field_label, colour_scheme, slice_along, title, level, contour) in \ + enumerate(zip(axarray.flatten(), field_names, field_labels, colour_schemes, + slices, titles, levels, contours)): + # ------------------------------------------------------------------------ # + # Data extraction + # ------------------------------------------------------------------------ # # Extraction field_full = extract_gusto_field(data_file, field_name, time_idx) coords_X_full, coords_Y_full, coords_Z_full = \ @@ -73,55 +131,46 @@ # Reshape field_full, coords_X_full, coords_Y_full, _ = \ reshape_gusto_data(field_full, coords_X_full, - coords_Y_full, coords_Z_full) + coords_Y_full, coords_Z_full) # Domain restriction field_data, coords_hori, coords_Z = \ area_restriction(field_full[:, level], coords_X_full[:, level], - coords_Y_full[:, level], domain_limit) - else: - orig_field_data, orig_coords_X, orig_coords_Y, orig_coords_Z = \ - extract_gusto_vertical_slice(data_file, field_name, time_idx, - slice_along=slice_along, slice_at=slice_at) + coords_Y_full[:, level], domain_limit) - # Slices need regridding as points don't cleanly live along lon or lat = 0.0 - field_data, coords_hori, coords_Z = regrid_vertical_slice(plotting_grids[slice_along], - slice_along, slice_at, - orig_coords_X, orig_coords_Y, - orig_coords_Z, orig_field_data) - time = data_file['time'][time_idx] - time_in_days = time / (24*60*60) - # ------------------------------------------------------------------------ # - # Plot data - # ------------------------------------------------------------------------ # - contours = tomplot_contours(field_data) - if field_name == 'Temperature': - contours = np.arange(220, 320, 10) - - cmap, lines = tomplot_cmap(contours, colour_scheme, remove_contour=remove_contour) - cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, contours, cmap=cmap, - line_contours=lines) - add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) - # Don't add ylabels unless left-most subplots - ylabel = True if i % 3 == 0 else None - ylabelpad = -30 if i > 2 else -10 - - tomplot_field_title(ax, title, minmax=True, field_data=field_data) - ax.set_xlim(xlims) - ax.set_xticks(xlims) - ax.set_xticklabels(xlims) - ax.set_ylim(ylims) - ax.set_yticks(ylims) - ax.set_yticklabels(ylims) - - # These subplots tend to be quite clustered together, so move them apart a bit - fig.subplots_adjust(wspace=0.3, hspace=0.3) - fig.suptitle(f'Baroclinic Wave at {time_in_days} days') - # ---------------------------------------------------------------------------- # - # Save figure - # ---------------------------------------------------------------------------- # - plot_name = f'{plot_stem}_{time_in_days}_days.png' - print(f'Saving figure to {plot_name}') - fig.savefig(plot_name, bbox_inches='tight') - plt.close() + time = data_file['time'][time_idx] + time_in_days = time / (24*60*60) + # ------------------------------------------------------------------------ # + # Plot data + # ------------------------------------------------------------------------ # + contours = tomplot_contours(field_data) + if field_name == 'Temperature': + contours = np.arange(220, 320, 10) + + cmap, lines = tomplot_cmap(contours, colour_scheme) + cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, + contour_method, contours, cmap=cmap, + line_contours=lines) + add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) + # Don't add ylabels unless left-most subplots + ylabel = True if i % 3 == 0 else None + ylabelpad = -30 if i > 2 else -10 + + tomplot_field_title(ax, title, minmax=True, field_data=field_data) + ax.set_xlim(xlims) + ax.set_xticks(xlims) + ax.set_xticklabels(xlims) + ax.set_ylim(ylims) + ax.set_yticks(ylims) + ax.set_yticklabels(ylims) + + # These subplots tend to be quite clustered together, so move them apart a bit + fig.subplots_adjust(wspace=0.3, hspace=0.3) + fig.suptitle(f'Baroclinic Wave at {time_in_days} days') + # ---------------------------------------------------------------------------- # + # Save figure + # ---------------------------------------------------------------------------- # + plot_name = f'{plot_stem}_{time_in_days}_days.png' + print(f'Saving figure to {plot_name}') + fig.savefig(plot_name, bbox_inches='tight') + plt.close() From e06c02e199efdb4496a8f209b629b40129c949d9 Mon Sep 17 00:00:00 2001 From: Witt-D <91120222+Witt-D@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:31:46 +0000 Subject: [PATCH 4/7] updated initial and plotting --- compressible/plot_dry_baroclinic_sphere.py | 26 +++++++++------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/compressible/plot_dry_baroclinic_sphere.py b/compressible/plot_dry_baroclinic_sphere.py index 4b1a401..e6f3906 100644 --- a/compressible/plot_dry_baroclinic_sphere.py +++ b/compressible/plot_dry_baroclinic_sphere.py @@ -16,9 +16,9 @@ # Directory for results and plots # ---------------------------------------------------------------------------- # # When copying this example these should not be relative to this file -results_dir = '/data/home/dw603/firedrake-08_05_24/src/gusto/PhD/results/baroclinic_wave_order_1_1_with_vort' # This needs to point to a data file +results_dir = '/data/home/dw603/firedrake-08_05_24/src/gusto/gusto_case_studies/case_studies/compressible_euler/results/dry_baroclinic_sphere' # This needs to point to a data file results_file_name = f'{results_dir}/field_output.nc' -plot_dir = f'{results_dir}/plots' +plot_dir = f'plot_tests' plot_stem = f'{plot_dir}/output_testing' # ---------------------------------------------------------------------------- # @@ -28,7 +28,7 @@ initial_field_names = ['Temperature', 'u_zonal'] initial_titles = ['Temperature', 'Zonal wind'] initial_slices = ['lon', 'lon'] -intial_slice_ats = [0, 0] +initial_slice_ats = [0, 0] initial_field_labels = [r'$T \ / $K', r'$u \ / $m/s'] ## ----------------------------------------------------------------------------# @@ -67,11 +67,11 @@ data_file = Dataset(results_file_name, 'r') for time_idx in time_idxs: if time_idx == 0: - fig, axarray = plt.subplots(1, 2, figsize=(8, 16)) + fig, axarray = plt.subplots(1, 2, figsize=(16, 16)) # Loop through subplots for i, (ax, field_name, field_label, colour_scheme, slice_along, slice_at, title) in \ enumerate(zip(axarray.flatten(), initial_field_names, initial_field_labels, colour_schemes, - initial_slices, initial_slices, initial_titles)): + initial_slices, initial_slice_ats, initial_titles)): # ------------------------------------------------------------------------ # # Data extraction # ------------------------------------------------------------------------ # @@ -89,13 +89,10 @@ # ------------------------------------------------------------------------ # # Plot data # ------------------------------------------------------------------------ # - contours = tomplot_contours(field_data) - if field_name == 'Temperature': - contours = np.arange(220, 320, 10) - - cmap, lines = tomplot_cmap(contours, colour_scheme) + auto_contours = tomplot_contours(field_data) + cmap, lines = tomplot_cmap(auto_contours, colour_scheme) cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, contours, cmap=cmap, + contour_method, auto_contours, cmap=cmap, line_contours=lines) add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) # Don't add ylabels unless left-most subplots @@ -143,13 +140,10 @@ # ------------------------------------------------------------------------ # # Plot data # ------------------------------------------------------------------------ # - contours = tomplot_contours(field_data) - if field_name == 'Temperature': - contours = np.arange(220, 320, 10) - cmap, lines = tomplot_cmap(contours, colour_scheme) + cmap, lines = tomplot_cmap(contour, colour_scheme) cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, contours, cmap=cmap, + contour_method, contour, cmap=cmap, line_contours=lines) add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) # Don't add ylabels unless left-most subplots From 6568a07303f4ddf973281bf370b57b3d94a23bb6 Mon Sep 17 00:00:00 2001 From: Witt-D <91120222+Witt-D@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:41:44 +0000 Subject: [PATCH 5/7] flake8 --- .../compressible_euler/plot_dry_baroclinic.py | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/plotting/compressible_euler/plot_dry_baroclinic.py b/plotting/compressible_euler/plot_dry_baroclinic.py index e6f3906..40abab0 100644 --- a/plotting/compressible_euler/plot_dry_baroclinic.py +++ b/plotting/compressible_euler/plot_dry_baroclinic.py @@ -18,11 +18,11 @@ # When copying this example these should not be relative to this file results_dir = '/data/home/dw603/firedrake-08_05_24/src/gusto/gusto_case_studies/case_studies/compressible_euler/results/dry_baroclinic_sphere' # This needs to point to a data file results_file_name = f'{results_dir}/field_output.nc' -plot_dir = f'plot_tests' +plot_dir = 'plot_tests' # I used this for testing but unsure how to set up like the other test cases plot_stem = f'{plot_dir}/output_testing' # ---------------------------------------------------------------------------- # -#Initial plot details +# Initial plot details # ---------------------------------------------------------------------------- # initial_field_names = ['Temperature', 'u_zonal'] @@ -31,7 +31,7 @@ initial_slice_ats = [0, 0] initial_field_labels = [r'$T \ / $K', r'$u \ / $m/s'] -## ----------------------------------------------------------------------------# +# ----------------------------------------------------------------------------# # Main plot details # ---------------------------------------------------------------------------- # field_names = ['Temperature', 'Pressure_Vt'] @@ -44,7 +44,7 @@ ylims = domain_limit['Y'] colour_schemes = ['RdPu', 'RdBu_r'] temperature_contour = np.arange(220, 320, 10) -pressure_contour = np.arange(955, 1025, 5 ) +pressure_contour = np.arange(955, 1025, 5) contours = [temperature_contour, pressure_contour] # Things that are the same for all subplots @@ -71,19 +71,19 @@ # Loop through subplots for i, (ax, field_name, field_label, colour_scheme, slice_along, slice_at, title) in \ enumerate(zip(axarray.flatten(), initial_field_names, initial_field_labels, colour_schemes, - initial_slices, initial_slice_ats, initial_titles)): + initial_slices, initial_slice_ats, initial_titles)): # ------------------------------------------------------------------------ # # Data extraction # ------------------------------------------------------------------------ # orig_field_data, orig_coords_X, orig_coords_Y, orig_coords_Z = \ extract_gusto_vertical_slice(data_file, field_name, time_idx, - slice_along=slice_along, slice_at=slice_at) + slice_along=slice_along, slice_at=slice_at) # Slices need regridding as points don't cleanly live along lon or lat = 0.0 field_data, coords_hori, coords_Z = regrid_vertical_slice(plotting_grids[slice_along], - slice_along, slice_at, - orig_coords_X, orig_coords_Y, - orig_coords_Z, orig_field_data) + slice_along, slice_at, + orig_coords_X, orig_coords_Y, + orig_coords_Z, orig_field_data) time = data_file['time'][time_idx] time_in_days = time / (24*60*60) # ------------------------------------------------------------------------ # @@ -92,8 +92,8 @@ auto_contours = tomplot_contours(field_data) cmap, lines = tomplot_cmap(auto_contours, colour_scheme) cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, auto_contours, cmap=cmap, - line_contours=lines) + contour_method, auto_contours, cmap=cmap, + line_contours=lines) add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) # Don't add ylabels unless left-most subplots ylabel = True if i % 3 == 0 else None @@ -101,7 +101,7 @@ tomplot_field_title(ax, title, minmax=True, field_data=field_data) fig.subplots_adjust(wspace=0.3, hspace=0.3) - fig.suptitle(f'Baroclinic Wave initial fields') + fig.suptitle('Baroclinic Wave initial fields') # ---------------------------------------------------------------------------- # # Save figure # ---------------------------------------------------------------------------- # @@ -110,8 +110,7 @@ fig.savefig(plot_name, bbox_inches='tight') plt.close() - - else: + else: fig, axarray = plt.subplots(2, 1, figsize=(16, 8), sharey='row') # Loop through subplots for i, (ax, field_name, field_label, colour_scheme, slice_along, title, level, contour) in \ @@ -128,12 +127,12 @@ # Reshape field_full, coords_X_full, coords_Y_full, _ = \ reshape_gusto_data(field_full, coords_X_full, - coords_Y_full, coords_Z_full) + coords_Y_full, coords_Z_full) # Domain restriction field_data, coords_hori, coords_Z = \ area_restriction(field_full[:, level], coords_X_full[:, level], - coords_Y_full[:, level], domain_limit) + coords_Y_full[:, level], domain_limit) time = data_file['time'][time_idx] time_in_days = time / (24*60*60) @@ -143,8 +142,8 @@ cmap, lines = tomplot_cmap(contour, colour_scheme) cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, contour, cmap=cmap, - line_contours=lines) + contour_method, contour, cmap=cmap, + line_contours=lines) add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) # Don't add ylabels unless left-most subplots ylabel = True if i % 3 == 0 else None From 5d2fef85442685300863ba5d7a90ac1dea1a6747 Mon Sep 17 00:00:00 2001 From: Witt-D <91120222+Witt-D@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:53:24 +0000 Subject: [PATCH 6/7] removed script here and added to plotting directory --- .../plot_dry_baroclinic_sphere.py | 176 ------------------ 1 file changed, 176 deletions(-) delete mode 100644 case_studies/compressible_euler/plot_dry_baroclinic_sphere.py diff --git a/case_studies/compressible_euler/plot_dry_baroclinic_sphere.py b/case_studies/compressible_euler/plot_dry_baroclinic_sphere.py deleted file mode 100644 index 4b1a401..0000000 --- a/case_studies/compressible_euler/plot_dry_baroclinic_sphere.py +++ /dev/null @@ -1,176 +0,0 @@ -""" -Plot for a 2x1 graph of surface temperature and surface pressure fields. -""" -import numpy as np -import matplotlib.pyplot as plt -from netCDF4 import Dataset -from tomplot import (tomplot_contours, tomplot_cmap, - plot_contoured_field, add_colorbar_ax, - regrid_vertical_slice, tomplot_field_title, - extract_gusto_vertical_slice, - reshape_gusto_data, extract_gusto_field, - extract_gusto_coords, area_restriction) - - -# ---------------------------------------------------------------------------- # -# Directory for results and plots -# ---------------------------------------------------------------------------- # -# When copying this example these should not be relative to this file -results_dir = '/data/home/dw603/firedrake-08_05_24/src/gusto/PhD/results/baroclinic_wave_order_1_1_with_vort' # This needs to point to a data file -results_file_name = f'{results_dir}/field_output.nc' -plot_dir = f'{results_dir}/plots' -plot_stem = f'{plot_dir}/output_testing' - -# ---------------------------------------------------------------------------- # -#Initial plot details -# ---------------------------------------------------------------------------- # - -initial_field_names = ['Temperature', 'u_zonal'] -initial_titles = ['Temperature', 'Zonal wind'] -initial_slices = ['lon', 'lon'] -intial_slice_ats = [0, 0] -initial_field_labels = [r'$T \ / $K', r'$u \ / $m/s'] - -## ----------------------------------------------------------------------------# -# Main plot details -# ---------------------------------------------------------------------------- # -field_names = ['Temperature', 'Pressure_Vt'] -titles = ['Temperature', 'Pressure'] -slices = ['z', 'z'] -levels = [0, 0] -field_labels = [r'$T \ / $K', r'$P \ / $Pa'] -domain_limit = {'X': (0, 180), 'Y': (0, 90)} -xlims = domain_limit['X'] -ylims = domain_limit['Y'] -colour_schemes = ['RdPu', 'RdBu_r'] -temperature_contour = np.arange(220, 320, 10) -pressure_contour = np.arange(955, 1025, 5 ) -contours = [temperature_contour, pressure_contour] - -# Things that are the same for all subplots -time_idxs = [0, 16, -1] -contour_method = 'tricontour' - -# 1D grids for vertical regridding -coords_lon_1d = np.linspace(-180, 180, 50) -coords_lat_1d = np.linspace(-90, 90, 50) -# Dictionary to hold plotting grids -- keys are "slice_along" values -plotting_grids = {'lat': coords_lon_1d, 'lon': coords_lat_1d} -# Level for horizontal slices - -xlims = domain_limit['X'] -ylims = domain_limit['Y'] -# ---------------------------------------------------------------------------- # -# Things that are likely the same for all plots -# ---------------------------------------------------------------------------- # - -data_file = Dataset(results_file_name, 'r') -for time_idx in time_idxs: - if time_idx == 0: - fig, axarray = plt.subplots(1, 2, figsize=(8, 16)) - # Loop through subplots - for i, (ax, field_name, field_label, colour_scheme, slice_along, slice_at, title) in \ - enumerate(zip(axarray.flatten(), initial_field_names, initial_field_labels, colour_schemes, - initial_slices, initial_slices, initial_titles)): - # ------------------------------------------------------------------------ # - # Data extraction - # ------------------------------------------------------------------------ # - orig_field_data, orig_coords_X, orig_coords_Y, orig_coords_Z = \ - extract_gusto_vertical_slice(data_file, field_name, time_idx, - slice_along=slice_along, slice_at=slice_at) - - # Slices need regridding as points don't cleanly live along lon or lat = 0.0 - field_data, coords_hori, coords_Z = regrid_vertical_slice(plotting_grids[slice_along], - slice_along, slice_at, - orig_coords_X, orig_coords_Y, - orig_coords_Z, orig_field_data) - time = data_file['time'][time_idx] - time_in_days = time / (24*60*60) - # ------------------------------------------------------------------------ # - # Plot data - # ------------------------------------------------------------------------ # - contours = tomplot_contours(field_data) - if field_name == 'Temperature': - contours = np.arange(220, 320, 10) - - cmap, lines = tomplot_cmap(contours, colour_scheme) - cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, contours, cmap=cmap, - line_contours=lines) - add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) - # Don't add ylabels unless left-most subplots - ylabel = True if i % 3 == 0 else None - ylabelpad = -30 if i > 2 else -10 - - tomplot_field_title(ax, title, minmax=True, field_data=field_data) - fig.subplots_adjust(wspace=0.3, hspace=0.3) - fig.suptitle(f'Baroclinic Wave initial fields') - # ---------------------------------------------------------------------------- # - # Save figure - # ---------------------------------------------------------------------------- # - plot_name = f'{plot_stem}_intial_fields.png' - print(f'Saving figure to {plot_name}') - fig.savefig(plot_name, bbox_inches='tight') - plt.close() - - - else: - fig, axarray = plt.subplots(2, 1, figsize=(16, 8), sharey='row') - # Loop through subplots - for i, (ax, field_name, field_label, colour_scheme, slice_along, title, level, contour) in \ - enumerate(zip(axarray.flatten(), field_names, field_labels, colour_schemes, - slices, titles, levels, contours)): - # ------------------------------------------------------------------------ # - # Data extraction - # ------------------------------------------------------------------------ # - # Extraction - field_full = extract_gusto_field(data_file, field_name, time_idx) - coords_X_full, coords_Y_full, coords_Z_full = \ - extract_gusto_coords(data_file, field_name) - - # Reshape - field_full, coords_X_full, coords_Y_full, _ = \ - reshape_gusto_data(field_full, coords_X_full, - coords_Y_full, coords_Z_full) - - # Domain restriction - field_data, coords_hori, coords_Z = \ - area_restriction(field_full[:, level], coords_X_full[:, level], - coords_Y_full[:, level], domain_limit) - - time = data_file['time'][time_idx] - time_in_days = time / (24*60*60) - # ------------------------------------------------------------------------ # - # Plot data - # ------------------------------------------------------------------------ # - contours = tomplot_contours(field_data) - if field_name == 'Temperature': - contours = np.arange(220, 320, 10) - - cmap, lines = tomplot_cmap(contours, colour_scheme) - cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, - contour_method, contours, cmap=cmap, - line_contours=lines) - add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) - # Don't add ylabels unless left-most subplots - ylabel = True if i % 3 == 0 else None - ylabelpad = -30 if i > 2 else -10 - - tomplot_field_title(ax, title, minmax=True, field_data=field_data) - ax.set_xlim(xlims) - ax.set_xticks(xlims) - ax.set_xticklabels(xlims) - ax.set_ylim(ylims) - ax.set_yticks(ylims) - ax.set_yticklabels(ylims) - - # These subplots tend to be quite clustered together, so move them apart a bit - fig.subplots_adjust(wspace=0.3, hspace=0.3) - fig.suptitle(f'Baroclinic Wave at {time_in_days} days') - # ---------------------------------------------------------------------------- # - # Save figure - # ---------------------------------------------------------------------------- # - plot_name = f'{plot_stem}_{time_in_days}_days.png' - print(f'Saving figure to {plot_name}') - fig.savefig(plot_name, bbox_inches='tight') - plt.close() From 04565c620c64aee5e4ff13415a660e9b80722de2 Mon Sep 17 00:00:00 2001 From: Witt-D <91120222+Witt-D@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:10:18 +0000 Subject: [PATCH 7/7] plot improved --- .../compressible_euler/plot_dry_baroclinic.py | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/plotting/compressible_euler/plot_dry_baroclinic.py b/plotting/compressible_euler/plot_dry_baroclinic.py index 40abab0..3c348d6 100644 --- a/plotting/compressible_euler/plot_dry_baroclinic.py +++ b/plotting/compressible_euler/plot_dry_baroclinic.py @@ -30,7 +30,8 @@ initial_slices = ['lon', 'lon'] initial_slice_ats = [0, 0] initial_field_labels = [r'$T \ / $K', r'$u \ / $m/s'] - +initial_xlims = (-90, 90) +initial_ylims = (0, 30000) # ----------------------------------------------------------------------------# # Main plot details # ---------------------------------------------------------------------------- # @@ -44,11 +45,11 @@ ylims = domain_limit['Y'] colour_schemes = ['RdPu', 'RdBu_r'] temperature_contour = np.arange(220, 320, 10) -pressure_contour = np.arange(955, 1025, 5) +pressure_contour = np.arange(955, 1025, 5)*100 contours = [temperature_contour, pressure_contour] # Things that are the same for all subplots -time_idxs = [0, 16, -1] +time_idxs = [0, 16, 20] contour_method = 'tricontour' # 1D grids for vertical regridding @@ -56,10 +57,7 @@ coords_lat_1d = np.linspace(-90, 90, 50) # Dictionary to hold plotting grids -- keys are "slice_along" values plotting_grids = {'lat': coords_lon_1d, 'lon': coords_lat_1d} -# Level for horizontal slices -xlims = domain_limit['X'] -ylims = domain_limit['Y'] # ---------------------------------------------------------------------------- # # Things that are likely the same for all plots # ---------------------------------------------------------------------------- # @@ -67,7 +65,7 @@ data_file = Dataset(results_file_name, 'r') for time_idx in time_idxs: if time_idx == 0: - fig, axarray = plt.subplots(1, 2, figsize=(16, 16)) + fig, axarray = plt.subplots(1, 2, figsize=(16, 8)) # Loop through subplots for i, (ax, field_name, field_label, colour_scheme, slice_along, slice_at, title) in \ enumerate(zip(axarray.flatten(), initial_field_names, initial_field_labels, colour_schemes, @@ -94,13 +92,20 @@ cf, _ = plot_contoured_field(ax, coords_hori, coords_Z, field_data, contour_method, auto_contours, cmap=cmap, line_contours=lines) - add_colorbar_ax(ax, cf, field_label, location='bottom', cbar_labelpad=-10) + add_colorbar_ax(ax, cf, field_label, location='bottom', pad=0.05, cbar_labelpad=-5) # Don't add ylabels unless left-most subplots ylabel = True if i % 3 == 0 else None ylabelpad = -30 if i > 2 else -10 tomplot_field_title(ax, title, minmax=True, field_data=field_data) - fig.subplots_adjust(wspace=0.3, hspace=0.3) + ax.set_xlim(initial_xlims) + ax.set_xticks(initial_xlims) + ax.set_xticklabels(initial_xlims) + ax.set_xlabel('Lattitude', labelpad=-10) + ax.set_ylim(initial_ylims) + ax.set_yticks(initial_ylims) + ax.set_yticklabels(initial_ylims) + ax.set_ylabel('Height (m)', labelpad=-20) fig.suptitle('Baroclinic Wave initial fields') # ---------------------------------------------------------------------------- # # Save figure @@ -153,9 +158,11 @@ ax.set_xlim(xlims) ax.set_xticks(xlims) ax.set_xticklabels(xlims) + ax.set_ylabel('Lattitude', labelpad=-20) ax.set_ylim(ylims) ax.set_yticks(ylims) ax.set_yticklabels(ylims) + ax.set_xlabel('Longtitude', labelpad = -10) # These subplots tend to be quite clustered together, so move them apart a bit fig.subplots_adjust(wspace=0.3, hspace=0.3)