diff --git a/pyicon/pyicon_plotting.py b/pyicon/pyicon_plotting.py index 7d8839f32798eef300c416727c8ab1f967f0ac0e..0dd734d0060dcf9ac842e74efa4db5b0b9cbe75c 100644 --- a/pyicon/pyicon_plotting.py +++ b/pyicon/pyicon_plotting.py @@ -96,6 +96,10 @@ def hplot_base(IcD, IaV, clim='auto', cmap='viridis', cincr=-1., if projection=='none': ccrs_proj = None ccrs_transform = None + # Allow users to use cartopy projections directly + elif isinstance(projection, ccrs.Projection): + ccrs_proj = projection + ccrs_transform = ccrs.PlateCarree() elif projection=='RotatedPole': print ("generating cartopy projection with a rotated pole lon/lat = " + str(IcD.pol_lon) + "/" + str(IcD.pol_lat)) @@ -2048,10 +2052,11 @@ def plot(data, shade_proj = ccrs.PlateCarree() ccrs_proj = getattr(ccrs, projection) ccrs_proj = ccrs_proj(central_longitude=central_longitude) - else: + elif isinstance(projection, ccrs.Projection): shade_proj = ccrs.PlateCarree() ccrs_proj = projection - + else: + raise ValueError(f"`projection` must be a ccrs.Projection object or a string, not {type(projection)}") # --- rename dimensions if 'cell' in data.dims: data = data.rename(cell='ncells') diff --git a/pyicon/quickplots/pyicon_quickplots.py b/pyicon/quickplots/pyicon_quickplots.py index 3c24ad33813748979c9a001c8bcaa827296b1afb..de66471c90975b55ed784b17baecac515fe0370f 100644 --- a/pyicon/quickplots/pyicon_quickplots.py +++ b/pyicon/quickplots/pyicon_quickplots.py @@ -7,15 +7,6 @@ import numpy as np # --- reading data from netCDF4 import Dataset, num2date import datetime -# --- plotting -import matplotlib.pyplot as plt -import matplotlib -from matplotlib import ticker -#import my_toolbox as my -import cartopy -import cartopy.crs as ccrs -from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter -import cmocean # --- debugging from ipdb import set_trace as mybreak import pyicon as pyic @@ -124,12 +115,6 @@ def qp_hplot(fpath, var, IcD='none', depth=-1e33, iz=0, it=0, if units!='': IaV.units = units - # --- cartopy projection - if projection=='none': - ccrs_proj = None - else: - ccrs_proj = getattr(ccrs, projection)() - # --- do plotting (ax, cax, hm,