In [1]:
%run basics
%matplotlib


Using matplotlib backend: Qt4Agg

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)


-21.0808367218 -93.700227942

In [12]:
print numpy.ma.sum(NEE_ofqc),numpy.ma.sum(NEE_dingo)


-75546.8538883 -69303.9435135

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)


2008 -- 0.0 -- 0.0 -- 0.0
2009 -- 0.0 -- 0.0 -- 0.0
2010 -- 0.0 -- 0.0 -- 0.0
2011 -2542.27565658 -2724.07589936 -6837.7041331 6683.86811878 4295.42847653 3959.79
2012 -13071.1520101 -14010.9729386 -59165.941426 55219.7499531 46094.7894159 41208.8
2013 -9643.81973637 -14891.6924913 -55565.6626663 49482.030716 45921.8429299 34590.3
2014 -17992.7975269 -19114.4759544 -61576.353793 60912.245213 45074.7722054 41797.8

In [ ]: