Skip to content

Commit 5a48c93

Browse files
committed
Fixes #12: change the IF statement to ensure noise.m wont crash
1 parent a61a770 commit 5a48c93

File tree

1 file changed

+29
-23
lines changed

1 file changed

+29
-23
lines changed

matlab_codes/update_salinity_mapping.m

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -258,30 +258,36 @@ function update_salinity_mapping( pn_float_dir, pn_float_name, po_system_configu
258258
la_hist_lat = la_hist_lat (ii) ;
259259
la_hist_dates = la_hist_dates(ii) ;
260260
la_hist_Z = la_hist_Z(ii) ;
261-
261+
262262
% map historical data to float profiles -------------------------
263-
%if( length(la_hist_sal)>1 ) % only proceed with mapping if there are more than one data point
264-
% change config 129 -> at least 5 points are required
265-
if( length(la_hist_sal)>5 ) % only proceed with mapping if there are more than five data point
266-
267-
% check for outliers
268-
269-
mean_sal = mean(la_hist_sal);
270-
signal_sal = signal( la_hist_sal ) ;
271-
bad = find(abs(la_hist_sal-mean_sal)/sqrt(signal_sal) >3);
272-
if ~isempty(bad)
273-
la_hist_sal(bad) = [];
274-
la_hist_long(bad) = [];
275-
la_hist_lat(bad) = [];
276-
la_hist_dates(bad) = [];
277-
la_hist_Z(bad) = [];
278-
end
279-
280-
% use large length scales to map original data
281-
% pass NaN for map_age to exclude temporal covariance for large scale mapping
282-
283-
noise_sal = noise( la_hist_sal, la_hist_lat, la_hist_long ) ;
284-
signal_sal = signal( la_hist_sal ) ;
263+
% check for outliers
264+
265+
mean_sal = mean(la_hist_sal);
266+
signal_sal = signal( la_hist_sal ) ;
267+
268+
if signal_sal>0
269+
bad = find(abs(la_hist_sal-mean_sal)/sqrt(signal_sal) >3);
270+
271+
if ~isempty(bad)
272+
la_hist_sal(bad) = [];
273+
la_hist_long(bad) = [];
274+
la_hist_lat(bad) = [];
275+
la_hist_dates(bad) = [];
276+
la_hist_Z(bad) = [];
277+
end
278+
end
279+
280+
281+
% require more than one historical salinity profile with unique position for noise.m; and
282+
% require more than five historical salinity profiles to produce realistic mapping error estimates
283+
if ( (length(unique(la_hist_long)) > 1 | length(unique(la_hist_lat)) > 1) & length(la_hist_sal) > 5 )
284+
285+
286+
% use large length scales to map original data
287+
% pass NaN for map_age to exclude temporal covariance for large scale mapping
288+
289+
noise_sal = noise( la_hist_sal, la_hist_lat, la_hist_long ) ;
290+
signal_sal = signal( la_hist_sal ) ;
285291

286292
% change config 129
287293

0 commit comments

Comments
 (0)