import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime
import OpenVisus as ov
import os
"VISUS_CACHE"]="./visus_cache_can_be_erased" os.environ[
3 Loading All Variables, Scenarios and Models
In this section, we show how to load all variables, models and scenarios available with the CMIP6 data. .
3.0.1 Notebook Code
3.0.2 Import Required libraries
3.1 List of all available variables, models, scenarios
#Options
varlist = ["hurs","huss","pr","rlds","rsds","sfcWind","tas","tasmax","tasmin"]
cmaps = ["YlGnBu","YlGnBu","Blues","rainbow","rainbow","turbo","Reds","Reds","Reds"]
modellist=["CESM2","ACCESS-CM2","CMCC-CM2-SR5","INM-CM5-0","CanESM5","MRI-ESM2-0","MPI-ESM1-2-HR","MIROC6","IPSL-CM6A-LR","GFDL-ESM4"]
scenariolist =["historical","ssp585","ssp370","ssp245"]
3.2 Script to convert dates to array indices (DONT CHANGE THIS)
def calculate_day_of_year(date_str):
date = datetime.strptime(date_str, '%Y-%m-%d')
start_of_year = datetime(date.year, 1, 1)
day_of_year = (date - start_of_year).days
return day_of_year
def get_timestep(date_str):
date = datetime.strptime(date_str, '%Y-%m-%d')
day_of_year = calculate_day_of_year(date_str)
total_days = 365 + (1 if (date.year % 4 == 0 and date.year % 100 != 0) or (date.year % 400 == 0) else 0)
return f"{date.year*total_days+day_of_year}"
3.2.1 Select your timestamp (yyyy-mm-dd)
3.2.2 Choose the appropriate variable
fname=[]
# This runs all variables for model ACCESS-CM2
for v in varlist:
field_ = f"{v}_day_{modellist[1]}_{scenariolist[0]}_r1i1p1f1_gn"
fname.append(field_)
print(field_)
hurs_day_ACCESS-CM2_historical_r1i1p1f1_gn
huss_day_ACCESS-CM2_historical_r1i1p1f1_gn
pr_day_ACCESS-CM2_historical_r1i1p1f1_gn
rlds_day_ACCESS-CM2_historical_r1i1p1f1_gn
rsds_day_ACCESS-CM2_historical_r1i1p1f1_gn
sfcWind_day_ACCESS-CM2_historical_r1i1p1f1_gn
tas_day_ACCESS-CM2_historical_r1i1p1f1_gn
tasmax_day_ACCESS-CM2_historical_r1i1p1f1_gn
tasmin_day_ACCESS-CM2_historical_r1i1p1f1_gn
3.2.3 To see all combinations of fields available, uncomment the line below.. We are in the process of adding all models and variables
3.2.4 Plotting all variables for model ACCESS-CM2
for f in fname:
data=db.read(time=int(get_timestep(timestamp)),quality=0,field=f)
plt.title(f)
plt.imshow(data,origin='lower')
plt.colorbar()
plt.show()
fname=[]
for m in modellist:
if m in ['CESM2'] :
run= 'r4i1p1f1'
else:
run= 'r1i1p1f1'
field_ = f"{varlist[0]}_day_{m}_{scenariolist[0]}_{run}_gn"
fname.append(field_)
print(field_)
hurs_day_CESM2_historical_r4i1p1f1_gn
hurs_day_ACCESS-CM2_historical_r1i1p1f1_gn
hurs_day_CMCC-CM2-SR5_historical_r1i1p1f1_gn
hurs_day_INM-CM5-0_historical_r1i1p1f1_gn
hurs_day_CanESM5_historical_r1i1p1f1_gn
hurs_day_MRI-ESM2-0_historical_r1i1p1f1_gn
hurs_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn
hurs_day_MIROC6_historical_r1i1p1f1_gn
hurs_day_IPSL-CM6A-LR_historical_r1i1p1f1_gn
hurs_day_GFDL-ESM4_historical_r1i1p1f1_gn