fldc = ncfilec.variables[field.upper()][(styr - 1) * 12 : (enyr * 12 + 1), :, :] * conv # time start year to end fldp1 = ncfilep1.variables[field.upper()][(styrp - 1) * 12 : (enyrp * 12 + 1), :, :] * conv # time start year to end fldp2 = ncfilep2.variables[field.upper()][(styrp - 1) * 12 : (enyrp * 12 + 1), :, :] * conv # time start year to end fldp3 = ncfilep3.variables[field.upper()][(styrp - 1) * 12 : (enyrp * 12 + 1), :, :] * conv # time start year to end # # # ##################### Do calculations ################# # annual time-series (3d) anntsc = cutl.annualize_monthlyts(fldc) anntsp1 = cutl.annualize_monthlyts(fldp1) anntsp2 = cutl.annualize_monthlyts(fldp2) anntsp3 = cutl.annualize_monthlyts(fldp3) # annual global mean time-series anngmc = cutl.global_mean_areawgted3d(anntsc, lat, lon) anngmp1 = cutl.global_mean_areawgted3d(anntsp1, lat, lon) anngmp2 = cutl.global_mean_areawgted3d(anntsp2, lat, lon) anngmp3 = cutl.global_mean_areawgted3d(anntsp3, lat, lon) # annual polar (>=60N) mean time-series annpmc = cutl.polar_mean_areawgted3d(anntsc, lat, lon) annpmp1 = cutl.polar_mean_areawgted3d(anntsp1, lat, lon) annpmp2 = cutl.polar_mean_areawgted3d(anntsp2, lat, lon) annpmp3 = cutl.polar_mean_areawgted3d(anntsp3, lat, lon) # global mean annual mean time mean anngmtmc = np.mean(anngmc) anngmtmp1 = np.mean(anngmp1) anngmtmp2 = np.mean(anngmp2) anngmtmp3 = np.mean(anngmp3)
fldsel = cnc.getNCvar(fname,field,timesel=timesel2,seas=sea) nt = fldsel.shape[0] nlon=fldsel.shape[2] nlat=fldsel.shape[1] fldre = fldsel.reshape((nt,nlon*nlat)) xx=np.arange(0,nt) #ensseldt[eii] = fldsel if field=='sic': ensnhdt[eii],ensshdt[eii] = cutl.calc_totseaicearea(fld/100.,lat,lon,isarea=False) fldsel=cutl.calc_seaicearea(fldsel,lat,lon) fldre=fldsel.reshape((nt,nlon*nlat)) else: ensgmdt[eii] = cutl.global_mean_areawgted3d(fld,lat,lon) ensrmdt[eii] = cutl.calc_regmean(fld,lat,lon,region) #slope[eii], intercept, r_value, p_value, std_err = sp.stats.linregress(xx,dat) # not good for 3d data? # this is just the second timesel (ie 2002-2012) slope,intercept = np.polyfit(xx,fldre,1) # supposedly can do w/ higher dims? enstrnddt[eii] = slope #.reshape((nlat,nlon)) # reshape later @@ # also save all trends into one dictionary (don't differentiate by seed/base run) alltrnddt[superii] = slope superii+=1 if field=='sic':