In [1]:
#fetch GFS data and plot at ENA
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import netCDF4
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import numpy as np
from siphon.catalog import TDSCatalog
from siphon.ncss import NCSS
from datetime import datetime, timedelta
from netCDF4 import num2date
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import os
import ftplib
import pygrib
import tempfile
import xarray
import boto3
%matplotlib inline
In [86]:
import imp
lib_loc = os.path.join(os.path.expanduser('~'), 'projects/ACE-ENA-EVA/code/ena_tools.py')
ena_tools = imp.load_source('ena_tools', lib_loc)
In [3]:
var_list = ['Specific cloud liquid water content', 'Specific cloud ice water content',
'Specific rain water content', 'Specific snow water content',
'Temperature', 'V component of wind', 'U component of wind', 'Specific humidity', 'Vertical velocity']
skip_me = [False, False, False, False, False, True, True, False, False]
In [77]:
my_bundle, my_these_valid_times, my_these_run_times, my_lats, my_lons, metad = ena_tools.create_bundle_latest(var_list,
skippy=skip_me,
n=40)
In [82]:
my_unwind = ena_tools.concat_bundle(my_bundle)
trans = {'cfName': 'standard_name'}
my_dataset = ena_tools.unwind_to_xarray(my_unwind, my_these_valid_times, my_lats, my_lons, metad, trans=trans)
my_dataset.attrs['Conventions'] = 'CF-1.6'
my_dataset.attrs['source'] = 'ECMWF 137 level 0.1 degree model'
my_dataset.attrs['conatact'] = 'Scott Collis, scollis@anl.gov'
st1 = "European Center for Medium range Weather Forecasting, "
st2 = "Atmospheric Climate Research Facility, A DoE User facility, "
st3 = "Scott Collis, Argonne National Laboratory"
my_dataset.attrs['attribution'] = st1 + st2 + st3
my_dataset.attrs['experiment'] ='ACE-ENA'
my_dataset.Specific_cloud_ice_water_content.attrs['standard_name'] = 'cloud_ice_mixing_ratio'
my_dataset.Specific_cloud_liquid_water_content.attrs['standard_name'] = 'cloud_liquid_water_mixing_ratio'
my_dataset.Specific_rain_water_content.attrs['standard_name'] = 'rain_water_content'
my_dataset.Specific_snow_water_content.attrs['standard_name'] = 'snow_water_content'
my_dataset.encoding['unlimited_dims'] = ['time']
my_dataset.z.encoding['_FillValue'] = -9999
my_dataset.lat.encoding['_FillValue'] = -9999
my_dataset.lon.encoding['_FillValue'] = -9999
In [79]:
fig = plt.figure(figsize=[10,7])
my_ax = plt.subplot(projection = ccrs.PlateCarree())
my_levels = [0.0001, 0.05, 0.1, 1.0]
my_colors = ['white', 'yellow', 'cyan', 'pink']
pc, cs = ena_tools.ecm_tile_sum(my_ax, my_dataset.Specific_cloud_liquid_water_content*1000.0,
my_dataset.Specific_cloud_ice_water_content*1000.0,
[0.0, 4.0], 17, my_levels, my_colors, fmt='%0.5f')
In [75]:
def nine_panel_ecm_sum(var1, var2, vlims, tsteps, levels, colors, fmt='%0.5f'):
f, ((ax1, ax2, ax3),
(ax4, ax5, ax6),
(ax7, ax8, ax9)) = plt.subplots(3,3, figsize = [20,15],
subplot_kw={'projection': ccrs.PlateCarree()})
axxx = [ax1, ax2, ax3, ax4, ax5, ax6, ax7, ax8, ax9]
for i in range(len(axxx)):
_,_ = ena_tools.ecm_tile_sum(axxx[i], var1, var2, vlims, tsteps[i], levels, colors, fmt='%0.5f')
In [78]:
my_levels = [0.0001, 0.05, 0.1, 1.0]
my_colors = ['white', 'yellow', 'cyan', 'pink']
nine_panel_ecm_sum(my_dataset.Specific_cloud_liquid_water_content*1000.0,
my_dataset.Specific_cloud_ice_water_content*1000.0,
[0.0, 4.0], [0,2,4,6,8,10,12,14,16] , my_levels, my_colors, fmt='%0.5f')
In [87]:
ena_tools.save_one_ecmwf_cloud9(my_dataset, my_these_run_times[0])
In [ ]: