loadnav.m
author A.M. Thurnherr <athurnherr@yahoo.com>
Tue, 29 Jun 2021 09:14:43 -0400
changeset 23 e83393696a24
parent 22 624b1ed6e9c9
permissions -rw-r--r--
IX_14 Release Version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     1
%======================================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     2
%                    L O A D N A V . M 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     3
%                    doc: Thu Jun 17 18:01:50 2004
22
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
     4
%                    dlm: Tue Jan 28 13:24:01 2020
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     5
%                    (c) 2004 ladcp@
22
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
     6
%                    uE-Info: 43 64 NIL 0 0 72 2 2 8 NIL ofnI
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     7
%======================================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     8
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     9
% MODIFICATIONS BY ANT:
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    10
%   Jun 26, 2004: - totally re-wrote the file-reading, which reduces
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    11
%		    run time by over factor 90(!!!) --- 5.7 instead of
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    12
%		    527 seconds in the test case --- for deep casts
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    13
%   Jul  1, 2004: - added support for time bases
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    14
%		  - made input definition flexible
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    15
%		  - removed ipos argument
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    16
%   Dec 18, 2004: - BUG: header_lines > 0 did not work
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    17
%   Jun  9, 2005: - improved time-base comments
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    18
%   Aug  9, 2006: - added support for elapsed-time
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    19
%   Jan  5, 2007: - removed LADDER-1 specific code for IX_4 distribution
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    20
%		  - added Dan Torres' code to interpolate irregular
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    21
%		    GPS time series
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    22
%		  - added nav file layout into p structure
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    23
%   Jan 17, 2007: - added support for new [geomag.m]
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    24
%   Jan 26, 2007: - BUG: file layout default was in p (rather than f) structure
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    25
%   Jun 30, 2008: - adapted to calculate magdev using external program geomag60
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    26
%   Jul  2, 2008: - BUG: missing "" in geomag command to allow spcs in 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    27
%			 cof-file path
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    28
%   Jul 17, 2008: - moved some code to [loadctd.m] to fix bug associated with
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    29
%		    adjusting of start/end positions in case of significant
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    30
%		    ADCP vs GPS/CTD clock offset (unclear whether this happened
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    31
%		    only when elapsed time was used)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    32
%   Jul 27, 2008: - nanmean() -> meannan()
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    33
%   Oct 15, 2008: - replaced mean by median to get lat/lon (bad outliers in L1 data set)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    34
%   Dec  1, 2009: - BUG: geomag date check was wrong (Dec 1 2009 resulted in a date >= 2010)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    35
%   Jan 22, 2010: - adapted to Eric Firing's much simplified magdec utility
1
ea3f25d9ba76 Version IX_7
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 0
diff changeset
    36
%   Jan  3, 2011: - changed IGRF11 validity to end of 2015 (from 2010)
19
b0fe24d04ba8 Version IX_12
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 1
diff changeset
    37
%   Feb 18, 2016: - BUG: geomag year range check bombed in 2016
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
    38
%		  - added p.interp_missing_GPS using code provided by Jay Hooper
22
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    39
%   Sep 14, 2018: - BUG: 2008 code move broke working with single GPS file for entire cruise
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    40
%   Sep  4, 2019: - adapted to GK new magdev.m
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    41
%		  - added p.magdec_source
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    42
%   Jan 28, 2020: - 2008 code move is required because at the loadnav stage p.time_start and
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    43
%		    end reflect the LADCP turn-on and -off times
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    44
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    45
function [d,p]=loadnav(f,d,p)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    46
% function [d,p]=loadnav(f,d,p)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    47
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    48
% This routine works for generic ASCII files, containing GPS time series,
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    49
% with fields time, lat and lon.
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    50
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    51
%====================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    52
% TWEAKABLES
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    53
%====================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    54
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    55
% PRE-AVERAGING OF GPS TIME (IN DAYS)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    56
p = setdefv(p,'navtime_av',2/60/24);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    57
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    58
% INTERPOLATE IRREGULAR NAV TIME SERIES (Dan Torres)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    59
p=setdefv(p,'interp_nav_times',0);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    60
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
    61
% INTERPOLATE MISSING GPS VALUES (Jay Hooper)
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
    62
p=setdefv(p,'interp_missing_GPS',1);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
    63
22
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    64
% MAGNETIC DECLINATION
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    65
%    There are three different sources for magnetic declination
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    66
%	- specify p.drot manually
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    67
%	- p.magdec_source = 1	% use external magdec program, if available, otherwise ...
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    68
%	- p.magdec_source = 2	% use [magdev.m] from Gerd Krahmann
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
    69
p=setdefv(p,'magdec_source',2);
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
    70
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    71
% FILE LAYOUT
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    72
f = setdefv(f,'nav_header_lines',0);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    73
f = setdefv(f,'nav_fields_per_line',3);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    74
f = setdefv(f,'nav_time_field',1);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    75
f = setdefv(f,'nav_lat_field',2);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    76
f = setdefv(f,'nav_lon_field',3);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    77
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    78
% TIME BASE
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    79
% 	0 for elapsed time in seconds
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    80
% 	1 for year-day (1.0 = Jan 1, 00:00)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    81
% 	2 for Visbeck's Gregorian (see gregoria.m)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    82
p = setdefv(p,'nav_time_base',0);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    83
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    84
%======================================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    85
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    86
% MODIFICATIONS BY ANT:
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    87
%   Jun 26, 2004: - totally re-wrote the file-reading, which reduces
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    88
%		    run time by over factor 90(!!!) --- 5.7 instead of
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    89
%		    527 seconds in the test case --- for deep casts
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    90
%   Jul  1, 2004: - added support for time bases
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    91
%		  - made input definition flexible
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    92
%		  - removed ipos argument
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    93
%   Dec 18, 2004: - BUG: header_lines > 0 did not work
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    94
%   Jun  9, 2005: - improved time-base comments
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    95
%   Aug  9, 2006: - added support for elapsed-time
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    96
%   Jan  5, 2007: - removed LADDER-1 specific code for IX_4 distribution
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    97
%		  - added Dan Torres' code to interpolate irregular
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    98
%		    GPS time series
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    99
%		  - added nav file layout into p structure
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   100
%   Jan 17, 2007: - added support for new [geomag.m]
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   101
%   Jan 26, 2007: - BUG: file layout default was in p (rather than f) structure
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   102
%   Jan  7, 2009: - tightened use of exist()
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   103
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   104
disp(['LOADNAV: load NAV time series ',f.nav])
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   105
if ~exist(f.nav,'file')
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   106
 disp([' can not find ',f.nav])
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   107
 return
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   108
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   109
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   110
% construct input format
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   111
cur_field = 1; input_format = '';
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   112
for i=1:f.nav_fields_per_line
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   113
  switch i,
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   114
    case f.nav_time_field,
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   115
      i_time = cur_field; cur_field = cur_field + 1;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   116
      input_format = [input_format ' %g'];
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   117
    case f.nav_lat_field
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   118
      i_lat = cur_field; cur_field = cur_field + 1;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   119
      input_format = [input_format ' %g'];
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   120
    case f.nav_lon_field
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   121
      i_lon = cur_field; cur_field = cur_field + 1;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   122
      input_format = [input_format ' %g'];
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   123
    otherwise
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   124
      input_format = [input_format ' %*g'];
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   125
  end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   126
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   127
if cur_field ~= 4
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   128
  error('File format definition error');
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   129
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   130
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   131
% open input & skip header
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   132
header_lines = f.nav_header_lines;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   133
fp=fopen(f.nav);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   134
while header_lines > 0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   135
  fgets(fp);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   136
  header_lines = header_lines - 1;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   137
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   138
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   139
% read time series
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   140
[A,nread] = fscanf(fp,input_format,[3,inf]);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   141
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   142
% close file
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   143
fclose(fp);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   144
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   145
% NAV time
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   146
d.navtime_jul=A(i_time,:)';
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   147
switch f.nav_time_base
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   148
  case 0 % elapsed time in seconds
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   149
    d.navtime_jul = d.navtime_jul/24/3600 + julian(p.time_start);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   150
  case 1 % year-day
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   151
    d.navtime_jul = d.navtime_jul + julian([p.time_start(1) 1 0 0 0 0]);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   152
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   153
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   154
disp([' number of NAV scans: ',int2str(length(d.navtime_jul)),...
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   155
       '  delta t : ',num2str(median(diff(d.navtime_jul))*24*3600),' seconds'])
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   156
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   157
%----------------------------------------
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   158
% interpolate to regular time series
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   159
%	code provided by Dan Torres
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   160
%----------------------------------------
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   161
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   162
if p.interp_nav_times
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   163
  min_t = min(d.navtime_jul);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   164
  max_t = max(d.navtime_jul);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   165
  delta_t = median(diff(d.navtime_jul));
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   166
  data = interp1q(d.navtime_jul,A([i_lat i_lon],:)',[min_t:delta_t:max_t]');
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   167
  d.navtime_jul = [min_t:delta_t:max_t]';
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   168
  disp(sprintf(' interpolated to %d NAV scans; delta_t = %.2f seconds',...
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   169
		length(d.navtime_jul),median(diff(d.navtime_jul))*24*3600));
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   170
else
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   171
  data=A([i_lat i_lon],:)';
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   172
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   173
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   174
p.navdata = 1;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   175
d.slat = data(:,1);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   176
d.slon = data(:,2);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   177
20
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   178
%----------------------------------------
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   179
% interpolate missign GPS values
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   180
%	code provided by Jay Hooper
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   181
%----------------------------------------
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   182
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   183
if p.interp_missing_GPS
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   184
    bad_lon = find(d.slon == -9.990e-29);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   185
    if ~isempty(bad_lon),
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   186
	good_lon = find(d.slon ~= -9.990e-29);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   187
	d.slon = interp1(d.navtime_jul(good_lon),d.slon(good_lon),d.navtime_jul);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   188
    end
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   189
    bad_lat = find(d.slat == -9.990e-29);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   190
    if ~isempty(bad_lat),
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   191
	good_lat = find(d.slat ~= -9.990e-29);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   192
	d.slat = interp1(d.navtime_jul(good_lat),d.slat(good_lat),d.navtime_jul);
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   193
    end
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   194
end
61b92f8fb463 Version IX_13
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 19
diff changeset
   195
22
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   196
%----------------------------------------------------------------------
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   197
% The following code was moved into [loadctd.m] in July 2008 to fix a
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   198
% bug that most likely only occurs with elapsed times. In 2018, it was
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   199
% discovered that the bug fix introduced another bug that only affects
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   200
% data sets with a single GPS time series from which the per-station
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   201
% information must be extracted. Therefore, the code was moved back
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   202
% here but only called when not working with elapsed time.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   203
% In Jan 2020 I realized that the code cannot be here at all, because 
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   204
% p.time_start and end are still the LADCP turn-on and -off times.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   205
% Therefore, I disabled the code here and re-enabled it for all
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   206
% time bases in [loadctd.m]. I do not remember what bug this now causes.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   207
%----------------------------------------------------------------------
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   208
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   209
if 0
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   210
  if min(d.navtime_jul)>max(d.time_jul) | max(d.navtime_jul)<min(d.time_jul)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   211
    disp('NAV timeseries does not overlap WRONG STATION????')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   212
    disp(['  NAV-data : ',datestrj(d.navtime_jul(1)),'	to ',datestrj(d.navtime_jul(end))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   213
    disp([' ADCP-data : ',datestrj(d.time_jul(1)),'  to ',datestrj(d.time_jul(end))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   214
    disp(' will ignore nav data')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   215
    p.navdata = 0;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   216
    d.navtime_jul = d.time_jul; % make sure same length
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   217
    d.slat = d.navtime_jul*NaN;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   218
    d.slon = d.slat;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   219
  else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   220
    if d.navtime_jul(1) > d.time_jul(1)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   221
      disp('NAV timeseries starts after ADCP timeseries: used first NAV value to patch ')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   222
      disp(['  NAV-data : ',datestrj(d.navtime_jul(1)),'  to ',datestrj(d.navtime_jul(end))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   223
      disp([' ADCP-data : ',datestrj(d.time_jul(1)),'  to ',datestrj(d.time_jul(end))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   224
      d.navtime_jul(1) = d.time_jul(1);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   225
    end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   226
    
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   227
    if d.navtime_jul(end) < d.time_jul(end)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   228
      disp('NAV timeseries ends before ADCP timeseries: used last NAV value to patch ')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   229
      disp(['  NAV-data : ',datestrj(d.navtime_jul(1)),'  to ',datestrj(d.navtime_jul(end))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   230
      disp([' ADCP-data : ',datestrj(d.time_jul(1)),'  to ',datestrj(d.time_jul(end))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   231
      d.navtime_jul(end) = d.time_jul(end);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   232
    end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   233
  
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   234
    % find valid
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   235
    ii=find(diff(d.navtime_jul)>0);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   236
    ii=[ii;length(d.navtime_jul)];
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   237
  
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   238
    % average over p.navtime_av days
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   239
    dt2m=[-p.navtime_av:(1/3600/24):p.navtime_av]';
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   240
    slon=medianan(interp1q(d.navtime_jul(ii),d.slon(ii),julian(p.time_start)+dt2m));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   241
    slat=medianan(interp1q(d.navtime_jul(ii),d.slat(ii),julian(p.time_start)+dt2m));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   242
keyboard
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   243
    p.nav_start=[fix(slat), (slat-fix(slat))*60, fix(slon), (slon-fix(slon))*60];
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   244
    elon=medianan(interp1q(d.navtime_jul(ii),d.slon(ii),julian(p.time_end)+dt2m));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   245
    elat=medianan(interp1q(d.navtime_jul(ii),d.slat(ii),julian(p.time_end)+dt2m));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   246
    p.nav_end=[fix(elat), (elat-fix(elat))*60, fix(elon), (elon-fix(elon))*60];
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   247
  
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   248
    % interpolate on RDI data
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   249
    % this also shortens vectors to length of d.time_jul, which may be the
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   250
    % only thing that is really needed
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   251
    d.slon=interp1q(d.navtime_jul(ii),d.slon(ii),d.time_jul')';
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   252
    d.slat=interp1q(d.navtime_jul(ii),d.slat(ii),d.time_jul')';
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   253
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   254
    p.poss = [NaN NaN NaN NaN];
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   255
    p.pose = [NaN NaN NaN NaN];
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   256
  end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   257
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   258
  p=setdefv(p,'poss',[NaN NaN NaN NaN]);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   259
  [slat,slon] = pos2str(p.poss(1)+p.poss(2)/60,p.poss(3)+p.poss(4)/60);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   260
  disp([' update start pos  from:',slat,'  ',slon])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   261
  p.poss=p.nav_start;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   262
  [slat,slon] = pos2str(p.poss(1)+p.poss(2)/60,p.poss(3)+p.poss(4)/60);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   263
  disp(['			to:',slat,'  ',slon])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   264
  
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   265
  p=setdefv(p,'pose',[NaN NaN NaN NaN]);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   266
  [slat,slon] = pos2str(p.pose(1)+p.pose(2)/60,p.pose(3)+p.pose(4)/60);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   267
  disp([' update end pos    from:',slat,'  ',slon])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   268
  p.pose=p.nav_end;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   269
  [slat,slon] = pos2str(p.pose(1)+p.pose(2)/60,p.pose(3)+p.pose(4)/60);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   270
  disp(['			to:',slat,'  ',slon])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   271
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   272
end % if p.navdata
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   273
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   274
% =================================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   275
% - at this point nav data is in d.navtime_jul, d.slon, d.slat
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   276
%   and p.navdata is set to 1
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   277
% - time shifting & extraction of begin/end position is handled
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   278
%   in [loadctd.m]
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   279
% =================================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   280
22
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   281
if ~isfinite(p.drot)						% set magdecl
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   282
 if p.magdec_source == 1					% external magdec program
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   283
   [s,o] = system('magdec');
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   284
   if s == 1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   285
     p.drot = geomag(f,meannan(d.navtime_jul),medianan(d.slat),medianan(d.slon));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   286
   else    
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   287
     warn = sprintf('"magdec" not found; using magdev Matlab code');
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   288
     disp(['WARNING: ' warn]);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   289
     p.warn(size(p.warn,1)+1,1:length(warn))=warn;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   290
   end
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   291
 end
22
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   292
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   293
 if ~isfinite(p.drot)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   294
   p.drot = magdev(medianan(d.slat),medianan(d.slon),0,p.time_start(1));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   295
 end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 20
diff changeset
   296
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   297
 [d.ru,d.rv]=uvrot(d.ru,d.rv,p.drot);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   298
 [d.bvel(:,1),d.bvel(:,2)]=uvrot(d.bvel(:,1),d.bvel(:,2),p.drot);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   299
 disp(sprintf(' corrected for magnetic declination of %.1f deg',p.drot));
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   300
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   301
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   302
% ================================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   303
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   304
function depth=p2z(p,lat)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   305
% !!!!!! USES Z=0 AT P=0  (I.E. NOT 1ATM AT SEA SURFACE)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   306
%	pressure to depth conversion using
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   307
%	saunders&fofonoff's method (deep sea res.,
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   308
%	1976,23,109-111)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   309
%	formula refitted for alpha(p,t,s) = eos80
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   310
%	units:
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   311
%		depth         z        meter
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   312
%		pressure      p        dbars  (original in bars, but below
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   313
%                                              division by 10 is included)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   314
%		latitude      lat      deg
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   315
%	checkvalue:
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   316
%		depth =       9712.654  m
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   317
%	for
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   318
%		p     =         1000.     bars
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   319
%		lat   =           30.     deg
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   320
%	real lat,p
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   321
        if nargin < 2, lat=54; end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   322
        p=p/10.;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   323
	x=sin(lat/57.29578);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   324
	x=x*x;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   325
	gr=9.780318*(1.0+(5.2788e-3+2.36e-5*x)*x)+1.092e-5*p;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   326
	depth=(((-1.82e-11*p+2.279e-7).*p-2.2512e-3).*p+97.2659).*p;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   327
	depth=depth./gr;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   328
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   329
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   330
function a=datestrj(b)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   331
% 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   332
% print julian date string
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   333
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   334
a=datestr(b-julian([0 1 0 0 0 0]));
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   335
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   336
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   337
%==============================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   338
function [hours]=hms2h(h,m,s);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   339
%HMS2H converts hours, minutes, and seconds to hours
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   340
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   341
%  Usage:  [hours]=hms2h(h,m,s);   or [hours]=hms2h(hhmmss);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   342
%
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   343
if nargin== 1,
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   344
   hms=h;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   345
   h=floor(hms/10000);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   346
   ms=hms-h*10000;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   347
   m=floor(ms/100);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   348
   s=ms-m*100;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   349
   hours=h+m/60+s/3600;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   350
else
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   351
   hours=h+(m+s/60)/60;
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   352
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   353
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   354
%===============================================================
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   355
function  dev=geomag(f,date,lat,lon);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   356
% function  dev=geomag(f,date,lat,lon);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   357
% 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   358
% call SOEST magdec to compute magnetic deviation
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   359
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   360
% INSTALLATION INSTRUCTIONS:
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   361
%	- src available as "geomag" at http://currents.soest.hawaii.edu/hg/hgwebdir.cgi
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   362
%	- on UNIX systems (I tested Linux, MacOSX & FreeBSD), 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   363
%		1) compile by typing "make" or "gmake" in source directory
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   364
%		2) install by typing "make install" or "gmake install" as root
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   365
%		3) test by executing matlab command "system('magdec')"
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   366
%			if this test produces an error and a return value of 127, 
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   367
%			the path is not set correctly
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   368
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   369
dstr = gregoria(date);					% convert date (approx)
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   370
year = dstr(1); month = dstr(2); day = dstr(3);
19
b0fe24d04ba8 Version IX_12
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 1
diff changeset
   371
 if (year < 1980 || year > 2031)
0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   372
	error(sprintf('year = %d out of range',year));
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   373
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   374
							% execute external program
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   375
CMD = sprintf('magdec %g %g %d %d %d',lon,lat,year,month,day);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   376
disp(sprintf('executing %s',CMD));
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   377
[status,work] = system(CMD);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   378
if status ~= 0
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   379
	error(['cannot execute <' CMD '>']);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   380
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   381
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   382
vals = sscanf(work,'%g');				% parse output
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   383
if length(vals) ~= 4
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   384
	error(['unexpected output from <' CMD '>']);
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   385
end
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   386
0a450563f904 VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   387
dev = vals(1);						% return result