In [1]:
%run basics
%matplotlib
In [2]:
dingo_name = "../../Sites/Whroo/Data/DINGO/V12a/Whroo_2011_to_2014_L6.nc"
ofqc_name = "../../Sites/Whroo/Data/Processed/all/Whroo_2011_to_2014_L6.nc"
In [3]:
ds_dingo = qcio.nc_read_series(dingo_name)
ds_ofqc = qcio.nc_read_series(ofqc_name)
dt_dingo = ds_dingo.series["DateTime"]["Data"]
dt_ofqc = ds_ofqc.series["DateTime"]["Data"]
ts = int(ds_ofqc.globalattributes["time_step"])
In [11]:
start_date = "2011-01-01 00:30"
end_date = "2015-01-01 00:00"
si_dingo = qcutils.GetDateIndex(dt_dingo,start_date,ts=ts,default=0,match="startnextday")
ei_dingo = qcutils.GetDateIndex(dt_dingo,end_date,ts=ts,default=len(dt_dingo)-1,match="endpreviousday")
si_ofqc = qcutils.GetDateIndex(dt_ofqc,start_date,ts=ts,default=0,match="startnextday")
ei_ofqc = qcutils.GetDateIndex(dt_ofqc,end_date,ts=ts,default=len(dt_ofqc)-1,match="endpreviousday")
print si_dingo,ei_dingo
print si_ofqc,ei_ofqc
In [13]:
ldt_dingo = dt_dingo[si_dingo:ei_dingo+1]
ldt_ofqc = dt_ofqc[si_ofqc:ei_ofqc+1]
NEE_dingo,f,a = qcutils.GetSeriesasMA(ds_dingo,"NEE",si=si_dingo,ei=ei_dingo)
NEE_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"NEE_SOLO",si=si_ofqc,ei=ei_ofqc)
Fc_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"Fc",si=si_ofqc,ei=ei_ofqc)
ustar_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"ustar",si=si_ofqc,ei=ei_ofqc)
Fsd_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"Fsd",si=si_ofqc,ei=ei_ofqc)
In [14]:
Fre_obs = numpy.ma.masked_where((Fsd_ofqc>10)|(ustar_ofqc<0.25),Fc_ofqc)
Fre_dingo = numpy.ma.masked_where((Fsd_ofqc>10)|(ustar_ofqc<0.25),NEE_dingo)
Fre_ofqc = numpy.ma.masked_where((Fsd_ofqc>10)|(ustar_ofqc<0.25),NEE_ofqc)
In [15]:
fig=plt.figure()
plt.plot(ldt_ofqc,NEE_ofqc,'b.')
plt.plot(ldt_ofqc,Fre_obs,'go')
plt.plot(ldt_dingo,NEE_dingo,'r+')
plt.show()
In [16]:
nperhour = int(float(60)/float(ts)+0.5)
nperday = int(float(24)*nperhour+0.5)
ndays = int(len(ldt_ofqc)/nperday)
ldt_daily = numpy.ma.reshape(ldt_ofqc,[ndays,nperday])
Fre_obs_daily = numpy.ma.reshape(Fre_obs,[ndays,nperday])
Fre_dingo_daily = numpy.ma.reshape(Fre_dingo,[ndays,nperday])
Fre_ofqc_daily = numpy.ma.reshape(Fre_ofqc,[ndays,nperday])
Fre_obs_daily_avg = numpy.ma.average(Fre_obs_daily,axis=1)
Fre_dingo_daily_avg = numpy.ma.average(Fre_dingo_daily,axis=1)
Fre_ofqc_daily_avg = numpy.ma.average(Fre_ofqc_daily,axis=1)
fig=plt.figure()
plt.plot(ldt_daily[:,0],Fre_ofqc_daily_avg,'b.')
plt.plot(ldt_daily[:,0],Fre_obs_daily_avg,'go')
plt.plot(ldt_daily[:,0],Fre_dingo_daily_avg,'r+')
plt.show()
In [17]:
NEE_dingo_night = numpy.ma.masked_where(Fsd_ofqc>10,NEE_dingo)
NEE_ofqc_night = numpy.ma.masked_where(Fsd_ofqc>10,NEE_ofqc)
NEE_dingo_night_daily = numpy.ma.reshape(NEE_dingo_night,[ndays,nperday])
NEE_ofqc_night_daily = numpy.ma.reshape(NEE_ofqc_night,[ndays,nperday])
NEE_dingo_night_daily_avg = numpy.ma.average(NEE_dingo_night_daily,axis=1)
NEE_ofqc_night_daily_avg = numpy.ma.average(NEE_ofqc_night_daily,axis=1)
fig=plt.figure()
plt.plot(ldt_daily[:,0],NEE_ofqc_night_daily_avg,'b.')
plt.plot(ldt_daily[:,0],Fre_obs_daily_avg,'go')
plt.plot(ldt_daily[:,0],NEE_dingo_night_daily_avg,'r+')
plt.show()
In [34]:
Fre_obs_daily_avg_mt15 = numpy.ma.masked_where(numpy.ma.count(Fre_obs_daily,axis=1)<15,Fre_obs_daily_avg)
fig=plt.figure()
plt.plot(ldt_daily[:,0],NEE_ofqc_night_daily_avg,'b.')
plt.plot(ldt_daily[:,0],Fre_obs_daily_avg_mt15,'go')
plt.plot(ldt_daily[:,0],NEE_dingo_night_daily_avg,'r+')
plt.show()
In [11]:
print numpy.ma.sum(Fre_obs_daily_avg_mt15-NEE_ofqc_night_daily_avg),numpy.ma.sum(Fre_obs_daily_avg_mt15-NEE_dingo_night_daily_avg)
In [12]:
print numpy.ma.sum(NEE_ofqc),numpy.ma.sum(NEE_dingo)
In [18]:
Year_dingo,f,a = qcutils.GetSeriesasMA(ds_dingo,"Year")
NEE_dingo,f,a = qcutils.GetSeriesasMA(ds_dingo,"NEE")
GPP_dingo,f,a = qcutils.GetSeriesasMA(ds_dingo,"GPP")
Fre_dingo,f,a = qcutils.GetSeriesasMA(ds_dingo,"Fre")
Year_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"Year")
NEE_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"NEE_SOLO")
GPP_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"GPP_SOLO")
Fre_ofqc,f,a = qcutils.GetSeriesasMA(ds_ofqc,"Fre_SOLO")
year_list = [2008,2009,2010,2011,2012,2013,2014]
for year in year_list:
ind_dingo = numpy.ma.where(Year_dingo==year)[0]
NEE_dingo_year = NEE_dingo[ind_dingo]
GPP_dingo_year = GPP_dingo[ind_dingo]
Fre_dingo_year = Fre_dingo[ind_dingo]
ind_ofqc = numpy.ma.where(Year_ofqc==year)[0]
NEE_ofqc_year = NEE_ofqc[ind_ofqc]
GPP_ofqc_year = GPP_ofqc[ind_ofqc]
Fre_ofqc_year = Fre_ofqc[ind_ofqc]
print year,numpy.ma.sum(NEE_dingo_year),numpy.ma.sum(NEE_ofqc_year),\
numpy.ma.sum(GPP_dingo_year),numpy.ma.sum(GPP_ofqc_year),\
numpy.ma.sum(Fre_dingo_year),numpy.ma.sum(Fre_ofqc_year)
In [ ]: