实验三 反演方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 反演方法
一、实验目的
利用统计经验方法,建立海洋光学的反演方法。
二、实验内容
1、利用70%的数据拟合所选定的函数,求出函数中的统计常数;
2、将70%数据代入得到的反演算法,计算反演参数,并与真值进行比较;
3、将剩余30%数据代入得到的反演算法,计算反演参数,并与真值进行比较。
4、分析结果
三、实验原理及方法
经验统计算法是基于一个实验数据集而建立的光学测量数据与水中组分浓度之间的关系。这个数据集中包含了现场测量的光谱反射率(辐亮度)以及同步获取的组分浓度的数据。在海洋光学反演中,最常用的关系是基于波段比值的方程式
其中,P 是待求的物理量,如叶绿素浓度、悬浮物浓度、可溶有机物及衰减系数等。Ri 表示第i 个通道的反射率或辐亮度,a0、a1和a2为通过回归都得到常数。
21102a R P a a R ⎛⎫=+ ⎪⎝⎭
或者
Kd(490)=0.016
四、实验结果及分析
1.图1是利用70%的数据拟合所选定的函数,黑色点代表原始数据,红色曲线代表拟合曲线,用来拟合的函数为 Y=a1*x^2+b1*x+c1
求出a1=0.2979; b1=-1.3899; c1=0.1546;
计算出的反演参数与真实值的相关系数接近0.9。
)490(10)490(33,22,1,0,w x a x a x a a d K K j j j j +=+++23
100123log ((490)(490))d w K K a a x a x a x -=+++12()10()log ()rs rs R R x λλ=12()(490)(490)()(555)(665)
rs rs rs rs rs rs R R R R R R λλ=
或
图1
2.图二是将剩余30%数据代入得到的反演算法,计算反演参数,并与真值进行比较。蓝色点代表原始数据,红色曲线代表拟合曲线。计算出的反演参数与真实值间的相关误差大于0.9,均方差约为0.3,说明拟合曲线比较符合实际情况。
图2
附源程序代码:
clear all;
close all;
data=dlmread('team_1(coast)kd.txt','',1,0); Rrs443=data(:,1);
Rrs490=data(:,2);
Rrs555=data(:,3);
Rrs665=data(:,4);
kd490=data(:,5);
ratio1=Rrs490./Rrs555;
ratio2=Rrs443./Rrs555;
ratio3=Rrs555./Rrs665;
ratio4=Rrs490./Rrs665;
ratio5=Rrs443./Rrs490;
logratio1=log10(ratio1);
logratio2=log10(ratio2);
logratio3=log10(ratio3);
logratio4=log10(ratio4);
logratio5=log10(ratio5);
logkd490=log10(kd490);
n1=corrcoef(logratio1,logkd490);
n2=corrcoef(logratio2,logkd490);
n3=corrcoef(logratio3,logkd490);
n4=corrcoef(logratio4,logkd490);
n5=corrcoef(logratio5,logkd490);
figure(1);
loglog(ratio4(1:200),kd490(1:200),'dk');
xlim([0.2 10]);
ylim([0.01 100]);
xlabel('Rrs490/Rrs665');
ylabel('kd(490)');
newtype=fittype('a1*x^2+b1*x+c1');
m=fit(logratio4(1:200),logkd490(1:200),newtype);
a1=m.a1;
b1=m.b1;
c1=m.c1;
kd490t=10.^(a1*(logratio4(1:200)).^2+b1*logratio4(1:200)+c1);
hold on;
loglog(ratio4(1:200),kd490t(1:200),'r');
n6=corrcoef(kd490t,kd490(1:200));
hold off;
figure(2);
kd490tt=10.^(a1*(logratio4(201:279)).^2+b1*logratio4(201:279)+c1) ;
loglog(kd490(201:279),kd490tt,'*b');
xlabel('kd490-measured');
ylabel('kd490-derived');
hold on;
loglog(kd490(201:279),kd490(201:279),'r');
n7=corrcoef(kd490tt,kd490(201:279));
N=length(kd490(201:279));
e=((kd490tt-kd490(201:279))./kd490(201:279)).^2;
rmse=sqrt(sum(e)/(N-1));