import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import cm, rcParams, colors
from matplotlib import gridspec as gspec
from matplotlib.backends.backend_pdf import PdfPages
from matplotlib.font_manager import FontProperties
import matplotlib.path as mpat
import matplotlib.ticker as mticker
import matplotlib.patches as mpatches
from matplotlib.lines import Line2D

#%%
# regrid cube
regrid_cube = iris.load_cube(
    '/home/links/rmv203/obs_datasets/Tair_WFDEI_ann.nc')
regrid_cube = time_average(regrid_cube)
regrid_cube.coord('latitude').guess_bounds()
regrid_cube.coord('longitude').guess_bounds()
regrid_modelcube = regrid_cube.copy()

#%%
# Observational datasets

# Observational temperature
obs_temp_file = iris.load_cube(
    '/home/links/rmv203/obs_datasets/Tair_WFDEI_ann.nc')
obs_temp_file = select_time(obs_temp_file, 2001, 2010)
obs_temp_file = time_average(obs_temp_file)
obs_temp = obs_temp_file.data
obs_temp = np.ma.masked_where(obs_temp > 60, obs_temp)
current_temp = obs_temp.copy()
#
observational_rh_data = np.load('saved_variables/observational_rh_data.npy')
observational_rh_mask = np.load('saved_variables/observational_rh_mask.npy')
observational_rh = np.ma.masked_array(observational_rh_data,
                                      mask=observational_rh_mask)

# loading observational land fraction
landfraction_obs = combine_netCDF_variable(
    '/home/links/rmv203/obs_datasets/luc4c_landmask.nc', 'mask')

#%%

# Loading regrid cube
regrid_cube = iris.load_cube(
    '/home/links/rmv203/obs_datasets/Tair_WFDEI_ann.nc')
regrid_cube = time_average(regrid_cube)
regrid_cube.coord('latitude').guess_bounds()
regrid_cube.coord('longitude').guess_bounds()
regrid_modelcube = regrid_cube.copy()
# correct lat and lon dimensions
n_lat = regrid_cube.coord('latitude').points
n_lon = regrid_cube.coord('longitude').points

#%%
# inputs

lower_historical = 1995
upper_historical = 2005

region_global = [0, 360, -90, 90]
        cSoil_historical_cube = open_netCDF(cSoil_historical_cube)
        # Near Surface Air Temperature (tas)
        tas_historical_cube = combine_netCDF_cmip5(
            '/home/rmv203/cmip5_data/tas_Amon_' + model + '_historical*',
            'air_temperature', model)
        tas_historical_cube = open_netCDF(tas_historical_cube)

        # Select historical time period
        rh_historical_cube = select_time(rh_historical_cube, lower_historical,
                                         upper_historical)
        cSoil_historical_cube = select_time(cSoil_historical_cube,
                                            lower_historical, upper_historical)
        tas_historical_cube = select_time(tas_historical_cube,
                                          lower_historical, upper_historical)
        # Time average
        rh_historical_cube = time_average(rh_historical_cube)
        cSoil_historical_cube = time_average(cSoil_historical_cube)
        tas_historical_cube = time_average(tas_historical_cube)
        # Converting from cubes to numpy_arrays
        rh_historical_data = rh_historical_cube.data
        cSoil_historical_data = cSoil_historical_cube.data
        tas_historical_data = tas_historical_cube.data

        # save to use later
        historical_tas_save_data = tas_historical_data - 273.15
        cSoil_historical_save_cube = cSoil_historical_cube.copy()
        historical_rh_save_data = rh_historical_data * 86400. * 365.

        # Calculating Soil Turnover Time (tau_s)
        tau_s_data_historical = cSoil_historical_data / (rh_historical_data *
                                                         86400. * 365.)
예제 #4
0
from matplotlib import gridspec as gspec
from matplotlib.backends.backend_pdf import PdfPages
from matplotlib.font_manager import FontProperties
import matplotlib.path as mpat
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import matplotlib.ticker as mticker
import matplotlib.patches as mpatches
from matplotlib.lines import Line2D

#%%
# cube for regridding

regrid_cube = iris.load_cube(
    '/home/links/rmv203/obs_datasets/Tair_WFDEI_ann.nc')
regrid_cube = time_average(regrid_cube)
regrid_cube.coord('latitude').guess_bounds()
regrid_cube.coord('longitude').guess_bounds()
regrid_modelcube = regrid_cube.copy()

#%%
# observational datasets

# Observational soil carbon
# ncscd
ncscd_file = Dataset(
    '/home/links/rmv203/obs_datasets/NCSCDV22_soilc_0.5x0.5.nc')
ncscd_data = ncscd_file.variables['soilc'][:]
n_lat_ncscd = ncscd_file.variables['lat'][:]
n_lon_ncscd = ncscd_file.variables['lon'][:]
# hwsd
        print(rcp, model)
        

        #%% modelled historical

        # Soil Carbon (cSoil)
        cSoil_historical_cube_new = combine_netCDF_cmip5('/home/rmv203/cmip5_data/cSoil_Lmon_'+model+'_historical*', 'soil_carbon_content', model)
        cSoil_historical_cube_new = open_netCDF(cSoil_historical_cube_new)
        # Near Surface Air Temperature (tas)
        tas_historical_cube = combine_netCDF_cmip5('/home/rmv203/cmip5_data/tas_Amon_'+model+'_historical*', 'air_temperature', model)
        tas_historical_cube = open_netCDF(tas_historical_cube)
        # Select historical time period
        cSoil_historical_cube_new = select_time(cSoil_historical_cube_new, lower_historical, upper_historical)
        tas_historical_cube = select_time(tas_historical_cube, lower_historical, upper_historical)
        # Time average
        cSoil_historical_time_av_cube_new = time_average(cSoil_historical_cube_new)
        tas_historical_cube = time_average(tas_historical_cube)
        tas_historical_data = tas_historical_cube.data

        # Converting from cubes to numpy_arrays
        cSoil_historical_time_av_data_new = cSoil_historical_time_av_cube_new.data


        #%%  Modelled Future

        # Soil Carbon (cSoil)
        cSoil_cube = combine_netCDF_cmip5('/home/rmv203/cmip5_data/cSoil_Lmon_'+model+'_'+rcp+'_*', 'soil_carbon_content', model)
        cSoil_cube = open_netCDF(cSoil_cube)
        # Near Surface Air Temperature (tas)
        tas_cube = combine_netCDF_cmip5('/home/rmv203/cmip5_data/tas_Amon_'+model+'_'+rcp+'_*', 'air_temperature', model)
        tas_cube = open_netCDF(tas_cube)
        'soil_carbon_content', model)
    cSoil_historical_cube = open_netCDF(cSoil_historical_cube)
    # Near Surface Air Temperature (tas)
    tas_historical_cube = combine_netCDF_cmip5(
        '/home/rmv203/cmip5_data/tas_Amon_' + model + '_historical*',
        'air_temperature', model)
    tas_historical_cube = open_netCDF(tas_historical_cube)
    # Select historical time period
    rh_historical_cube = select_time(rh_historical_cube, lower_historical,
                                     upper_historical)
    cSoil_historical_cube = select_time(cSoil_historical_cube,
                                        lower_historical, upper_historical)
    tas_historical_cube = select_time(tas_historical_cube, lower_historical,
                                      upper_historical)
    # Time average
    rh_historical_time_av_cube = time_average(rh_historical_cube)
    cSoil_historical_time_av_cube = time_average(cSoil_historical_cube)
    tas_historical_time_av_cube = time_average(tas_historical_cube)
    # Converting from cubes to numpy_arrays
    rh_historical_time_av_data = rh_historical_time_av_cube.data
    cSoil_historical_time_av_data = cSoil_historical_time_av_cube.data
    tas_historical_time_av_data = tas_historical_time_av_cube.data

    # Calculating Soil Turnover Time
    tau_s_data_historical = cSoil_historical_time_av_data / (
        rh_historical_time_av_data * 86400. * 365.)
    tau_s_masked_data_historical = ma.masked_where(
        np.logical_or(tau_s_data_historical < 1, tau_s_data_historical > 1e4),
        tau_s_data_historical)

    #%%