Skip to content

Commit

Permalink
added _label_axes_latlon in class GridMapDisplay. Minor changes to im…
Browse files Browse the repository at this point in the history
…prove grid plots
  • Loading branch information
jfigui committed May 25, 2023
1 parent 0c84b9e commit 7762800
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 18 deletions.
33 changes: 18 additions & 15 deletions pyart/graph/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,14 @@ def generate_radar_name(radar):
""" Return radar name. """
if 'instrument_name' in radar.metadata:
return radar.metadata['instrument_name']
else:
return ''
return ''


def generate_grid_name(grid):
""" Return grid name. """
if 'instrument_name' in grid.metadata:
return grid.metadata['instrument_name']
else:
return ''
return ''


def generate_radar_time_begin(radar):
Expand Down Expand Up @@ -156,7 +154,8 @@ def generate_grid_time_begin(grid):
return num2date(times, units, calendar)


def generate_filename(radar, field, sweep, ext='png', datetime_format='%Y%m%d%H%M%S', use_sweep_time=False):
def generate_filename(radar, field, sweep, ext='png',
datetime_format='%Y%m%d%H%M%S', use_sweep_time=False):
"""
Generate a filename for a plot.
Expand Down Expand Up @@ -187,7 +186,8 @@ def generate_filename(radar, field, sweep, ext='png', datetime_format='%Y%m%d%H%
name_s = generate_radar_name(radar).replace(' ', '_')
field_s = field.replace(' ', '_')
if use_sweep_time:
time_s = generate_radar_time_sweep(radar, sweep).strftime(datetime_format)
time_s = generate_radar_time_sweep(radar, sweep).strftime(
datetime_format)
else:
time_s = generate_radar_time_begin(radar).strftime(datetime_format)
sweep_s = str(sweep).zfill(2)
Expand Down Expand Up @@ -225,7 +225,8 @@ def generate_grid_filename(grid, field, level, ext='png'):
return '%s_%s_%s_%s.%s' % (name_s, field_s, level_s, time_s, ext)


def generate_title(radar, field, sweep, datetime_format=None, use_sweep_time=True):
def generate_title(radar, field, sweep, datetime_format=None,
use_sweep_time=True):
"""
Generate a title for a plot.
Expand Down Expand Up @@ -318,8 +319,8 @@ def generate_longitudinal_level_title(grid, field, level):
else:
direction = "west"
disp = - disp
l1 = "%s %.1f km %s of origin %s " % (generate_grid_name(grid), disp,
direction, time_str)
l1 = "%s %.1f km %s of origin\n%s " % (generate_grid_name(grid), disp,
direction, time_str)
field_name = generate_field_name(grid, field)
return l1 + '\n' + field_name

Expand Down Expand Up @@ -351,8 +352,8 @@ def generate_latitudinal_level_title(grid, field, level):
else:
direction = "south"
disp = - disp
l1 = "%s %.1f km %s of origin %s " % (generate_grid_name(grid), disp,
direction, time_str)
l1 = "%s %.1f km %s of origin\n%s " % (generate_grid_name(grid), disp,
direction, time_str)
field_name = generate_field_name(grid, field)
return l1 + '\n' + field_name

Expand All @@ -376,7 +377,7 @@ def generate_latlon_level_title(grid, field):
"""
time_str = generate_grid_time_begin(grid).isoformat() + 'Z'
field_name = generate_field_name(grid, field)
return 'lat-lon slice '+time_str+'\n'+field_name
return generate_grid_name(grid)+' lat-lon slice\n'+time_str+'\n'+field_name


def generate_vpt_title(radar, field):
Expand Down Expand Up @@ -455,6 +456,7 @@ def generate_az_rhi_title(radar, field, azimuth):
field_name = generate_field_name(radar, field)
return l1 + '\n' + l2 + '\n' + field_name


def generate_xsection_title(radar, field, points):
"""
Generate a title for a cross-section plot
Expand All @@ -466,22 +468,23 @@ def generate_xsection_title(radar, field, points):
field : str
Field plotted.
points : ndarray
N x 2 array containing the lon/lat coordinates of the reference points
N x 2 array containing the lon/lat coordinates of the reference points
Returns
-------
title : str
Plot title.
"""
points_fmt = ','.join(['{:2.1f}°/{:2.1f}°'.format(pt[0], pt[1])
for pt in points])
points_fmt = ','.join([
'{:2.1f}°/{:2.1f}°'.format(pt[0], pt[1]) for pt in points])
time_str = generate_radar_time_begin(radar).isoformat() + 'Z'
l1 = "%s %s " % (generate_radar_name(radar), time_str)
l2 = "Points: %s" % points_fmt
field_name = generate_field_name(radar, field)
return l1 + '\n' + l2 + '\n' + field_name


def set_limits(xlim=None, ylim=None, ax=None):
"""
Set the display limits.
Expand Down
19 changes: 16 additions & 3 deletions pyart/graph/gridmapdisplay.py
Original file line number Diff line number Diff line change
Expand Up @@ -1160,14 +1160,14 @@ def plot_latlon_level(
xticks_labels = []
for i in range(nh_prof):
xticks_labels.append(
'{:.3f}'.format(lat_prof[i])+'-'+'{:.3f}'.format(lon_prof[i]))
'{:.2f}'.format(lat_prof[i])+'-'+'{:.2f}'.format(lon_prof[i]))

locs, _ = plt.xticks()
nticks = len(locs)
tick_freq = int(nh_prof/nticks)
plt.xticks(
xy_1d[0:nh_prof:tick_freq], xticks_labels[0:nh_prof:tick_freq],
rotation='30', ha='right')
rotation='90', ha='right', fontsize='x-small')

if title_flag:
if title is None:
Expand Down Expand Up @@ -1257,7 +1257,6 @@ def _find_nearest_grid_indices(self, lon, lat):

def _get_label_x(self):
""" Get default label for x units. """

return 'East West distance from ' + self.origin + ' (km)'

def _get_label_y(self):
Expand All @@ -1268,6 +1267,10 @@ def _get_label_z(self):
""" Get default label for z units. """
return 'Distance Above ' + self.origin + ' (km)'

def _get_label_xy(self):
""" Get default label for xy units. """
return 'lat-lon position (deg)'

def _label_axes_grid(self, axis_labels, ax):
""" Set the x and y axis labels for a grid plot. """
x_label, y_label = axis_labels
Expand Down Expand Up @@ -1298,6 +1301,16 @@ def _label_axes_latitude(self, axis_labels, ax):
ax.set_xlabel(x_label)
ax.set_ylabel(y_label)

def _label_axes_latlon(self, axis_labels, ax):
""" Set the x and y axis labels for a lat-lon slice. """
x_label, y_label = axis_labels
if x_label is None:
x_label = self._get_label_xy()
if y_label is None:
y_label = self._get_label_z()
ax.set_xlabel(x_label)
ax.set_ylabel(y_label)

##########################
# name generator methods #
##########################
Expand Down

0 comments on commit 7762800

Please sign in to comment.