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-- |
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 | 36 |
% Jan 3, 2011: - changed IGRF11 validity to end of 2015 (from 2010) |
19 | 37 |
% Feb 18, 2016: - BUG: geomag year range check bombed in 2016 |
20 | 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 | 61 |
% INTERPOLATE MISSING GPS VALUES (Jay Hooper) |
62 |
p=setdefv(p,'interp_missing_GPS',1); |
|
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 | 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 | 178 |
%---------------------------------------- |
179 |
% interpolate missign GPS values |
|
180 |
% code provided by Jay Hooper |
|
181 |
%---------------------------------------- |
|
182 |
||
183 |
if p.interp_missing_GPS |
|
184 |
bad_lon = find(d.slon == -9.990e-29); |
|
185 |
if ~isempty(bad_lon), |
|
186 |
good_lon = find(d.slon ~= -9.990e-29); |
|
187 |
d.slon = interp1(d.navtime_jul(good_lon),d.slon(good_lon),d.navtime_jul); |
|
188 |
end |
|
189 |
bad_lat = find(d.slat == -9.990e-29); |
|
190 |
if ~isempty(bad_lat), |
|
191 |
good_lat = find(d.slat ~= -9.990e-29); |
|
192 |
d.slat = interp1(d.navtime_jul(good_lat),d.slat(good_lat),d.navtime_jul); |
|
193 |
end |
|
194 |
end |
|
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 | 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 |