-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheditHeaderCB.m
More file actions
84 lines (84 loc) · 3.67 KB
/
editHeaderCB.m
File metadata and controls
84 lines (84 loc) · 3.67 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
% editHeaderCB(hcb) - hcb is a handle of the modified field
getOS;
errors = '';
oldValue = SavedMetaData.edited.(char(UItag));
SavedMetaData.edited.(char(UItag)) = newValue;
if strcmp(UItag,'runID')
if ~isempty(newValue)
if strcmp(task,'checkMetaData') && isfield(original,'File')
cd (original.Path);
status = system([cmd 'mv ' original.File ' ' newValue '.nim']);
if status~=0
errors = (['System call failed: ' ...
'mv ' original.File ' ' newValue '.nim']);
else % if rename successful
original.File = [newValue '.nim'];
end
end
SavedMetaData.edited.siteID = newValue(1:end-1);
end
elseif strcmp(UItag,'startDate') || strcmp(UItag,'startTime')
nsec = SavedMetaData.edited.nsec;
startDate = SavedMetaData.edited.startDate;
startTime = SavedMetaData.edited.startTime;
vec=istime(startDate,startTime);
if ischar(nsec); nsec = str2double(nsec); end
if ~isempty(vec)
newTime = datestr(datenum(vec)+nsec/3600/24,31);
[endDate,endTime] = strread(newTime,'%10c %8c');
SavedMetaData.edited.endDate = endDate;
SavedMetaData.edited.endTime = endTime;
end
elseif strcmp(UItag,'endDate') || strcmp(UItag,'endTime')
nsec = SavedMetaData.edited.nsec;
endDate = SavedMetaData.edited.endDate;
endTime = SavedMetaData.edited.endTime;
startDate = SavedMetaData.edited.startDate;
startTime = SavedMetaData.edited.startTime;
vec=istime(endDate,endTime);
if ~isempty(vec)
if ischar(nsec); nsec = str2double(nsec); end
oldTime = [startDate ' ' startTime];
newTime = datestr(datenum(vec)-nsec/3600/24,31);
if ~isempty(istime(startDate,startTime)) && ~strcmp(oldTime,newTime)
errors = ['Warning: start time has been reset from ' oldTime];
end
[startDate,startTime] = strread(newTime,'%10c %8c');
SavedMetaData.edited.startDate = startDate;
SavedMetaData.edited.startTime = startTime;
end
elseif strcmp(UItag,'lat')
if isnan(str2double(newValue)) || abs(str2double(newValue)) > 90
newValue = '';
errors = 'Please input correct latitude in degrees';
end
elseif strcmp(UItag,'lon') || strcmp(UItag,'elev') || strcmp(UItag,'decl')
if isnan(str2double(newValue))
newValue = '';
end
elseif strcmp(UItag,'Ex_wire_length') || strcmp(UItag,'Ey_wire_length')
if isnan(str2double(newValue)) || str2double(newValue) <= 0
newValue = '';
errors = 'Please input correct wire lengths in meters';
end
elseif strcmp(UItag,'Ex_wire_azimuth') || strcmp(UItag,'Ey_wire_azimuth')
if isnan(str2double(newValue))
newValue = '';
end
elseif strcmp(UItag,'gain_char')
errors = 'Please comment on the gain change';
if strcmp(newValue,'H')
elseif strcmp(newValue,'L')
elseif strcmp(newValue,'X')
elseif strcmp(newValue,'Y')
else
newValue = '';
errors = 'Gain char must be H(igh) or L(ow) or E(X) high or E(Y) high';
end
end
% NOTE: newValue could have changed (e.g. if it wasn't accepted)
SavedMetaData.edited.(char(UItag)) = newValue;
if ~strcmp(UItag,'comments') % unless comments were changed, print info
info = [UItag ': ' num2str(oldValue) ' --> ' num2str(newValue)] %#ok<NOPTS,NOPRT>
end
SavedMetaData.edited.errors = errors;