Skip to content

Commit 3391fb2

Browse files
authored
Add files via upload
Using flux data run the scripts to produce plots and statistics regarding FCH4, FCO2, and various met variables. Some scripts require data files not included here but adaptable from the USGS stream gauge network.
1 parent 9f66c55 commit 3391fb2

8 files changed

+1692
-0
lines changed
Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
%% Clear workspace, clear variables, and clear figures
2+
clear all;close all;clc;
3+
load('USLos2020_2019_calcresp.mat')
4+
load('USALQ2020_2019_calcresp.mat')
5+
load('woodruffprecip.mat')
6+
load('dischargevars.mat')
7+
load('aveFCH4.mat')
8+
%% Replace placeholders for missing values with NaN
9+
USLosHH2019.Properties.VariableNames = USLosHH2020.Properties.VariableNames;
10+
USLos = [USLosHH2019;USLosHH2020];
11+
12+
for i= 3:width(USLos)
13+
USLos.(i)(USLos.(i)==-9999) = NaN;
14+
end
15+
16+
USALQ = [USALQHH2019; USALQHH2020];
17+
18+
for i= 3:width(USALQ)
19+
USALQ.(i)(USALQ.(i)==-9999) = NaN;
20+
end
21+
22+
%% Calculate daily averages
23+
% US-Los
24+
daily_CH4Los = dailyaverage2(USLos.FCH4_RF_filled);
25+
dailyCH4Los = daily_CH4Los(:,1);
26+
datesLos = USLos.TIMESTAMP_END(48*daily_CH4Los(:,2));
27+
28+
daily_WTDLos = dailyaverage2(USLos.WTD);
29+
dailyWTDLos = daily_WTDLos(:,1);
30+
31+
daily_GPPLos = dailyaverage2(USLos.GPP_F);
32+
dailyGPPLos = daily_GPPLos(:,1);
33+
34+
dailyNEELos = dailyaverage2(USLos.NEE_F);
35+
dailyNEELos = dailyNEELos(:,1);
36+
37+
dailyTaLos = dailyaverage2(USLos.TA_F_1_1_1);
38+
dailyTaLos = dailyTaLos(:,1);
39+
40+
daily_Rg = dailyaverage2(USLos.SW_IN_1_1_1);
41+
dailyRg = daily_Rg(:,1);
42+
43+
daily_VPD = dailyaverage2(USLos.VPD_F_1_1_1);
44+
dailyVPD = daily_VPD(:,1);
45+
%% US-ALQ
46+
dailyALQ = dailyaverage2(USALQ.FCH4_RF_filled);
47+
dailyFCH4 = dailyALQ(:,1);
48+
49+
dates = dailyALQ(:,2);
50+
dates = USALQ.TIMESTAMP_END(dates.*48);
51+
52+
daily_GPPALQ = dailyaverage2(USALQ.GPP_F);
53+
dailyGPPALQ = daily_GPPALQ(:,1);
54+
55+
dailyNEEALQ = dailyaverage2(USALQ.NEE_F);
56+
dailyNEEALQ = dailyNEEALQ(:,1);
57+
58+
dailyTaALQ = dailyaverage2(USALQ.TA_F);
59+
dailyTaALQ = dailyTaALQ(:,1);
60+
61+
daily_RgALQ = dailyaverage2(USALQ.SW_IN);
62+
dailyRgALQ = daily_RgALQ(:,1);
63+
64+
daily_VPDALQ = dailyaverage2(USALQ.VPD);
65+
dailyVPDALQ = daily_VPDALQ(:,1);
66+
%% Index for the same dates
67+
precip = woodruffprecipS3.Precipitationin*2.54;
68+
69+
Losdischarge = USGSLos.discharge_cfs*0.028316847;% Convert USLos discharge from cfs to m3s (site no 5357335)
70+
71+
ALQdischarge = USGSALQ.discharge_cfs*0.028316847;% Convert USALQ discharge from cfs to m3s-1 (site no 5357205)
72+
%% Plotting
73+
fig = figure();
74+
right_color = [0.6510 0.6510 0.6510];
75+
left_color = [0 0 0];
76+
set(fig,'defaultAxesColorOrder',[left_color; right_color]);
77+
78+
subplot(5,1,1)
79+
yyaxis left
80+
bar(dates,precip)% Convert from in to cm
81+
ylabel('Precip (cm)')
82+
yyaxis right
83+
plot(datesLos,dailyWTDLos,'-','LineWidth',2)
84+
ylabel('WTD (m)')
85+
set(gca,'FontSize',17)
86+
xlim([dates(1) dates(end)])
87+
88+
left_color = [0.3020 0.7451 0.9333];
89+
right_color = [0.8784 0.4588 0.7176];
90+
set(fig,'defaultAxesColorOrder',[left_color; right_color]);
91+
92+
subplot(5,1,2)
93+
yyaxis left
94+
% US-Los
95+
plot(dates,Losdischarge,'^')
96+
ylabel('Q (m^3s^{-1})')
97+
yyaxis right
98+
% US-ALQ
99+
plot(dates,ALQdischarge,'o')
100+
ylabel('Q (m^3s^{-1})')
101+
xlim([dates(1) dates(end)])
102+
set(gca,'FontSize',17)
103+
legend('US-Los','US-ALQ','Location','Northwest');
104+
105+
right_color = [0.9294 0.2235 0.5059];
106+
left_color = [0 0 0];
107+
set(fig,'defaultAxesColorOrder',[left_color; right_color]);
108+
109+
subplot(5,1,3)
110+
yyaxis left
111+
hold on
112+
plot(dates,dailyTaALQ,'-','Color',[0.8784 0.4588 0.7176],'LineWidth',2)
113+
plot(datesLos,dailyTaLos,'-','Color',[0.3020 0.7451 0.9333],'LineWidth',2)
114+
xlim([dates(1) dates(end)])
115+
hold off
116+
ylabel('T_{air} (^{\circ}C)')
117+
box on
118+
set(gca,'FontSize',17)
119+
yyaxis right
120+
plot(dates,USGSALQ.Twater_mean,'-','Color',[0.9294 0.2235 0.5059],'LineWidth',2)
121+
ylabel('T_{water} (^{\circ}C)')
122+
lgnd = legend('US-ALQ','US-Los','US-ALQ','Location','Northwest','NumColumns',2)
123+
set(lgnd,'color','none');
124+
125+
subplot(5,1,4)
126+
hold on
127+
plot(dates,dailyGPPALQ,'+','Color',[0.8784 0.4588 0.7176])
128+
xlim([dates(1) dates(end)])
129+
plot(datesLos,dailyGPPLos,'s','Color',[0.3020 0.7451 0.9333])
130+
hold off
131+
ylabel('GPP')
132+
box on
133+
set(gca,'FontSize',17)
134+
lgnd = legend('US-ALQ','US-Los','Location','Northwest')
135+
set(lgnd,'color','none');
136+
137+
A = repmat(aveFCH4,2,1);
138+
139+
subplot(5,1,5)
140+
hold on
141+
plot(datesLos,dailyCH4Los,'-','Color',[0.3020 0.7451 0.9333],'LineWidth',2)
142+
plot(dates,A(1:length(dates)),'Color', [ 0.5333 0.8039 0.9216 0.7],'LineWidth',2)
143+
plot(dates,dailyFCH4,'-','Color',[0.8784 0.4588 0.7176],'LineWidth',2)
144+
xlim([dates(1) dates(end)])
145+
hold off
146+
ylabel('FCH_4')% (\etamol CH_4 m^-^2s^-^1)
147+
lgnd = legend('US-Los','US-Los 2014-18','US-ALQ','Location','Northwest');
148+
box on
149+
set(gca,'FontSize',17)
150+
set(lgnd,'color','none');
151+
%% Statistics
152+
nanvar(USLos.WTD(year(USLos.TIMESTAMP_END)==2019))
153+
nanvar(USLos.WTD(year(USLos.TIMESTAMP_END)==2020))
154+
155+
nanvar(Losdischarge(year(datesLos)==2019))
156+
nanvar(Losdischarge(year(datesLos)==2020))
157+
158+
nanvar(ALQdischarge(year(dates)==2019))
159+
nanvar(ALQdischarge(year(dates)==2020))
160+
161+
range = [min(Losdischarge(year(datesLos)==2019)) max(Losdischarge(year(datesLos)==2019))]
162+
range = [min(Losdischarge(year(datesLos)==2020)) max(Losdischarge(year(datesLos)==2020))]
163+
range = [min(ALQdischarge(year(datesLos)==2019)) max(ALQdischarge(year(datesLos)==2019))]
164+
range = [min(ALQdischarge(year(datesLos)==2020)) max(ALQdischarge(year(datesLos)==2020))]
165+
166+
C = cov(precip,dailyWTDLos,'omitrows')
167+
C = cov(precip,USGSALQ.Twater_mean,'omitrows')
168+
C = cov(precip,dailyTaLos,'omitrows')
169+
C = cov(precip,dailyTaALQ,'omitrows')
170+
C = cov(precip,Losdischarge,'omitrows')
171+
C = cov(precip,ALQdischarge,'omitrows')
172+
173+
[h,p] = ttest2(dailyRg,dailyRgALQ)
174+
[h,p] = ttest2(Losdischarge,ALQdischarge)
175+
[h,p] = ttest2(dailyTaLos,dailyTaALQ)
176+
[h,p] = ttest2(dailyVPD,dailyVPDALQ)
177+
178+
[R,P] = corrcoef(Losdischarge(~isnan(Losdischarge)&~isnan(ALQdischarge)),ALQdischarge(~isnan(Losdischarge)&~isnan(ALQdischarge)))
179+
[R,P] = corrcoef(ALQdischarge(~isnan(ALQdischarge)&~isnan(dailyWTDLos)),dailyWTDLos(~isnan(ALQdischarge)&~isnan(dailyWTDLos)))
180+
[R,P] = corrcoef(dailyTaLos(~isnan(dailyTaLos)&~isnan(dailyTaALQ)),dailyTaALQ(~isnan(dailyTaLos)&~isnan(dailyTaALQ)))
181+
[R,P] = corrcoef(dailyVPD(~isnan(dailyVPD)&~isnan(dailyVPDALQ)),dailyVPDALQ(~isnan(dailyVPD)&~isnan(dailyVPDALQ)))
182+
183+
nanmean(dailyCH4Los)
184+
nanmean(dailyFCH4)
185+
nanmean(dailyCH4Los(year(datesLos)==2019))
186+
nanmean(dailyCH4Los(year(datesLos)==2020))
187+
nanmean(dailyFCH4(year(dates)==2019))
188+
nanmean(dailyFCH4(year(dates)==2020))
189+
190+
max(gramconvertnmolday(dailyCH4Los))
191+
max(gramconvertnmolday(dailyFCH4))
192+
min(gramconvertnmolday(dailyCH4Los))
193+
min(gramconvertnmolday(dailyFCH4))

WTDandCH4ALQ_1_12_2021.m

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
%% Clear workspace, clear variables, and clear figures
2+
clear all;close all;clc;
3+
load('USLos2020_2019_calcresp.mat')
4+
load('USALQ2020_2019_calcresp.mat')
5+
load('woodruffprecip.mat')
6+
load('dischargevars.mat')
7+
load('aveFCH4.mat')
8+
%% Replace placeholders for missing values with NaN
9+
USALQ = [USALQHH2019; USALQHH2020];
10+
11+
for i= 3:width(USALQ)
12+
USALQ.(i)(USALQ.(i)==-9999) = NaN;
13+
end
14+
15+
%% Make daily averages
16+
CH4 = USALQ.FCH4_RF_filled;% HH data
17+
NEE = USALQ.NEE_F;
18+
19+
daily_CH4 = dailyaverage2(USALQ.FCH4_RF_filled);
20+
dailyCH4 = daily_CH4(:,1);% Daily data
21+
22+
GPP = USALQ.GPP_F;% HH data
23+
daily_GPP = dailyaverage2(USALQ.GPP_F);
24+
dailyGPP = daily_GPP(:,1);% Daily data
25+
26+
dates = USALQ.TIMESTAMP_END(48*daily_CH4(:,2));
27+
GPPdates = USALQ.TIMESTAMP_END(48*daily_GPP(:,2));
28+
29+
%% Calculate the cumulative sum of FCH4 for each year
30+
CH4grams = gramconvertnmol(CH4(year(USALQ.TIMESTAMP_END)==2019));
31+
cumulativeCH4 = cumsum(CH4grams,'omitnan');
32+
cumulativeCH4(end)
33+
stderror = std(cumulativeCH4)/sqrt(length(cumulativeCH4))
34+
35+
CH4grams = gramconvertnmol(CH4(year(USALQ.TIMESTAMP_END)==2020));
36+
cumulativeCH4 = cumsum(CH4grams,'omitnan');
37+
cumulativeCH4(end)
38+
stderror = std(cumulativeCH4)/sqrt(length(cumulativeCH4))
39+
40+
NEEgrams = gramconvert(NEE(year(USALQ.TIMESTAMP_END)==2019));
41+
cumulativeNEE = cumsum(NEEgrams,'omitnan');
42+
cumulativeNEE(end)
43+
stderror = std(cumulativeNEE)/sqrt(length(cumulativeNEE))
44+
45+
NEEgrams = gramconvert(NEE(year(USALQ.TIMESTAMP_END)==2020));
46+
cumulativeNEE = cumsum(NEEgrams,'omitnan');
47+
cumulativeNEE(end)
48+
stderror = std(cumulativeNEE)/sqrt(length(cumulativeNEE))

0 commit comments

Comments
 (0)