-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUHSLC_info.m
64 lines (53 loc) · 1.81 KB
/
UHSLC_info.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
%==========================================================================
% OceanData
% UHSLC : get station information
%
% Link: https://uhslc.soest.hawaii.edu/data/
%
% input :
% [xlims] --- x-coordiante limits
% [ylims] --- y-coordiante limits
% [poly] --- coordinate of boundary lines. Column 1: lon; Column 2: lat
% Poly has a higher priority than xlims and ylims.
%
% output :
% info --- struct containing data
% id --- station ID
% lon --- longitude
% lat --- latitude
% descr --- starting time (yyyy-mm-dd)
% t1 --- date and time (datenum)
%
% Siqi Li, SMAST
% 2023-12-20
%
% Updates:
%
%==========================================================================
function info = UHSLC_info(varargin)
varargin = read_varargin(varargin, {'xlims'}, {[-180 180]});
varargin = read_varargin(varargin, {'ylims'}, {[-90 90]});
varargin = read_varargin(varargin, {'Poly'}, {[xlims([1 2 2 1 1])' ylims([1 1 2 2 1])']});
xlims = calc_lon_180(xlims);
disp('----- UHSLC information -----')
flist = [fundir('UHSLC_info') 'list\list_UHSLC.dat'];
formatSpec = '%d %d %s %s %f %f %s %s %s %s %s %s %s';
% Read the text file into a table
info0 = readtable(flist, 'Delimiter', '\t', 'ReadVariableNames', false, 'Format', formatSpec);
% Put data into the info struct
j = 0;
for i = 1 : height(info0)
lat = info0.Var5(i);
lon = info0.Var6(i);
in = inpolygon(lon, lat, Poly(:,1), Poly(:,2));
if ~in
continue
end
disp(['----' num2str(info0.Var1(i), '%3.3d')])
j = j + 1;
info(j,1).id = convertCharsToStrings(num2str(info0.Var1(i), '%3.3d'));
info(j,1).lon = lon;
info(j,1).lat = lat;
info(j,1).t1 = info0.Var7(i);
info(j,1).descr = convertCharsToStrings([info0.Var3{i} ', ' info0.Var4{i}]);
end