clear; close all; clc; catchments_list_local = ["leogra"; "astico"; "seugne"; "umpqua"]; tableErr1 = nan(numel(catchments_list_local),3); tableErr2 = nan(numel(catchments_list_local),3); for hh_local=1:numel(catchments_list_local) name_catchment = catchments_list_local(hh_local); disp("Processing catchment: "+upper(name_catchment)); %Import and process DTM data load("results_"+name_catchment+".mat","network_Lengths","areaKm2","hillslope_Means"); emp = hillslope_Means; init_cond = emp(1); % Computing analitical approximations of the mean % Linearized with empirical init. cond. konst = init_cond^2; handLinMean = - network_Lengths + sqrt((network_Lengths.^2)+konst*ones(size(network_Lengths))); % Linearized with approx. (sqrt area) init. cond. konst = areaKm2; handLinMeanAppr = - network_Lengths + sqrt((network_Lengths.^2)+konst*ones(size(network_Lengths))); % Horton horton = 0.5*areaKm2./network_Lengths; % Specify the interval to be considered (max val for x=L/sqrt(A)) maxval = 3.1; % Computing errors errHorton = computeErr(emp,horton,network_Lengths/sqrt(areaKm2),maxval); errModel = computeErr(emp,handLinMean,network_Lengths/sqrt(areaKm2),maxval); errModelAppr = computeErr(emp,handLinMeanAppr,network_Lengths/sqrt(areaKm2),maxval); tableErr2(hh_local,1) = 100*errHorton; tableErr2(hh_local,2) = 100*errModel; tableErr2(hh_local,3) = 100*errModelAppr; end disp("ERRORI SU L/sqrt{A} IN [0, min(3,maxObserved)]"); disp(round(tableErr1,0)); disp("ERRORI SU L/sqrt{A} IN [0, 3]"); disp(round(tableErr2,0)); catchAveraged1 = sum(tableErr1,1)/4; catchAveraged2 = sum(tableErr2,1)/4; disp("MEDIE INTERCATCHMENTS SU L/sqrt{A} IN [0, min(3,maxObserved)]"); disp(catchAveraged1); disp("MEDIE INTERCATCHMENTS SU L/sqrt{A} IN [0, 3]"); disp(catchAveraged2); disp("AutoComputeMeansPreliminary COMPLETED his TASK."); % ------------------------------------------------------------------------- % AUXILIARY FUNCTIONS % ------------------------------------------------------------------------- function err = computeErrAss(emp,model,xvals,maxval,dx) err = 0; cou = 0; for jj=1:numel(emp) if (xvals(jj)0)&&(indIC<=maxind)) w(kk) = w0_bc(indIC) * (a*T+l)/l*(l/(l+(1+a)*T))^(a/(1+a)); else w(kk) = 0; end end % hold on; % plot(tau_bc,w0_bc); % plot(tau_bc,w); % hold off; end