Example #1
0
members_feedback = []
for i in range(1, 21):
    ncpath = "/dx03/ab4283/GLENS/feedback/" + var + "/zonal_mean_camelot/merged/b.e15.B5505C5WCCML45BGCR.f09_g16.feedback.0" + str(
        i).zfill(2) + ".cam.h0zm." + var + ".202001-209912.nc"
    zmzw_inst = zonal_wind.zmzw(ncpath, time0=2020, tim1=2075, tim2=2095)
    clim_lat_hgt = zmzw_inst.climatology_polar_hgt_mon()
    members_feedback.append(clim_lat_hgt)
ensmean_feedback, ensstd_feedback, nens_feedback = ensemble_functions.calc_ensemble_mean(
    members_feedback)

# differences
ensdiff_rcp85 = ensmean_rcp85 - ensmean_control
ensdiff_feedback = ensmean_feedback - ensmean_control

# two-tailed t-test
ttest_rcp85 = ensemble_functions.t_test(p_value, ensdiff_rcp85, ensstd_control,
                                        ensstd_rcp85, nens_control, nens_rcp85)
ttest_feedback = ensemble_functions.t_test(p_value, ensdiff_feedback,
                                           ensstd_control, ensstd_feedback,
                                           nens_control, nens_feedback)

print 'DIFF SHAPE ', ensdiff_feedback.shape

# individual member differences
memdiff_feedback = map(lambda x: x - ensmean_control, members_feedback)
memdiff_rcp85 = map(lambda x: x - ensmean_control, members_rcp85)

# get hgt off one instance
hgt = (zmzw_inst.dimdict)['hgt']

#********************************************************************************************************
# Plot ensemble mean difference FEEDBACK-CONTROL
Example #2
0
# feedback runs
print("Calculating climatology for FEEDBACK")

members_feedback = []
for i in range(1,21):
   ncpath = glob.glob("/Volumes/CESM-GLENS/GLENS/b.e15.B5505C5WCCML45BGCR.f09_g16.feedback.0"+str(i).zfill(2)+"/atm/proc/tseries/month_1/Combined/b.e15.B5505C5WCCML45BGCR.f09_g16.feedback.0"+str(i).zfill(2)+".cam.h0."+var+".202001-*.nc")[0]
   Ts_inst = surface_temp.Ts(ncpath, tim1=2075, tim2=2095, var=var)
   clim_lon_lat = Ts_inst.climatology_lon_lat(season) * pressure_conversion
   members_feedback.append(clim_lon_lat)

print("...done")

nfeedback = len(members_feedback)
ensmean_feedback, ensstd_feedback = ensemble_functions.stats(members_feedback) 
ensdiff_feedback = ensmean_feedback - ensmean_control
ttest_feedback = ensemble_functions.t_test(alpha, ensdiff_feedback, ensstd_control, ensstd_feedback, ncontrol, nfeedback)

print("Plotting ensemble mean difference FEEDBACK-CONTROL")
#plot_functions.plot_single_lat_lon(ensdiff_feedback, 'Feedback (2075-2095) - Control (2010-2030)\n'+season, outdir+'Ts_ensdiff_feedback-control_'+season+'.pdf', 8, 1, 8, 1, '$^{\circ}$C', zsig=ttest_feedback)
plot_functions.plot_single_lat_lon(ensdiff_feedback/65.*30., ensdiff_feedback['lat'], ensdiff_feedback['lon'], 'Feedback (2075-2095) - Control (2010-2030)\n'+season, outdir+var+'_ensdiff_feedback-control_'+season+'.png', 1.6, 0.2, 1.6, 0.4, 'hPa per decade', zsig=ttest_feedback)

#********************************************************************************************************
'''
# GEOHEAT runs
print("Calculating climatology for GEOHEAT")

members_geoheat = []
for i in range(3,7):
   ncpath = glob.glob("/Volumes/CESM-GLENS/GEOHEAT/"+str(i).zfill(3)+"/Combined/b.e15.B5505C5WCCML45BGCR.f09_g16.GEOHEAT.control."+str(i).zfill(3)+".cam.h0."+var+".201001-*.nc")[0]
   Ts_inst = surface_temp.Ts(ncpath, time0=2010, tim1=2010, tim2=2029)
   clim_lon_lat = Ts_inst.climatology_lon_lat(season)