forked from kilianv/CoastSat_WRL
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
Matlab
66 lines
1.8 KiB
Matlab
close all
|
|
clear
|
|
clc
|
|
|
|
addpath(genpath('C:\Users\z5030440\Documents\GitHub\geetools\functions\xyz2spz'))
|
|
|
|
sl_gt = load('sl_gt.mat')
|
|
sl_sds = load('sl_sds.mat')
|
|
|
|
sl_sds = sl_sds.arr
|
|
sl_gt = sl_gt.arr
|
|
for i = 1:length(sl_sds)
|
|
sds.x = sl_sds{i}(:,1)
|
|
sds.y = sl_sds{i}(:,2)
|
|
sds.z = zeros(length(sl_sds{i}(:,1)),1)
|
|
|
|
gt.x = sl_gt{i}(:,1)
|
|
gt.y = sl_gt{i}(:,2)
|
|
gt.z = zeros(length(sl_gt{i}(:,1)),1)
|
|
|
|
outsds = xyz2spz(sds,'NARRA')
|
|
outgt = xyz2spz(gt,'NARRA')
|
|
|
|
figure
|
|
hold on
|
|
grid on
|
|
box on
|
|
plot(outsds.s, outsds.p, 'b-', 'linewidth',2)
|
|
plot(outgt.s, outgt.p, 'r-', 'linewidth',2)
|
|
xlabel('s [m]')
|
|
ylabel('p [m]')
|
|
title('Horizontal comparison in spz coordinates')
|
|
legend({'SDS', 'contour at tide level'})
|
|
|
|
xq = nanmin(outsds.s):10:nanmax(outsds.s)
|
|
[gt_s idx_gt] = unique(outgt.s)
|
|
gt_p = outgt.p(idx_gt)
|
|
gt_p_int = interp1(gt_s, gt_p, xq)
|
|
[sds_s idx_sds] = unique(outsds.s)
|
|
sds_p = outsds.p(idx_sds)
|
|
sds_p_int = interp1(sds_s, sds_p, xq)
|
|
diff_p = sds_p_int - gt_p_int;
|
|
|
|
sds_av(i) = median(sds_p_int(~(sds_p_int > median(sds_p_int) + 2*std(sds_p_int) | sds_p_int < median(sds_p_int) - 2*std(sds_p_int))))
|
|
gt_p_int(isnan(gt_p_int)) = []
|
|
gt_av(i) = median(gt_p_int(~(gt_p_int > median(gt_p_int) + 2*std(gt_p_int) | gt_p_int < median(gt_p_int) - 2*std(gt_p_int))))
|
|
|
|
|
|
idx_nan = isnan(diff_p)
|
|
diff_p(idx_nan) = []
|
|
xq(idx_nan) = []
|
|
idx_outlier = diff_p > median(diff_p) + 2*std(diff_p) | diff_p < median(diff_p) - 2*std(diff_p)
|
|
diff_p(idx_outlier) = []
|
|
xq(idx_outlier) = []
|
|
|
|
p_rmse(i) = sqrt(mean(diff_p.^2))
|
|
p_mean(i) = mean(diff_p)
|
|
p_std(i) = std(diff_p)
|
|
p_q90(i) = quantile(abs(diff_p), 0.9)
|
|
|
|
end
|
|
|
|
clearvars -except sds_av gt_av p_rmse p_mean p_std p_q90
|
|
|
|
save 'hor_error.mat'
|