From 85be7f513e880f3fe6a1e5cb12e96c4262b0d400 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 6 Feb 2017 20:08:18 -0500 Subject: [PATCH 01/52] not sure what i did - some updates i did on mac --- core/@filterobject/filtfilt.m | 3 +-- core/@rsam/rsam.m | 6 +++--- core/@waveform/plot_spectrum.m | 5 ++++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/core/@filterobject/filtfilt.m b/core/@filterobject/filtfilt.m index e89d871..cb3e6e8 100644 --- a/core/@filterobject/filtfilt.m +++ b/core/@filterobject/filtfilt.m @@ -55,8 +55,7 @@ %- - - - helper function - - - - % function [b, a] = getButter(f, WN) -f -WN + switch f.type case 'H'; [b,a] = butter(f.poles, WN, 'high'); diff --git a/core/@rsam/rsam.m b/core/@rsam/rsam.m index 93dfc49..12e84a2 100755 --- a/core/@rsam/rsam.m +++ b/core/@rsam/rsam.m @@ -139,9 +139,9 @@ % % % end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Prototypes - self = findfiles(self, file) - self = load(self) - handlePlot = plot(rsam_vector, varargin) + self = findfiles(self, file); + self = load(self); + handlePlot = plot(rsam_vector, varargin); save(self, filepattern) toTextFile(self, filepath) [aw,tt1, tt2, tmc, mag_zone]=bvalue(this, mcType, method) diff --git a/core/@waveform/plot_spectrum.m b/core/@waveform/plot_spectrum.m index c26e66d..d45af0f 100644 --- a/core/@waveform/plot_spectrum.m +++ b/core/@waveform/plot_spectrum.m @@ -39,6 +39,7 @@ colours = 'rgbmcyk'; figure + ax= []; % axis array for count = 1:numel(w) colour = colours(mod(count, 7) + 1); Fsamp= get(w(count), 'freq'); @@ -51,7 +52,7 @@ phi = angle(Y(1:NumUniquePts)); f = Fsamp/2*linspace(0,1,NumUniquePts); %ax(count)=subplot(numel(w), 1, count); - loglog(f, A, colour); hold on; + ax(count) = loglog(f, A, colour); hold on; axis tight; ctag = get(w(count),'ChannelTag'); %title(ctag.string()); @@ -82,5 +83,7 @@ end ctags = get(w,'ChannelTag'); legend(ctags.string(),'location', 'south') + try linkaxes(ax,'x'); + end end \ No newline at end of file From d8a4b7c587c0c1e8c4a19560a4af38cc8975752d Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 24 Feb 2017 16:27:59 -0500 Subject: [PATCH 02/52] workaround for old WWS --- core/@threecomp/particlemotion.m | 8 +-- core/@threecomp/plot3.m | 2 +- core/@threecomp/plotpm.m | 73 ++++++++++++++++----------- core/@waveform/plot_panels.m | 9 ++-- core/@waveform/plot_spectrum.m | 3 +- core/@waveform/private/load_winston.m | 13 +++-- core/@waveform/savesac.m | 6 ++- 7 files changed, 70 insertions(+), 44 deletions(-) diff --git a/core/@threecomp/particlemotion.m b/core/@threecomp/particlemotion.m index fc35a19..2e49f2c 100755 --- a/core/@threecomp/particlemotion.m +++ b/core/@threecomp/particlemotion.m @@ -25,12 +25,12 @@ % For an overview of this methodology see: % Montalbetti, J. F. and Kanasewich, E. R. (1970), Enhancement % of Teleseismic Body Phases with a Polarization Filter. Geophys. -% J. Royal Astro. Soc., 21, 119–129. +% J. Royal Astro. Soc., 21, 119???129. % doi: 10.1111/j.1365-246X.1970.tb01771.x % % Ereditato, D. and G. Luongo (1994) Volcanic tremor wave field % during quiescent and eruptive activity at Mt. Etna (Sicily), -% J. Volcanol. Geotherm. Res., 61, 239–25. +% J. Volcanol. Geotherm. Res., 61, 239???25. % % see also threecomp/describe @@ -51,13 +51,13 @@ if length(varargin) >= 1 dt = varargin{1}; else - dt = 86400 * get(TC(1).traces(1),'DURATION' ) / 100; + dt = 86400 * get(TC(1).traces(1),'DURATION' ) / 200; %100 end if length(varargin) >= 2 width = varargin{2}; else - width = 86400 * get(TC(1).traces(1),'DURATION' ) / 10; + width = 86400 * get(TC(1).traces(1),'DURATION' ) / 10; % 10 end disp(['Time step: ' num2str(dt,'%4.3f') ' Window width: ' num2str(width,'%4.3f') ]); diff --git a/core/@threecomp/plot3.m b/core/@threecomp/plot3.m index 9c0bff6..ba4c67e 100755 --- a/core/@threecomp/plot3.m +++ b/core/@threecomp/plot3.m @@ -1,6 +1,6 @@ function plot3(TC) %PLOT3 Interactively make 3D plot of particle motion vector evolution - +disp('got here') %% Extract data for whole threecomp object w = get(TC,'waveform'); fs = get(w(1), 'freq'); diff --git a/core/@threecomp/plotpm.m b/core/@threecomp/plotpm.m index 8fb5fd9..e4b9b20 100755 --- a/core/@threecomp/plotpm.m +++ b/core/@threecomp/plotpm.m @@ -1,4 +1,4 @@ -function plotpm(TC); +function plotpm(TC, bool_inc_az); %PLOTPM Plot particle motion coefficients. % PLOTPM(TC) Plot the particple motion coefficients from threecompcomp @@ -19,8 +19,17 @@ figure('Position',[50 0 900 1200],'Color','w'); set(gcf,'DefaultLineLineWidth',1); +if ~exist('bool_inc_az','var') + bool_inc_az = false; +end +if bool_inc_az + numax = 6; +else + numax = 4; +end + % plot Z, N, E -subplot(3,1,1); +subplot(numax/2,1,1); scale = 0.75; D = double(TC.traces(1:3)); normval = max(max(abs(D))); @@ -32,7 +41,7 @@ plot(gca,t,D(:,2)+0,'-','Color',[0 0.3 0]); plot(gca,t,D(:,3)-1,'-','Color',[0.3 0 0]); ylim(gca,[-1-scale 1+scale]); -xlabel(gca,''); +xlabel(gca,'Seconds'); title(gca,['Station: ' get(TC.traces(1),'station') ' Starting at ' datestr(get(TC.traces(1),'start'),'yyyy/mm/dd HH:MM:SS.FFF') ]); set(gca,'YGrid','on'); set(gca,'XGrid','on'); set( gca , 'YTick' , [-1:1] ); @@ -45,55 +54,59 @@ % titlestr = [titlestr ' orid: ' orid]; % end title(gca,titlestr,'FontSize',14); - +xlim=get(gca,'XLim'); % plot energy -subplot(6,1,3); +subplot(numax,1,3); plot(TC.energy,'k-','axeshandle',gca); set(gca,'YScale','linear'); d = get(TC.energy,'Data'); ylim(gca,[0 1.1*max(d)]); legend(gca,'Energy',1); title(gca,''); -set(gca,'XTickLabel',[]); +%set(gca,'XTickLabel',[]); set(gca,'XGrid','on') - +set(gca,'XLim',xlim) % plot rectilinearity and planarity -subplot(6,1,4); +subplot(numax,1,4); plot(TC.rectilinearity,'kx','axeshandle',gca); hold on; plot(TC.planarity,'ko','MarkerFaceColor','y','axeshandle',gca); -xlabel(gca,'') +xlabel(gca,'Seconds'); ylim(gca,[0 1]); legend(gca,'Rectilinearity','Planarity',1); title(gca,''); -set(gca,'XTickLabel',[]); +%set(gca,'XTickLabel',[]); set(gca,'XGrid','on') +set(gca,'XLim',xlim) +if bool_inc_az -% plot azimuth -subplot(6,1,5); -plot(TC.azimuth,'ko','MarkerFaceColor',[1 .7 0],'axeshandle',gca); -set(gca,'YTick',[-360:90:360]); -ylim(gca,[-1 361]); -xlabel(gca,'') -legend('Azimuth',1); -title(gca,''); -set(gca,'XTickLabel',[]); -set(gca,'XGrid','on') + % plot azimuth + subplot(6,1,5); + plot(TC.azimuth,'ko','MarkerFaceColor',[1 .7 0],'axeshandle',gca); + set(gca,'YTick',[-360:90:360]); + ylim(gca,[-1 361]); + xlabel(gca,'') + legend('Azimuth',1); + title(gca,''); + set(gca,'XTickLabel',[]); + set(gca,'XGrid','on') + set(gca,'XLim',xlim) + % plot inclination + subplot(6,1,6); + plot(TC.inclination,'ko','MarkerFaceColor',[1 .7 0],'axeshandle',gca); + set(gca,'YTick',[-90:30:90]); + ylim(gca,[-1 91]); + xlabel(gca,'') + legend(gca,'Inclination',1); + title(gca,''); + set(gca,'XGrid','on') + set(gca,'XLim',xlim) -% plot inclination -subplot(6,1,6); -plot(TC.inclination,'ko','MarkerFaceColor',[1 .7 0],'axeshandle',gca); -set(gca,'YTick',[-90:30:90]); -ylim(gca,[-1 91]); -xlabel(gca,'') -legend(gca,'Inclination',1); -title(gca,''); -set(gca,'XGrid','on') - +end set(gcf, 'paperorientation', 'portrait'); set(gcf, 'paperposition', [.25 .5 8 10] ); diff --git a/core/@waveform/plot_panels.m b/core/@waveform/plot_panels.m index aa8ba04..30d07bb 100644 --- a/core/@waveform/plot_panels.m +++ b/core/@waveform/plot_panels.m @@ -68,10 +68,13 @@ end % display mean on left, max on right - - text(0.02,0.85, sprintf('%5.0f',offset),'FontSize',10,'Color','b','units','normalized'); + ustr = get(w(wavnum),'units'); + if strcmp(ustr,'null') + ustr = ''; + end + text(0.02,0.85, sprintf('%5.0f %s',offset,ustr),'FontSize',10,'Color','b','units','normalized'); text(0.4,0.85,sprintf(' %s',datestr(starttimes(wavnum),'yyyy-mm-dd HH:MM:SS.FFF')),'FontSize',10,'Color','g','units','normalized'); - text(0.9,0.85,sprintf('%5.0f',nanmax(abs(y))),'FontSize',10,'Color','r','units','normalized'); + text(0.9,0.85,sprintf('%5.0f%s',nanmax(abs(y)),ustr),'FontSize',10,'Color','r','units','normalized'); end xlabel('Time (s)'); if exist('ax','var') diff --git a/core/@waveform/plot_spectrum.m b/core/@waveform/plot_spectrum.m index c26e66d..ff1b70d 100644 --- a/core/@waveform/plot_spectrum.m +++ b/core/@waveform/plot_spectrum.m @@ -56,7 +56,7 @@ ctag = get(w(count),'ChannelTag'); %title(ctag.string()); xlabel('f (Hz)') - ylabel('Amp') + ylabel('Amplitude') % add spectrum vectors to a structure s(count).f = f; % frequencies @@ -82,5 +82,4 @@ end ctags = get(w,'ChannelTag'); legend(ctags.string(),'location', 'south') - linkaxes(ax,'x'); end \ No newline at end of file diff --git a/core/@waveform/private/load_winston.m b/core/@waveform/private/load_winston.m index 1b53ac2..84088e9 100644 --- a/core/@waveform/private/load_winston.m +++ b/core/@waveform/private/load_winston.m @@ -43,6 +43,7 @@ w = set(waveform,'channeltag',chanTag); %initialize a waveform WWS = gov.usgs.volcanoes.winston.legacyServer.WWSClient(get(ds,'server'),get(ds,'port')); + WWS_old = gov.usgs.winston.server.WWSClient(get(ds,'server'),get(ds,'port')); %grab the winston data, then close the database mychan = chanTag.channel; @@ -53,9 +54,15 @@ try d = WWS.getRawData(mysta,mychan,mynet,myloc,stime,etime); WWS.close; - catch er - warning('Waveform:load_winston:noServerAccess', 'Unable to access Winston Wave Server'); - rethrow(er) + catch + try + disp('Trying old WWS interface') + d = WWS_old.getRawData(mysta,mychan,mynet,myloc,stime,etime); + WWS_old.close; + catch er + warning('Waveform:load_winston:noServerAccess', 'Unable to access Winston Wave Server'); + rethrow(er) + end end if ~exist('d','var') || isempty(d) diff --git a/core/@waveform/savesac.m b/core/@waveform/savesac.m index 3862e8e..e1d9107 100644 --- a/core/@waveform/savesac.m +++ b/core/@waveform/savesac.m @@ -69,7 +69,11 @@ %Format: YYYYMMDD_HHmmss.STATION.CHANNEL.NETWORK for n=1:numel(w) [Y,M,D,h,m,s] = datevec(get(w(n),'start')); - Net = get(w(n),'KNETWK'); %get network from existing sac info. + try + Net = get(w(n),'KNETWK'); %get network from existing sac info. + catch + Net = '__'; + end if isempty(Net) Net = '__'; end From 9aa301af256ab35a3e46a2f32e0aa4fe709bb347 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Wed, 1 Mar 2017 17:36:18 -0500 Subject: [PATCH 03/52] added simple association for arrivals into events --- core/+Arrival/+read_arrivals/antelope.m | 31 ++++++++----- core/@Arrival/Arrival.m | 22 ++++----- core/@Arrival/associate.m | 59 +++++++++++++++++++++++++ core/@Catalog/Catalog.m | 2 +- core/@Catalog/addwaveforms.m | 28 ++++++++++-- core/@Catalog/eventrate.m | 15 ++++--- core/@EventRate/EventRate.m | 11 +++-- 7 files changed, 134 insertions(+), 34 deletions(-) create mode 100644 core/@Arrival/associate.m diff --git a/core/+Arrival/+read_arrivals/antelope.m b/core/+Arrival/+read_arrivals/antelope.m index eef26b9..4ac69d3 100644 --- a/core/+Arrival/+read_arrivals/antelope.m +++ b/core/+Arrival/+read_arrivals/antelope.m @@ -1,6 +1,11 @@ function arrivalObj = read_antelope(dbname, subset_expr) - % LOAD_ARRIVALS Load arrivals from a CSS3.0 database - fprintf(2,'Loading arrivals from %s',dbname); +% LOAD_ARRIVALS Load arrivals from a CSS3.0 database + if ~(antelope.dbtable_present(dbname, 'arrival')) + fprintf('No arrival table belonging to %s\n',dbname); + return + end + + fprintf('Loading arrivals from %s\n',dbname); % Open database db = dbopen(dbname,'r'); @@ -10,16 +15,22 @@ if exist('subset_expr','var') db = dbsubset(db,subset_expr); end + + nrows = dbnrecs(db); + if nrows > 0 - % Sort by arrival time - db = dbsort(db,'time'); + % Sort by arrival time + db = dbsort(db,'time'); - % Get the values - [sta,chan,time,amp,signal2noise,iphase] = dbgetv(db,'sta','chan','time','amp','snr','iphase'); + % Get the values + [sta,chan,time,amp,signal2noise,iphase] = dbgetv(db,'sta','chan','time','amp','snr','iphase'); - % Close database link - dbclose(db); - - arrivalObj = Arrival(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(iphase), 'amp', amp, 'signal2noise', signal2noise); + % Close database link + dbclose(db); + + arrivalObj = Arrival(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(iphase), 'amp', amp, 'signal2noise', signal2noise); + else + fprintf('No arrivals found matching request\n'); + end end diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m index fe0197a..a10330e 100755 --- a/core/@Arrival/Arrival.m +++ b/core/@Arrival/Arrival.m @@ -76,8 +76,7 @@ function val = get.signal2noise(obj) val = obj.table.signal2noise; end - - + function summary(obj, showall) % ARRIVAL.SUMMARY Summarise Arrival object @@ -122,7 +121,10 @@ function summary(obj, showall) end end self.table = self.table(indexes,:); - end + end + + % prototypes + catalogobj = associate(self, maxTimeDiff) end methods(Static) function self = retrieve(dataformat, varargin) @@ -153,14 +155,17 @@ function summary(obj, showall) % Add in support for 'get_arrivals' debug.printfunctionstack('>') - + self = []; switch lower(dataformat) case {'css3.0','antelope', 'datascope'} if admin.antelope_exists() - self = Arrival.read_arrivals.antelope(varargin{:}); + try + self = Arrival.read_arrivals.antelope(varargin{:}); + catch + % no arrivals + end else - warning('Sorry, cannot read event Catalog from Antelope database as Antelope toolbox for MATLAB not found') - self = Catalog(); + warning('Antelope toolbox for MATLAB not found') end case 'hypoellipse' self = read_hypoellipse(varargin{:}); @@ -168,9 +173,6 @@ function summary(obj, showall) self = NaN; fprintf('format %s unknown\n\n',dataformat); end - if isempty(self) - self=Catalog(); - end debug.printfunctionstack('<') end diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m new file mode 100644 index 0000000..32fbe61 --- /dev/null +++ b/core/@Arrival/associate.m @@ -0,0 +1,59 @@ +function catalogobj = associate(arrivals, maxTimeDiff) +%ASSOCIATE Associate arrivals into events +% catalogobj = associate(arrivals, maxTimeDiff) will scan through an +% arrivals object and look for times where there are at least 2 arrivals on +% 2 different channels within maxTimeDiff of each other, and declare an event. +% +% +% Example: Imagine you have an infrasound array and you have marked +% infrasound events manually (or automatically) with an "N" phase, picking +% an "N" on at least two channels. You also notice that the time to cross +% the array is less than 0.1s (e.g. array less than 34m across if sound +% speed is 340m/s). Then the following code will load the arrivals, subset +% for "N" phases, and associate into events wherever 2 channels have an "N" +% pick within 0.1s. The final line returns a Catalog object - the GISMO +% container for multiple events. +% +% dbpath = '/raid/data/sakurajima/db'; +% arrivalobj = Arrival.retrieve('antelope', dbpath); +% arrivalobj = arrivalobj.subset('iphase', 'N'); +% catalogobj = arrivalobj.associate(0.1); + +%% Associate events +disp('Associating arrivals into events...') +eventOn = false; +firstchaninfo = ''; +firsttime = 0; +lasttime = 0; +eventNumber = 0; + +for c=2:numel(arrivals.daynumber) + if arrivals.daynumber(c-1) + maxTimeDiff/86400 > arrivals.daynumber(c) + if ~eventOn % start new event + eventOn = true; + %eventNumber = eventNumber + 1; + %infrasoundEvent(eventNumber).FirstArrivalTime = arrivals.daynumber(c-1); + firsttime = arrivals.daynumber(c-1); + lasttime = 0; + firstchaninfo = arrivals.channelinfo(c-1); + else % event already in progress + end + if ~strcmp(firstchaninfo, arrivals.channelinfo(c)) + %infrasoundEvent(eventNumber).LastArrivalTime = arrivals.daynumber(c); + lasttime = arrivals.daynumber(c); + end + else + if eventOn % write out event + eventOn = false; + if (firsttime>0 && lasttime > 0) + eventNumber = eventNumber + 1; + infrasoundEvent(eventNumber).FirstArrivalTime = firsttime; + infrasoundEvent(eventNumber).LastArrivalTime = lasttime; + end + firstchaninfo = ''; + firsttime = 0; + lasttime = 0; + end + end +end +catalogobj = Catalog([infrasoundEvent.FirstArrivalTime], [], [], [], [], {}, {}, 'ontime', [infrasoundEvent.FirstArrivalTime], 'offtime', [infrasoundEvent.LastArrivalTime]); diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m index eedb18d..4f98e1e 100644 --- a/core/@Catalog/Catalog.m +++ b/core/@Catalog/Catalog.m @@ -214,7 +214,7 @@ eev(obj, eventnum) write(catalogObject, outformat, outpath, schema) catalogObject2 = subset(catalogObject, indices) - catalogObject = addwaveforms(catalogObject, w); + catalogObject = addwaveforms(catalogObject, varargin); end %% --------------------------------------------------- methods (Access=protected, Hidden=true) diff --git a/core/@Catalog/addwaveforms.m b/core/@Catalog/addwaveforms.m index cd8762f..34e1180 100644 --- a/core/@Catalog/addwaveforms.m +++ b/core/@Catalog/addwaveforms.m @@ -1,14 +1,34 @@ -function cobj = addwaveforms(cobj, w_continuous) +function cobj = addwaveforms(cobj, varargin) % Catalog.addwaveforms Add waveform objects corresponding to ontimes and % offtimes in a Catalog object. % % cobj2 = cobj.addwaveforms(w_continuous) will extract event waveform objects from a % continuous waveform object, w_continuous. Each event is defined by its ontime and % offtime, which are recorded in cobj. +% +% cobj2 = cobj.addwaveforms(ds, ctag, pretrigger, posttrigger) will create event waveform objects from +% datasource, ChannelTag.array. Each event is defined by its ontime and +% offtime, which are recorded in cobj. +% - w_temp = extract(w_continuous, 'time', cobj.ontime, cobj.offtime); - for count = 1:length(cobj.ontime) - w_events{count} = w_temp(:,count); + w_events = {}; + switch nargin + case 2 + if isa(varargin{1},'waveform') + w_temp = extract(varargin{1}, 'time', cobj.ontime, cobj.offtime); + for count = 1:length(cobj.ontime) + w_events{count} = w_temp(:,count); + end + + end + case 5 + if isa(varargin{1},'datasource') + for count = 1:length(cobj.ontime) + w_events{count} = waveform(varargin{1}, varargin{2}, cobj.ontime(count)-varargin{3}/86400, cobj.offtime(count)+varargin{4}/86400); + end + end + otherwise + nargin end cobj.waveforms = w_events; end diff --git a/core/@Catalog/eventrate.m b/core/@Catalog/eventrate.m index 4d55cb1..fcc1476 100644 --- a/core/@Catalog/eventrate.m +++ b/core/@Catalog/eventrate.m @@ -19,11 +19,16 @@ for i=1:numel(catalogObject) if catalogObject(i).numberOfEvents > 0 -% timerange = catalogObject(i).gettimerange(); -% snum=timerange(1); -% enum=timerange(2); - snum = catalogObject(i).request.startTime; - enum = catalogObject(i).request.endTime; + + try + snum = catalogObject(i).request.startTime; + enum = catalogObject(i).request.endTime; + catch + timerange = catalogObject(i).gettimerange(); + snum=timerange(1); + enum=timerange(2); + end + if ~(binsize>0) binsize = Catalog.binning.autobinsize(enum-snum); end diff --git a/core/@EventRate/EventRate.m b/core/@EventRate/EventRate.m index 8ac803b..6330670 100755 --- a/core/@EventRate/EventRate.m +++ b/core/@EventRate/EventRate.m @@ -149,6 +149,9 @@ self.enum = enum; self.binsize = binsize; self.stepsize = stepsize; + if (enum-snum) < binsize + error('binsize cannot be bigger than data time range'); + end end %% ---------------------------------------------- @@ -495,11 +498,11 @@ function plot(obj, varargin) binsize_str = Catalog.binning.binsizelabel(obj(c).binsize); numsubplots = length(metric); fh(c) = figure; - unique_subclasses = unique(char([obj(c).etype{:}])') + unique_subclasses = unique(char([obj(c).etype{:}])'); if length(unique_subclasses)==1 - longname = Catalog.subclass2longname(unique_subclasses) + longname = Catalog.subclass2longname(unique_subclasses); else - longname = Catalog.subclass2longname('*') + longname = Catalog.subclass2longname('*'); end set(fh(c),'Color', [1 1 1], 'Name', sprintf('%s activity beginning %s',longname, datestr(obj(c).time(1),29) ) ); for cc = 1: numsubplots % number of metrics to plot @@ -529,7 +532,7 @@ function plot(obj, varargin) set(h2, 'LineWidth', 3, 'Color', colors{2}); datetick(ax(2), 'x','keeplimits'); ylabel(ax(2),labels{2}, 'Color', colors{2}, 'FontSize',12) - ylims = get(ax(2), 'YLim') + ylims = get(ax(2), 'YLim'); set(ax(2), 'YColor', colors{2}, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); else From e4a11c38b2dd3156160b95f8739e505d994e9503 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Wed, 22 Mar 2017 16:58:11 -0400 Subject: [PATCH 04/52] cookbooks updated --- applications/+iceweb/spectrogram_iceweb.m | 20 +- cookbooks/Catalog_cookbook.m | 305 +++ .../EventRate_cookbook.m | 2 +- .../correlation_cookbook.m | 0 .../drumplot_cookbook.m | 0 cookbooks/rsam_cookbook.m | 204 +++ cookbooks/waveform_cookbook.m | 135 ++ core/+Arrival/+read_arrivals/antelope.m | 10 + core/+Catalog/+read_catalog/seisan.m | 2 +- core/+antelope/dbcp.m | 10 + core/@Arrival/Arrival.m | 167 +- core/@Arrival/Arrival_table.m | 213 +++ core/@Arrival/addmetrics.m | 20 + core/@Arrival/addwaveforms.m | 38 + core/@Arrival/associate.m | 159 +- core/@Arrival/setminmax.m | 113 ++ core/@Catalog/Catalog.m | 152 +- core/@Catalog/addwaveforms.m | 5 +- core/@Catalog/cookbook.m | 21 +- core/@Catalog/eventrate.m | 6 + core/@Catalog/get_region.m | 10 + core/@Catalog/get_symsize.m | 11 + core/@Catalog/html/cookbook.html | 950 ---------- core/@Catalog/html/cookbook.png | Bin 2240 -> 0 bytes core/@Catalog/html/cookbook_01.png | Bin 60344 -> 0 bytes core/@Catalog/html/cookbook_02.png | Bin 20564 -> 0 bytes core/@Catalog/html/cookbook_03.png | Bin 1090505 -> 0 bytes core/@Catalog/html/cookbook_04.png | Bin 707427 -> 0 bytes core/@Catalog/html/cookbook_05.png | Bin 40577 -> 0 bytes core/@Catalog/html/cookbook_06.png | Bin 12616 -> 0 bytes core/@Catalog/html/cookbook_07.png | Bin 48301 -> 0 bytes core/@Catalog/html/cookbook_08.png | Bin 11238 -> 0 bytes core/@Catalog/html/cookbook_09.png | Bin 33202 -> 0 bytes core/@Catalog/html/cookbook_10.png | Bin 30373 -> 0 bytes core/@Catalog/html/cookbook_11.png | Bin 26656 -> 0 bytes core/@Catalog/html/cookbook_12.png | Bin 23045 -> 0 bytes core/@Catalog/list_waveform_metrics.m | 71 + core/@Catalog/{ => obsolete}/crap.txt | 0 core/@Catalog/plot_waveform_metrics.m | 48 + core/@Catalog/retrieve.m | 91 + core/@Catalog/write.m | 229 ++- .../write_waveform_metrics_to_antelope.m | 98 + core/@EventRate/EventRate.m | 808 +------- core/@EventRate/extensions/import_swarmdb.m | 84 + core/@EventRate/extensions/sausageplot.m | 128 ++ core/@EventRate/helenaplot.m | 13 + core/@EventRate/html/EventRate.html | 1628 ----------------- core/@EventRate/html/cookbook.html | 208 --- core/@EventRate/html/cookbook.png | Bin 3649 -> 0 bytes core/@EventRate/html/cookbook_01.png | Bin 11238 -> 0 bytes core/@EventRate/html/cookbook_02.png | Bin 10745 -> 0 bytes core/@EventRate/html/cookbook_03.png | Bin 9865 -> 0 bytes core/@EventRate/html/cookbook_04.png | Bin 26550 -> 0 bytes core/@EventRate/html/cookbook_05.png | Bin 10844 -> 0 bytes core/@EventRate/html/cookbook_06.png | Bin 12047 -> 0 bytes core/@EventRate/html/cookbook_07.png | Bin 11522 -> 0 bytes core/@EventRate/html/cookbook_08.png | Bin 11001 -> 0 bytes core/@EventRate/html/cookbook_09.png | Bin 13856 -> 0 bytes core/@EventRate/html/cookbook_10.png | Bin 17035 -> 0 bytes core/@EventRate/obsolete/addfield.m | 48 + core/@EventRate/obsolete/get.m | 27 + core/@EventRate/obsolete/plotold.m | 256 +++ core/@EventRate/obsolete/set.m | 63 + core/@EventRate/plot.m | 202 ++ core/@EventRate/pythonplot.m | 4 + core/@drumplot/html/cookbook.html | 270 --- core/@drumplot/html/cookbook.png | Bin 3982 -> 0 bytes core/@drumplot/html/cookbook_01.png | Bin 17204 -> 0 bytes core/@drumplot/html/cookbook_02.png | Bin 22614 -> 0 bytes core/@drumplot/html/cookbook_03.png | Bin 19445 -> 0 bytes core/@drumplot/html/cookbook_04.png | Bin 23457 -> 0 bytes core/@filterobject/filtfilt.m | 2 - core/@rsam/Fs.m | 5 - core/@rsam/cookbook.m | 22 - core/@rsam/{ => extensions}/bvalue.m | 0 core/@rsam/{ => extensions}/despike.m | 0 .../{ => extensions}/detectTremorEvents.m | 0 .../{ => extensions}/duration_amplitude.m | 0 core/@rsam/{ => extensions}/getwaveform.m | 0 core/@rsam/{ => extensions}/loadwfmeastable.m | 0 core/@rsam/{ => extensions}/reduce.m | 0 .../remove_calibration_pulses.m | 0 core/@rsam/{ => extensions}/resample.m | 0 core/@rsam/{ => extensions}/tremorstalta.m | 0 core/@rsam/extract.m | 12 +- core/@rsam/load.m | 7 +- core/@rsam/{makebobfile.m => make_bob_file.m} | 0 core/@rsam/{ => obsolete}/oneMinuteData.m | 0 core/@rsam/{ => obsolete}/plotrsam.m | 0 core/@rsam/{ => obsolete}/plotyy.m | 0 core/@rsam/plot.m | 60 +- core/@rsam/plot_panels.m | 21 + core/@rsam/read_bob_file.m | 202 +- core/@rsam/rsam.m | 101 +- core/@rsam/rsam2waveform.m | 7 + core/@rsam/{save.m => save_to_bob_file.m} | 19 +- .../{toTextFile.m => save_to_text_file.m} | 9 +- core/@rsam/{ => trash}/loadbobfile.m | 0 .../@rsam/{ => trash}/scrollplot_whatisthis.m | 0 core/@waveform/addmetrics.m | 113 ++ core/@waveform/plot_panels.m | 92 +- core/@waveform/plot_spectrum.m | 7 +- core/@waveform/private/load_irisdmcws.m | 15 + core/@waveform/waveform2rsam.m | 15 +- is_testdata_setup.m | 11 + libgismo/cleanup.m | 6 + libgismo/datenum2julday.m | 14 + libgismo/get_highest_figure_number.m | 7 + startup_GISMO.m | 3 + 109 files changed, 3265 insertions(+), 4314 deletions(-) create mode 100644 cookbooks/Catalog_cookbook.m rename core/@EventRate/cookbook.m => cookbooks/EventRate_cookbook.m (98%) rename core/@correlation/cookbook.m => cookbooks/correlation_cookbook.m (100%) rename core/@drumplot/cookbook.m => cookbooks/drumplot_cookbook.m (100%) create mode 100644 cookbooks/rsam_cookbook.m create mode 100644 cookbooks/waveform_cookbook.m create mode 100644 core/+antelope/dbcp.m mode change 100755 => 100644 core/@Arrival/Arrival.m create mode 100755 core/@Arrival/Arrival_table.m create mode 100644 core/@Arrival/addmetrics.m create mode 100644 core/@Arrival/addwaveforms.m create mode 100644 core/@Arrival/setminmax.m create mode 100644 core/@Catalog/get_region.m create mode 100644 core/@Catalog/get_symsize.m delete mode 100644 core/@Catalog/html/cookbook.html delete mode 100644 core/@Catalog/html/cookbook.png delete mode 100644 core/@Catalog/html/cookbook_01.png delete mode 100644 core/@Catalog/html/cookbook_02.png delete mode 100644 core/@Catalog/html/cookbook_03.png delete mode 100644 core/@Catalog/html/cookbook_04.png delete mode 100644 core/@Catalog/html/cookbook_05.png delete mode 100644 core/@Catalog/html/cookbook_06.png delete mode 100644 core/@Catalog/html/cookbook_07.png delete mode 100644 core/@Catalog/html/cookbook_08.png delete mode 100644 core/@Catalog/html/cookbook_09.png delete mode 100644 core/@Catalog/html/cookbook_10.png delete mode 100644 core/@Catalog/html/cookbook_11.png delete mode 100644 core/@Catalog/html/cookbook_12.png create mode 100644 core/@Catalog/list_waveform_metrics.m rename core/@Catalog/{ => obsolete}/crap.txt (100%) create mode 100644 core/@Catalog/plot_waveform_metrics.m create mode 100644 core/@Catalog/retrieve.m create mode 100644 core/@Catalog/write_waveform_metrics_to_antelope.m create mode 100644 core/@EventRate/extensions/import_swarmdb.m create mode 100644 core/@EventRate/extensions/sausageplot.m create mode 100644 core/@EventRate/helenaplot.m delete mode 100644 core/@EventRate/html/EventRate.html delete mode 100644 core/@EventRate/html/cookbook.html delete mode 100644 core/@EventRate/html/cookbook.png delete mode 100644 core/@EventRate/html/cookbook_01.png delete mode 100644 core/@EventRate/html/cookbook_02.png delete mode 100644 core/@EventRate/html/cookbook_03.png delete mode 100644 core/@EventRate/html/cookbook_04.png delete mode 100644 core/@EventRate/html/cookbook_05.png delete mode 100644 core/@EventRate/html/cookbook_06.png delete mode 100644 core/@EventRate/html/cookbook_07.png delete mode 100644 core/@EventRate/html/cookbook_08.png delete mode 100644 core/@EventRate/html/cookbook_09.png delete mode 100644 core/@EventRate/html/cookbook_10.png create mode 100644 core/@EventRate/obsolete/addfield.m create mode 100644 core/@EventRate/obsolete/get.m create mode 100644 core/@EventRate/obsolete/plotold.m create mode 100644 core/@EventRate/obsolete/set.m create mode 100644 core/@EventRate/plot.m create mode 100644 core/@EventRate/pythonplot.m delete mode 100644 core/@drumplot/html/cookbook.html delete mode 100644 core/@drumplot/html/cookbook.png delete mode 100644 core/@drumplot/html/cookbook_01.png delete mode 100644 core/@drumplot/html/cookbook_02.png delete mode 100644 core/@drumplot/html/cookbook_03.png delete mode 100644 core/@drumplot/html/cookbook_04.png delete mode 100644 core/@rsam/Fs.m delete mode 100644 core/@rsam/cookbook.m rename core/@rsam/{ => extensions}/bvalue.m (100%) rename core/@rsam/{ => extensions}/despike.m (100%) rename core/@rsam/{ => extensions}/detectTremorEvents.m (100%) rename core/@rsam/{ => extensions}/duration_amplitude.m (100%) rename core/@rsam/{ => extensions}/getwaveform.m (100%) rename core/@rsam/{ => extensions}/loadwfmeastable.m (100%) rename core/@rsam/{ => extensions}/reduce.m (100%) rename core/@rsam/{ => extensions}/remove_calibration_pulses.m (100%) rename core/@rsam/{ => extensions}/resample.m (100%) rename core/@rsam/{ => extensions}/tremorstalta.m (100%) rename core/@rsam/{makebobfile.m => make_bob_file.m} (100%) rename core/@rsam/{ => obsolete}/oneMinuteData.m (100%) rename core/@rsam/{ => obsolete}/plotrsam.m (100%) rename core/@rsam/{ => obsolete}/plotyy.m (100%) create mode 100644 core/@rsam/plot_panels.m create mode 100644 core/@rsam/rsam2waveform.m rename core/@rsam/{save.m => save_to_bob_file.m} (88%) rename core/@rsam/{toTextFile.m => save_to_text_file.m} (54%) rename core/@rsam/{ => trash}/loadbobfile.m (100%) rename core/@rsam/{ => trash}/scrollplot_whatisthis.m (100%) create mode 100644 core/@waveform/addmetrics.m create mode 100644 is_testdata_setup.m create mode 100644 libgismo/cleanup.m create mode 100644 libgismo/datenum2julday.m create mode 100644 libgismo/get_highest_figure_number.m diff --git a/applications/+iceweb/spectrogram_iceweb.m b/applications/+iceweb/spectrogram_iceweb.m index c4b8e53..525c36e 100644 --- a/applications/+iceweb/spectrogram_iceweb.m +++ b/applications/+iceweb/spectrogram_iceweb.m @@ -63,7 +63,7 @@ nfft = round(get(s,'nfft')); overlap = floor(get(s, 'over')); -dBlims = get(s, 'dBlims') +dBlims = get(s, 'dBlims'); fmax = get(s, 'freqmax'); % Set appropriate date ticks @@ -81,14 +81,12 @@ [S,F,T] = spectrogram(data, nfft, nfft/2, nfft, fsamp); Y = 20*log10(abs(S)+eps); - fmax - max(F) - index = find(F <= fmax) + index = find(F <= fmax); if F(1)==0, F(1)=0.001; end - [spectrogramPosition, tracePosition] = iceweb.calculatePanelPositions(numw, c, spectrogramFraction, 0.08, 0.05, 0.88, 0.95); + [spectrogramPosition, tracePosition] = iceweb.calculatePanelPositions(numw, c, spectrogramFraction, 0.12, 0.05, 0.80, 0.9); axes('position', spectrogramPosition); T = wt.start + T/86400; F = F(1:max(index)); @@ -103,9 +101,7 @@ hold on; plot(T,meanF,'k','LineWidth',3); % peak frequency [maxvalue,maxindex] = max(abs(S)); - size(maxindex) fmax = F(maxindex); - size(fmax) hold on; plot(T,fmax,'r','LineWidth',3); else @@ -115,19 +111,19 @@ colormap(mycolormap); % Change Y-Labels to 'sta.chan' - ylabel( sprintf('%s\n%s',get(w(c), 'station'), get(w(c), 'channel')), 'FontSize', 10); + thissta = get(w(c), 'station'); + thischan = get(w(c), 'channel'); + ylabel( sprintf('%s\n%s',thissta, thischan(1:3) ), 'FontSize', 8); xlabel('') title('') set(gca,'XLim', [wt.start wt.stop]); if c==numw - set(gca, 'XTick', Xtickmarks, 'XTickLabel', XTickLabel, 'FontSize', 10); % time labels only on bottom spectrogram + set(gca, 'XTick', Xtickmarks, 'XTickLabel', XTickLabel, 'FontSize', 8); % time labels only on bottom spectrogram else set(gca, 'XTick', Xtickmarks, 'XTickLabel', {}); end if spectrogramFraction < 1 - thissta = get(w(c), 'station'); - thischan = get(w(c), 'channel'); plotTrace(tracePosition, get(w(c),'data'), get(w(c),'freq'), Xtickmarks, wt, mycolormap, s, thissta, thischan); set(gca,'XLim', [wt.start wt.stop]); % added 20111214 to align trace with spectrogram when data missing (prevent trace being stretched out) @@ -181,7 +177,7 @@ if ~isnan(maxAmpl) % make sure it is not NaN else will crash traceRange = [dnum(1) dnum(end) -maxAmpl*1.1 maxAmpl*1.1]; decibels = 20 * log10(maxAmpl) + eps; - fprintf('%s: %s.%s: Max amplitude %.1e nm/s (%d dB)\n',mfilename, thissta, thischan, maxAmpl,round(decibels)); + %fprintf('%s: %s.%s: Max amplitude %.1e (%d dB)\n',mfilename, thissta, thischan, maxAmpl,round(decibels)); axis(traceRange); end debug.printfunctionstack('<'); diff --git a/cookbooks/Catalog_cookbook.m b/cookbooks/Catalog_cookbook.m new file mode 100644 index 0000000..d664414 --- /dev/null +++ b/cookbooks/Catalog_cookbook.m @@ -0,0 +1,305 @@ +%% Catalog Cookbook +% GISMO can read events from many different earthquake catalog file formats +% (e.g. Seisan, Antelope) and data sources (e.g. IRIS DMC) using the +% Catalog.retrieve() method. + +%% Reading events from IRIS DMC +% To load events into a Catalog object we use the Catalog.retrieve method. +% The first argument is the data source/format - when this is given as +% 'iris', retrieve uses the irisFetch.m program to retrieve event data +% via the IRIS webservices. To narrow down our data search we can give +% retrieve any name-value parameter pairs supported by irisFetch. +% +% In this example we will use retrieve to retrieve all events at IRIS DMC +% with a magnitude of at least 8.0 from year 2000 to 2014 (inclusive): +greatquakes = Catalog.retrieve('iris', 'minimumMagnitude', 8.0, ... + 'starttime', '2000-01-01', 'endtime', '2015-01-01') + +%% +% To access any particular property we can use dot notation, as if the +% object were a structure, e.g.: +greatquakes.mag + +%% +% greatquakes is a Catalog object, an instance of the Catalog class. To see +% a list of functions ("methods" in object-oriented speak) we can apply to +% a Catalog object, use the methods command: +methods(greatquakes) + +%% +% Save this dataset so you can use it again later: +save('great_earthquakes.mat', 'greatquakes') + +%% +% Now we'll do another example - we will get events within 200 km of the +% great M9.0 Tohoku earthquake that occurred on 2011/03/11. +% The mainshock parameters are: +% +% Date/Time: "2011/03/11 05:46:24" +% Longitude: 142.372 +% Latitude: 38.297 +% Depth: 30 km + +%% +% We will limit our search to 1 day before and after the earthquake: +mainshocktime = datenum('2011/03/11 05:46:24'); +tohoku_events = Catalog.retrieve('iris', ... + 'radialcoordinates', [38.297 142.372 km2deg(200)], ... + 'starttime', mainshocktime - 1, ... + 'endtime', mainshocktime + 1); + +%% +% This returns 1136 earthquakes. Let's get a summary: +tohoku_events.summary() + +%% +% Save this dataset so you can use it again later: +save('tohoku_events.mat', 'tohoku_events') + +%% Readings events from an Antelope database +% To load event data from an Antelope/Datascope CSS3.0 database you will +% need to have Antelope () installed, +% including the Antelope toolbox for MATLAB (ATM). To see if ATM is +% installed, use the admin.antelope_exists() command, e.g. +if admin.antelope_exists() + disp('Antelope Toolbox for MATLAB found') +else + disp('Sorry, Antelope not found') +end + +%% +% If you do not have ATM installed, any attempt to read from an Antelope +% database will result in a warning like: +% +% Warning: Sorry, cannot read event Catalog from Antelope database as Antelope toolbox for MATLAB not found +% +% and an empty Catalog object will be returned. + +% +%% +% For the purpose of this exercise we will be using data from Redoubt +% volcano from 2009/03/20 to 2009/03/23. We will use snippets from two +% catalogs that are provided with GISMO in Antelope format: + +%% +% +% * The real-time catalog (rtdb200903). +% * The analyst-reviewed offical AVO catalog (avodb200903). + +%% +% Both catalog segments are included in the "demo" directory. +% We will now load the official AVO catalog into an Events object: +dbpath = fullfile(TESTDATA, 'css3.0', 'avodb200903') +avocatalog = Catalog.retrieve('antelope', 'dbpath', dbpath); + +%% +% This should load 1441 events. What if we only want events within 20km of +% Redoubt volcano? There are two ways to do this. The first is the use the +% radialcoordinates parameter: +redoubtLon = -152.7431; +redoubtLat = 60.4853; +maxR = km2deg(20.0); +redoubt_events = Catalog.retrieve('antelope', 'dbpath', dbpath, ... + 'radialcoordinates', [redoubtLat redoubtLon maxR]) + +%% +% Anyone familiar with Antelope will know that it subsets databases by +% using a dbeval subset expression, and the command above does this +% internally. You can also specify a subset expression directly. The +% following example is completely equivalent to that above: +expr = sprintf('distance(lat, lon, %f, %f) < %f',redoubtLat, redoubtLon,maxR) +redoubt_events = Catalog.retrieve('antelope', 'dbpath', dbpath, ... + 'subset_expression', expr) + +%% +% Save this dataset so you can use it again later: +save('redoubt_events.mat', 'redoubt_events') + + +%% Reading events from a Seisan database +% Here we load events from a Seisan catalog. A Seisan "Sfile" contains all +% the metadata for 1 event. These Sfiles are stored in a flat-file database +% structure the path to which is: $SEISAN_TOP/REA/databaseName. Sfiles are +% organized in year/month subdirectories under this path. +% +% *SCAFFOLD: INCLUDE DEMO DATASET FROM MVOE* + +%% +% The following will navigate this where in this case +% $SEISAN_TOP = '/raid/data/seisan' and the databaseName is MVOE_ which +% stands for the Montserrat Volcano Observatory Event database. +% (In Seisan, databaseName is limited to exactly 5 characters). +% +% This example will load Sfiles from 4 hours on 1st Nov, 1996. This is a slow +% function to run as MATLAB is slow at parsing text files, and there are +% many events per day in this particular database. +%demodir = Catalog.demo.demo_path(); +demodir = fullfile(TESTDATA, 'seisan', 'REA', 'MVOE_'); +montserrat_events = Catalog.retrieve('seisan', ... + 'dbpath', demodir, ... + 'startTime', '1996/11/01 11:00:00', .... + 'endTime', '1996/11/01 15:00:00') + +%% +% Save this dataset so you can use it again later: +save('montserrat_events.mat', 'montserrat_events') + +%% +% Only a few of these earthquakes have been located and even fewer have +% magnitudes. This is common for volcanic earthquakes. Most of these are of +% type 'h' - a hybrid earthquake. + +%% Converting a Zmap data structure to a Catalog object +% ZMap is a graphical application written by Max Wyss & Stefan Wiemer for +% statistical analysis of catalogs. GISMO can convert a ZMap data structure +% into a Catalog object with: +% +% catalogObject = Catalog.retrieve('zmap', zmapdata) + +%% Plotting hypocenter maps +% Catalog objects have three builtin ways for plotting hypocenters + +%% +% Reload the Tohoku dataset +load tohoku_events.mat + +%% +% *Map view & cross-sections* +tohoku_events.plot() + +%% +% *3D-Hypocenters* +tohoku_events.plot3() + +%% +% *web map* +%% +% +% tohoku_events.webmap() +tohoku_events.webmap() +wmzoom(7) + +%% Plotting time series of events +% *Magnitude-time plot* +tohoku_events.plot_time() + +%% +% *Earthquake event counts (number of events per unit time)* +% A plot of seismic catalog per day is often called an "event counts" plot. +% In GISMO, we call this an "event rate plot" and the first step is to +% generate an EventRate object. Here our binsize is 1/24 days, i.e. 1 hour. + +eventrateObject = tohoku_events.eventrate('binsize', 1/24) + +%% +% Now plot the EventRate object: +eventrateObject.plot() + +%% +% We can do the same thing for another dataset, e.g. redoubt_events +redoubt_events.plot_time() +erobj_red = redoubt_events.eventrate('binsize', 1/24) +erobj_red.plot() + +%% +% To see more of the things we can do with EventRate objects see the +% EventRate cookbook + + + +%% Analysis +% *Peak event rate (PR) and maximum magnitude* +% A common type of analysis is to identify the peak rate in an earthquake +% sequence such as this preshock-mainshock-aftershock sequence or an +% earthquake swarm. This can be done with: + +tohoku_events.plotprmm() + + +%% +% In the command window this returns: +% MM=9.1 occurs at 50.0% of time series +% PR=32 occurs at 53.5% of time series +% +% These are labelled on the plot above with PR and MM. + +%% +% Now with the Redoubt dataset +redoubt_events.plotprmm() + +%% +% *b-value and magnitude of completeness* +% Code from "ZMap" (written by Stefan Wiemer and others) has been added to +% Catalog to compute and plot b-values and the magnitude of completeness. + +%% +% Definitions: +% +% * b-value: the slope of a plot of the logarithm of the cumulative number of events against magnitude. A measure of the number of small earthquakes to larger earthquakes. +% * magnitude of completeness (Mc): all events with magnitude>=Mc are in the catalog. Below Mc, not all events are detected, and below the magnitude detection threshold, no events are captured. + +%% +% Just calling the bvalue method, i.e. +% +% catalogObject.bvalue() +% +% displays a menu of techniques available to compute b-value (b) and +% magnitude of completeness (Mc): +% +% -------------------------------------------------------- +% Usage is: eventsObject.bvalue(mcType) +% -------------------------------------------------------- +% mcType can be: +% 1: Maximum curvature +% 2: Fixed Mc = minimum magnitude (Mmin) +% 3: Mc90 (90% probability) +% 4: Mc95 (95% probability) +% 5: Best combination (Mc95 - Mc90 - maximum curvature) +% +% We will use the first menu option: + +tohoku_events.bvalue(1) + +%% +% In this particular example, the b-value is 0.6 and the magnitude of +% completeness is 4.2. + +%% +% Now for the Redoubt events: + +redoubt_events.bvalue(1) + +%% Saving Catalog objects to disk +% *Writing to a MAT file* +% We've already seen how to do this, the general syntax is: +% save('myfilename.mat', 'myCatalogObject') + +%% +% This can simply be loaded again with: +% load('myfilename.mat') + +%% +% *Writing to an Antelope CSS3.0 database* +% This method requires the Antelope toolbox for MATLAB and writes the +% Catalog as a CSS3.0 flat-file database: + +%% +% First make sure there is no database with this name already - else we +% will be appending to it: +delete greatquakes_db* + +%% +% Now write to the database +greatquakes.write('antelope', 'greatquakes_db', 'css3.0') + +%% +% This database can be reloaded with: +greatquakes2 = Catalog.retrieve('antelope', 'dbpath', 'greatquakes_db') + +%% +% Compare: +greatquakes + +%% +% This concludes the Catalog cookbook/tutorial. + diff --git a/core/@EventRate/cookbook.m b/cookbooks/EventRate_cookbook.m similarity index 98% rename from core/@EventRate/cookbook.m rename to cookbooks/EventRate_cookbook.m index 75a633b..ba11bec 100644 --- a/core/@EventRate/cookbook.m +++ b/cookbooks/EventRate_cookbook.m @@ -6,7 +6,7 @@ %% Simple EventRate example % First we create a Catalog object from the Redoubt dataset -dbpath = Catalog.demo.demodb('avo'); +dbpath = fullfile(TESTDATA, 'css3.0', 'avodb200903'); redoubtLon = -152.7431; redoubtLat = 60.4853; maxR = km2deg(20.0); diff --git a/core/@correlation/cookbook.m b/cookbooks/correlation_cookbook.m similarity index 100% rename from core/@correlation/cookbook.m rename to cookbooks/correlation_cookbook.m diff --git a/core/@drumplot/cookbook.m b/cookbooks/drumplot_cookbook.m similarity index 100% rename from core/@drumplot/cookbook.m rename to cookbooks/drumplot_cookbook.m diff --git a/cookbooks/rsam_cookbook.m b/cookbooks/rsam_cookbook.m new file mode 100644 index 0000000..fab1942 --- /dev/null +++ b/cookbooks/rsam_cookbook.m @@ -0,0 +1,204 @@ +%% RSAM Cookbook + +%% Short explanation +% RSAM is essentially just a downsampled version of continuous seismic +% data, making it easier to examine long-term trends in the data, e.g. to +% recognize periods of unrest, episodes of tremor, etc. The properties of a +% GISMO RSAM object are: +% +% +% +% * dnum = date/time of time-windows corresponding to each data value, as a +% MATLAB datenum. +% * data = each data value is the RSAM value for a particular time window +% * measure = records which statistic was used. Default "mean", which +% implies that each data value is the mean absolute value of the +% seismic waveform during the corresponding time window. +% * units = records the units that the data is expressed in. Default +% counts, which implies uncalibrated units straight out of the +% digitizer. +% * ChannelTag = records the ChannelTag object corresponding to the time +% series expressed by dnum and data. A ChannelTag object +% records the network, station, location and channel code. +% * snum = the MATLAB datenum corresponding to the start time/date - equal +% to the lowest value in dnum. +% * enum = the MATLAB datenum corresponding to the end time/date - equal +% to the higest value in dnum. +% * sampling_interval = the length of the time window for each RSAM data +% sample, in seconds. (Default 60 seconds) +% +% +%% Longer explanation +% RSAM stands for "Real-time Seismic Amplitude Measurement". An RSAM object +% is a data type that holds RSAM data. Typically each RSAM value is +% computed from the raw continuous seismic data like this: +% +% # Break the seismic data into non-overlapping time windows (typically +% 60-second windows). +% # Compute the mean. Subtract it from the data. This removes the offset +% due to a seismometer not being centred. This process is called +% 'demeaning'. +% # Compute the absolute values of the 'demeaned' data. +% # Then compute the mean average of these absolute demeaned data. This +% mean value is the RSAM value for that time window. +% +%% History of RSAM +% The RSAM system was originally developed in 1985 by Tom Murray. The +% purpose was to track the average amplitudes of data from different +% station-channels over time intervals of 2.56, 60 and 600 seconds, and +% plot them graphically. Alarms could also be configured to detect events +% and tremor based on these RSAM values. +% +% The RSAM system also saved 60-sec values to binary files that could be +% read by the program "BOB" (also written by Tom Murray). +% Through the USGS Volcano Disaster Assistance Program, RSAM and BOB became +% widely used throughout the world at volcano observatories. So there are +% many of these binary files (which GISMO refers to as "BOB" files) in the +% archives of volcano observatories. It is important that we can read them. +% as the raw continuous seismic data was usually not preserved (storage was +% very expensive until about the year 2000). This can be done with the +% 'read_bob_file' method of the RSAM class. +% +% Earthworm, the seismic data acquisition system developed by USGS, also +% includes modules to compute RSAM values, create RSAM alarms, and save +% RSAM values to "BOB" files. We want to be able to read these too, and +% 'read_bob_file' will do this. +% +%% Additional capabilities of GISMO's RSAM class +% GISMO expands on the traditional definition of RSAM in 3 ways: +% +% +% * Traditional RSAM units are "counts" - the raw digitizer output. GISMO +% RSAM objects can have physically meaningful units, e.g. nm / sec. This +% is recorded in the "units" property. +% * Each RSAM value is traditionally the mean amplitude of the seismic +% data within the corresponding time window. But GISMO RSAM objects may +% other measurements, such as the maximum amplitude within that time +% window, or the root-mean-square value, or the median value. The +% 'measure' property records which statistic was used. +% * The traditional sampling interval (time window length) for recorded +% RSAM data is 60 seconds. GISMO RSAM objects may use other sampling +% intervals. Common choices are 1 sec, 60 sec, 600 sec, 3600 sec. + + +%% Computing RSAM from waveform objects +% +% In GISMO, waveform objects are the data type created to hold continuous +% seismic data. The waveform2rsam method can be used to compute RSAM data +% from a waveform object. +% +% First we need to load a waveform object: +filepath = fullfile(TESTDATA, 'waveform_data', 'REF.EHZ.2009.081'); +ds = datasource('miniseed', filepath); +snum = datenum(2009,3,22,0,0,0); +enum = snum + 6/24; +ctag = ChannelTag('','REF','','EHZ'); +w = waveform(ds, ctag, snum, enum); +plot(w) + +%% +% Now compute RSAM data. The default sampling interval is 1 minute, and +% the default sampling method is "mean". +rsamobj1 = waveform2rsam(w) + +%% +% This is equivalent to: +rsamobj2 = waveform2rsam(w, 'mean', 60.0) + +%% +% For "events" it may be more useful to use a finer sampling interval, and +% record the absolute maximum value (greatest amplitude) of each time +% window. Here we use a 10-s sampling rate. +rsamobj3 = waveform2rsam(w, 'max', 10.0) + +%% +% For "tremor" we want to filter out the "events". If all events are +% shorter than 30 seconds, then a median filter with a time window of at +% least 60 seconds should work well. Here we choose a time window of 10 +% minutes: +rsamobj4 = waveform2rsam(w, 'median', 600.0) + +%% Plotting RSAM objects +% There are two ways to plot RSAM objects. The first is the 'plot' method, +% which puts all graphs within the same axis: +rsamvector = [rsamobj1 rsamobj2 rsamobj3 rsamobj4] +rsamvector.plot(); +legend('1:default','2:default2','3:max-10s','4:median-600s') +%% +% The second method is 'plot_panels' which puts plots each RSAM object in a +% different subplot: +rsamvector.plot_panels(); + + +%% Saving RSAM objects +% RSAM objects can be saved to text files, and to binary (bob) files. +% + +%% +% *TEXT FILE* +rsamobj3.save_to_text_file('REF.EHZ.10s.max.txt'); +%% +% The first few lines of this file will look like: +%% +% +% 733854.00000000 2009-03-22 00:00:00.000 6.988e+03 +% 733854.00011574 2009-03-22 00:00:10.000 3.535e+02 +% 733854.00023148 2009-03-22 00:00:20.000 2.503e+02 +% 733854.00034722 2009-03-22 00:00:30.000 6.211e+02 +% 733854.00046296 2009-03-22 00:00:40.000 1.129e+03 +% 733854.00057870 2009-03-22 00:00:50.000 9.490e+02 +% +%% +% The first column is the dnum, the second column expresses the dnum as a +% human-readable yyyy-mm-dd HH:MM:SS.FFF string, and the third column is +% the RSAM data value. The sampling interval in 10-seconds in this case. +% +%% +% *BINARY BOB FILE* +rsamobj3.save_to_bob_file('REF.EHZ.10s.max.bob'); + +%% +% Generally it will be more useful to use a file pattern, where the +% following substitutions will be made: +% SSSS - station +% CCC - channel +% YYYY - year +% MMMM - measure +% +% This way multiple rsam objects can be saved using a simialr filename +% pattern, e.g. +rsamvector.save_to_bob_file('SSSS.CCC.10s.MMMM.bob'); + + +%% +% ------------------------------------------------------------------- +% +% To proceed further with this tutorial, you must have the GISMO test +% dataset available. +if ~is_testdata_setup() + error('GISMO test data must be accessible to proceed further with this tutorial') +end + +%% Loading data from a binary "BOB" file +% The original RSAM system recorded data in binary files that could be read +% by a program called "BOB". Earthworm also has a module to record RSAM +% data in BOB compatible files. +% Each BOB file holds the RSAM data for one station-channel, per year. + +%% +% For one station we can use an explicit path: +dp = fullfile(TESTDATA,'rsam','MCPZ1996.DAT'); +s = rsam.read_bob_file(dp, 'snum', datenum(1996,12,1), ... + 'enum', datenum(1996,12,31), 'sta', 'MCPZ', 'units', 'Counts') +s.plot(); + +%% +% If we want to read across year boundaries, or read all the files in a +% directory, we can use a file pattern. For example to read all files with +% that begin with a 4-character station code, followed by a 4-character +% year, and an extension of '.DAT', use the following file pattern: +dp = fullfile(TESTDATA,'rsam','SSSSYYYY.DAT'); %SSSS means station, YYYY means year +s = rsam.read_bob_file(dp, 'snum', datenum(1996,12,1), ... + 'enum', datenum(1997,2,1), 'sta', 'MCPZ', 'units', 'Counts') +s.plot(); + diff --git a/cookbooks/waveform_cookbook.m b/cookbooks/waveform_cookbook.m new file mode 100644 index 0000000..b783f24 --- /dev/null +++ b/cookbooks/waveform_cookbook.m @@ -0,0 +1,135 @@ +%% waveform +% A waveform object is the GISMO data type for holding seismic waveform +% data. The basic idea is that in GISMO we don't care whether our waveform +% data come from a SAC, Seisan or Miniseed file, or from an Earthworm or +% Winston waveserver, or from an Antelope database - we just want to work +% with waveform objects. So GISMO contains routines to read these different +% data formats into waveform objects, and then methods for processing +% waveform objects. + +%% Reading data files into GISMO +% To read in a single data file, we just need the path and the file format: + +%% +% *Reading a MiniSEED (or SEED file) into MATLAB* +filepath = fullfile(TESTDATA, 'waveform_data', 'REF.EHZ.2009.081') +w = waveform(filepath, 'seed') + +%% +% *Reading a SAC file into MATLAB* +filepath = fullfile(TESTDATA, 'waveform_data', 'REF.EHZ.2009-03-22.sac') +w = waveform(filepath, 'sac') + +%% +% *Reading a Seisan file into MATLAB* +filepath = fullfile(TESTDATA, 'waveform_data', '2001-02-02-0303-55S.MVO___019') +w = waveform(filepath, 'seisan') + +%% Reading from data sources + +%% +% *Reading waveform data from IRIS DMC webservices* +% When reading from IRIS DMC webservices, you must tell GISMO which +% datasource to use ('irisdmcws'), which network/station/location/channel +% combinations to search for (using scnlobject or ChannelTag), and the +% start and end times of the data window you want to load. All these +% parameters must be passed to the waveform function call. +ds = datasource('irisdmcws'); +ctag = ChannelTag('AV', 'RSO', '--', 'EHZ'); +startTime = '2009/03/22 06:00:00'; +endTime = '2009/03/22 07:00:00'; +w = waveform(ds, ctag, startTime, endTime) + +%% +% *Reading waveform data from an Earthworm or Winston waveserver* +% Reading from an Earthworm or Winston waveserver is exactly the same as +% reading from IRIS DMC webservices, except that the datasource should be +% 'earthworm' or 'winston', and the two arguments are the host-ip-address +% and the port number: +ds = datasource('winston', 'pubavo1.wr.usgs.gov', 16022); +ctag = ChannelTag('AV', 'RSO', '--', 'EHZ'); +startTime = now-1/24; +endTime = now; +w = waveform(ds, ctag, startTime, endTime) + +%% +% *Reading waveform data from an CSS3.0 flat-file database (the format used +% by Antelope)* +% Reading from an CSS3.0 flat-flat database is exactly the same as reading from IRIS DMC webservices, except that the datasource should be 'css3.0' (or 'antelope') +dbpath = fullfile(TESTDATA, 'css3.0', 'demodb') +ds = datasource('antelope', dbpath); +ctag = ChannelTag('AV', 'REF', '--', 'EHZ'); +startTime = '2009/03/23 06:00:00'; +endTime = '2009/03/23 07:00:00'; +w = waveform(ds, ctag, startTime, endTime) + +%% Processing / Analyzing waveform data +% Once you have loaded your data into a waveform object (or into an array +% of waveform objects), you can do common tasks like make a time series +% plot, detrend or filter, plot an amplitude spectrum, a spectrogram or a +% helicorder. Here are some simple examples: + +%% +% *Plotting* +% Typically the first analysis step is to look at the time series data. +plot(w) + +%% +% *Interpolate missing values* +% Typically the data will have some missing samples, marked by NaN values. +% Some processing will break down with NaN values. So it may be a good idea +% to remove them with interpolation: +w = fillgaps(w,'interp') + +%% +% *Detrending* +% Seismic data usually have an offset (DC) due to the seismometer not being +% completely level, and there is also often a drift because of temperature +% vairations or air currents. Detrending gets rid of this. Note that +% detrending will fail if NaN values are present. So use the 'fillgaps' +% method first, presented in the previous step. +w = detrend(w) +plot(w) + +%% +% *Filtering* +% To remove non-linear trends in data, a high-pass filter is helpful. For +% example, to apply a 0.5-Hz high pass filter, 2 poles, in both directions +% (acausal): +f = filterobject('h', 0.5, 2) +w = filtfilt(f,w) +plot(w) + +%% +% Here are examples of band-pass filters and low-pass filters: +%% +% * Band-pass 0.5-10 Hz, 3 poles +%% +% +% f = filterobject('b', [0.5 10], 3) +%% +% +% * Low-pass 25 Hz, 4 poles +%% +% +% f = filterobject('l', 25, 4) +% +% If only one-way (causal) filtering is wanted, use 'filter' instead of +% 'filtfilt'. + +%% +% *Spectrum* +% An amplitude spectrum can be generated with: +plot_spectrum(w) + +%% +% *Spectrogram* +% A spectrogram can be generated with: +figure +spectrogram(w) + +%% +% *Helical drum recorder plot* +% A helicorder plot can be generated with: +plot_helicorder(w) + diff --git a/core/+Arrival/+read_arrivals/antelope.m b/core/+Arrival/+read_arrivals/antelope.m index 4ac69d3..b2385d7 100644 --- a/core/+Arrival/+read_arrivals/antelope.m +++ b/core/+Arrival/+read_arrivals/antelope.m @@ -9,11 +9,14 @@ % Open database db = dbopen(dbname,'r'); + disp('- database opened'); % Apply subset expression db = dblookup_table(db,'arrival'); + disp('- arrival table opened'); if exist('subset_expr','var') db = dbsubset(db,subset_expr); + disp('- subsetted database') end nrows = dbnrecs(db); @@ -21,14 +24,21 @@ % Sort by arrival time db = dbsort(db,'time'); + disp('- sorted arrival table') % Get the values + fprintf('- reading %d rows\n',nrows); [sta,chan,time,amp,signal2noise,iphase] = dbgetv(db,'sta','chan','time','amp','snr','iphase'); % Close database link dbclose(db); + disp('- database closed') + % Create arrival object + disp('- creating arrival object') arrivalObj = Arrival(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(iphase), 'amp', amp, 'signal2noise', signal2noise); + + disp('- complete!') else fprintf('No arrivals found matching request\n'); end diff --git a/core/+Catalog/+read_catalog/seisan.m b/core/+Catalog/+read_catalog/seisan.m index 4bc8c33..fa6fb61 100644 --- a/core/+Catalog/+read_catalog/seisan.m +++ b/core/+Catalog/+read_catalog/seisan.m @@ -83,7 +83,7 @@ return; end - % get dir list of matching sfiles + % get dir list of matching sfilesSfile.list_sfiles sfiles = Sfile.list_sfiles(dbpath, snum, enum); % loop over sfiles diff --git a/core/+antelope/dbcp.m b/core/+antelope/dbcp.m new file mode 100644 index 0000000..afe7745 --- /dev/null +++ b/core/+antelope/dbcp.m @@ -0,0 +1,10 @@ +function dbcp( dbpath1, dbpath2 ) +%DBCP Copy one Antelope database to another +% dbcp(sourcedbpath, targetdbpath) calls the dbcp command + + cmdstr = sprintf('%s/bin/dbcp %s %s', getenv('ANTELOPE'),dbpath1, dbpath2); + fprintf('Copying database:\n\t%s\n',cmdstr); + result = system(cmdstr); + +end + diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m old mode 100755 new mode 100644 index a10330e..e450ce0 --- a/core/@Arrival/Arrival.m +++ b/core/@Arrival/Arrival.m @@ -2,10 +2,9 @@ % An Arrival object is a container for phase arrival metadata % See also Catalog classdef Arrival - properties(Dependent) - %properties + properties channelinfo - daynumber + time %arid %jdate iphase @@ -17,83 +16,85 @@ %ema %rect amp - %per + per %clip %fm signal2noise %qual %auth - end - properties(Hidden) - table + waveforms end methods - function obj = Arrival(sta, chan, daynumber, iphase, varargin) + function obj = Arrival(sta, chan, time, iphase, varargin) % Parse required, optional and param-value pair arguments, % set default values, and add validation conditions p = inputParser; p.addRequired('sta', @iscell); p.addRequired('chan', @iscell); %p.addRequired('time', @(t) t>0 & t 0 + if numrows > 0 if ~exist('showall','var') showall = false; end if numel(obj) == 1 - if height(obj.table) <= 50 || showall - disp(obj.table) + if numrows <= 50 || showall + for rownum=1:numrows + summarize_row(obj, rownum); + end else - disp(obj.table([1:50],:)) - + for rownum=1:50 + summarize_row(obj, rownum); + end disp('* Only showing first 50 rows/arrivals - to see all rows/arrivals use:') disp('* arrivalObject.disp(true)') end @@ -102,29 +103,73 @@ function summary(obj, showall) end end - function self = subset(self, columnname, findval) - N = numel(self.daynumber); + function summarize_row(self, rownum) + fprintf('%s\t%s\t%s\t%e\t%e\t%e\n', ... + self.channelinfo(rownum), ... + datestr(self.time(rownum)), ... + self.iphase(rownum), ... + self.amp(rownnum), ... + self.per(rownum), ... + self.signal2noise(rownum)); + end + + function self2 = subset(self, columnname, findval) + self2 = self; + N = numel(self.time); indexes = []; - for c=1:N - gotval = eval(sprintf('self.%s(c);',columnname)); - if isa(gotval,'cell') - gotval = cell2mat(gotval); - end - if isnumeric(gotval) - if gotval==findval - indexes = [indexes c]; + if ~exist('findval','var') + % assume columnname is actually row numbers + indexes = columnname; + else + + for c=1:N + gotval = eval(sprintf('self.%s(c);',columnname)); + if isa(gotval,'cell') + gotval = cell2mat(gotval); end - else - if strcmp(gotval,findval) - indexes = [indexes c]; + if isnumeric(gotval) + if gotval==findval + indexes = [indexes c]; + end + else + if strcmp(gotval,findval) + indexes = [indexes c]; + end end end end - self.table = self.table(indexes,:); + self2.channelinfo = self.channelinfo(indexes); + self2.time = self.time(indexes); + self2.iphase = self.iphase(indexes); + if numel(self.amp)==N + self2.amp = self.amp(indexes); + end + if numel(self.per)==N + self2.per = self.per(indexes); + end + if numel(self.signal2noise)==N + self2.signal2noise = self.signal2noise(indexes); + end +% % now go into misc_fields and apply same index subset to +% % anything with N elements +% fields = fieldnames(self.misc_fields); +% for fieldnum=1:numel(fields) +% fieldval = getfield(self.misc_fields, fields{fieldnum}); +% if numel(fieldval)==N +% self2.misc_fields = setfield(self2.misc_fields, fields{fieldnum}, fieldval(indexes)); +% end +% end + if numel(self.waveforms)==N + self2.waveforms = self.waveforms(indexes); + end + end % prototypes catalogobj = associate(self, maxTimeDiff) + %arrivalobj = setminman(self, w, pretrig, posttrig, maxtimediff) + arrivalobj = addmetrics(self, maxtimediff) + arrivalobj = addwaveforms(self, datasourceobj, pretrigsecs, posttrigsecs); end methods(Static) function self = retrieve(dataformat, varargin) diff --git a/core/@Arrival/Arrival_table.m b/core/@Arrival/Arrival_table.m new file mode 100755 index 0000000..9c905d1 --- /dev/null +++ b/core/@Arrival/Arrival_table.m @@ -0,0 +1,213 @@ +%Arrival the blueprint for Arrival objects in GISMO +% An Arrival object is a container for phase arrival metadata +% See also Catalog +classdef Arrival + properties(Dependent) + %properties + channelinfo + time + %arid + %jdate + iphase + %deltim + %azimuth + %delaz + %slow + %delslo + %ema + %rect + amp + per + %clip + %fm + signal2noise + %qual + %auth + end + properties + waveforms + end + properties(Hidden) + table + end + methods + function obj = Arrival(sta, chan, time, iphase, varargin) + % Parse required, optional and param-value pair arguments, + % set default values, and add validation conditions + p = inputParser; + p.addRequired('sta', @iscell); + p.addRequired('chan', @iscell); + %p.addRequired('time', @(t) t>0 & t 0 + if ~exist('showall','var') + showall = false; + end + if numel(obj) == 1 + if height(obj.table) <= 50 || showall + disp(obj.table) + else + disp(obj.table([1:50],:)) + + disp('* Only showing first 50 rows/arrivals - to see all rows/arrivals use:') + disp('* arrivalObject.disp(true)') + end + end + end + end + end + + function self2 = subset(self, columnname, findval) + self2 = self; + N = numel(self.time); + indexes = []; + if ~exist('findval','var') + % assume columnname is actually row numbers + indexes = columnname; + else + + for c=1:N + gotval = eval(sprintf('self.%s(c);',columnname)); + if isa(gotval,'cell') + gotval = cell2mat(gotval); + end + if isnumeric(gotval) + if gotval==findval + indexes = [indexes c]; + end + else + if strcmp(gotval,findval) + indexes = [indexes c]; + end + end + end + end + self2.table = self.table(indexes,:); + +% % now go into misc_fields and apply same index subset to +% % anything with N elements +% fields = fieldnames(self.misc_fields); +% for fieldnum=1:numel(fields) +% fieldval = getfield(self.misc_fields, fields{fieldnum}); +% if numel(fieldval)==N +% self2.misc_fields = setfield(self2.misc_fields, fields{fieldnum}, fieldval(indexes)); +% end +% end + + self2.waveforms = self.waveforms(indexes); + + end + + % prototypes + catalogobj = associate(self, maxTimeDiff) + %arrivalobj = setminman(self, w, pretrig, posttrig, maxtimediff) + arrivalobj = addmetrics(self, maxtimediff) + arrivalobj = addwaveforms(self, datasourceobj, pretrigsecs, posttrigsecs); + end + methods(Static) + function self = retrieve(dataformat, varargin) + %ARRIVAL.RETRIEVE Read arrivals from common file formats & data sources. + % retrieve can read phase arrivals from different earthquake catalog file + % formats (e.g. Seisan, Antelope) and data sources (e.g. IRIS DMC) into a + % GISMO Catalog object. + % + % Usage: + % arrivalObject = ARRIVAL.RETRIEVE(dataformat, 'param1', _value1_, ... + % 'paramN', _valueN_) + % + % dataformat may be: + % + % * 'iris' (for IRIS DMC, using irisFetch.m), + % * 'antelope' (for a CSS3.0 Antelope/Datascope database) + % * 'seisan' (for a Seisan database with a REA/YYYY/MM/ directory structure) + % * 'zmap' (converts a Zmap data strcture to a Catalog object) + % + % See also CATALOG, IRISFETCH, CATALOG_COOKBOOK + + % Author: Glenn Thompson (glennthompson1971@gmail.com) + + %% To do: + % Implement name-value parameter pairs for all methods + % Test the Antelope method still works after factoring out db_load_origins + % Test the Seisan method more + % Add in support for 'get_arrivals' + + debug.printfunctionstack('>') + self = []; + switch lower(dataformat) + case {'css3.0','antelope', 'datascope'} + if admin.antelope_exists() + try + self = Arrival.read_arrivals.antelope(varargin{:}); + catch + % no arrivals + end + else + warning('Antelope toolbox for MATLAB not found') + end + case 'hypoellipse' + self = read_hypoellipse(varargin{:}); + otherwise + self = NaN; + fprintf('format %s unknown\n\n',dataformat); + end + + debug.printfunctionstack('<') + end + + %cookbook() + end +end \ No newline at end of file diff --git a/core/@Arrival/addmetrics.m b/core/@Arrival/addmetrics.m new file mode 100644 index 0000000..8ed7ed6 --- /dev/null +++ b/core/@Arrival/addmetrics.m @@ -0,0 +1,20 @@ +function arrivalobj = addmetrics(arrivalobj, maxTimeDiff) +%ADDMETRICS add metrics to waveforms in Arrival object +% arrivalobj = addmetrics(arrivalobj, maxTimeDiff) + disp('Computing waveform metrics for arrivals') + w = arrivalobj.waveforms; + N = numel(w); + if N>0 + w = addmetrics(w, maxTimeDiff); + amp=-ones(size(w)); + for c=1:N + m = get(w(c), 'metrics'); + amp(c) = max(abs([m.maxAmp m.minAmp])); + end + arrivalobj.amp = amp; + arrivalobj.waveforms = w; + end + +end + + diff --git a/core/@Arrival/addwaveforms.m b/core/@Arrival/addwaveforms.m new file mode 100644 index 0000000..275458e --- /dev/null +++ b/core/@Arrival/addwaveforms.m @@ -0,0 +1,38 @@ +function arrivalobj = addwaveforms(arrivalobj, datasourceobj, pretrigsecs, posttrigsecs); +%addwaveforms Add waveform objects corresponding to arrivals +% addwaveforms will attempt to add a waveform object corresponding to +% each arrival row in an Arrival object. It is added as a field to the +% structure misc_fields. +% +% Usage: +% arrivalobj = arrivalobj.addwaveforms(datasourceobj, pretrigsecs, posttrigsecs) +% +% Example: +% dbpath = '/raid/data/sakurajima/db'; +% ds = datasource('antelope', dbpath); +% arrivalobj = Arrival.retrieve('antelope', dbpath); +% pretrigsecs = 5; +% posttrigsecs = 5; +% arrivalobj = arrivalobj.addwaveforms(ds, pretrigsecs, posttrigsecs) +% + disp('Adding waveforms to arrival object'); + w = []; + numsuccess=0; + for c=1:numel(arrivalobj.time) + ctag = ChannelTag(arrivalobj.channelinfo(c)); + snum = arrivalobj.time(c) - pretrigsecs/86400; + enum = arrivalobj.time(c) + posttrigsecs/86400; + try + w = [w waveform(datasourceobj, ctag, snum, enum)]; + fprintf('.'); + numsuccess = numsuccess + 1; + catch + w = [w waveform()]; + fprintf('x'); + end + end + arrivalobj.waveforms = w'; + fprintf('\n(added %d of %d waveforms successfully)\n', numsuccess, numel(arrivalobj.time)); + +end + diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m index 32fbe61..0fc4692 100644 --- a/core/@Arrival/associate.m +++ b/core/@Arrival/associate.m @@ -1,9 +1,14 @@ -function catalogobj = associate(arrivals, maxTimeDiff) +function catalogobj = associate(arrivalobj, maxTimeDiff) %ASSOCIATE Associate arrivals into events % catalogobj = associate(arrivals, maxTimeDiff) will scan through an -% arrivals object and look for times where there are at least 2 arrivals on -% 2 different channels within maxTimeDiff of each other, and declare an event. +% arrivals object (assumed to be sorted in chronological order) and look +% for times where there are at least 2 arrivals on +% within maxTimeDiff seconds of each other, and declare an event. % +% Notes: +% - no checking is done to see if arrivals are on different channels +% - if loading from Antelope with Arrival.retrieve(), arrivals are already +% sorted % % Example: Imagine you have an infrasound array and you have marked % infrasound events manually (or automatically) with an "N" phase, picking @@ -20,40 +25,120 @@ % catalogobj = arrivalobj.associate(0.1); %% Associate events -disp('Associating arrivals into events...') -eventOn = false; -firstchaninfo = ''; -firsttime = 0; -lasttime = 0; -eventNumber = 0; - -for c=2:numel(arrivals.daynumber) - if arrivals.daynumber(c-1) + maxTimeDiff/86400 > arrivals.daynumber(c) - if ~eventOn % start new event - eventOn = true; - %eventNumber = eventNumber + 1; - %infrasoundEvent(eventNumber).FirstArrivalTime = arrivals.daynumber(c-1); - firsttime = arrivals.daynumber(c-1); - lasttime = 0; - firstchaninfo = arrivals.channelinfo(c-1); - else % event already in progress - end - if ~strcmp(firstchaninfo, arrivals.channelinfo(c)) - %infrasoundEvent(eventNumber).LastArrivalTime = arrivals.daynumber(c); - lasttime = arrivals.daynumber(c); - end - else - if eventOn % write out event - eventOn = false; - if (firsttime>0 && lasttime > 0) - eventNumber = eventNumber + 1; - infrasoundEvent(eventNumber).FirstArrivalTime = firsttime; - infrasoundEvent(eventNumber).LastArrivalTime = lasttime; - end - firstchaninfo = ''; - firsttime = 0; - lasttime = 0; + +% eventOn = false; +% firstchaninfo = ''; +% firsttime = 0; +% lasttime = 0; +% eventNumber = 0; +% +% for c=2:numel(arrivals.time) +% if arrivals.time(c-1) + maxTimeDiff/86400 > arrivals.time(c) +% if ~eventOn % start new event +% eventOn = true; +% %eventNumber = eventNumber + 1; +% %infrasoundEvent(eventNumber).FirstArrivalTime = arrivals.time(c-1); +% firsttime = arrivals.time(c-1); +% lasttime = 0; +% firstchaninfo = arrivals.channelinfo(c-1); +% else % event already in progress +% end +% if ~strcmp(firstchaninfo, arrivals.channelinfo(c)) +% %infrasoundEvent(eventNumber).LastArrivalTime = arrivals.time(c); +% lasttime = arrivals.time(c); +% end +% else +% if eventOn % write out event +% eventOn = false; +% if (firsttime>0 && lasttime > 0) +% eventNumber = eventNumber + 1; +% infrasoundEvent(eventNumber).FirstArrivalTime = firsttime; +% infrasoundEvent(eventNumber).LastArrivalTime = lasttime; +% end +% firstchaninfo = ''; +% firsttime = 0; +% lasttime = 0; +% end +% end +% end +% catalogobj = Catalog([infrasoundEvent.FirstArrivalTime], [], [], [], [], {}, {}, 'ontime', [infrasoundEvent.FirstArrivalTime], 'offtime', [infrasoundEvent.LastArrivalTime]); + +% First we begin with each arrival and find how many arrivals occur in the +% maxTimeDiff seconds that follow. This way each arrival is assigned a +% weight equal to that number of arrivals. The point of this is to help us +% identify the beginning of each event. +arrtimes = arrivalobj.time; +fprintf('\nFinding how many arrivals within %e sec of each arrival\n',maxTimeDiff) +for c=1:numel(arrtimes) + associated_indices{c} = find(arrtimes>=arrtimes(c) & arrtimes<=arrtimes(c)+maxTimeDiff/86400); + numarrivals(c) = numel(associated_indices{c}); +end + +% remove decrementing series, e.g. replace sequence +% like 6 5 4 3 2 1 with 6 0 0 0 0 0 +numarrivals = [numarrivals(1) diff(numarrivals)+1]; +numarrivals(numarrivals<=1)=0; +% if numarrivals(1)==1 +% numarrivals(1)=0; +% end + +% Now loop over numarrivals and create events +fprintf('Making events') +eventnum = 0; +for c=1:numel(numarrivals) + if numarrivals(c) + fprintf('.') + eventnum = eventnum + 1; +% firstArrivalTime(eventnum) = min(arrtimes(associated_indices{c})); +% lastArrivalTime(eventnum) = max(arrtimes(associated_indices{c})); +% arrivalobj2{eventnum} = arrivalobj.subset(associated_indices{c}); + firstArrivalTime(eventnum) = arrtimes(c); + lastArrivalTime(eventnum) = arrtimes(c + numarrivals(c) - 1); + + try + arrivalobj2{eventnum} = arrivalobj.subset([c : c + numarrivals(c) - 1]); + catch + numarrivals(c) + c+numarrivals(c)-1 + numel(numarrivals) + rethrow(); end +% figure +% plot(arrivalobj2{eventnum}.time,1,'*');datetick('x') end end -catalogobj = Catalog([infrasoundEvent.FirstArrivalTime], [], [], [], [], {}, {}, 'ontime', [infrasoundEvent.FirstArrivalTime], 'offtime', [infrasoundEvent.LastArrivalTime]); +% % Now find max number of arrivals +% m = max(numarrivals); +% if m<2 +% return % no associated events +% end +% +% % Loop from m down to 2 (2 means time window contained the arrival time we +% % will looking at + 1 other) +% event_found = zeros(numel(arrtimes),1); +% for na = m:-1:2 +% indices = find(numarrivals==na); % so for example find all arrival times that have 5 arrivals in the time window +% event_found(indices) = true; % flag an event at this index +% for this_index = indices +% numarrivals(associated_indices{this_index}) = 0; % for all arrivals associated to the new event, set the number of associated arrivals for each of those to 0. this will prevent tyhe situation where the same time window is flagged multiple times +% end +% numarrivals +% end +% event_found + +% % Now loop over event_found and create events +% eventnum = 0; +% for c=1:numel(event_found) +% if event_found(c) +% eventnum = eventnum + 1; +% firstArrivalTime(eventnum) = min(arrtimes(associated_indices{c})); +% lastArrivalTime(eventnum) = max(arrtimes(associated_indices{c})); +% arrivalobj2{eventnum} = arrivalobj.subset(associated_indices{c}); +% end +% end +fprintf('\nCreating Catalog\n') +catalogobj = Catalog(firstArrivalTime, [], [], [], [], {}, {}, 'ontime', firstArrivalTime, 'offtime', lastArrivalTime); +catalogobj.arrivals = arrivalobj2; + +% function result = alreadyHaveArrivalFromThisChannel(ctaglist, thisctag) +% result = sum(cellfun(@(s) ~isempty(strfind(thisctag, s)), ctaglist)); \ No newline at end of file diff --git a/core/@Arrival/setminmax.m b/core/@Arrival/setminmax.m new file mode 100644 index 0000000..c58ead6 --- /dev/null +++ b/core/@Arrival/setminmax.m @@ -0,0 +1,113 @@ +function arrivalobj = setminmax(arrivalobj, w, maxTimeDiff, pretrig, posttrig) +% for each arrival, find the minimum and maximum value that lie within +% the window from arrivaltime-pretrig:arrivaltime+pretrig are in within maxTimeDiff seconds of each other + +if ~exist('pretrig', 'var') + pretrig = Inf; +end +if ~exist('posttrig', 'var') + posttrig = Inf; +end + +disp('Computing waveform metrics for arrivals') +SECONDS_PER_DAY = 86400; +maxTime = -1; +minTime = -1; +maxAmp = -1; +minAmp = -1; +p2p = -1; +stdev = -1; +energy = -1; +amp = -ones(size(arrivalobj.amp)); + +for arrivalnum=1:numel(arrivalobj.amp) + fprintf('.'); + thisA = arrivalobj.subset(arrivalnum); + thisW = detrend(fillgaps(w(arrivalnum),'interp')); % make sure there is no trend or offset + wstart = get(thisW,'start'); % waveform start time + wend = get(thisW,'end'); % waveform end time + wstd = std(thisW); % waveform standard deviation - for noise estimation + + % GET THE DATA + y = get(thisW,'data'); + + % COMPUTING AMPLITUDE METRICS + + % Define time window + time_to_begin_at = max([wstart thisA.time - pretrig/SECONDS_PER_DAY]); + time_to_end_at = min([wend thisA.time + posttrig/SECONDS_PER_DAY]); + fs = get(thisW,'freq'); + numSamples = length(y); + seconds_begin_offset = (time_to_begin_at - wstart) * SECONDS_PER_DAY; + seconds_end_offset = (time_to_end_at - wstart) * SECONDS_PER_DAY; + sample_to_begin_at = max( [round( seconds_begin_offset * fs) 1]); + sample_to_end_at = min( [round( seconds_end_offset * fs) numSamples]); + + % Loop over subwindows + % find p2p amplitude in each, compare to highest p2p found so far + subWindowSize = round(fs * maxTimeDiff); + maxA = 0; + for startSamp = sample_to_begin_at:1:sample_to_end_at - subWindowSize + samples = startSamp:startSamp + subWindowSize-1; + [maxy, maxindex] = nanmax(y(samples)); + [miny, minindex] = nanmin(y(samples)); + if (maxy-miny) > maxA % found the biggest peak-to-peak so far, update + maxSecs = ((maxindex+samples(1)-1)/fs); + minSecs = ((minindex+samples(1)-1)/fs); + maxA = maxy-miny; + + % save max and min amplitudes and corresponding times + maxTime = wstart + maxSecs/SECONDS_PER_DAY; + minTime = wstart + minSecs/SECONDS_PER_DAY; + maxAmp = maxy; + minAmp = miny; + p2p = maxy - miny; + amp(arrivalnum) = nanmax(abs([maxy miny])); + end + + end + + % COMPUTE METRICS OF THE WHOLE WAVEFORM + stdev = wstd; % stdev of whole trace - noise level estimate + energy = sum(y(sample_to_begin_at:sample_to_end_at).^2)/fs; + + % ADD ALL METRICS TO THE WAVEFORM OBJECT + thisW = addfield(thisW, 'maxTimeDiff', maxTimeDiff); + thisW = addfield(thisW, 'timeDiff', (maxTime - minTime) * 86400); + thisW = addfield(thisW, 'minTime', minTime); + thisW = addfield(thisW, 'maxTime', maxTime); + thisW = addfield(thisW, 'minAmp', minAmp); + thisW = addfield(thisW, 'maxAmp', maxAmp); + thisW = addfield(thisW, 'p2p', p2p); + thisW = addfield(thisW, 'stdev', stdev); + thisW = addfield(thisW, 'energy', energy); + w(arrivalnum) = thisW; + + + if amp(arrivalnum)==0 + % plot waveform for arrival + fh=plot_panels(thisW, false, thisA); + ah=get(fh,'Children'); + set(fh, 'Position', [0 0 1600 1000]); + hold on + plot(maxSecs, misc_fields.maxAmp(arrivalnum), 'g*'); + plot(minSecs, misc_fields.minAmp(arrivalnum), 'r*'); + % plot(ah,[pos.Start/fs pos.End/fs], [0 0], 'b-'); + % plot(ah,[neg.Start/fs neg.End/fs], [0 0], 'k-'); + teststr = sprintf('maxTime = %s, minTime = %s, timeDiff = %.3f s\namp = %.2e, maxAmp = %.2e, minAmp = %.2e\n rms = %.2e, energy = %.2e', ... + datestr(maxTime,'HH:MM:SS.FFF'), ... + datestr(minTime,'HH:MM:SS.FFF'), ... + 86400*(maxTime-minTime), ... + amp, ... + maxAmp, ... + minAmp, ... + stdev, ... + energy); + text(0.1, 0.1, teststr, 'units', 'normalized') + dummy=input('Any key to continue'); + close + end +end +fprintf('\n(Complete)\n'); +arrivalobj.amp = amp; + diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m index 4f98e1e..c19242e 100644 --- a/core/@Catalog/Catalog.m +++ b/core/@Catalog/Catalog.m @@ -199,152 +199,32 @@ end % Prototypes - summary(obj) - disp(catalogObject) + bvalue(catalogObject, mcType) + catalogObject = addwaveforms(catalogObject, varargin); catalogObject = combine(catalogObject1, catalogObject2) - webmap(catalogObject) + catalogObject2 = subset(catalogObject, indices) + catalogObjects=subclassify(catalogObject, subclasses) + disp(catalogObject) + eev(obj, eventnum) + erobj=eventrate(catalogObject, varargin) + hist(catalogObject) + list_waveform_metrics(catalogObject); plot(catalogObject, varargin) plot3(catalogObject, varargin) plot_time(catalogObject) - hist(catalogObject) - bvalue(catalogObject, mcType) - catalogObjects=subclassify(catalogObject, subclasses) - erobj=eventrate(catalogObject, varargin) + plot_waveform_metrics(catalogObject); plotprmm(catalogObject) - eev(obj, eventnum) - write(catalogObject, outformat, outpath, schema) - catalogObject2 = subset(catalogObject, indices) - catalogObject = addwaveforms(catalogObject, varargin); + summary(catalogObject) + webmap(catalogObject) + write(catalogObject, outformat, outpath, schema) end %% --------------------------------------------------- methods (Access=protected, Hidden=true) - - %% AUTOBINSIZE - function binsize = autobinsize(catalogObject) - %autobinsize Compute the best bin size based on start and end times - binsize = binning.autobinsize(catalogObject.enum - catalogObject.snum); - end -%% --------------------------------------------------- - function region = get_region(catalogObject, nsigma) - % region Compute the region to plot based on spread of lon,lat data - medianlat = nanmedian(catalogObject.lat); - medianlon = nanmedian(catalogObject.lon); - cosine = cos(medianlat); - stdevlat = nanstd(catalogObject.lat); - stdevlon = nanstd(catalogObject.lon); - rangeindeg = max([stdevlat stdevlon*cosine]) * nsigma; - region = [(medianlon - rangeindeg/2) (medianlon + rangeindeg/2) (medianlat - rangeindeg/2) (medianlat + rangeindeg/2)]; - end - -%% --------------------------------------------------- - function symsize = get_symsize(catalogObject) - %get_symsize Get symbol marker size based on magnitude of event - % Compute Marker Size - minsymsize = 3; - maxsymsize = 50; - symsize = (catalogObject.mag + 2) * 10; % -2- -> 1, 1 -> 10, 0 -> 20, 1 -> 30, 2-> 40, 3+ -> 50 etc. - symsize(symsizemaxsymsize)=maxsymsize; - % deal with NULL (NaN) values - symsize(isnan(symsize))=minsymsize; - end -%% --------------------------------------------------- - + region = get_region(catalogObject, nsigma) + symsize = get_symsize(catalogObject) end methods(Static) - function self = retrieve(dataformat, varargin) - %CATALOG.RETRIEVE Read seismic events from common file formats & data sources. - % retrieve can read events from many different earthquake catalog file - % formats (e.g. Seisan, Antelope) and data sources (e.g. IRIS DMC) into a - % GISMO Catalog object. - % - % Usage: - % catalogObject = CATALOG.RETRIEVE(dataformat, 'param1', _value1_, ... - % 'paramN', _valueN_) - % - % dataformat may be: - % - % * 'iris' (for IRIS DMC, using irisFetch.m), - % * 'antelope' (for a CSS3.0 Antelope/Datascope database) - % * 'seisan' (for a Seisan database with a REA/YYYY/MM/ directory structure) - % * 'zmap' (converts a Zmap data strcture to a Catalog object) - % - % The name-value parameter pairs supported are the same as those supported - % by irisFetch.Events(). Currently these are: - % - % startTime - % endTime - % eventId - % fetchLimit - % magnitudeType - % minimumLongitude - % maximumLongitude - % minimumLatitude - % maximumLatitude - % minimumMagnitude - % maximumMagnitude - % minimumDepth - % maximumDepth - % - % And the two convenience parameters: - % - % radialcoordinates = [ centerLatitude, centerLongitude, maximumRadius ] - % - % boxcoordinates = [ minimumLatitude maximumLatitude minimumLongitude maximumLongitude ] - % - % For examples, see Catalog_cookbook. Also available at: - % https://geoscience-community-codes.github.io/GISMO/tutorials/html/Catalog_cookbook.html - % - % - % See also CATALOG, IRISFETCH, CATALOG_COOKBOOK - - % Author: Glenn Thompson (glennthompson1971@gmail.com) - - %% To do: - % Implement name-value parameter pairs for all methods - % Test the Antelope method still works after factoring out db_load_origins - % Test the Seisan method more - % Add in support for 'get_arrivals' - - debug.printfunctionstack('>') - - switch lower(dataformat) - case 'iris' - if exist('irisFetch.m','file') - ev = irisFetch.Events(varargin{:}); - self = Catalog.read_catalog.iris(ev); - else - warning('Cannot find irisFetch.m') - end - case {'css3.0','antelope', 'datascope'} - if admin.antelope_exists() - self = Catalog.read_catalog.antelope(varargin{:}); - else - warning('Sorry, cannot read event Catalog from Antelope database as Antelope toolbox for MATLAB not found') - self = Catalog(); - end - case 'seisan' - self = Catalog.read_catalog.seisan(varargin{:}); - case 'aef' - self = Catalog.read_catalog.aef(varargin{:}); - case 'sru' - self = Catalog.read_catalog.sru(varargin{:}); - case 'vdap' - self = Catalog.read_catalog.vdap(varargin{:}); - case 'zmap' - self = Catalog.read_catalog.zmap(varargin{:}); - otherwise - self = NaN; - fprintf('format %s unknown\n\n',data_source); - end - if isempty(self) - self=Catalog(); - end - - debug.printfunctionstack('<') - end - - cookbook() + self = retrieve(dataformat, varargin) end end diff --git a/core/@Catalog/addwaveforms.m b/core/@Catalog/addwaveforms.m index 34e1180..45f611f 100644 --- a/core/@Catalog/addwaveforms.m +++ b/core/@Catalog/addwaveforms.m @@ -10,13 +10,14 @@ % datasource, ChannelTag.array. Each event is defined by its ontime and % offtime, which are recorded in cobj. % - + disp('Adding waveforms for each event in Catalog') w_events = {}; switch nargin case 2 if isa(varargin{1},'waveform') w_temp = extract(varargin{1}, 'time', cobj.ontime, cobj.offtime); for count = 1:length(cobj.ontime) + fprintf('.'); w_events{count} = w_temp(:,count); end @@ -24,6 +25,7 @@ case 5 if isa(varargin{1},'datasource') for count = 1:length(cobj.ontime) + fprintf('.'); w_events{count} = waveform(varargin{1}, varargin{2}, cobj.ontime(count)-varargin{3}/86400, cobj.offtime(count)+varargin{4}/86400); end end @@ -31,6 +33,7 @@ nargin end cobj.waveforms = w_events; + fprintf('\n(Complete)\n'); end \ No newline at end of file diff --git a/core/@Catalog/cookbook.m b/core/@Catalog/cookbook.m index eed7389..d664414 100644 --- a/core/@Catalog/cookbook.m +++ b/core/@Catalog/cookbook.m @@ -12,26 +12,22 @@ % % In this example we will use retrieve to retrieve all events at IRIS DMC % with a magnitude of at least 8.0 from year 2000 to 2014 (inclusive): - greatquakes = Catalog.retrieve('iris', 'minimumMagnitude', 8.0, ... 'starttime', '2000-01-01', 'endtime', '2015-01-01') %% % To access any particular property we can use dot notation, as if the % object were a structure, e.g.: - greatquakes.mag %% % greatquakes is a Catalog object, an instance of the Catalog class. To see % a list of functions ("methods" in object-oriented speak) we can apply to % a Catalog object, use the methods command: - methods(greatquakes) %% % Save this dataset so you can use it again later: - save('great_earthquakes.mat', 'greatquakes') %% @@ -46,7 +42,6 @@ %% % We will limit our search to 1 day before and after the earthquake: - mainshocktime = datenum('2011/03/11 05:46:24'); tohoku_events = Catalog.retrieve('iris', ... 'radialcoordinates', [38.297 142.372 km2deg(200)], ... @@ -55,15 +50,12 @@ %% % This returns 1136 earthquakes. Let's get a summary: - tohoku_events.summary() %% % Save this dataset so you can use it again later: - save('tohoku_events.mat', 'tohoku_events') - %% Readings events from an Antelope database % To load event data from an Antelope/Datascope CSS3.0 database you will % need to have Antelope () installed, @@ -97,14 +89,13 @@ %% % Both catalog segments are included in the "demo" directory. % We will now load the official AVO catalog into an Events object: -dbpath = Catalog.demo.demodb('avo'); +dbpath = fullfile(TESTDATA, 'css3.0', 'avodb200903') avocatalog = Catalog.retrieve('antelope', 'dbpath', dbpath); %% % This should load 1441 events. What if we only want events within 20km of % Redoubt volcano? There are two ways to do this. The first is the use the % radialcoordinates parameter: - redoubtLon = -152.7431; redoubtLat = 60.4853; maxR = km2deg(20.0); @@ -116,7 +107,6 @@ % using a dbeval subset expression, and the command above does this % internally. You can also specify a subset expression directly. The % following example is completely equivalent to that above: - expr = sprintf('distance(lat, lon, %f, %f) < %f',redoubtLat, redoubtLon,maxR) redoubt_events = Catalog.retrieve('antelope', 'dbpath', dbpath, ... 'subset_expression', expr) @@ -143,16 +133,15 @@ % This example will load Sfiles from 4 hours on 1st Nov, 1996. This is a slow % function to run as MATLAB is slow at parsing text files, and there are % many events per day in this particular database. -demodir = Catalog.demo.demo_path(); -dbpath = fullfile(demodir,'seisan'); +%demodir = Catalog.demo.demo_path(); +demodir = fullfile(TESTDATA, 'seisan', 'REA', 'MVOE_'); montserrat_events = Catalog.retrieve('seisan', ... - 'dbpath', dbpath, ... + 'dbpath', demodir, ... 'startTime', '1996/11/01 11:00:00', .... 'endTime', '1996/11/01 15:00:00') %% % Save this dataset so you can use it again later: - save('montserrat_events.mat', 'montserrat_events') %% @@ -305,12 +294,10 @@ %% % This database can be reloaded with: - greatquakes2 = Catalog.retrieve('antelope', 'dbpath', 'greatquakes_db') %% % Compare: - greatquakes %% diff --git a/core/@Catalog/eventrate.m b/core/@Catalog/eventrate.m index fcc1476..e6dba67 100644 --- a/core/@Catalog/eventrate.m +++ b/core/@Catalog/eventrate.m @@ -58,4 +58,10 @@ snum, enum, etypes, binsize, stepsize, numbins); end end +end + +%% AUTOBINSIZE +function binsize = autobinsize(catalogObject) +%autobinsize Compute the best bin size based on start and end times + binsize = binning.autobinsize(catalogObject.enum - catalogObject.snum); end \ No newline at end of file diff --git a/core/@Catalog/get_region.m b/core/@Catalog/get_region.m new file mode 100644 index 0000000..626310f --- /dev/null +++ b/core/@Catalog/get_region.m @@ -0,0 +1,10 @@ +function region = get_region(catalogObject, nsigma) +% region Compute the region to plot based on spread of lon,lat data + medianlat = nanmedian(catalogObject.lat); + medianlon = nanmedian(catalogObject.lon); + cosine = cos(medianlat); + stdevlat = nanstd(catalogObject.lat); + stdevlon = nanstd(catalogObject.lon); + rangeindeg = max([stdevlat stdevlon*cosine]) * nsigma; + region = [(medianlon - rangeindeg/2) (medianlon + rangeindeg/2) (medianlat - rangeindeg/2) (medianlat + rangeindeg/2)]; +end \ No newline at end of file diff --git a/core/@Catalog/get_symsize.m b/core/@Catalog/get_symsize.m new file mode 100644 index 0000000..e87bf3c --- /dev/null +++ b/core/@Catalog/get_symsize.m @@ -0,0 +1,11 @@ +function symsize = get_symsize(catalogObject) + %get_symsize Get symbol marker size based on magnitude of event + % Compute Marker Size + minsymsize = 3; + maxsymsize = 50; + symsize = (catalogObject.mag + 2) * 10; % -2- -> 1, 1 -> 10, 0 -> 20, 1 -> 30, 2-> 40, 3+ -> 50 etc. + symsize(symsizemaxsymsize)=maxsymsize; + % deal with NULL (NaN) values + symsize(isnan(symsize))=minsymsize; +end \ No newline at end of file diff --git a/core/@Catalog/html/cookbook.html b/core/@Catalog/html/cookbook.html deleted file mode 100644 index 48435d5..0000000 --- a/core/@Catalog/html/cookbook.html +++ /dev/null @@ -1,950 +0,0 @@ - - - - - Catalog Cookbook

Catalog Cookbook

GISMO can read events from many different earthquake catalog file formats (e.g. Seisan, Antelope) and data sources (e.g. IRIS DMC) using the Catalog.retrieve() method.

Contents

Reading events from IRIS DMC

To load events into a Catalog object we use the Catalog.retrieve method. The first argument is the data source/format - when this is given as 'iris', retrieve uses the irisFetch.m program to retrieve event data via the IRIS webservices. To narrow down our data search we can give retrieve any name-value parameter pairs supported by irisFetch.

In this example we will use retrieve to retrieve all events at IRIS DMC with a magnitude of at least 8.0 from year 2000 to 2014 (inclusive):

greatquakes = Catalog.retrieve('iris', 'minimumMagnitude', 8.0, ...
-    'starttime', '2000-01-01', 'endtime', '2015-01-01')
-
fetching...
-
-
-20 events found *************
-
-parsing into MATLAB structures
-Got 20 events
-
-greatquakes = 
-
-
-ans =
-
-Catalog
-
-Number of events: 20
-Biggest event: 9.100000 at 11-Mar-2011 05:46:23
-      otime       yyyy_mm_dd     hh_mm_ss       lon        lat      depth    mag    magtype       etype        ontime    offtime
-    __________    __________    __________    _______    _______    _____    ___    _______    ____________    ______    _______
-
-    7.3103e+05    2001_06_23    20:33:09.3    -73.561    -16.303      2.2    8.3    'MW'       'earthquake'    NaN       NaN    
-    7.3185e+05    2003_09_25    19:50:07.2     143.87     41.749       33    8.1    'MW'       'earthquake'    NaN       NaN    
-     7.323e+05    2004_12_23    14:59:00.6     161.58     -49.71       10      8    'MW'       'earthquake'    NaN       NaN    
-    7.3231e+05    2004_12_26    00:58:52.0     95.901     3.4125     26.1    8.2    'MW'       'earthquake'    NaN       NaN    
-     7.324e+05    2005_03_28    16:09:35.2     97.113     2.0964       30    8.1    'MW'       'earthquake'    NaN       NaN    
-    7.3283e+05    2006_06_01    18:57:02.9     120.88     19.054       13    8.4    'MS'       'earthquake'    NaN       NaN    
-    7.3283e+05    2006_06_05    00:50:31.5     119.08     17.992      124      8    'MS'       'earthquake'    NaN       NaN    
-      7.33e+05    2006_11_15    11:14:14.5     153.21     46.681     12.2    8.3    'MW'       'earthquake'    NaN       NaN    
-    7.3306e+05    2007_01_13    04:23:23.2      154.5     46.231     22.5    8.1    'MW'       'earthquake'    NaN       NaN    
-    7.3313e+05    2007_04_01    20:39:56.5     157.03    -8.4468      9.5    8.1    'MW'       'earthquake'    NaN       NaN    
-    7.3327e+05    2007_08_15    23:40:58.4    -76.555    -13.384     41.2      8    'MW'       'earthquake'    NaN       NaN    
-     7.333e+05    2007_09_12    11:10:26.8      101.4    -4.4637     35.5    8.5    'MW'       'earthquake'    NaN       NaN    
-    7.3405e+05    2009_09_29    17:48:11.5    -171.94    -15.512     18.5    8.1    'MW'       'earthquake'    NaN       NaN    
-     7.342e+05    2010_02_27    06:34:13.3    -72.933    -36.148     28.1    8.8    'MW'       'earthquake'    NaN       NaN    
-    7.3457e+05    2011_03_11    05:46:23.2      142.5     38.296     19.7    9.1    'MW'       'earthquake'    NaN       NaN    
-    7.3497e+05    2012_04_11    08:38:37.8     93.014     2.2376     26.3    8.6    'MW'       'earthquake'    NaN       NaN    
-    7.3497e+05    2012_04_11    10:43:10.5     92.428     0.7675     21.6    8.2    'MW'       'earthquake'    NaN       NaN    
-    7.3527e+05    2013_02_06    01:12:27.0     165.14    -10.738     28.7      8    'MW'       'earthquake'    NaN       NaN    
-    7.3538e+05    2013_05_24    05:44:49.6     153.28     54.874    608.9    8.3    'MW'       'earthquake'    NaN       NaN    
-    7.3569e+05    2014_04_01    23:46:47.2    -70.769     -19.61       25    8.2    'MWW'      'earthquake'    NaN       NaN    
-
-

To access any particular property we can use dot notation, as if the object were a structure, e.g.:

greatquakes.mag
-
-ans =
-
-    8.3000
-    8.1000
-    8.0000
-    8.2000
-    8.1000
-    8.4000
-    8.0000
-    8.3000
-    8.1000
-    8.1000
-    8.0000
-    8.5000
-    8.1000
-    8.8000
-    9.1000
-    8.6000
-    8.2000
-    8.0000
-    8.3000
-    8.2000
-
-

greatquakes is a Catalog object, an instance of the Catalog class. To see a list of functions ("methods" in object-oriented speak) we can apply to a Catalog object, use the methods command:

methods(greatquakes)
-
-Methods for class Catalog:
-
-Catalog       disp          hist          plot_time     summary       
-addwaveforms  eev           plot          plotprmm      webmap        
-bvalue        eventrate     plot3         subclassify   write         
-combine       gettimerange  plot_counts   subset        
-
-Static methods:
-
-cookbook      retrieve      
-
-

Save this dataset so you can use it again later:

save('great_earthquakes.mat', 'greatquakes')
-

Now we'll do another example - we will get events within 200 km of the great M9.0 Tohoku earthquake that occurred on 2011/03/11. The mainshock parameters are:

   Date/Time:  "2011/03/11 05:46:24"
-   Longitude:  142.372
-   Latitude:   38.297
-   Depth:      30 km

We will limit our search to 1 day before and after the earthquake:

mainshocktime = datenum('2011/03/11 05:46:24');
-tohoku_events = Catalog.retrieve('iris', ...
-            'radialcoordinates', [38.297 142.372 km2deg(200)], ...
-            'starttime', mainshocktime - 1, ...
-            'endtime', mainshocktime + 1);
-
fetching...
-
-
-1136 events found *************
-
-parsing into MATLAB structures
-Got 1136 events
-

This returns 1136 earthquakes. Let's get a summary:

tohoku_events.summary()
-
-Variables:
-
-    otime: 1136x1 double
-        Values:
-
-            min       7.3457e+05
-            median    7.3457e+05
-            max       7.3457e+05
-
-    yyyy_mm_dd: 1136x10 char
-
-    hh_mm_ss: 1136x10 char
-
-    lon: 1136x1 double
-        Values:
-
-            min       140.31
-            median    142.59
-            max       144.63
-
-    lat: 1136x1 double
-        Values:
-
-            min       36.517
-            median     37.88
-            max       40.044
-
-    depth: 1136x1 double
-        Values:
-
-            min           0  
-            median       25  
-            max       149.7  
-
-    mag: 1136x1 double
-        Values:
-
-            min       0.1  
-            median    4.3  
-            max       9.1  
-            NaNs        4  
-
-    magtype: 1136x1 cell string
-
-    etype: 1136x1 cell string
-
-    ontime: 1136x1 double
-        Values:
-
-            min        NaN    
-            median     NaN    
-            max        NaN    
-            NaNs      1136    
-
-    offtime: 1136x1 double
-        Values:
-
-            min        NaN     
-            median     NaN     
-            max        NaN     
-            NaNs      1136     
-
-

Save this dataset so you can use it again later:

save('tohoku_events.mat', 'tohoku_events')
-

Readings events from an Antelope database

To load event data from an Antelope/Datascope CSS3.0 database you will need to have Antelope (http://www.brtt.com/software.html) installed, including the Antelope toolbox for MATLAB (ATM). To see if ATM is installed, use the admin.antelope_exists() command, e.g.

if admin.antelope_exists()
-    disp('Antelope Toolbox for MATLAB found')
-else
-    disp('Sorry, Antelope not found')
-end
-
Antelope Toolbox for MATLAB found
-

If you do not have ATM installed, any attempt to read from an Antelope database will result in a warning like:

     Warning: Sorry, cannot read event Catalog from Antelope database as Antelope toolbox for MATLAB not found

and an empty Catalog object will be returned.

%
-

For the purpose of this exercise we will be using data from Redoubt volcano from 2009/03/20 to 2009/03/23. We will use snippets from two catalogs that are provided with GISMO in Antelope format:

  • The real-time catalog (rtdb200903).
  • The analyst-reviewed offical AVO catalog (avodb200903).

Both catalog segments are included in the "demo" directory. We will now load the official AVO catalog into an Events object:

dbpath = Catalog.demo.demodb('avo');
-avocatalog = Catalog.retrieve('antelope', 'dbpath', dbpath);
-
Loading data from /Users/glennthompson/src/GISMO/core/+Catalog/+demo/css3.0/avodb200903
-Got 1441 events
-

This should load 1441 events. What if we only want events within 20km of Redoubt volcano? There are two ways to do this. The first is the use the radialcoordinates parameter:

redoubtLon = -152.7431;
-redoubtLat = 60.4853;
-maxR = km2deg(20.0);
-redoubt_events = Catalog.retrieve('antelope', 'dbpath', dbpath, ...
-    'radialcoordinates', [redoubtLat redoubtLon maxR])
-
Loading data from /Users/glennthompson/src/GISMO/core/+Catalog/+demo/css3.0/avodb200903
-Got 1397 events
-
-redoubt_events = 
-
-
-ans =
-
-Catalog
-
-Number of events: 1397
-Biggest event: 2.000000 at 22-Mar-2009 20:21:20
-      otime       yyyy_mm_dd     hh_mm_ss       lon       lat      depth    mag     magtype    etype    ontime    offtime
-    __________    __________    __________    _______    ______    _____    ____    _______    _____    ______    _______
-
-    7.3385e+05    2009_03_20    00:24:41.6     -152.8    60.481     3.62     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    07:29:44.8    -152.74    60.494       -3    -0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    07:43:40.6    -152.78    60.484       -3     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    07:48:53.5    -152.75    60.455     0.44     0.7    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    11:09:21.9    -152.77    60.497     3.09     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    11:10:43.2    -152.77    60.488     0.69     0.8    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    12:20:02.7    -152.77     60.48    -0.15     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    13:21:06.0    -152.76    60.488    -2.78     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    14:04:39.6    -152.76     60.48     3.72     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    15:25:39.3    -152.76    60.486     -2.9     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    16:51:47.1    -152.78    60.483       -3     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    16:52:08.1    -152.77    60.501     2.12     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:10:26.7    -152.77    60.484     0.61     0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:17:16.1    -152.73    60.495       -3    -0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:46:27.3    -152.78    60.505     2.59    -0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:46:39.2    -152.76    60.489    -2.46     0.8    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:59:41.8    -152.77    60.487    -2.67     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    19:42:17.3    -152.77    60.484     2.28     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    19:44:11.7    -152.76     60.49     0.04     0.7    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    19:46:08.9    -152.77    60.483       -3    -0.2    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:02:49.4    -152.77    60.484     0.12     0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:23:13.9    -152.74    60.489    -1.39     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:27:29.6    -152.77    60.491    -2.55     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:35:09.7    -152.77    60.462     5.19     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:36:50.5    -152.76    60.487    -2.92     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:39:44.5    -152.77    60.485     3.52     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:52:01.3    -152.78    60.474     2.36     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:00:45.1    -152.76    60.484     0.65       1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:11:41.9    -152.77    60.483    -2.48     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:13:05.4    -152.78    60.461      6.4       1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:45:52.3    -152.76    60.482       -3     0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:45:54.8    -152.81    60.482    -2.74     0.8    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:13:19.7    -152.77    60.488    -2.92     0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:20:14.2    -152.77    60.487      2.8     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:32:48.9    -152.77    60.501       -3    -0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:39:30.5    -152.76    60.491        1     0.6    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:42:14.6    -152.77     60.49     3.57     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:59:34.3    -152.78    60.478       -3     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    23:20:30.0    -152.77    60.491     0.59     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    23:43:54.8    -152.76    60.489     0.48     0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    23:52:53.7    -152.77     60.49     1.14     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:09:20.6    -152.72    60.487       -3    -0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:09:34.6    -152.77    60.491     3.04     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:19:32.5    -152.77    60.489    -2.83       0    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:24:39.7    -152.77    60.487     0.66     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:42:16.9    -152.77    60.497     2.73     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:44:30.9    -152.77    60.487    -2.06     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:47:06.5    -152.77    60.492    -0.14    -0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:47:12.3    -152.77    60.493    -0.49     0.6    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    01:16:51.1    -152.77    60.483     -0.4     0.6    'ml'       'a'      NaN       NaN    
-
-* Only showing first 50 rows/events - to see all rows/events use:
-*      catalogObject.disp(true)
-

Anyone familiar with Antelope will know that it subsets databases by using a dbeval subset expression, and the command above does this internally. You can also specify a subset expression directly. The following example is completely equivalent to that above:

expr = sprintf('distance(lat, lon, %f, %f) < %f',redoubtLat, redoubtLon,maxR)
-redoubt_events = Catalog.retrieve('antelope', 'dbpath', dbpath, ...
-    'subset_expression', expr)
-
-expr =
-
-distance(lat, lon, 60.485300, -152.743100) < 0.179864
-
-Loading data from /Users/glennthompson/src/GISMO/core/+Catalog/+demo/css3.0/avodb200903
-Got 1397 events
-
-redoubt_events = 
-
-
-ans =
-
-Catalog
-
-Number of events: 1397
-Biggest event: 2.000000 at 22-Mar-2009 20:21:20
-      otime       yyyy_mm_dd     hh_mm_ss       lon       lat      depth    mag     magtype    etype    ontime    offtime
-    __________    __________    __________    _______    ______    _____    ____    _______    _____    ______    _______
-
-    7.3385e+05    2009_03_20    00:24:41.6     -152.8    60.481     3.62     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    07:29:44.8    -152.74    60.494       -3    -0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    07:43:40.6    -152.78    60.484       -3     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    07:48:53.5    -152.75    60.455     0.44     0.7    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    11:09:21.9    -152.77    60.497     3.09     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    11:10:43.2    -152.77    60.488     0.69     0.8    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    12:20:02.7    -152.77     60.48    -0.15     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    13:21:06.0    -152.76    60.488    -2.78     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    14:04:39.6    -152.76     60.48     3.72     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    15:25:39.3    -152.76    60.486     -2.9     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    16:51:47.1    -152.78    60.483       -3     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    16:52:08.1    -152.77    60.501     2.12     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:10:26.7    -152.77    60.484     0.61     0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:17:16.1    -152.73    60.495       -3    -0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:46:27.3    -152.78    60.505     2.59    -0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:46:39.2    -152.76    60.489    -2.46     0.8    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    17:59:41.8    -152.77    60.487    -2.67     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    19:42:17.3    -152.77    60.484     2.28     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    19:44:11.7    -152.76     60.49     0.04     0.7    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    19:46:08.9    -152.77    60.483       -3    -0.2    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:02:49.4    -152.77    60.484     0.12     0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:23:13.9    -152.74    60.489    -1.39     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:27:29.6    -152.77    60.491    -2.55     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:35:09.7    -152.77    60.462     5.19     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:36:50.5    -152.76    60.487    -2.92     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:39:44.5    -152.77    60.485     3.52     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    20:52:01.3    -152.78    60.474     2.36     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:00:45.1    -152.76    60.484     0.65       1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:11:41.9    -152.77    60.483    -2.48     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:13:05.4    -152.78    60.461      6.4       1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:45:52.3    -152.76    60.482       -3     0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    21:45:54.8    -152.81    60.482    -2.74     0.8    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:13:19.7    -152.77    60.488    -2.92     0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:20:14.2    -152.77    60.487      2.8     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:32:48.9    -152.77    60.501       -3    -0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:39:30.5    -152.76    60.491        1     0.6    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:42:14.6    -152.77     60.49     3.57     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    22:59:34.3    -152.78    60.478       -3     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    23:20:30.0    -152.77    60.491     0.59     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    23:43:54.8    -152.76    60.489     0.48     0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_20    23:52:53.7    -152.77     60.49     1.14     0.3    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:09:20.6    -152.72    60.487       -3    -0.9    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:09:34.6    -152.77    60.491     3.04     0.5    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:19:32.5    -152.77    60.489    -2.83       0    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:24:39.7    -152.77    60.487     0.66     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:42:16.9    -152.77    60.497     2.73     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:44:30.9    -152.77    60.487    -2.06     0.4    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:47:06.5    -152.77    60.492    -0.14    -0.1    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    00:47:12.3    -152.77    60.493    -0.49     0.6    'ml'       'a'      NaN       NaN    
-    7.3385e+05    2009_03_21    01:16:51.1    -152.77    60.483     -0.4     0.6    'ml'       'a'      NaN       NaN    
-
-* Only showing first 50 rows/events - to see all rows/events use:
-*      catalogObject.disp(true)
-

Save this dataset so you can use it again later:

save('redoubt_events.mat', 'redoubt_events')
-

Reading events from a Seisan database

Here we load events from a Seisan catalog. A Seisan "Sfile" contains all the metadata for 1 event. These Sfiles are stored in a flat-file database structure the path to which is: $SEISAN_TOP/REA/databaseName. Sfiles are organized in year/month subdirectories under this path.

SCAFFOLD: INCLUDE DEMO DATASET FROM MVOE

The following will navigate this where in this case $SEISAN_TOP = '/raid/data/seisan' and the databaseName is MVOE_ which stands for the Montserrat Volcano Observatory Event database. (In Seisan, databaseName is limited to exactly 5 characters).

This example will load Sfiles from 4 hours on 1st Nov, 1996. This is a slow function to run as MATLAB is slow at parsing text files, and there are many events per day in this particular database.

demodir = Catalog.demo.demo_path();
-dbpath = fullfile(demodir,'seisan');
-montserrat_events = Catalog.retrieve('seisan', ...
-    'dbpath', dbpath, ...
-	'startTime', '1996/11/01 11:00:00', ....
-	'endTime', '1996/11/01 15:00:00')
-
There are 29 sfiles matching your request in /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1108-25L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1115-03L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1131-08L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1135-09L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1141-34L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1146-34L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1154-07L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1214-17L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1232-42L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1239-55L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1246-24L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1301-08L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1306-18L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1314-39L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1320-33L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1326-24L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1329-18L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1334-58L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1336-31L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1353-50L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1408-52L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1412-15L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1417-35L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1424-29L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1432-44L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1433-40L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1443-02L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1450-08L.S199611
-Processing /Users/glennthompson/src/GISMO/core/+Catalog/+demo/seisan/1996/11/01-1459-30L.S199611
-Got 29 events
-
-montserrat_events = 
-
-
-ans =
-
-Catalog
-
-Number of events: 29
-Biggest event: NaN at 01-Nov-1996 11:08:25
-      otime       yyyy_mm_dd     hh_mm_ss       lon       lat      depth    mag    magtype    etype    ontime    offtime
-    __________    __________    __________    _______    ______    _____    ___    _______    _____    ______    _______
-
-    7.2933e+05    1996_11_01    11:08:25.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    11:15:03.0        NaN       NaN    NaN      NaN    'u'        't'      NaN       NaN    
-    7.2933e+05    1996_11_01    11:31:08.0        NaN       NaN    NaN      NaN    'u'        't'      NaN       NaN    
-    7.2933e+05    1996_11_01    11:35:20.0    -62.177    16.713    1.7      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    11:41:34.0        NaN       NaN    NaN      NaN    'u'        't'      NaN       NaN    
-    7.2933e+05    1996_11_01    11:46:42.9    -62.156     16.63    3.1      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    11:54:07.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    12:14:17.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    12:32:42.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    12:39:55.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    12:46:24.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:01:08.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:06:18.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:14:39.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:20:43.0    -62.176    16.713      0      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:26:24.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:29:18.0        NaN       NaN    NaN      NaN    'u'        'e'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:34:58.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:36:42.0    -62.177    16.715      0      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    13:53:50.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:08:52.0        NaN       NaN    NaN      NaN    'u'        't'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:12:15.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:17:35.0        NaN       NaN    NaN      NaN    'u'        'u'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:24:40.0    -62.176    16.714    1.3      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:32:44.0        NaN       NaN    NaN      NaN    'u'        'r'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:33:40.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:43:13.0    -62.177    16.711    1.8      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:50:08.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-    7.2933e+05    1996_11_01    14:59:30.0        NaN       NaN    NaN      NaN    'u'        'h'      NaN       NaN    
-
-

Save this dataset so you can use it again later:

save('montserrat_events.mat', 'montserrat_events')
-

Only a few of these earthquakes have been located and even fewer have magnitudes. This is common for volcanic earthquakes. Most of these are of type 'h' - a hybrid earthquake.

Converting a Zmap data structure to a Catalog object

ZMap is a graphical application written by Max Wyss & Stefan Wiemer for statistical analysis of catalogs. GISMO can convert a ZMap data structure into a Catalog object with:

  catalogObject = Catalog.retrieve('zmap', zmapdata)

Plotting hypocenter maps

Catalog objects have three builtin ways for plotting hypocenters

Reload the Tohoku dataset

load tohoku_events.mat
-

Map view & cross-sections

tohoku_events.plot()
-

3D-Hypocenters

tohoku_events.plot3()
-

web map

tohoku_events.webmap()
-
tohoku_events.webmap()
-wmzoom(7)
-

Plotting time series of events

Magnitude-time plot

tohoku_events.plot_time()
-

Earthquake event counts (number of events per unit time) A plot of seismic catalog per day is often called an "event counts" plot. In GISMO, we call this an "event rate plot" and the first step is to generate an EventRate object. Here our binsize is 1/24 days, i.e. 1 hour.

eventrateObject = tohoku_events.eventrate('binsize', 1/24)
-
-eventrateObject = 
-
-  EventRate with properties:
-
-            time: [1x47 double]
-          counts: [1x47 double]
-       mean_rate: [1x47 double]
-     median_rate: [1x47 double]
-         cum_mag: [1x47 double]
-        mean_mag: [1x47 double]
-      median_mag: [1x47 double]
-          energy: [1x47 double]
-    total_counts: 1136
-       total_mag: 9.1024
-         numbins: 47
-         min_mag: [1x47 double]
-         max_mag: [1x47 double]
-           etype: {'earthquake'}
-            snum: 7.3457e+05
-            enum: 7.3457e+05
-         binsize: 0.0417
-        stepsize: 0.0417
-     misc_fields: {}
-     misc_values: {}
-
-

Now plot the EventRate object:

eventrateObject.plot()
-

We can do the same thing for another dataset, e.g. redoubt_events

redoubt_events.plot_time()
-erobj_red = redoubt_events.eventrate('binsize', 1/24)
-erobj_red.plot()
-
-erobj_red = 
-
-  EventRate with properties:
-
-            time: [1x71 double]
-          counts: [1x71 double]
-       mean_rate: [1x71 double]
-     median_rate: [1x71 double]
-         cum_mag: [1x71 double]
-        mean_mag: [1x71 double]
-      median_mag: [1x71 double]
-          energy: [1x71 double]
-    total_counts: 1397
-       total_mag: 2.6140
-         numbins: 71
-         min_mag: [1x71 double]
-         max_mag: [1x71 double]
-           etype: {2x1 cell}
-            snum: 7.3385e+05
-            enum: 7.3385e+05
-         binsize: 0.0417
-        stepsize: 0.0417
-     misc_fields: {}
-     misc_values: {}
-
-

To see more of the things we can do with EventRate objects see the EventRate cookbook EventRate.html

Analysis

Peak event rate (PR) and maximum magnitude A common type of analysis is to identify the peak rate in an earthquake sequence such as this preshock-mainshock-aftershock sequence or an earthquake swarm. This can be done with:

tohoku_events.plotprmm()
-
MM=9.1 occurs at 50.0% of time series
-PR=32 occurs at 53.5% of time series
-

In the command window this returns: MM=9.1 occurs at 50.0% of time series PR=32 occurs at 53.5% of time series

These are labelled on the plot above with PR and MM.

Now with the Redoubt dataset

redoubt_events.plotprmm()
-
MM=2.0 occurs at 94.9% of time series
-PR=76 occurs at 91.5% of time series
-

b-value and magnitude of completeness Code from "ZMap" (written by Stefan Wiemer and others) has been added to Catalog to compute and plot b-values and the magnitude of completeness.

Definitions:

  • b-value: the slope of a plot of the logarithm of the cumulative number of events against magnitude. A measure of the number of small earthquakes to larger earthquakes.
  • magnitude of completeness (Mc): all events with magnitude>=Mc are in the catalog. Below Mc, not all events are detected, and below the magnitude detection threshold, no events are captured.

Just calling the bvalue method, i.e.

catalogObject.bvalue()
-

displays a menu of techniques available to compute b-value (b) and magnitude of completeness (Mc):

   --------------------------------------------------------
-   Usage is: eventsObject.bvalue(mcType)
-   --------------------------------------------------------
-   mcType can be:
-   1: Maximum curvature
-   2: Fixed Mc = minimum magnitude (Mmin)
-   3: Mc90 (90% probability)
-   4: Mc95 (95% probability)
-   5: Best combination (Mc95 - Mc90 - maximum curvature)

We will use the first menu option:

tohoku_events.bvalue(1)
-

In this particular example, the b-value is 0.6 and the magnitude of completeness is 4.2.

Now for the Redoubt events:

redoubt_events.bvalue(1)
-

Saving Catalog objects to disk

Writing to a MAT file We've already seen how to do this, the general syntax is: save('myfilename.mat', 'myCatalogObject')

This can simply be loaded again with: load('myfilename.mat')

Writing to an Antelope CSS3.0 database This method requires the Antelope toolbox for MATLAB and writes the Catalog as a CSS3.0 flat-file database:

First make sure there is no database with this name already - else we will be appending to it:

delete greatquakes_db*
-

Now write to the database

greatquakes.write('antelope', 'greatquakes_db', 'css3.0')
-

This database can be reloaded with:

greatquakes2 = Catalog.retrieve('antelope', 'dbpath', 'greatquakes_db')
-
Loading data from greatquakes_db
-Got 20 events
-
-greatquakes2 = 
-
-
-ans =
-
-Catalog
-
-Number of events: 20
-Biggest event: 9.100000 at 11-Mar-2011 05:46:23
-      otime       yyyy_mm_dd     hh_mm_ss       lon        lat      depth    mag     magtype      etype    ontime    offtime
-    __________    __________    __________    _______    _______    _____    ___    __________    _____    ______    _______
-
-    7.3103e+05    2001_06_23    20:33:09.3    -73.561    -16.303      2.2    8.3    {1x1 cell}    'eq'     NaN       NaN    
-    7.3185e+05    2003_09_25    19:50:07.2     143.87     41.749       33    8.1    {1x1 cell}    'eq'     NaN       NaN    
-     7.323e+05    2004_12_23    14:59:00.6     161.58     -49.71       10      8    {1x1 cell}    'eq'     NaN       NaN    
-    7.3231e+05    2004_12_26    00:58:52.0     95.901     3.4125     26.1    8.2    {1x1 cell}    'eq'     NaN       NaN    
-     7.324e+05    2005_03_28    16:09:35.2     97.113     2.0964       30    8.1    {1x1 cell}    'eq'     NaN       NaN    
-    7.3283e+05    2006_06_01    18:57:02.9     120.88     19.054       13    8.4    {1x1 cell}    'eq'     NaN       NaN    
-    7.3283e+05    2006_06_05    00:50:31.5     119.08     17.992      124      8    {1x1 cell}    'eq'     NaN       NaN    
-      7.33e+05    2006_11_15    11:14:14.5     153.21     46.681     12.2    8.3    {1x1 cell}    'eq'     NaN       NaN    
-    7.3306e+05    2007_01_13    04:23:23.2      154.5     46.231     22.5    8.1    {1x1 cell}    'eq'     NaN       NaN    
-    7.3313e+05    2007_04_01    20:39:56.5     157.03    -8.4468      9.5    8.1    {1x1 cell}    'eq'     NaN       NaN    
-    7.3327e+05    2007_08_15    23:40:58.4    -76.555    -13.384     41.2      8    {1x1 cell}    'eq'     NaN       NaN    
-     7.333e+05    2007_09_12    11:10:26.8      101.4    -4.4637     35.5    8.5    {1x1 cell}    'eq'     NaN       NaN    
-    7.3405e+05    2009_09_29    17:48:11.5    -171.94    -15.512     18.5    8.1    {1x1 cell}    'eq'     NaN       NaN    
-     7.342e+05    2010_02_27    06:34:13.3    -72.933    -36.148     28.1    8.8    {1x1 cell}    'eq'     NaN       NaN    
-    7.3457e+05    2011_03_11    05:46:23.2      142.5     38.296     19.7    9.1    {1x1 cell}    'eq'     NaN       NaN    
-    7.3497e+05    2012_04_11    08:38:37.8     93.014     2.2376     26.3    8.6    {1x1 cell}    'eq'     NaN       NaN    
-    7.3497e+05    2012_04_11    10:43:10.5     92.428     0.7675     21.6    8.2    {1x1 cell}    'eq'     NaN       NaN    
-    7.3527e+05    2013_02_06    01:12:27.0     165.14    -10.738     28.7      8    {1x1 cell}    'eq'     NaN       NaN    
-    7.3538e+05    2013_05_24    05:44:49.6     153.28     54.874    608.9    8.3    {1x1 cell}    'eq'     NaN       NaN    
-    7.3569e+05    2014_04_01    23:46:47.2    -70.769     -19.61       25    8.2    {1x1 cell}    'eq'     NaN       NaN    
-
-

Compare:

greatquakes
-
-greatquakes = 
-
-
-ans =
-
-Catalog
-
-Number of events: 20
-Biggest event: 9.100000 at 11-Mar-2011 05:46:23
-      otime       yyyy_mm_dd     hh_mm_ss       lon        lat      depth    mag    magtype       etype        ontime    offtime
-    __________    __________    __________    _______    _______    _____    ___    _______    ____________    ______    _______
-
-    7.3103e+05    2001_06_23    20:33:09.3    -73.561    -16.303      2.2    8.3    'MW'       'earthquake'    NaN       NaN    
-    7.3185e+05    2003_09_25    19:50:07.2     143.87     41.749       33    8.1    'MW'       'earthquake'    NaN       NaN    
-     7.323e+05    2004_12_23    14:59:00.6     161.58     -49.71       10      8    'MW'       'earthquake'    NaN       NaN    
-    7.3231e+05    2004_12_26    00:58:52.0     95.901     3.4125     26.1    8.2    'MW'       'earthquake'    NaN       NaN    
-     7.324e+05    2005_03_28    16:09:35.2     97.113     2.0964       30    8.1    'MW'       'earthquake'    NaN       NaN    
-    7.3283e+05    2006_06_01    18:57:02.9     120.88     19.054       13    8.4    'MS'       'earthquake'    NaN       NaN    
-    7.3283e+05    2006_06_05    00:50:31.5     119.08     17.992      124      8    'MS'       'earthquake'    NaN       NaN    
-      7.33e+05    2006_11_15    11:14:14.5     153.21     46.681     12.2    8.3    'MW'       'earthquake'    NaN       NaN    
-    7.3306e+05    2007_01_13    04:23:23.2      154.5     46.231     22.5    8.1    'MW'       'earthquake'    NaN       NaN    
-    7.3313e+05    2007_04_01    20:39:56.5     157.03    -8.4468      9.5    8.1    'MW'       'earthquake'    NaN       NaN    
-    7.3327e+05    2007_08_15    23:40:58.4    -76.555    -13.384     41.2      8    'MW'       'earthquake'    NaN       NaN    
-     7.333e+05    2007_09_12    11:10:26.8      101.4    -4.4637     35.5    8.5    'MW'       'earthquake'    NaN       NaN    
-    7.3405e+05    2009_09_29    17:48:11.5    -171.94    -15.512     18.5    8.1    'MW'       'earthquake'    NaN       NaN    
-     7.342e+05    2010_02_27    06:34:13.3    -72.933    -36.148     28.1    8.8    'MW'       'earthquake'    NaN       NaN    
-    7.3457e+05    2011_03_11    05:46:23.2      142.5     38.296     19.7    9.1    'MW'       'earthquake'    NaN       NaN    
-    7.3497e+05    2012_04_11    08:38:37.8     93.014     2.2376     26.3    8.6    'MW'       'earthquake'    NaN       NaN    
-    7.3497e+05    2012_04_11    10:43:10.5     92.428     0.7675     21.6    8.2    'MW'       'earthquake'    NaN       NaN    
-    7.3527e+05    2013_02_06    01:12:27.0     165.14    -10.738     28.7      8    'MW'       'earthquake'    NaN       NaN    
-    7.3538e+05    2013_05_24    05:44:49.6     153.28     54.874    608.9    8.3    'MW'       'earthquake'    NaN       NaN    
-    7.3569e+05    2014_04_01    23:46:47.2    -70.769     -19.61       25    8.2    'MWW'      'earthquake'    NaN       NaN    
-
-

This concludes the Catalog cookbook/tutorial.

\ No newline at end of file diff --git a/core/@Catalog/html/cookbook.png b/core/@Catalog/html/cookbook.png deleted file mode 100644 index ba73b5e8100574c28469f835d44fbe27a4b43d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2240 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 diff --git a/core/@Catalog/html/cookbook_02.png b/core/@Catalog/html/cookbook_02.png deleted file mode 100644 index c4a089f0d653c54460254da98f622339f47e7694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20564 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

OstcrAvf~u^;PUy4%pP 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 z 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%0Do!2MBdODrd8Zsebic^e(n;>YZ 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

RX%)mbUq*Jt9lYIi;~+s7ZJ{&)0CpTh2*D$u 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/ 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�F>v23k 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

hzj+(gsK4=06CN4T@MCgW=SlAp&^p; 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≈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≧Ob2tJJ}TibN1h6~z(_fnz3r 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 z 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%0AvQVpj_OWLYy-0A)vRUJjKCo#1TV5; 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�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%0D6u!R^?+jNfOA24N>5Tv$-U-6=v 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 m`;b!m^!P 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

    {Kn6~a517DRT)ryjns)s7V4aG-Dh5$ z0$DVUgHZ?&j~k0KIiZe{iYT)6faFz05D77dA;f&kuw51|64{Haa?}m(CL0l;Qs&V$_k4yRG;;8SQ z_056bA3S{Y-~sCLk(|30093_$0n*rY;?WB@5e5>M^&|;qp`I377cZ}1 zl9VfboLJP{7y+aBh0yatV_j>T& z`xpx`kqQt1i^LLAV+x{xy2g%MWo~j9IOjmrDk>2&60uQbwB(i96QJa3)}o>kQS44c zJrf%Or@{)cZNE9O&2ofIz@tfDu6h0I906Mx?z=DlcB>(^*07*naRE7{x00mf77{L^TP=v&w3RqxJ!@vo-1TZzJ zN`N3PiWec8#3TvT%C*GUgaKoi2#5k2^>`47z1JWJg#t(|m7wJMhIh1e_SV`?5M5*t&9W>_6YsrxC1Ps} z%n?mw3P}qBs2~Y}VE{-i8}`om1T9l6RR#h^V-dlcf)73fAyy(r;DjwA6-^=dtWZqX zS!?K!))D{|ibV+lpx)cvJEUVs=kn#nLW!AtJxh&^6okZ_CPiX$nd`0g^ptx`g?6$D zfdLGWK3+kcdhaW0q*|#YNs=Ts1guml?X4qX4geGkQqhna^dd2{;~_{^7mt)!01QY8 zbED|&V{*ZX1m_*GNbo9|b3UqGG5CbNo5RxRxh*Z`4K#XX>2!bdo_{f(B03ZY?6i|=|fH0_P2r6m}#(*|BAMuu(zG?wr zUW;$`?c^_!NUA_c$f&{qQ}?Qle==RGY6!5n{C~%-@?ZN;Su6()AHFiXbXL`#It=Uh zc-X+FCLVS3L;!%kZYd0+e+~El?^(I4i&|D@J^-jJ?=pi|AMO6j$M0A0#9`mO@P>c? znE!t_JAAWG783&i58w9uYi|7CooCc%zI5e{&CZ|vlmp9vO~cNm&vyT{op0GxA++4~ zinS|94o65^*Yek_>hkXHp=%AVhQ4Jz3+t{tsC7`S8aiOes|)JMxE1EU;5=NeEbmMP4{eTHyaNML zb6{FQG6XS9$|m~U$OP76P;mj(qGbtn15hlciSM&X!2{Hs_d&gYh+{Ugnk-Uo5z=?Vuw(+sfz_D5(aL`E|1lY~;@~?g7YF-0T&iy1oL;_Ki%GBU}C9FWg)10f1 z_~b2Jb;Vr%9Ft( zvI2PpQLK9*M9XSS)aJ=6LN+y4#7HPGCMIEPsv*>zD`!;oS(Z5=L(IOO8Pe94wu<-O z)m62aq{dq3HLKUN5ZKseRF-40;xw{Pfk!=>?tOm?0?sUDPo34Ps-7AOq$|z8d<>)w zB1JNi00vRQpo+lsZsr0W{T%RksjA6iWR;cnt zwvYbrpu`YPLO?V`u@2c^mq2RJ^kJUlm$$@>Gt{de89(PoX4E-@e6!?If#by**p)uze-?x_69AOP2SVQVScZRVp@VAw-8h_y7QG5(beV5U~chvTq=& zlTU6Rto&wMHsivqg=BC6+Y>Glp@v>5dC|UF*^88lDKPd`>Oml=uraD2u@jKd2gtHa z3^E`G1pvcn*odmjGGc1KKi%cNqJsY8#B$iM!I+;z+F})75!5IEfJbz1)%Ur4Fakby z;Ns!s6Hk0#_^IF6rt_71?37=gG-+ib+JF4?fN8t@`ix!jpHIE%ychejzdlmickImD zrmwg2&^HR(?l^tk&Uan3=SqLL_^As{d2!G04ZHQMH}`ySmER7uzn}iaS9iZ=hgsM8 z$)`?Uzu$e*@~m?XoiJnfzuk7y1OQkv_2(n@c;w#aZr*3}A^+rPt2HgpI_J-5E{P3`2*1hH4VUIj= z`j9oe4i-Q4^Fw~Qs5vT4a}{-a6BKy8*aS)~FWO)F14w)&?>hD;hm z0C2-`ofj=K&;Oe5(vJgPDcTum%9=@5tyKcLa&N^Lsq|$ng_h+@D}#ruwWwV6 zuHd}WMgk8){zgY^Mn2ROf98T!0BdrOzc_eklLHNHd+UIAdTHQb^BxR<*pPsL2Ks>n{VnGI+DQJX#hE8WMNDj>h=@iJLF&+$ zu2}XFPzBA&4`iT=gQyt1ch1?=xOzZh@3NTwM^r=$tdSB#%BVTi9^@c*EptQgug zXb%_}Fp3}{5h2BzD8|05$YIjI8z>lK7$kCzA!5|zTFvQVXES1s%536HRl%!55F$XZ zWQd3rjRDG?C66qOWRaP{kT#$;tG})!HJOK6EkojBDK(nSUoabex!BT@q-m^e#=HPx zLq#OQCYz)WAcTs95wrt&LAANU^Jpjjyn!i2B!&QBNW_DR25`ZF10+U4W{zwV2u3^u z0IcHC{BJ|q)n><6(q9^=YZ2@9ntw;Bv4e5{0HW3{5Fm)eg0K%BM4jfO=L`TuHpa04 z0hA0`1xYYLa9Nfy1CT0&%vF#*8?97402E8b5L{PRcdg=V5_&q{8#QK~wAd;DMMP~Y zRBsw!mIy8x7Tl`4vW2h~_H4UpISa=fqtp#*Tji(sa)t_(=* zy-x~>in`26ke0U6sC7nL#+$CWwxy-DRBSou(66=*Z5cXj_@V_1@4NF>r(yiYn~og4 z)_XH&m|_AT*4nY-H+txA_jE3vUnmw!?QO+0>FVun>u4#awpytpsQ?fo#zHB^S1N%* zCLU1@AOZ?_@L)igS-ne*)!+)&fQN*%jZj;PmCRRs2q9yll(6m{CrFkcpac;RL?ku< z0}$xVdyn|uXt&Kg{!}l&p->CjmtnyqjEY`rS=CruN=+7=4;chX*r=g$Jtkrrlmjk+ z5;H|X1r&(1oGL0B;+t`s`%?f|l87H4f$s_c!TT8K07Mx8GEByp%(+k9Rz$!mNM%wo zp?75=#g$Yz_dM&)X0Q^K5YL~qbi2b3+~Um(|AxE%{K9Yl_5L?HS4e5*;)%I%WVyWF zTYUq6zUnix#iSkIth+sq{lX!8Uhuhx&Taa#*fM^%9XI~zxmV9UVTbj|-+t*YVC~~} z-+TystjOjnhArcxm}&be&-$osCT;YzA0Py|nsM&*{VR8#@WEqu|NWFxe!BgT+x(hk zA04iD$qgqrC+GI3eQYKA*b#QWa`U6zqe@HW^`zZPQv1hW-gUv*2O5CRm&#{PruDc3qH9SlU=l(AjGYDj zZ&PimL+1X*%8;S|ogw7K@8Io1FMZ5HP-}{}=ru@0z+9$8}4P6h1z)b9OKD0($N7z4( z|9~~IUI-XjtpGd%MF%tnHi`@yw1Kv12y-gtUQ|SYX%H!p&0N(Gd*>J^KrV8^fQqQV zAR1Ifz?kU!O9WF98&nX99UBB7B1#myL{^)b4uk{%mX#1qLw(5k;5^iW8eYL=rCh@S z)d#jFvBoeVQV5#G4uB}c!zQ3I8X-m%RrMj5D2Eamij@F4M+|~Cl>VeKnSd2@z}4*p zSO>ZL^yQg&1ZKzs*G~=rYdZZ+ixkPqiHH+{JoQf$5LML>2k#p=H5C{|@BqlH*GZ_Ypj1T}IG`JO3HRmBnNQ)(x zx!`MyKYAy@aSF0}J zWKe2UB=l7(*4l!#Nvmxw*ou=7Fca?s5C<GiRcV%WNff4gmxP0$}ps zL*_H59z~E4nGlV|;6(w*7$y?+?d_%3wy|4nvw3{I*#x_~YiMb^opz{JD?UKm;0|$q z{3e^2VhR9Wuvkp?Jot-5CWIh93~DcxhqVtM+QBAX0I(jUK|0!8&p8v1s3EbODiRSTjsT!)08|GGDQ@xo3tqbZ2X}T2 zt-A4J=l=SN7nXl&+oSfc-&H;Q<{#~`7BrL)$Lut048Y>7ru8!5jtA|q_@+y)I{v*2 zUo3rVpm^fQhmZY5*D?2gw+@gr^&&?feo5)}BhH-Ky1|mS_r2!9DgN&B?<)^_`FEug zjsV*7;4LqIak1_>vVSIv;|}}wXU_P|1D)q>^V0hpAM^R8Syi)JPx;!aBAbs~wEmI1 ze|PJ{zdUzdy36L-A0Hd>&>fS$y6N}MeCy4je?MdP#IuLhG|SvTWzVbkUw-0QkBuAj z%1k_I?jx7%c6xo<-8-J}{T0L?0RV8=&O3oFpCLWf9@SmG`k9MQ`EiteyzqeTFYNZ6 zfhT?R`HQz9Y);PTS?8Vkl$rbNjN`8P=~HJOKXcIf%U^qU+%B8Hd*35py!OGP1~k*p zc*|_j_WH~{PCssM81ujfLpxuYQ`hk+zV@)&YNtGnzTK4M!rx_AJzM$h`#P#qwmYTm z$hGCBXWZ1s<>%Lx&Of$1VpDi{Iz4<(`z9OcZaXZ$_s&5_O{Sk8)_c#;u>OMT372JK zwn)yK!qeyZ7Z>u47ZtC$yt?oMx7HV0WY@zmO9+%OgZ>RsgnzJEaIu4FaM zGB^Cw`@nvazc&8v>rOtQpA!OVl1tTi00{d2#i#$d*k0fI8{e68!!@&(y*Yo>iHD{) z?{VDK8%??7*}G2}0xK(c!u-ciZK!ANpWbr(6>|ov#QymkI%Soc(v*k#ul<`w#LSIy zcJPu14y*jvQ|-Y7oU7JrRl~^4g|xNO=gUy6h^YngfJiZoM@?5=8vW(a#4t4a&YSkX z8#gwbU1^A28Um{-AhmkcWl}IWq_s3=#E|tycZ?j|!K&WXYn8rwxlgh>YCz4@SO3-X zszg0CAy7tUWF$dWP$7ipzgtnzlG5n^vCv4Hsi;6`cG#;*&dd3qT*Uo8P=sg)ADj!p zqeit01&QKwC>SZAA&M{zXk4Ml%*K`l8PWJ4(F@OoL1I&}h)QTSji>}rkEjgDF^obX z@J(h68gSJsq`d(UgismOATTI5mPt?ufB_?UZxm|Bf%PI4WmIF(Fvp<19-MQo=EXUHg!iP#Jv9uloS%f zMQd9Ng+gMB)>u*&Va!-Vf@(=h28)&otQLVNpX4BGj7y!%0F4AGq-N=YIkmp|>yBs{ z-j*h|L}VjV6!h2qgvcVAT+xIqp{2ZPIzSyeuK5+|g>$u{e&hHbpZ~C#%xnOFK-$}E z0>B!qYGNocHolS9w0`QJj`=U-*GLsZ+(J`8q!z2bwoLmLr;w$Iv9^FfA#;c*0VD_^ zMwPkd(c*-QXrykB|8(n$0|9_m8L*$LvN8FymbbZ*7jP=XJZh;0fXqTes;DWX2tD)O zcxmyduN^um3MoEx?e{kv&3%m=M^g!LC3|<#CYRoL+e+ezpZ@H)rf_6aFY?_F`X)@= z_RHV9{N}3;UAS<;ug|#Sn`eFZ^iz+vnFD~fbl%f%EE;&^zHIbyKRfMLmt1qlUuS&b zD?3XW0ARHun{!%5>w4e6=Gtp^X&Z9fMZdrL^Og7PoWiwaqj;0G@x!`VYq=ir(?JJ&d3y;QbM?^Qe4X~% zec4T~gv~ah1HN3^_0zo7ex(=xP`u%f*~s;HSY00fTi>-W%eYVBvV|JIGYYU{i}Z(k z-yi_#@Z_gEg(rELgy_3ExthyP~3LEar5uG?7_})<2TDbcxS`S z2k&^|-EaT>2SX57Rq%XlfO_VLJtwWC5?k1Gy?=I7{%il9k+mr_Ucj;jhoIiGY|fmI z&=82re6>(4Fr{gsbxCJA8M1a~pA(aY0f3s=7*kpDLFVE=SJ2ChUiH5d?KDjqzEFX= z)pDCP!qn&L%PZx+YSy)I-m*URHDG6rK?A~At1VgBQnZ6w($<14CI5QYqj*$dL~Cs! zF@?kwY?`vgAf%w1>&y{#0N7%#rP%=LBlWXN)D6t{^jPNkk5+h^GaNaKjkQT?tsxMv z8djWqg4iJgsw$`fHIIk{a=CZsG6k$=8IuJ7YpfvvfS?itg0cc55)+^V2C{4tgNDQa z8bBhF0ZHyAS}eND&6zdGOkfRK6QwUeRK4cJrZJFM)Abqx13;jv5<+kxc!h{|heqQ* zfe@M4O_7&Jq(SqIBpQ)AvC$t<^8kz(cR0H+Tv$OL+_hZUL<1loBbZ38orfH2OpSjc z%e*#~$vtQQ3|?KN+CW5RRZ;aeNyxCM3qDBbS8I*TicM+H|C}`=khp{}QbnUMf@y?0 z0zq=%kdOd~N>r4TKneylAtdn#%1tdr$svfVo-Y3YN(zi<4W=nuMngjA5kib}QWdLE zU`i|%5@QJrMczR9B-9{mjWJy7>vff`tg?9Q+Cz&LN@*;IMwSJn6=9i(2oTk5V%+m}HRyuEpw^4#BMx`x8He4WNR02T_q=8i^Qpv6K=gpY&U%ZX0n*j(6 z9~(3C%2+sRaPJ`rK|kOTHAZ@fMAmYWFcSci0QZxsH!~V8wx>a?oDmr=w508=Nk?0; zEjV;eThsQomO%_QG1$?O`dp#PFed_(1usDm#3EP-j3FgSNfRRpVu7*ECT)eZkl56k zLSj>6BAa7est^<;G(T(bD9WhTa51$-Yb+|GD2jKEtu@wq=jvIVm=USBw``My6VsPf zs?L|oRp-Ny;lq2otCe!OrL}GF@F6DQG%*ZN?d`S(lVS@Jf@NDwEZahoRC{Vnz#P{Y z1293b82eHQ)B^-!i^x8JbK<-zkasStXU5v#J)5LjsrFQ=We2315SI$YgjiLxpq09- z)TM3Epki7~5>rZ(QXw%!q`(ag(^ah(1OPsFOA!bm%HIMA8S>TIvW3~A53y&d&$RAH z0&*?^7X|5{u{WZsgnF+3=CaH=hlY|QAtqTLo;tJ&5eM0@*xsos!H1v-#DGQseHQG4 z+N!9aZ+}BXWT22DyztDpqp$tWx=-%${Xc4Jzs98@74#x)T53%JppatMf<+B|@&@_WiiI)@@Tu*OIeNxrr_S1P`wiPG00t^+5ZSbC z?L`BSmO2W6SSTbG_W1UmIai$RGf)ICw}4*d*;}O*PXMRW)J#p?&k(cA|%``t5Ij z_3(4gOzFi?3;48$KYft!a@L6B~-mYu71WA|+DR(54A~E8lKiuYqTV??OwCr)t zV}Bmonqu#?pYOKM>yX50to-n zXlErOjB_4+FC+koN)7|Q6C`546!X@k2y+AP0^@QjAPKo(q#z&~ z6;)`2%#DK}A>{-N3Mvu;01_BLBoYGBprY}D(dX-pqOXWbf&hw9?~+(aF?JrY5+IEI zO|oH+QP64Y)tBw(y$c#^I0^t@*{F&H380vl(;^Yp$2Ceureq{gLBt?=GYAP#gt9~d z^XLEq2Mq{-gcjLLCWHXU$a($4SOEBcQ{*89fe@n}j{I(v>%cY=#uC3qNRZ#Cz-Wk+ z1QOze8B{DnUfzkIFU*M$SNmv?SF(^0Su#w3qN)x;#DYP7fb6^&D6R=3F^+3YX&9i zL|Y2=;Jjz&f&fC2CgOuI#hxcbKtm`HLAi0ytV>27m>3Cz55{sR=G{}xY9S&@5GU#d zR0EL-pco_w>~>po`3qWm$v=#PEGN|jrV%@-S^t& z%uN1%`O{z9W!rmhdLaIMogH4EK4_a)3Nvngas3-k``lOdI(CoNr=A?zcFf+#EUa(7 z|Mnvu|DV0it)BMSIlIa7*Y3RKHy>`f`?szFM(quTEt1XYPX! zW-WMq&Kob^eftA1PkDFxtAnR6-gW1_PCM!=qjud$%d;Mz_TjYf#Kd)GHhKHB zi?WZW!h+SDbfU>82hKS8kV{Xy?3S$-fAphckDPh-S#xfGa?yg9X0^TXYWsp2Z@$r6 zANiG$+kJcb(kW}F>+gN^rq^Hi%-Unp1gGBl%t2?J8Zls-9MFEo>)pp)(z|~W_C2slgU&kV%Pn(uK4P;G`7SqN`y(fu{`DVSwQ$TwudemQ zQ@QKSi?4lS@}Wo8w>fm{ni@^yn}=IcRp-O+T5IpBGu+$v_S{V~DhMb7&VY)5inAs$ z;%qd|8b^%th>9AAPmLzdV~jDzAu5W96B<+m6$KPTl&PWTJDs6w@3q$VN1b!~_P`J| z`b!?x)6dhl`_!%4r)pQ#UTeL>8}GQfEaKGMY?z%vZ{Iszvwb*+_WW>2$N||o7=p~5 zefr6#J@Kq>?=!i}>ric%wcz6Wa#x$R@!{N`6a@pQiZ3t#uiSB_yK{j;BP=vn9Yj(YxCkA32uZ|HnYv;q;0ovPJTn=cbx zTwnwT%J1-r|JEVUPwq6>_S9^u)&V*;#mR_`f;GFE0;qj25^eb7skH6+_Gc4qtL2;}1|Ic}NL>jQh>5((b{bj-JB(oPte&#ho}2EAzy%zG#UL_v=3(KffFf`q zOlGzEz%k4iI>Bn;kdm1xOJoxD)3-*Slo!nEv6e$bf{1iGSK zpZBI=R_kXZprOc1%3KCBhkGMaW=oW;Zz7hcw56=QEF#95i$Dy@=FU>7wHYG91lP<= z;9#aHn-K>Z*>Dn3lQrQ_lJn4rYwv-LSekTt(bi_It|Zdw_mG>>J^L+qBNEKN~D2sXYScY*Y9)0yHW zY5@vhtN`EC1Qrp(wrB6?j}>A7MhPzVcuFtI=wT6|I^MA9?=i6n0az42#Hi|`4mC|V zH#cWJ7DWt%KrXFzt4@PD_lUfR9q~|GE{bAyVaM$3-1hlAy?UP**TmMU*ji@J$-Pcm zmc=Mxc5y<6nZewLb$0h;2-JP70+EW42*YwopShj%~UghR#^gAn4jmOom3N< z4tpz$@}TuAf_rSyww`XC?e{8hpl;#avc*KX%Ja$#!(lHaZ>WZ5+O(I62m6_KXS`Y|KroYzRhz_IdbfE(G z8eam~#bnb{(g^E=JJC}D;Hh`*)j#>vXEwj+)sMO%n!l%h#tk@5?rJc)>(NKHk9!_; zakPuEuw|o8ub+xJB{Ytxiwi`G@vL{Aw(1G5yz7cFMCb-&sjFF?OSF0w1Gw_53;&vn zmp-6q8anmBxlNLw5jJpclPAQ8g&DOj?^S7FVb&(5MiOwdeN1(3?$!MATV^|to4D5o z34ktfrEFrymMuAUSMM@;5`ZmRdV74Mw0Yweo?gGILjXMW=TajSk#@}Z4QN>J;^4XH zp1G$>tS4~iCN9b?@!yS|Ds5)Eq*Cs_E2?eocfY!LP;b9}5JI6V4u8pG59rr691cXL zwr$-JTkCer42@-2WhJ2BL+pf-;GobgcNRo<&PW>3*Bf~5P1Gix)*tuG(^ufU@9v?s zOJjX3cXK6JO$H&l>U00JdG(3=-{!>5-6!WsYXbT8Uw`wb=ouecbJvq^)rrZpSLFdB z0QTHL@3@!cl`K*trRJnAAOjJE zMO-a}vaW|k(RRzktT|aa>1|a1|aBYxM?(U{00t#Sd^Ty_( zkr5L(xn?(z1oq5;kP5}t74pC{I|P~~J@<`sLIp`6RX25~#uL?(88tQf(VCTrM|P_> zyYxQJTbRhmrEv@*=4c>t%L@3&NLCeu7~&u`)6|xVI1thA0n+?$g{lPs6G%unj=1OK z38Umz$D$X+#4L?xtcVnm8N`MN7HWj6jYswz&0Hm7!V>t|(gYxc5SqNsm^iaYWFjt@ z!Hx)rgJCd?EPclo4vT%6W?Jsw2Ys^C>ULbYEJ~KJV&(F3Vz^^w z>vi)pQ_BX^t2Th!-YSZsNLi^V)sQ#IZu3~-R-p#uY&w#uVbhVvF^{wdi4_35fFNe# zM#N3k2cDq9f$CuuV#$tF*F+wRmXi$zl~PjUnJqgmzTju~eBguHWw#Z>7ysp>$3O5s zVci^aru7Q{*t&rioT0U}&BsR4H+t zl;9kQ5iAptv1rQky#)zkwFeG^RI6jM)5<^$G(9oVqiTMr1G82U`@My3Yh|ldVYPD&u*bXaddV9!9(Qj0TaTGf4l|9hm6EnP6QO7;yd#|)(rj;-a&GR7U^cX* zY6z?#C%9UzH4#Y>nLLCbpt2}UwU{N0^h&IeK9wLKKnjQEY{@Ku4YvH^2w(`y2PkUQ ztT8UbE=G#6JAK1z!y9u#{5@l=2-hF3eaP!iItakjp$~lS9Xi0S4x3{K(xt*&OHDS% zW~0rQhyZNi*ROl#$DZ=Z58jBV8O6Oxt&Kk0#b9*TqmOJK_dMvHF|m4|(Z_MmZPJO) ze)ZCC#Jif70yypOcVQEiEnh8p^8`*iuciur%2++^*IsSY->$xQp&fC1dHADuccomu zdQZ#R2<#<)+s%%XVrOc6Vwc~b_TFy4GIGz{i%V?tj~l%xx5V!qVJU8&P#6rPa4pNS zw@^>+d)vEo+HZg2Q}myn_t<+(KHwFP-K_12(Eiy6-u05tZ=A?K-?ZOrpZ2<^hWhfe zU;6Z!>7!=8_Q~74{+suH;F0bl!B%tMdj3Cu?j2{;b3ZEY^rk1g?kOF(sk)O}PQxLD zHD_rvJ9KDet0MuugcalWELp`GYFY-RdLLwB2scJn8+=0 zHsr!vppnTYoGv-7+VFx9z;`&U{gZe006Hxg6TtP`y=sW$G1 z6!>V>+ zDS!y80}usFHG>Ki?wm|v))6j*0Vav6NwYFh!6Bte4N65LqAh{UY9wjo!VKo7%p4Gr zHNYvrJh!8aa7qh!;Je$6EZbLJGw&wGoLt?rI0SG;0*!R52#a_pcY}}Mp^KIKW}WBm zV|XEK%*P;CGK)m69*TB7?8jJ`)um;Iky9ulx#p~<#8C)P^==u}TvZ#scgHPPgCFA}A}7k3O9qmvN+FV%zywh;BL`_@YmsFN9wA_I zi$q0~04^v)Kn_Y;gxD@(c2sprwK{_!Ba)Sa+08Q%8D(RXB(1=ukPw(1P-laJP_o0F z!R7#wkHiCLl-?^c00|t6YJ4gSzk31yMcBtuPU!tZRt0(h$?FRqig>I=QA? zw-UX%YqwwhYeHvo*;;9@;?}CNGuf*&MgcU{b*o*lgR_CqjgkY^hHN(Q?5glcM9$>y zG

    dg@vV?8$J(F2xZ~1wyZ9#P*iFT4>1y;Y2a>UTl$%+oK$3(t5nyMlamtZ*SwMO49bf&JKuMZF`U(p)O4cAVV+qTWe)Vm0T#zI2Bs*$Q**jbhy-S0+l7q@RerT5tPPfdVvb}@Hy$SJ|lW)N~cdtGmC zrkq?pF|}q`6tn%|>gi=$w``%%CP;$8k?Kk$u(0MFIKW(lB5|r}qnzDja|s{=%Bbr~ z$eB47T|#bDLSx_{!q?!)Ul#y2O;~O`9%SzoB~NL%r?-6*OPmmQF@pR!#;WD>Bo1r zz4PfWy3Z*eJNIf^(V<^`^*xXJ_myw^;9Fk*iBDa1#!D{z)sDG~KXT3mtN!w|cRuZd z&p-PgK3^?aX4$rHeDFD+Ir$x*e!|=T@rwU^@n=7JUQ_cWqJ^Km<2Co#|24<%d)hq@ ze9fKrf7M;~f9*XFJpZEkZqW`-R%agh`s_0F=D&j1p?j-)obsCW`>Zlv2Xpw%&X2g>;4Zv`X~SV=x?8WIRIe3b>IVz zf6|e2-+A#buR(wItS^53ws*b9fqheR421SyJ+;r&vb9B6sr6L9x4Nni@_1-_`p|a! z;8uGbht4n+gWS$ES;tnj`+ZMs{P5&~!&jxS_Mgk7Y75R3B#5aE`uz}NS+?3`NyIs; z)X!{qnAz)cIp7D>(HKR38N3y)z*jkBJanQ0(ttWqr}P1((1&JIiJ zxdCbuvjiTAADO$EWlfEq=;9@7elW|f3d``^&~Uq*PT4AB(F#RDB4F{c6-d+fXf8Jq z2^lYfd3fw|GHSF?*4$8CnZP1rTPItxB?k!{N46mi^ht@F(8#d?VDgl6!%@HQYr2gr z+vlG=$19_`nKdw~hLfv%nVL5ods_4?DXB7Z7$unQ&VfiqmbE+*k#iCd8+?olYV`9O zs*C|J8x<~=wv`rf`MdqRXA9+q2D}u5)UeP4;MpuIfDnta=!l3JH;NJ@AOaJKa3qd` z5Gar|s?k&(Xr>jaOaTj@Ynvb*J5~Dm6n0!R-b$>;I=? zF+FImf1_>iClIChpN?_1Z;j$`&e=0G!`)NLz5e`Q*sq3_a3GQx%67X|7DW(h9t=b- zEI~rIJtfp)rLrtHtXseTzU$k!qAnq|<7ZWfZXIY@R_D%7SF1l}AM8o>Qua!@0Wd z)h?~l4Qo~`kECl>t|A8u52``Gw~$gYvq8V_sqS>z>;_GywT~r*sF5IK#u4#4$ppIl zf0n~)SS6pC%R|#zNjXBw46aqx65K+>^zs#Dt2DDz*QOSWq9}?WfmuWXv+$CoX5_Hq zx&UAx9zuvQ#-fNtky1)2ro zf;*o0%2zz}A?I$}^v3&dc++>UyOBv~J1%_QNhiMPQ)hncwT~?B`iAW{{TNS!bW@w` zEw23DN8kOy(;xrLPXpL``S7of-SV<`&;QHE<{x&-?2bJSdi@U;p7!otWMem7(0lc# z_716S;_MI2ocOo1-}vUj{cgAQKQGmvd|__w;oHu-H2>S{W?u90-isf$^&h@D!p3;g z*F9;+JH9ad#9L~FsC(YLn`v8>GlCE`)gkM$%}vS z;g?IoD8xAViS}(7beIJVLAd!6qBcD!uu+v635=$+p3QN$S9MpKIQ$DI%=Qn{78S%o#Eb4Ljr0RM`Hfzjy=D~d?n|z!ft=jI z08BwdN^lk>b|zQl#`nbuaB>hDfhs2;2xavKG#^}zC@ztrSd#55uAX;GhsLfXdmH4g zvtm3gHOC;a-C?M!R;q>|LS_nQCa^VydF6wC zy|As<+csF3UB7Di@~L97+xB{xl7&!0IBWi+f&KrRK}3ziY16W6Fl>LCmd+nFZUSLB zhH?f*V1j9mk=?y0TBMO6Wl@;B=4@I!h)LWdQ6Lnp7|PI6GYKKaa?bm+^Mf6mub5u5 zuMJRkx)YuDpdQvWR;^pv?_~h+5q7N<4-gZl%FQi<9m+&3LU3`^ZVosSc?5x(1Cg2w zv$!=nG;WLH+q7og>g%t)J`~FiKKynY_B-g(3xD>_FMs8v`#)&qs@2;zZ~DPG-?3~E zgm%%dhGnaLz=5~kbls-;?K9V2aq0f+mu=m?(CxJ9ejl;T-q?ZJ(33EOO%3&M;OL{~!Km{o&}d(cf8)J79S0xh2t0CQb~HhMG+AiE`1cMBmfN%$pNV26L>i3_&Y zq`47zcT3H~pZNMUMAg0S@a^3v+ESm#y%<4y>TB%WP|5#{x4bkw_VoMhyHphZ#*8Bu z%};;)pFckS@89#9wG3d@!Q~;7y+=O1dvwWnIB1A5eP!{W>yDlHz_GjR=j=}nKmN1u z;>WZmc6|)>`_}33rVADx^LAWu$@B!_?o;&1EA*icZr$!ZcHC{~RZEOJoA~jE<}W(D z{OprDK+xD*~m5(`M@!sTPkCh+nZ2(O)=AO62E%ARK0x$+*0U})I+Err=jvS=* zz4yPndg$LC+0}bJ?$PJmW5e+e`}o(+{N(|C%x<5P>6K{#T-H0T>Cx8DzxfI8eZpsc z^!R(Od&M(*v~$HwgRMKT;okRo<_jBS|8UFoNknfnLyUn#DO3`7 zLu`exeOv00@2Klu%7joPC!@NqB=R2T7MH%cTJuclfDhgp0hFK2z$p!5Ur6~qCl$ZZl=m1 ziaUrPf)Ph~5W)69-mVo3V^zstC6}xNCGpH zAN-!yA-&-6a}MfnzHiOhQVKlkL^u-}kBozy|9c7nM2))gk{3VFTw9Sa))!_|m;u>| z$yqYU)o5gI0wxl+hVKN3z&+>ea3`?a5?$1>;9k?v9UCRN(alStmu|NBlLQLvQOHel zN-1XmYC%R=Nd>vUnVCTWoRQhkhz*oMgxFJdcOi~J$dzT3`{^j#X%1~5hkA%!6d}gg z;YEmMbN)sh>foYoKr({E;ldQuoyt%pN2P&P>p?x74@9k25a+t;_ZQ}?!7S2nqAmMO zPfYE5K+)nt2ssvxqq%0x7T*}asJ;MBV55K&ux~|E@~Vp1WCCLf$BO3 zDa=GTR&`~Xv!#)CJVRVW3?Sx6BxEV)%tYNzvG2MSS8v*S<)xd8&h*Mv>qB>W08x}} zTW8zt?&27TOvZwg+=_KlWJ?ZpA~?v+K_rc(FNrZkK*G$H1CxPkXErR_47hu5VUQ}l z_@_U-OnG+rfw5_L$>OG}zqC_M+QS)ooigU+}|okGk_+ zM9Mr|*k|9BE7wfSY#%INv23>TP(~rk<^~B&MOko3g(l6JTti^uSh2tcgPhbu(;?-> z*EkUqEhy>i{OXmRBtx7>jo^0hn1g>Y2N%nHq}|m_#HHQCdCfung~%nOH{t1nZ8!$FfCB z&Erow;+gk3|bA-~P+4 zJ3Q(EcYX2k&t3Eeee4mF@R?7ZcG||tWk331eA_$j`^^i^=Z}2mkW(MEZ!vm;{`|)Y z{rvMzvHlmsSD%$|4IceiIpqoc8Stx~%-GrLsUsrwkGJW)+^xhZD zyzggr;1Tih2hs1$&b*ADw?QBAip~VV1|E-YKR%K5v-XfdON=|46XoAMOYio=k?ivc zC&@d%I=JkO)o)hwrRUi{e{Fd+1b}b+)6Dy}$9LTucY0F)xV!TFRQc7nwB9o^_ndg) z1NO?rza?&o|4p%rHAK!?ld5J_&9$rQKKm^^^{F4eb}-v%hvggA0XX2+`y6%hzL$LR zO&|U8WjnV0<{K}6#4mrBt~&bzIN&c1x>a$-_r8hgsyA1=S2Yk?wEj-_!sT!H>c5^n z81}C_=Pmzy`ZwJy)wODt)~fY~9*f0&yz0P1RvmVPgxsqKSsJfv2T;$? z@3d?fzweXDaLW(A^}!F%4X9-A*dQ)k!&jYs_NP91^_J`A`ZGWO!h6>~@X-?mZ~N_! zetG^c4Isbnryu_1-A_Im0MeE#F8VEiJ3sk(0FHX{v!&i)Y)EbKo(;Wc|T%!kCV*B zXlyz~gjpm6Nr!V)#YS(c$$Qd+YMgh>i4?ACNj0lx)sducv!#8udlt+!)#uh#?}o;1_qbziNK5nF))7yutY} zN*}qI5{n(bcBf;i{eG{ihaf77fW)Q}ptg@6M za0sC>t!eI^-K=faxoq2S zE}Xyer!;%zn)dKE>nCn|t5pYXSg~TV(+Z+>PgCXQF$R`cyPB!|`H~$oZT|SK@n;** zA2-MWH0=Z7R#~(0tpQmvi*N`b6q2>BQr%!VHG`Qa zy5)ZBrjEYte*3PDo36gd2G?<(q10P3IjYS&p%D}z2gBH{V2xg?5rR81D@DE{C06_D*oz{ z6@PvAxG=l(7Wu`O2G=|7dyv2VLqmWc^1$M+p0(`Xo>zQfyS(^C)9-$ETYy#x02J(l z&)M;cFOEb29JIu^vjOG$rr-L~s;O3V%+cX*Upw`-zvMH2G6L@2{tjVb7W*6>51Wpk z{>1cATlA-A_QvL(|LeiDx5O<0AP~_~Qf-Vu6|Bq>++4_r z>3yE|%xB+w|Nb4G`}j*w|G?8v0C4}eeD^+gTYY_cI6m^`*B$e%6CZtB{N`OBeaosN zs?W^~e*WdxzxR=^deWnxe%`0wddh#j6_a;)&a>Y01kaV`#4N>zV~=~>-3f5di6}?_ zkW-Dd@I_Z|rz4nI(z5AGB4q*-w;Uey)DJ_`6 z`fIu?V@^)W912FTBo2vTkQ-9S?&mijl+JkZ_Fx4L=DE}S@QrbfZJBWw(ye5luZ5;A zSH6-idh?K=YU70}Vcfddi*n9?D|lSyzsYSzTaK01jHqN8A=kAr3vnS95%Zm61IAvn z0AWO`S==)bvAN~i&6r4-M+B9|F>_4LZgM;s^*o#?AzDu6 zPH-47{%Q@ZiXHi;64D!VO5p%A8+p(Q$N+Uq93sJpg1e994padLD`4K(Gr}6I6AWMx zLDT$U&U;h;TZBjc9?@hwJi0`jvt14EFg2w1J%?L zDVXbp?Xz1qMjx(QF|mA~b?}^1)gWt*#JWDuVMc*UpuqRztyLNBdEvyP=Q8vL8P`4HX)9sQ5p zpT4zkBjTb0J1sQ3pwF;Hh<8{Hk9q6h#NA;vyF1^zzsRP*(sjx3?Xh`iy71=)gNX=%YXV z%ke93Zu>R>>kd8ufY+#Y6_~xpNyX7+>zJ$36{&pxQ~kk@p8Ng}CMLRwAO(0QXwJ^Q zgdh2&V)7XJ;3EbXzoETyf~FaD-#2Y`0PB}?|4{zQzgKU6L`hNZakThtggcNfu&w^o zFZi*~nm+Hq*@u0kdfYz-fbaPrIs3ZNljO3W+x?zX;JbNw7jt8?)CdaW0Z11Cymmd$ zZ`Z$meCO#8D=t63UT{qOxt@l%#4Yhhid|r<%)(58+>}~nS!rH*)T4gA@ji1qt{TqQ zuYJd>CPJPGKNqr;iE@=~)jeK(`j4K+p$yCqc=mfN5Yw~o2LLelBcA@@ z*F5Ge8J+I3uER8gC`cINZD2$UGj(k$&=^;I8O5QGeB;X>`Nk1X16cHs5yr$(FMQ)q zUH}eG(rS0w9M&H7@Uwq-zsvh;w=Fv~h8mvLaoCf;^oB=nQ48hdNW6XRJ)Zx<3!dM6 zWd%O>Skp@___oN9(K%<4g%UEQ2jD-E&T>~Oag zi4)NQfs5#Fm%XfaY4)OBO#N#(?wpcAh>=HCI&yZ`o&Jo{VD?4@X;LPNAv8{N0Eoqz&C#&jEvs8{01zg) zDVa5-cC!q45MehnH&Ow!k9rPZ28@W@Tm|Hu+;wbIqUP$9-Gm4{BK8xJjZ20K5K{yT zvr5RSvK4>v@d*YEU|)R2{P^OHGBE%KqftlHnnVmVHb%J_XLXdkG-3ctCW(QBnoQ5l zEV9(@%uqFg5nM!!yzyCdv4sGzr>RukVH%JB!QfJz;Om z96}gWLwA%#0CBEs(=25xhBz2yn@}gsrtUD+?41Y(GqWqqGlXEEz++Vjn7g^EsgW~4 zBcu>wL8VAbPzn`hO}+VIg1_4kct)|oA}_544Q>MX`i z^*O+(B5R6lXtz6>0SxOpm1VOAq#!LOwvnDnLN;*_jh&&WR%1~`|UEIwG0uVFQh(PcF0*5*$A+S@! z-y>F&f6D;t#&b0#2{!F>>f=tW;WA0TQX-6VhYYgBobWf z5JK{HPf@9{AT4a_wqi9`#fgY?EyGmyn;xm0C80CM_g34sfYbs_IHYY{XSV43?oeBf!UL{OED4rZ6c& z&E7V&H&b?X_r|<|gjj?jWZr0&{`hW##ct!We*B)`Jb?M9>uRb#0XWc}3#i=j& zF5akD%-H|V`gGjg;^$t1Rhz4xDt`Ns49S_ zT-_`XLkN~@9;?ta|8J^hM$YPk*bWOl?UpO{o3!rM3#av(IbU;a`;aZPlB^c%SttX% zmFN00xmPxe3pMnWF=%H*M9p3|P_CxvB+kNIaFKJ5%NCK;wZbUGsH~NxGKalVBPP3L zRaa)#q;Mfnh|yGs{WSTb^6;;;E`5AH>ce4G4(|5tH`etkY7~f#prA$zh#dNdExc}I zA-nhyk3Ur>bWB?aif7CM9jRP?sd(CqKtt!Tg?uUkPYPCkbsoot^pniF-8WlWhRh> zDr+xU1_ii*vrC=S;6f-P7_K18xs(`V)Y__)ANtbCNwB(o_IdLQ>n%BRLju-Xg22=X zG*+->Zwyj7-EhLQnBg?JUo)M|%)t#-!%Q`q6G8|Lh^bDg-R{(N4GAgLA;ba-5#y+a zoRV9L%rQ!6crV~Z(@C-n%O<-ct(#8;JN;x9`E`4C4tM^O8zYlZLzO`x#zIWdPveKg##Jj28EfB7myWgM2TgHjn%A?IukQZ5MrZ2XQqTIdF9G6NbOAI zfyzQUB<+BbEW$I%NVuW-QZRO~gF>zqX2KGJd#+~(^Vba)cHI5o<- z(jQnXh?u15Vj5r&j%H}M>m1oV=bRZFW4L+w>>odtUYDE6x%v~w;w<{Z_dvwVd017Z zHms^{X97Shq^^f4)tZe+%Ca3}+58r>kR{D#t`2ji#?W(ERUt;TG`FyoS?2mZ4&80r z>DC9`b~~*E*Z`(LFgQ!|Hen|sB{oM&UgrcSGgU%E6lt8(gbQ^~jyh|l7}Q>;qyPeC z)4HzvImDudnKy5pY!$1f+noTdQy>8_)1Q~3)gM-^Vscogg}REZ zPR`k#5-N6yMFDey5>ZM?$R+SyUNpH+6|d^nKY#OpSrlg3O*}{tB28Xv1^}T4K4-EG zzNVGVe^ZYFf`n%tHo0i2*#a`)Y2-NrpzhCbXF33$`m-raca}aI)8>s^cxu(EZUMmh zTQ*fw>zCgIO=Y(oPR0K3uK3BPKC}7MS3R=5~eeV*s2vudseWrsKI*v?U>rj`w?EN#Bs^6O?|o<6AZ z!m3{El(P#JXc0&cgF(TKv!*LU5DF*cY{TT{xfKwZg}kX}yE_CR)b&t8kRXDFknZG; zoTl1>Tu-#Sbyaa_4KsQwNsVFxTB-6fh*|IIIil8Kz+nw0jC~$}ae!$C7I@-@9P&ta zVzB_grST79jGlc22o)e0Ff=!6qXtIsCTLCo1QN#(6m}vRt!~NC@Au7=h$RR+ELqYN zLhN)o-%Bq#VX)#;VP)dx;8nkBdJs%*W{XT3Fx|{f!VSfZtV?JNW>Yh`3$vQmRmCjr zvRl_fCTC$VF$ZBDL(ve%&+2jK2U%5wZM2X?h{ELN7NXSV#4)>ia!?Q=XXikIs!1K( zb%Ze{0#m65)qCMk%0S5LtFICzz5GIF!&Nqz!v1XIBdzf@?)ZOgRN+t5d7fNhu{a zG72HWvZ=))v^%A{5Bm$K(J5MWsuPis>!5Cx1ZAg`IAoC4*`XoE08T(ih(;4^g;?;h z9Hb#rFu=)bMNQr^BXE=gH@AEDKNA0M zCOJ#v4{yEb}O=b-;9|7=`Ac2K|1Zy-9-d33*fFH zqE*J}$yUh-K!->=MWuC8cPcFBULH(zC%JH@;BHmYDj}Pf(L&LRwZ_Wl2VrQQJb5F_ z&z#hV#bFt=WyqRr?Zld^H*VUnZhFhMEju<|H?ih`_SF6silKzLUN02IHQTp)Sl*5_ zJ3reI-cT%5o3G~XhF+>OAfccjKX{oQ{Aw$R4|;EBKBKg_J` zjEszb{{1^{`Q7O_xAb@BD^FSeD?ye3pj@emxWtixfq{X6jSG4WBqJ*q#(ktH7eO*{ ziAr)Y5Cmuj{(FD1DQjWUqFJ1%c|izbGV-O83=ADLp9xzqSb>E#o2wr?VRfTm6bx1X bX-onDeSgP)WdJcaElpv0 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%0AIcX!;!SOsVqs~*`S_pz z+h2YBEC2nyznaVCu6yI}_6IL{)(g%7U@PlOU;dphoPYjf-u%|+7{fy*E2K-E4HjsIQeO6^jgE-#zzabJ;NL6Adae(`t1YxQI;*7&n|aKTs~% z_cw4KYe;ZkID(RZF#$0_fQG_meYM?MC-Rw~{DeGNzdjHA?w}Vm8wf;xx8=#4^wOuU zo18dXGQ$`q!eC@^VnqHK?a?zP3Z)7F)fRms>NjE`j!&d0r8(GAV%p25y=-E`Exok# zG629)8a*-+J!9n_9YFI(X)%$Vd9LqdAu>D)x=lUaE>* zXrRP+$0(-AFr;Js@J^jX0fhjNNdVA*N}E^_A_8NE3=$v!qKHui#sCQ>0FE)eN!`v6 zP!pYz{@>X`mNdkO3=kl*M(xK04vWFWCfOch90&jmLq-p&k<%7iZ1KqANQMVNX^m>s zC!m;;#D^r_A=>w)ZYe1RSFI=6eQE-GuKP&G+V%s?Qjr0Ww-^qXB?%W{8gZ zDH%${iWrWhn>88GqvhAp<{eb#l_WuA5LzYCei?U-@b#h zv(r+FR4RSrjkjEM;l=rU&S*n~p6iZ}j~zTX*J#!(&X92;oS$3bl2_o< z>0(c~sVrkAj#U`Ov8xc#vLpaV$+eLNj8;l%qhcaLWUN%K=(#p|f_FMhFkUQXwLA2L zG6N#8J-p&2m*0NJ9iRW)4S(~=KLv<8-P+jLqy1s;Z$9zKYp;FTWtTm@*Y90@^%Z~n ziO)DpyzoWO-?eLp<6*P2=DH4%K$E%tum0{8*IfPV=R9qFy>|80SA6k?ue{>b&qL7v zB^f+3g+S9YHB zwCCID-2EN>{`3z76Q#;_h717MnMNAvZ1q`J{Bh80FO2_Fv$^!IH+>-pk56?uwtM*{ zFV1=eDLH4{;`dpDb>ws+6oOe)oF4@#xN`g+ZEyhgp=ZZ;ju<;+Bp zisN{Etjwe>r4>f;u3hJ}+YLitG~{yyM2zEjIP_H<7c%1+$0dR|3{#%xhrR^5=gxal zWlxYA^xBn~iG|fA={ZBCGPXVF`{|5R$Q25OvSVc#6i1fj272A|QkIQ_LC19+-wydybL3SY1HezUVn13S}5j~5$!I|7PHM-z0qi#yLYbvBP6qoRa>vQDMtv=s5iUa-sEI8 zl}a~TeJ7RHVPufS22kDY3YHNoY^#wO&F+r!^uU~I0A@ZI2 zfl8hpK>y%vzwz1e%8pa}GdMYniEM7l5t(3o2Qu!Z3n--W?^8!$3on-{X5E5JWs+Bp z?cO0GV8BqAvzC}QWRwX|`^VlT08mPGJH6dy$1B`t>OD3QgaoSJ)w0W-%%<%194msN zfee8%OoL`bBPmTZK+FIpG0%ysf;eXY9!`IoV+HD1lK&^YRsX)l7F(RihG+o;hQ^Fi zz6KdEOqw$u&a>O%%&5at-G9+fk1|Qq)Yx2y^$!9pGX{d5?ND* ziO3%UAOjABgaR0WHaIf(Gyp8I?%9~Ph~P-;7mNxO01!vDFAo~Xa3s_|igk`Z93mp} zn6OIZyItny5 zOxmDGDXo+?92jGXjUjSTot*Ujz!*I?Hf{)OjZP+CXmtil3x^8%{Nm#Bw(07y9|&PR z>QRr@+K{0_Az!Q213#Xco?vJW95}dbTiW*r*=&Y!nadZ2v;iQSl?XWO>wK zqm_=LC>MCMu$hnfkv^2+Cb>eGLJ{>9aFCjHsZe(?>je~o2ZT+pju^NOcF?b5%w{?p(2 z?hh}0$_3y0)_*?b(r0GVxlerUGejV{n4R5jIdQMo^E-pJ^<`=EO10vpynXi`nB6{| z&*wUwUJ%px_}JXRgO$p7I-QQ9Xsnz+aNuCO-NwUj)#`Y!*GI%mCga8- z7#+lnKoUp=M$pkl^W!i_d~A<%oIMj)cb>cJ2F!BvI^uXxk5a#icJ`t{S9!uijA zsh2C>=b&13`>RH)2i8AWUq4`U%p8e~GiRK!Gt@tjUUuRs&#P!Pec6kHetYfv{~G&) zjh}MH(@u8Ox8tP&0FWK+-VtCxC^DNk-kf-soD5T!Pvy*gN(7Hfmp!KX6*e~O{mip? z>NG6{9uOiTK%q{900M|}E*R5BficO#=G03l zx7cEfp9YRh9*JsA67v9zD%(zwvf1L1kGL70@v)QuMnFIMnV|8S%@of;P8?A%c8rt- z7(@JicGSoaGR6$&2%3yG8h|s7M8FXQV}i3$vIqc&P2!N6?mZ%vBB4fy~SZf+J z?LU;08F6HiCo4itfJu@mky~IKl8#wzh?pjg8w&%2XcBG12l+3l(~BG^WaPwu-2U%) zO$NaXCHsecH@@lW%Ur>Xm6B2x^WzLD!pKL(l;)hpam=}343mN#GPu0DUY)2MIy9F` zc?MwHwuv~7wJ{Ubs_Qzre6HW`kBya5>9E)B8O;#&;X`u(uxIZ%Qi?{SW?5Dcgtl!9 zA+ouwWm#NEDTI)sR;$MW?Uv>ltk_`@((#h}9%tL~w}0y+4Dr>kdimAA z^z-e`s?s1Woy*AAzUJj0{?MO2;nEMk{Fh#Q!{@*C{*}4sT>h+o`lqkXFCGSf##(bQ z>>~-k6_!ecu~M$v>v^s-K2{#|gE)-Kr7>e-t(4JmA)l+)TK6>WcHLCIkP}>R!3`O0 z3;=YxJw&veR1_HG0thqNyjElkD5Fj*KVgXCBa;9k8lyVR8uF-I&7N+*K62sr+EJ!= zY$s2*xB7+8Ue`Ef{ewcea`_AYID4l02Z)$7j9_7xLf1el+(=v;mo95JmjIc&Nd}|GDxeTiOr!w`IKc6aJBg0w ziG!}b-zvq20*0tSGflu57igg%gGP_~iyqE1+hU6?9(f$e@EAI=7xSbqZt+Ma^Lc*h zKf4T21AX&l!|<7#T=d0=kTF0?l-Ew_BL)OxhNCgcXp<hzLd} z&e;NiBj+3#A_qpy5DJYN8AdT^FrY!>{RUc_NRqmd7D&O62nY-@gBp))5m?BO0U#Nq z0FaI~{01^)fGpS~S?c?Pft7Z|?%8wNz5e^&|NEDmKfQ16unN~N+O?}64nu@a967)Q z=LUeHIO%UjWQ?Ikh$$jNv56|x@wL_UTsE7}=UR=15W;ocFbpj()oL}PDB87q$H4=0 z*<6kY8FFKcA)1`1dY;>C)DImxR4!)=g?y{kZZ=yJlaqq6PQN!84BM@?>$#4TmBI@{ zZDL}K8?G$raL)T3KZ=}*%6PZm=dt?FAKZA!g?oFo^}38*w4fJmFIK>_SUEq4FzaNr zjvU9%W|?DWa@m3uRvgDc7)Z&qfy5w}h;aczaA`5y7FsyxJ?YZ5|MG)acNn*8AcI+ay;k_f}3vo((KN0t@O`6 z>q)=zYcF@*_?lO|q?X~6APN% zE85v&i!DxMG(F&vy_+oo=>NJ*{*k=sfQ^6wm~Z_0fF2y*KMut3RGU(gE*oY*0w)HB zfhLoPunEQ_=OT%9z$9wbqzxmKoN)xfkppogfEb7o7{L%pprBAGgLKjz$IXRC2~Uk9 z)%KCXG@>A;zz_psXaoa>0BDrq3N=HcVN~Zv1cuCmJ^yOq_aPIy`gOne*6)1k&%bf~ z$1Zj1f~D=ltY763F`tzqbwO67ik5JhphTx85D zI{)I9Ht>8yhcbrF*@8r81_JX|+1-c4vB`8c75) zI@Dkcl97NyqQ0M!tc_?V+44`K9RM&I4FQn>WM^dxj2QWYaL_yUwJ3@X-m^UDwJpc$ zcY;5E?>}t($ScU_y?sZnY9Ck7HDCFXa8h6T?)AM+^SC2q3uCW+`=`e$r!?wqWP45> zB2qxv;>=ao{Y|GnfBm1lS;#YSG9?(^|5-8gQ!uoTz11fsf{2N@-__|J$W2p5Lngo& zg8;+V~hzLmG=-C zL{0>Niija-3pqyu&iWA(ULL3V#!cz9mla&V03Iqp)HxfdZXdm7BZAlfT3z-8~_d;JS=Tl ztxj}%?WyT)opvXk&N{9W_>t{cH{En=v5+4hFSXljX=PbT;rqkkFwA81Ew|i8M3(JV zD&=jm;&_$`Na;ulJ62H~hlm;h_aE3-Or>(u#l~`{xwMRdA9cHW(2bbM)CN5AnZwh7 zVJjNXrG3j;)}d|ZiD)ngNvnJg7-wY27_Ainf)pH(F{YG`wboiikx;7Pi`i+>ZU8xkVt=B9|?%cl3bKP3K5e7lC)p65q6h%Q0@7lGKb9-&Io=xZK z>&-#GZd-P<-s*I^ob%yen9JqQKX*?z>;--h1W~C}Y}A`^Yzq0T<2v15mxr;5w2Bod zWg#3;=9s zls-UR8L=chNPK5CgV;iDNhvrIX{Hc3CyoRNWB^Qt3uJ_Z2-*NJ;>t$L&M$xWL5|f89(N+WeLkyzD=AEG?U7pa3XH{(I6yM%x5!}O+jRU`YK90l0|BI ztQuNM+AQwIu^%!4VcfrW-<@gCGur-{M?XeuJbY+ryfU$SrqJ%zvOvcS@yXl(k z=l63)+lH;T3d_UndXP3q!VgF|uE!N8;Et3=X+x1E>{!}fO8SH5+R9v(vAmJRh_(eq z(cn>TIk#%BoHM}|?*8t6^_A}}eDZUj&Qk7GZ+!LJuY3JXcl@xlvv7`+7TtI-c~PwU z=;?IIX|!6zl<)i8va_Xap^5!Qlj%-iqC&Auemqoqx$8qenx34|8f+d^D&t`|oIiZ9 z-RW4C)$8@M*;J?523;!W#!U!2X2-ihzfdZa@_8xk^+tQG-o4}rk1cn5^ZW0Tl6N{? zWM*Y`!D4dXy|->*3D%vDnGW6+MVaPs|lH|JZB$06+wTmios3 zTqHx5Yj3}(H1Q~#)L0a#Z`}H2FXQ~myRW>TZl5=ex_wHOXT9jmyM0cCp@oJcga8C+ zEXSJNUG2APr{!cyt{-3e9q@*jIuj$i4G>WW12gO+0v*#Ic*d=QhKOm!5IF-PV~j>f z25lrHGN=qj8bW=NaXzs?Wr(r|XXI*oRxm^&1wg=fh$7VFB3LNkLH1|cB7u;BQ9vXa zlL9#dBtTM~_`&y!*y8kIpcoSdc#`TzGz&Q3^7Z#Rn+qSs$!+~Jp(T{qJ5L^mtacv1=e(}ZU*6WP} z^Gi|K%jMl_rQ&%m7s9d}0M=->)>iAed^X<_(c;S5c~Tn_X4srN>>pSjn<&I!qOlZa z?KqclE$iTocX7@-Bxa||wOj5ec-GpWH<-z#EytO!jkndJGYDdzc`0Jp$Dx$6oX)nI zO^E}V8#?Q)>Gd{GWzg1?5^>&x`ha&>za8zEK8Fr1eDj;%f8q1~pDcPN1kLqhFMZr? zci!=wOD=Cw$aL5m_~{VP;e%$cx45F>I8`j>a_IJa2Bz-{&6qP37=dp~NAg*8234## zI$;>@+O=~q7_6sQ=dw#!D<5E2K zqVrPHUTVyj$HoFbV4Ovf@?1BH;=LE_Rmv2y*?y<(4+q1+@VxW(^oPOvdNbvvP(_(c zQILVypwyjuySBPsE|;=k8DRyzV0ybi7ZvJE%8f&nWEzuaa&2w?J@0*Kt8u&%bfH-O zo!|OQsk&zqpHBej`@OII=(FL!e~gGizfWY0*3H%47ykO+u6fI|5P>n|oB@DVMujmD zB4QlG2X3m(-z6%OdB!lEbJBU|{@hMOzdP&&tp*ZN*zd$vPPnJxcKQG)r44Cq%t)P* zvwW$70H@_-N_6Y*!TvGAOM^m zb|3l+xbK%|55)esv$a8&LoC+F{fQ~gMFhKOMi7Y-0JSc(PMxH0B z2!8;Rhb_(q_iOB_U+@^90s7AKhl3YxejYiIBjX61p=2CRUmfVEl?^3n7KW%9Lt_|F z;`l^K21YP;;_BpR@O&~X0%XWIYR-UA6ByJiF=HSiO-W)0V5A4!R$F=RWbX&s#g*t6}HZx?4dat9j?i<6<65MfJFQ3V%Y`)#; zv|3%qvZ|9QGDrZScFMr&sGj=9@!moD=Mei%hg zijVJ@+P=S`OxUy4#0BSdn;qHH-L?IqA3-z(i?c#1++Mb3sslz{zc&~R+--$1yI`qw zKQ66(@7w2Zx4v-mzy1=ulG!i>bJKUf_sZuzvozmosFqz!JDD7}CA0_i^?Jkf)A@8Y z>$oYotol}CXaN(pt5a!(Xi?nmHrAuYuGuNiwe$J(!os4~#%MEM8CzLdV>pVv)0uP- zMPrrnTB9*BQ4I$^QIz&lJ|7md`OptL?YVxl#U;z-GUxBvyR^Qpw3bpR6?eMbFbsyn zLE7`ez@J}QwWU2ZJCpKKxmqs$H?G-MDAAtFa+F#<55zK^h5f+he2Yxpp%nl{d3!;FVUhCy3A z6pTt85P_j#446P9AcAl!;CUoMz{ub+$zTpNQYZN-VY4$l_Z1o=IK7J(Qfv87&glG^YOB8_kQSVU6IcIpf z2_yt%5hsBLIRR5(jMgz3Bt`@}dG-tgj>H~FKKt}9Ear?$jurwUfiZ;K7(8jTV~CVO zB!iMmOcawhqPWfZ(@6Y*lmTRDOH0Q}Yr|~G$Hwf4dXsTxz2`08(cV)mkCz|{>vb&| zOKC?UFvhguAxhE$EGdN`WI+&X9b1fZi)%2e3#+r+r=^tLR=eNtRx0Ch95a9$e{^%T zS|x~>4bp;szb~cmQjTF(CX*3DlA(Uz_gvSpt$x4jjgR%zptrPMcSA93UsO*ST{hob z=40b>%$+;5G(KLolx}L4$>n;7Rv&ZO#kbAfH7wcEm~oa0hhdAEFE8BnsF|r^Xs6eM z!Pjq*g%Z!Y;=<{HXN6HiS{|2fG*r^E&2R{vVSi<%m_4V_Xw4MzZAg`Oo#X%bj`c$a zf9nt5f6@6f_Z-@%hy7joiTJj=(ss;S!VEg~6b?O}k+{t*xY^8{-)fscHG5Plq_wau zE3&M?aOi3k`+iMzGi%n|{8Ak09Xn<@m&P!L{DKS4m58_BaaXxq&K7bDE9-mC*>&gb zcePs0u|io&xw5?4?+w=0>K9#fUKj+nEp6A9LVoZ2|C!08bEU%2_dPI#NruMPXr?Cxr*Tz&DCAI|5e0H8cJ^VWC%pIYtU zUw`OVnK-3>{kc0Em8s&k+2X>%`j6+o`Kn)k!Pvy{;YV$y{n6k3+_0^_|F5^G*sLwJ zy{vuhn}5Ds%>jThrdjK?8r>T{@eMB7sk@yv8%s*5?p>+k#I9qbh|>~tJNo5B8p#k5 zgJFN|hhKYVr?Iwnxbw`5o|h|R-LwrtYafr@DovbBGj85WLuiJE2H@SNd*=*P4UWUW z$VuV^d$2QPV{=k#100i;5E3v%j>KV9B)l=pC;ukBl+N(sDd$K=Q6kNVBO;;!+Okc5 zh)6{JDB0#ST%p;lM{$b>1I9Q2OLj3}q{k?b)I-$`{qXbCQo8ql8N1$P@2*P(?4kb7 z`-V{b$saj07y%+!oFxj;_vh69lhFi7h)f{jF_N-|jTY++Q2;+N75=~#DQEydGbRKw zjlc{U$%O$zZnTbKW{d&;phVorl57<*0*zcB@e+cQRpLcj18_tVf^9f#Ft%wY#*rBl zX=1>c#YHcQ0Rg1YwYC|nN@aO_Gtq(h><{i_PdcXy(Y8!klkP{#HxVJAv}`UtS9CNI zvThI>RM9Y$mWVM*dC_HtO(`jrl?fT&iXZXf-FNPZ`|dsG?6bf9eQ_LnN&>)m zG>YTInBvh#PhGmSfrx1ulOSg9_lFO6PsUk=D3x@TtB9~xs~cO6$D?3qRnxD7UmIo( z%Pg^c>=1SW92C#yBez{+p*0fJf|+1bcaz=m153-#Y)lpoua0-eR8dp<4;@=$f*I$} z>B;GDdPoRYf;$;S9Vb-bf=k+|luQyR3Q&Z-K)CH{6dA|eJa^IWEIj(P?|$;j&;5_z z^{pF69y<5CANi(le)pq){kxwz^X%fgjyk=t$V#!3EX@i|3jmmLs&ZVqJZg5ksa6$< zJk*tgFiXd~yOR)=#7Cf=l3iX}v_x5!FE2N$N=b>#{Oq%5I-NEl?CkWHmKJulc1&fc zvb!{@g<*T4t9`#=%W0PQHNQ+E&hxS?Tdigo1_01(G`6?5f_k{Jvg|n8bsg!ngD@!a zBJlk%40a}42!a7CHhESV0OcsZ7H0X(Rn3k5u2XMx*N%;*-1LQpV9fnNe`_?_wVZ+E zTXDnEbQVYXXo$d^&BlRl>Yyg2T3UXP*>qADOy zDBLDCE_(_+5#)0e~el>aRyt z#g;2$LC7T9+`W7$jYegaf9}#pzyHU+h-=2w`X2YCHKFdN``ae?6dJkJ}3f_R?;o*M|h z2kD*rkA?qB&7++Szxv8g=J+ZofbCl_p+GIQrHIFiK+LqUT#5% zBv47$n})eJmIay86n@}YGJ=_`72s@cY#`#&(n1zRuImm)0|00>8_%A3ptT^+ zG&9pAI(_<-QmW%Olyarej&_a1MN!T@V8*lY`OU3h$$Kz%k!1CjHLmR0FF)5hyi6@m z1wNJ5aojXcAA85+oAe^IUBX;eX6NjM@i-~t{M}#wt{2X}C|LV-|M-a$aaCn$&LtdQ zIqtGU8AT>HE=2)aw6@G#YkQUZRJ5^h?1bakSl_oh$>QZaa+0zWOwbfg=?Ep2ESbyFo;dm7 z3(udgh2F&r>qn0re(u@lJlQ`PY&XuGTlbYB z#^se24+SCb?Ci#Il9pw=-CSB;IrIG4cRc>sSDtxR2+Yz95v5X|Rz;T99e+HVg{^kb zszuYxl}c+h*_|%bnvK#q6DPI$1ErC52WEpU1vby}3omS2$nKmQ_U!L}WO3=ieg7QC zaUM9aJQ?raNxlBUN_}&E;@9-co^HIAUVMJH*7mPEay-n(gQ*fuZ@GE5Zl`3a(`!p1 z^6Khh{0_z3=5Y>@84WJ~yZ`6MqUm`4VL$-pJc)&ZANbqf(OmLh%s*rD5;CXOe3$2X z004l%P$VWd(QJ3}Z-4SPdq>F zVNQA_1ZJ`z8PHnD&8-WZq$Voz(#3DYn`T*7f9dp2C6vSTGDyp z#Hr}k2BMlK)2yLuvsC!1UTYUc(P`8lJ9ga73>VezjF=2Z6t`yhuf{*li2x*0d`vJpaNu z*Y#^bh^W#uGZb%c?@Fb7Kd8!bHjMz~(W6H%ZEkhDov;>eT;6hBcQPDPkq4fijb;n2 zh9B07+%_5wQ&?qqsn<2B#n~uaXa%dsZNVXpU)=cg=<=rN9`R}pO1^V$*kHJUC?B+Y zTOC5GZf_ZYU#?!?kpdj$2em3}y0n*f< zUmNM#UL$uR=0;>Lo&W5w{L2qb`h5VF+G^(|2WZzvglRne^`S|8H z)z^H_^2R5r$n561X<>3N6nCU*z?4@hm<*;@54$lDRP!2!OGmd&5`kNLCDK51`3iU` zy%rHcSVYNadCu||U5~{ zU4OhlVqw5IOvEU0@4vfW9(mT%+{QJls4_+{IF7cK9AdTN?qVMXLBm~^C5KQX@AUj= zg|&k!@LV4al+%Ir$I6zI=g!-<=Pfpqvh-?oM`}VfnoNAhuhksicavE(8b(KtJSY`x zUf!}yT8UW{DJfT1m$i0V&1RD1L{@3X^8#0Uq)nD*08o}CdbE@vJvSJydb4GB_Vl^Z zR3W3=3tP4NbUO3H+IE>#wk%R=ciK|u;r7;SILM%C9BJ){ye|D!8>po0HR{6T{mHm{ zvTF;}hCM0EBK8F+Phf5d38fRwvW@dwnHoHzjz!DdkWQPN({FzJv!D8G|I=T1^xM8I z?~lO>Xa|s{%esEF6AX6xK@696XVYxv1}=Lpt#mGDWz(0~?#?#Lwba%xj%tO0(6x(g zA3}3%HJU|PmPskYAec_4S(-3X!>>=r(;y5Ud-Ee2Wip*QLD1jY(K5)Q#2{crpiCa+ z)7k8ylP8{j=8MLZ{r>Ru>4#1oekcg*aU2`NwICQzC!^7<+ijbwbX?VF)Hg0)Uh><~ zG?CgdCFC*y{l;*#ajSa$uRHyo&zMm`qS1noFMB*o!xABj!eA;%J-5jQW>9 z^#?!U`)R*O{JQhOzyJP)mDY8Q54NZO`k(#kY&Sb}tShA$Y)5p(q{dWSsd)Jtgq;Pa z+TUK5<_=X2@+3O*k)q<4q_A#G1jYI6<4^v^H@@QojWeI(w|uj>;-Gq?oWNaPu6=i9 z!CWyg05TW^L4ZOCl={Z@5wSuB2CsU}W_bk5FfZT{LcEcdZ?7jH3Z9FtBHV+x(E+{+ zK*7ku5ulY2QetIEFp<3}RrSv#UPW1Icmsqwg4xc6!axE5TO$N$lvdcHvO+3}+LC2r zB>@cES9ZNm|2@wK!N8yVn+d+6&|?p5Bubu}WX_`j2EmNTrKhwjg#!w~LTN}M`Yzul ziE$^V+oxVgL;z$003?tSLGb=|(aXj;`w+b6K6)M14gm}?K!pNbjoOjc8e=&(dxktW zkU$uufcdR!Sul7GXo-@qeqsArBEf(#ugO87Bw1UPg(Xx1>@Apc0!ksll8g)#)_O_= z3Vbcf$^b|Ue1$E4k8?FD%vB~6>3bqCc7>rdY_uVjB)CK(YPD2RZl*{OfWz)oVm%0$ zd7O+8kzCB1A(2-$)zJ%6`ocMSWWn}Y5TjS7XRF;e>jy6F3{uZ&HXC85HyR9v(JW}y zooE{P^+^ekWoo1=K_KeFo98y-Vk zr-lYs*h2eQ319oN5|hz*WvQ2>({tvjF_?8Wot<`mQcIn}Oq715T)#*~{qS)7 zr8T+S%p0-qjpWR3?2f0~wV<1oQLoc<9Ou%djm1XO*J`x0GmEosuR|x7@gXrCjLRf; zfXSAfPd%5fxsRSYRPN3qldZ>Nr%?;6EYsAh1uD>_Z1T*--pIJknp+|HW#eL=IZ!M+ zCE14WsG$4IXiGF|D)&#W9IZDyzE>;DVsmF_VYwUUg;CVda=Nk28lmL`mfi+UFUj(- zmVm}u%XNHB#ve^-G^1t%8%5wBt#69U&U5u};EB#;772%Y%Zr2ZI3L(RKTPR&+<+V4itAfyP6h+P&7gk<|iUz>h)MzOeR$4E2}bsT0el_krL_O9i!?x`Ah&63lis0x@=oJND9qL)|;+?WV5 zVA3p}j5Y{FgUmIfnFP2yLYE`~0$B)askC5tE>mkA0hJ{Q9upyw5|~xYpz#K-KQmVX zfWUn%ssNOfWo3o%B}!8kQdaD{284i|7#YNTlm@VXgbaLOl<}&8`5s*E4)9flB~S=L zfFLW`A|fiOSmo6lg$Q~eTJVa%Ld>)LmW)Jnv~-lzN~J|U*9K;${k1i}vM9R#tMcen z0l*g@E$o|LdEWs5Q0~cv?S~l102ZVahyeXS0>3PTKp@bVJ-;r{eNAfmYMvGMi$ zohbI)^lpW@6&C<9YQ;jz+i*n~GT2Jmev^MZQarv`{3;kdk7Q=qrb-bn8Qq6ax%wJvNf@E9nV&yg48B~pe#iTGz zwN?e(t8d1;ZeC$Isc+1@OL2L$(OG#g3q%2SdwaOJu;?i%Y+;4)eNUoiiqdynM10|e z3y+*WEr18R!zZ42`;$*SwRZTB8+c#(!qY3OD~N6!okO*;GdKa(o9d1){@UHB)q%i*bouZ%VyYaf0n zR_o)W*=hvMU~HoxtbOkHKkHk@oe_3wUG#>Y$y(0o?rQC`m(kC&m0G%bv^=-9kn(i2 zC8YAhRz%i$>xt-v3#}M7d2-a5kQB zk@tQejm9s2@^{MYs^+p3vNGj8xI0)&)9s=#SJOLDzhdH7vj0d-hH|_@rMpqg4N)#y z3jjoBJlvU%ca2Fey;uef_s%PwwpU%d+&Jfd2M+g!4;kSO> z`(0JrZ(*)#phC(X`XYbfcrvN}@GHMLjYrpwvNw^pc5H7o{MZ+M%?n%ad*XeqMrWSc zzLybHAPPZ5L}bYTF)*Q!d&N6faQl%z7YqQ7eGOuXd6FD~8LU(Q47Ms!B1i!@5Qq6C z|I+~u@J7THzZhghOJJGleiQy*&o~HpUMc1aYa|j%x>~tPB3dn#k!&rKU`7y#giQ1b z>?XJ2iQn}Ra97*i|Ng$Yi|)(t?A5IjqadlIM35*13n2j*nD(q=UZsQ`A_~O0C+B@> zaK9BXugIglv&?rxuS@TsKrmNxl1hR?DH#;vt@f;#*&>$KG7BPW7|iXX6-!q#NMuk5 zYjOaC=t>m0cU4~rBLz_i07OP($~aX3s_p{|QY=owdi|3nrdfz zKmv~*abLV}i425+Uk`l+SQW)=JU+Iz{F%>uuG?*=MSf{xyVYv35RMLyAAh*nYCQYw zbGy5P<>lVy&iSp){v)R!bA7$L+pjlQPM$nIn?-pR8v|>dUX_&#oh2vdNs@SeP1k*j z)A6_;xNeqa#O zdN3JIoK|?!JGs*dQ7vyycgo%IL&M4At%dVPT|E`uvvD<<&K_Ob3YrbX%`d+&sj_@h z96SBswCx5Lrt-PXW}OG!BpGdB$Jy?0^lTQm!5@9@OAE`rNi?Zk3z3;FH6ClOgqao3 z^`le0EX{zdNkJZ4xj5?g9O*i4zbPuOGrrJ&uk&n=xTI9mW!x#y52qZ{07`e z*bD3JwZHh?UZYc%<@p!3iPCTXzIT57H$SiLMg@D=pO%zQ2T!W1+K+`c*GF0=-}-eQ zIQHk>{)b=ssMg9+(ikg*Xf*3WqJi85DR!dTf+Do!sSo%@FW)kAr~c6@e@Xxi>#Z zA(R9GWGkbTD=K5J%=hyp?JFrEdE$Qw1fT)>{6D&%25(majH{8D1e5}`P*MO&0uXRZ zqSpNZ?wQmI#J%#H``7YSf~8~xM!|xCZWhL%1V(`pg;FSm6l`xZ$FoqDEm*ch%wUNa z6r&U`*MCF-03|CjWRR3p1fT!~Ub~+v@b2g4xh^eNCCy?)aN9K!s2wFFN+paj06;{6 z?>ml;qd3d+vMjaI0N}cAyWL{u_Ml+b&75@Sn6vifp=WGsXB;0D>hR&qkj|9tKxZ}8 z(r~dVXFabJF z)a~}%zz>7EE%P!@F079T;H__eyw~e)ZS6dK`gmp2=`3O}d67+br)62z>-Ao5$y7yV zvgvSGOftRN^MZPyR8|;UvG6?-7`nc63`vk&mo8XA=g(j8JlAp5U^HClwSzE-q9iXf z5ImiZ-~P78E?nFgj>kwWl@g6cSL!5<2J5?zJ@(LUYbYvpY#l~P+&{Uv(+k>Em6yiP zgC*j2;)F*Ib^PX~e710`-aBjF0pU{{!^;%Gi}Bjw!)R@uMxG;0k$0O7&v)1lAB4IZ zWO`IZrP7drg+*T`S$q*8=_Q0XZ7eD85y(VkJ^2G;^w0D!D z?$_`3j=Dq4vpv^2P;G6Ul^_2(fR``DVFDqA5ZK=u8_WeOEw7GnmdPld^TaCf?#S)* zwmzOW681opB_hBjw>ep;^V*d`M-YmD%eg4?|siwqo%Hng#e%`4KrkU{2PD# zZ-Sa<3@Igk^dJ7!#*+K==o2MnA}Gx}|HNm0?_XT9k=CDn0<&=cMDs*YoKJuM>3{e2 zKe+6A&Y9ntRFne%l_h`qKhnZ^c>F!+)o$$M%YxVd3I;#{T1y2|2!SZ(1Ynr&!t8%j zOgG)HD-;8O^IAj`M5KhWPzgY#m1JRvSjf5f&6Te2jmg&%84hrOHzq8w0T9FhV5~KS z_I^t!y`FIp@Z2}>Rk^VHd;_ihW4B3?fj{~F4DW+)_*DoX%e+6UNd$@D2;oQu06{>n zn#$*1vV|FN&T2!xuhGsv1n>E%3Lzv2V`;C(RUi{vV2P+0P@+Vs6e_7CTLvI9cngC< zL?n>FAOMM(0SSe`TNU8R7bnd@%)jdBxawdbdFrP-=xoNf3jE}cixs#Gt zMI$rTlbWpE+S+KhdyBnZWzF+1o~_qw#@h22&IL|wJf5tsEGF4>^YW!eqn@N`r`3@{ zOQn+}X?5G<@uU{QV6^S~;mH#Z_(5$jm@r9Z9nJbm$#%Qp`<}Hn%W|@`w7C4#lb@0r zg3xn|s_r>ue;3od71oSIE=*NbE@D*~0t_72LYZYrv(+SP<0Jxr$#j-ysUHN=6H7}A zwOaV%i|75oFG~|=Sr`VmwXu8rP!yU*5R9MM3J>?_fyL=|JjrCe=7p@lb=^r4uJ5!C zFHL$fk&bZXlGDEQ;<-x@zbT?q2E1lxZQ()BDzhEgQ6yW3A*sM|qKsO($5~WbesTqa z@pQ4(ji25gJ}h_6o^x5Pb&dq}o+Gua%F%2z%csr6j@DLZ7q*v<1f`~UXIif{gcSE( z9uTg{_FM}$tlwcWyGnU!xy=Os@+UqVG~6HfTmM;a`Km&|+<5fD3!DGvKl~4kj(;a^ zr+4e)Y4c+HQ@>l}$)_*;?stFxJAe8A_-HyS?m-3HqOkoM2cU!ErLoY5tHP935qK^M z%<@7AF^+~Dx*X&PIRHQ{M}S6MQQ+tW57H|oLkv|)xrt`!IG*J4i*NBe9`nccuRP}| zq_Nx^k?wj!jhW~1fDmF&o(AWM=)FLZ5#~;5%#0{*>eo>?1OWO~-4(k9n3&~!Uy%U7 zA~1p_3n+1(sbY%&v^U4eSL6OazybagftjtL0>peL+XCMk8TL;p4g#K6gn4?0<_3F= zm0_WT(7LS5wd^cpzaXuj)xugN$`Q<8q&;1{-1;bo8Y|e$2z*-3<>|F1R`N}?@ zfP3Jm+zFUTpoY8AD!5ySd3g?E`O;MwUs(YfU0_o_qV;b|4UQKfWt3<;z(A z$vJya0U2P}`+?G0C4>Ri%)}Nz@;$8^EPy~XXwjB3ub7El2^LDqi3lY#7-ONVa;1F7 z(d~8%0F+Y3n6j+M+APnjs?w_qu5?>u9g$!>7_LgStTwl2DjfnqUKZ@Q)6lJHzsbsv z%Cc3<2BX9iTk&YEw@{lfb{fyt#L~EGzc7(UTK?Nll(BKiUBdb-i6j=DucFjYfzx4p z^jL3axLKLpt+kDTh2CPVRy+RSk*A(|GOW8o0RaI3A&f?2MA2+C%QROS*VivHW1~^e z@^TgplyKXv?r1y)ASu=M&Ngput*owiuG-k#@qDj<(iYXu_Mpwsb7XRM5>Hcb{IymG z#v3R!GlL-Fia@7jRus9`$_kPS78e(UfHcv)h2Cfyd7hijX3bW!*=R_my)bz0xfi?W zxmCyVf|u}<>5l3zSN6{gXN`8Jf4s*gL>$9n^^_L zBz>^nQ?56uQu&rux6!z~vE?CD<7m0of`oRODqCx`cGJoila1Z>$-_I(ueWRN;>nW| zYZ!A`R;6b}#~YqKzZy2q*L4Sc&n+y8#ZKq)#r1m(re9?+0olC_vk=%?xn3cld&n;- z$)Z9?yd$^M+xmFk1c$x( zqON9584WMpXqSdU*1K!+hV2`?V*0!{urtps(gX;>V1WUF5%{(S(7DS1a6dG3?j927 zJZoYyRfUL_fe93{1_S|!0Y2pFJD|Jg*e_o6tI`akhr%AcXy2^@aKQoN5BZ}`TwbSHTn;8&rcA{7KlJd6odpo za3#pubM1UJYIx=up8enN@3SYaap{@AR4A^kf1-Uo2?2~kN&x_bb4gZlo6g89u7C3| zh5!Jp~%yRY^pcBEuu(U7)O5S7TjAp`^5y z08CX?;QIjJXs@aavdq%7DvfrODQ&&pB+I!Ec72-lz-&y4hgZj0F11rR1(rsaP#0RW zD)TZ6&@>h8PD)>)6CT1A8k{(S2tubR9%;M1vbwl4eSWKU_z0pJsk~Ei>|(#aQ(AcF z)FWwDlx219xwAotd1((VHkHyvQEYB*l~gv|Ah!isa=gHCyjob3N-<&_&+@D|v~o1f ziokCIKp1+~Qk)K@qW;cs{ya7stzVxe#he| z+_GZJNVcklI<;Ax%(5~mO*$LSJm1q=`<^4DU}kGfmYGJQ6)yUt;Q*M3Xk-2I(IabF zKyo9hJGIt{rH&2@!nh%;aT+Owxmga|i-*IU$_ZC9Q5`Ark3`&sqGA7AI=`RW0M01}vah=K@;h^^(a zFetFzsPC7==x$^F3tNu+WofMAD@1haCryg`8#Pep8s8-m>05yt={`S_zSItW7mC9UJ-}f$9%vP*KqprO5z%Ck-;uJ008}3 zu*DdqWh(#(Wo0TUGzn=dLTdq}z`ddLmUaOLIKUeT^GBFLFwZUE)qF{ZuMWB9b%=w2 z=M@2o=CagMC}J+F${3@CB1sll%nMY+6+a?-*Vp^4f6vn(2>4Ha{AGw4_XfdeVQ!ry z_84VI0!Ub}2sn><1Ofsx6R~_1EDo5Mm;@u-?|=uciFqUf03(8Ausm1SyNdnuGBX1+ z5u#*)a0?6bYiE8$A%KYamV`C{010538NssM+h|1Kidhj_rfaJP#obTOj3A`2!Xkho zDA*VxAa*@>F3Do8ab4G1D$BAz7_6=wF%>&n152%?R;tL2?}crnrsHzkp>i0bqk4nt z1(SEY-XvvTxTO&}s{$R+YC+U=X=jUmm{twX8&9Xo_Xd+myVY_6-ANjgqi6!?>{Pl^ zTV6rBy2w+{7`NsK*4v|TG|dmMbP*_@rYGKZy2z`>LMM)A=P#ar_@Sf2!5~gzA$2y3 zJKb)Qq`igSa5(Js+T-!4URxXv)|+*W0<_Zv>j8}~;qoVi#ll1%HJPk%vOe9Aj=*jcC^I=O10tcucz`MR8xMBj4|ad)@B zv9T$H?5(U-6$y!#);BjL0;3!F^=7-424zQPQPc%Js4~Z*7g^M*9yDAfrj@z0ec92@ zp~cSD#mi}1W{~nY`cXBz)44WOQ~#H zxrbYAfW~syANtG73+JCZr@d9>Q9K!kWkSYokqn)Bkh)$kcyw)LSIito4xiilV)Wvh z78m~Z5B~6Q#y|hh|GCiS9=Kt5cq>|K2L1J_D*lTf_@|@M<^S)e{;_hZo1TscqJCAS zTxjVZBPV;cu72n{UB7iNqn{=Fd%y5Qqy7dnFxxWAfDHf$DZS8@ zN&tWqNi@2^WF5~zA-!-(2nG9!I{+{bdj#)Ui|*xn7_Qoq-V&M50Pt!|4R-)xnWPW^ zWG#RMB^_%`#g*Xs783&sW+Gq&byG^-0S@p60nUj=cK$@m*JaB8)x|-;^NK)wCaXYT z0RfaGfC3l@g;W4wxdH@~VBxMWcK2VYr9v_Ar~g9EM_%$4TNDbInXHvc0k9=2rL=~n z6w-oaGC)E~1P~RIzWJ?f=4PB^1+Z4ia~+L@hRro~!+X)%ZKpIs7JJGJV!k_Qxni~+ z3RHqvR%G_%2}qK)h)hf%QAo)ESy{TSbUh8_{h5#?C`L=n3>6B2h}H^gOiTt4Pzfd$ zs5D9gWDN(>Dg=S30D;wf!q>#NlEbrCwmgY>UufaB>W&unc2ebBiW&$Qz{Sc~ND3#_ z5=o*dU2OtK%RQb3&nj{r+K-Ig8wEt~_mrhjm~z zOfX*)wSuxiktb1dyth1|a!|ypk{!*v<*4n{Y30zNaWZ=H93NjEaUToEB|!$$Qs+tB zYP(W{w)EteK2w#rvUD^sO}`1}pMM4=NiL}@tuaMWxE`*oEI5wi)Pgv!l;e#ju~5$L z;8MLIr_px1-SORKnbSij7B8+}n3pW|78dd>6+(48z3D7Edi2EB){g7BI+$+0K)?N4 zUwY36zBiqrb_|o{hu_1F|DQhd*$W%H-|$Uu$!N=SO^wIwRaSE{mwXgZVa9j*0lmSky^Ceiv}I2|oA z$)Huw3%eY&YKtPx@M|PJJ*Olx4Zq@1Hz*oE11VY4SX_DUOCon(pju z2fiQ8CZ(wmGBR;In`oAeg_TNR&kx*Tn#>rSSTj#Ajkj^~wU56e-f98A{`x=rCm)!O`T#&gMV{1J-c3&z^{YSnzc(f7zwvj!=k}JP zwIy--d%b*HKmNJ*-now_L2_eLuQrecryk2R8CO+lgPL1wd7VQyck(eQ7cs@d3II56 zuo4g!x8Lqyf~t5)=8bI0cC4MfVoTTCO9X{=_dEaEyIbv={;N}f+_l|UiTGnEknfJ(TTQhyoD1D@9a(z25CX;n&%8o{-B zpm|yfM3fSN_w3#9zWCN1-~fNBVeus|-gtS>gMjCC3V8>TwNiVJx#NH}R1}5d zLXqXQTFrAjBI|1}^nI>)+f*yf#S`e|c~<%0c0*@4%eMQ0C=RW3otY`DX?jYKLM1${ zDOJ09Duf6tsA`U*U4M6mrD=^~N;9mv9D3GO0)-@@Kvc%~epn{ebUK_)qtmA!{^IAK zI{nBarc@W!Ux?BefYLN|Ja?ZQTTlQ1AOJ~3K~#8t((Sg(iX6xFT;C5u2t=0V(`Yaq zP7fVEG#-!BEUwp^mdJ6H>$#q*7Y`pA4o1Yb(WpxyfT3P*4Ts~)mo~rt&wpK#Pk#6J zKK9@I*FW0qf|gCG$eKb*e>O?q{P^jA@iYJAZSOcj!RCRm;nZmoM+EtSk=tk5`*03pZM>`;Rmc-F4 zZnkPd!s_a(>-a@c4Tl4%9aCkUUTaaeqbT0k*gmv+=$eLNaP1cloIT)@JCn!q*Pzo0hbpha} zr_0l7wp|7Fm$w|18k&cM28qEHA5UW(C%lP|r{B^6SCBKLaI@;2`$E{e9ZFY!;T_YH zzqkIvKnZ<^PCm}2`*ul{%6vUKeFaCERe z{e_?T%`7gCo?L9S0#n9Cl0{>Iz?4o&H_;1kIyLO6?+63}V99&B)yT*}^uh?$0xTQK1BJy4>3J69-u~)8tPy7TF$aY?e1Bf7{a+M+kOO_=Uv={1t zRJBy{?3EzyVi9nrx^8892ttw{{wbj?NTQPGRMjWOAy&R;!)G zY%%aNlN2UlI~h*>C~NJquDb^F%2(*ijH>_?RYs!plmuX*sL^O-S;0!wTlLMI?QuWb z9c`{2YDLlP)ai%%qe&2kWK65ouGgB5<1rz#^?cX$m)h;tXf#$*96NSoPwGl5`eD?N+Bh7%Qa$-+AlX-dq&LWHQaOOi00OrGzX^2E);ZKJ=p> z{?-2w&1PAiNrtRQ>y5h9eq}5QjN-&|onyz22BB-psy`epEiI&J<~U9q$LC&LKXv+{ z3l}bo6%9wzR-@Hf>`g~et=shiwQ+gN(QjcZah4E?67pzAe|t^opw`5(Z8HA^Br=-0MWT^hG!OS zfB4^jXgJuuaCX}doxk?C{!(wb0RXc}`iH;ynaL>bUrw2?r=pdG;agBfZwmCwGx5jc zp{Y#iI^lc2_Wd>gs%GU}zBw&tpMCLn{__w0g|Ms6&c1-&^SFP`5XZf0*;{vE&j06+d78N7VfZq6fMzNJ~m;w1?H*=u3y=>Vb< z1e{j{078OvG!lri5@bOhEN>2QfCF5`!HDpB#KZrC8-QToPyV;b9j4+1gBDUDNn{X6 zD6O?bcO;Q5m;_28LEO@5^X0Kum5aoJkx@&jB}%ji3WOvgEtI+9fpcwjKN2W`i1=!- zz)=Vw$;iZDZ(Lnj7811-QqCiftMBkvCCP(`bJbVmIj>d_3SxXo)$kSED!l^$X;vwv ztOPwAEjrq)Ebg+!vW(ND(WnU_$Ky$wWuE8xo>x^>o+Jn)5FIVhx>9N1@vLXsTE|(Q zN$WZuRzy=%X-TVXd2wCGMG)3du#c_*V=+@gdeTdCGuj;FHR`ybDoR@OdY|3Jw#b!M zjRhGtgRJyrV6_nfJ;k$VYKf$D>h;=m8a2C33--tZs}DZ3G8k?eDv~S%oY&qo7?eOc zzfe_Wvox_>0zj)-w_NS+4$>@n^wBrRaU6vDxiin!YVF}@wzIQU6lGPJAgC=ZE~RnK z!f34qgApP&n{}ZRVjxRD_jCWc)9x7qRaJS8KORqd%R!dLl-n%Jw4+RsTO$PG*49ou zjlxE4XKQeH?NHzcO6j-1<1Ix|99dhNj0cZAdMI#xL_B%oxRScaiiPg-Al`A5@B8&Q z&OA4)HQiRbJ(&)slXPwEP#h;g;Ky+SV9T;p(jjYCR+f}fRb|sG%kpy7andO6bed9# z$KL$tbUJe#XD}Sq>$R1YrHyl!0@n?Ex5N^PVzJrkDhD?Esl%!f&XP3C^T!@J6&LB5 z=gv?VPIq^|$3@+ z{fHV3rq`X0iOE&~{+&E2L{KD@n>WxUNzX5mK~Qg!&v!uQ|%Ohf1eOGWzJ}J}kdn{os#$_g-%2Zk&9+ z;cFIZq;J~Kn%79nXqt=`SDLP?wboe~_5NJ^;9)&zeQ9TSy`;@`8KiG}=Qrz)+S&X! zrlQ$s6F@fU=36@ZJU2!lARu5uW`bLcKg$CJ03-PtC_XDmQb;36RcNRJ@D0tUGb_Z^ ziIZ=}#5=$N4)8|9LBR96L+#h(v55wNFF#zEx8D31xnCeJ5C8-N0w_jggQQUiC0Gyv z@SW_Tq7X`;lCZDFbGK0s(o5Lgh#-KaPykkd0Z^a>GFnT(KrfwtP@qJqBnrH5%GC2J zRR92*(-7VNEZtat;yWNDj{YB{VF-x49b2~>n@-am{=M5rUc(d0Iz9Ez1)F(mW-#< zWZFU{Y5_0TN+8u}_~3~uRp?lhLaBz9O3188OOr1w^bm0{8m=5#&Zd<$rFK+VRf|hY z0CLbDXzfVt=S5zWHt<8OwRV&%rB-@<{ru(4jiu$qMx(j0c{z!5sVGU3TF~Cy-j1SZ zWo4z)7 z?ge3(rm^pNyF1&%;aE8$a6JL)ZEt_eWHOysN?2n(&vP6{dA>qXZ#B!ZOiS9`*&w1U z&7#>>SZ^&ZI`e3HGKtDEP1EA!$y0;=;M7B>lO)>N=^r_IbZ2`YQ0)#jyWNh~dbdC5 zb~}%pdicVHjU#J^ceggW-FD!(7YCy_PL`GynqlpkuROzPH8hFWaNqRM>2P^b5#u1j z%R@NSTb~S8R#vsC4AI8=h60?V$^ZWU{?aT;TB7#ZKk})tA@7Q?r-It@6W`p(XA99c{^HO4uvEog{-JODgLJ**{H`jUYF;BPVj`QS zse_`o{4zYf8=ZX05?}lc^n9o|zpY=$mZqjXKsmkWW@rIP$5bw6p$rC6ao!^ zB0$N4$cUG=FIWgA6pB3~(E9;GkN^^acwYTNOkC|53eCx5fQVY66zB+$aD8s;tD|IU z2m!7p;TWVP;L4EN^X-|NBhBBHfaVqnI3+|(Wk8ljyW=WZSn9N$T4CVg#r4I-g|HDM zX}Y`H7l@wkk+l_3)AcM-mY0qe7O1L>?|FqZN}#mXSWAw{5cA4#p2}WOY>fYZ_TD_o zvaGBV{l0JSedaqy+=$4jGPAMX70I+WMn9? zAg$2GXaePMmK6Z#`JQ!FDcsoD41-|x%-MZQ2j=s9b$y+k8xE&sQ2~*00LBuM=PA#Z zT355#tjJ3eR%|K%N()(R6EbeDKf# zqs!TBrnPA#2>>wjNB;aTZoc{E{_-LT@Ix|A1fHjqD&{i=L5SA5FbD*?D2~D?oJ=Q; zIBs_q5Jg$)`|kU)v%I*t&|B!HX}a&gk=4~RL7Z$3woV>9$`1A)*mLU4Nne4ds>x*B zYPCn>O>GPSv^qVbo#%TePp#%z+GsSU(=-T!vd}9lD?-XN&6gJ!{2(}e`pjUk5r$!- zksLa7@XKGiGm4{|Zn|N0b?wVvzN_7CYHedg_JN<<{fzj3) zqfeb$jXTL`Z8EKLmJXGxAp7)J|BQiUz)_?5P0#$!(0fRnQ**<-D7o?FudhWrh;%vi zPVLFIwRI|tJ(7G$1{a4pe8Z=4=8nudv-S2Z-B&cDHULc0(Z@gk$5;5Ku;Yi>0POP@ zmoM&pPc#~?7(nL;aHVE$i0CKHWNAOHt9)Jo7UhKZA6}e|v&U69W##PScYNr1H@y4` z@92>rP&Y&`_dWHc)lcMAanW^_m45yW-xvpt^PRV-;Rf!b0NcaT;NH>DIsnK22Q zPHjA+Ah}4%!_3avb9+yMYpSh7mWY?yaOpS#gth)tKmooOBm^UCXP6{7;}|PuXCU-} zz+KW}VHdmD#n&x%3!bknyy)j50cgN|@m-JYLw!+b6d@uKFjy4e&^hOvL!erjbLnqz zi~xc_5Fy&Sfj~mIE8cm%5Ed95NJ1hYWF`l$Znh90AXoyxa}LZq4IO5n`cB|6%d^LW z3uDIx02(&Vxtb~F90NE>LJ&$4g6YCS>*>nj+6i<5aEz7KBuJ6K+S!g78Tj&a!?MtY z$B{0Z0;X-RM69-Ft2TSaP1jE*)8TN-^Ss5yPHjuAb=62Z%|-_aiOATBga=SDk|Bc1 zpe|4eC#f)ot?h=%q+yfO66Sf{LF=)S>{qgMl%`V|`#nF*I!!K%U_AwrW^bGFDv%x; z$82OQ3#k=Aqh#%c#%jkL_C&CM-sa5xGQ*w{)HdQm$_e0C{`3o#yHN_ut>`b(dEbXVckrHyojNuM8~$7V{p)LW&3WiKZhR)13`%w^l@uhSxPvJC zxZ%ew6<@l}Igi?t&2jpccf7i_>|K(bb80;KxhY^E~gmBg@nA<{$iDf3?t0lqVin;be@i`@&DSON~TlETIa5CG0z|1=alAe?2Wb5>C*28m#S!fG$irY#g9uNpr zS{p;Qv(Od8*=QwR8G3Nf$?3B?x+oiloX3^c4#7s4V&+u@X;os#;Hn}=bZ5`5D^Gs@ zA3wKu?}`gyYilT_yZ-Q@`|m&T%xB&@o6hp0tSS>lVeKU$BueQyYlp)jGZPUZW_iA{ zXF1KX?d?r%@-S+o^I4vyVeAK9kflYt(_UO$@TA(<*i7PB2+?ddE0h1ydwvn1A_@P) zTi*88x4tz?C(UMSJ}&}4oXw|MI*#I~Ec3nl_V~U!b?S7p6)PdLEIWAUfYwGS8HFJL zOlR{}vpE^eOqQKqJ-K@3WD@&v99Cty*iA^t#r`6Z4cJ;&G}|#Vl|_ZNOw(-j?ArC$ zADm34zV9D6u%|4lz>AMue?)n7|GoFcNw~GX)$KL6wzmS`D~n=bq1$XW_N*)^&l5z8 zi@m9~Rj#{H(p~iT9zK%#Zjy~wZeDR;Sf8HQSia?kPkrW}XR~yg&RIC}9#Yqw2Qz5c z{@}a*Y(6cP_qIEo{`bE8KS#;3jGBJZc+9uJIWrj!P*e-c%`0JW$xii&J3bU8;g7xR z%{?~p9Vk#dxV5J=0D!Hy+X&iRYn`0+ zRWQq^PHd?gwmLL1uink=a+2f?^HgB zkD1iLIS51so;>?$AdER+qjhDRV`Nl-_5K+U+DE3OB0L?w3cJ|FF1}{4Tkw3XK>Z^< z^SAYpjQC4V_l2Srt%3M#$)0$I1A|DdZ7p9Qf6{GPujMVYt zC-&~$tERfrdU0_90m~|nlepR*w%e`6r9^tvXtxjfQYvYUZAt}9!Gs@cru!>`T*ZE1h+CdgtfvUS8@K2liD5VBZ5SOS7}GIC*r_l6^FPWU!rm zQf_(2kFKuD?OPW=-tQm2;pN}PY_7W7FcKGKP9Dp|b^DFi{p6w1=KQyQLqG8taXmXEt|340;m>3fqfOO{JFj~F8!vPpsR?^BN>*O{Ejv6tBpD_E zkTjQH^Bw;s&$dtZ|8h87{q$WQGd&A%&IMaVk5oD}f;JLPvvCRIIB13{9;e%n(uuti zG{V;F|JC;+ViGj7a`xAE{Bc%f0Km*;l>>6~PQTJsKCb+j8^-5(d?f)s0Dwpy#lDn8 z&aq=>z%i1z6rrtgr$9gp3|ExW^u&S4=!`=F=sD-m8c%_9 z(gFfX24rTm+EWmEig)_u4tBy-p9X!=E_QJ_5Q76|07gI|uns#nPI^A?c)$bfkWH@4 zcxo3{hTVeaYXY3ZOMfRsz&X03KXR(W?3k@x_7yw7iB}uDA+rP| z2T(UFga8nT_)sDz0RcM(LgPRn5rLq(0z-#bld2GEs@oH_!@eX4>KV^42xfH5=m0De zGde^;BuEena1QA*jK9YX!xmUx*rsw!4$LE5vY#Ljz&aZTGRsRnn|=N>pMB*kUh&L- z`*tanF@rI6Z~dfVGtM>~H8 zA&8uFzV8#Fkg_bxyeR5q+kVkBi@~&`qq8~QafbX+|N6z*b!y)Ti$yQI^SB;W^7cKl z5r!5sbnL)61h$CeTpi@$06=R80KTUH0$p0)_viEZ?8LO&j)Z7FaO~Kvx7;uukA?K4 z5L#D35XEs^6nS3clj*F{h~qeEHj=I3=5RP_HCmlcXEsYaowhM7j8oDZ4#&+#GfgvR zEfP*AvtF+!4Ch|uJ4h#)X(tS+v}6n)77=JOH2JYiG4pDk7vE+VpWx%=dGO`H=E5U3?`GT+wIh; zh*C;sHyTb!vge7x*})E$vv$Wl7<#|?B zy4`MRV`tMM3R`KKEiWy3zF!svGv4vVyOJb+#xrizmGOk~q_?rQc_K?+YP{2*_@~Aa z2Z@L3((0NT4_CMI*48S5xSp>$LrDl~E&G+t^LbSvU(O+*7`t?6eDAU2dd`!$(9;fd zsdFX0M%W^xtW4veK_p}lA(09b86_%iJ^bUc+1ls%alUkj0kkPU{>2YTQV7^cdaroS zw^vJCE0&IK#?O905P@tUlTI$*~@ zJ48DYB+*Gi=dc!MBBB)JkrPi3C3zRSc-+8q+!$maLbe(J5Y7h%(r&eLb+KFUd`;ll zKOOi$4*0V_`IM%EDx14=3YAW}+sm9~MWUh?9X{oMXVv{j z#mE1#dfvgJ6DFw!&(nJrP?wNZIsoZvVHQ|t0Fd2IEzORCz+XGNy0*67YBV-Cwhmmk z(qHOLhQoXBz5mwRpRu}nb~>FY&u=!HhYlTNhrXwrv%PMwD9fs<=JUDM##7-!uah+5 zd+$A(rCGbx+1S`PeE8t{+L`|1LJ)*XsU(T#=^WUlS+>ybZ4OT^g#CWp*v!&aP&BkZ z6VwDKGKgc5&a>%c&Wy}_`t+Iodyg1xR@c_DbRKw3sZ_VqS4shDW-g18*+!v17;I^+ zlO)l$THjd9^I5am_I){-rmbd6sbH?B?I_gRnKBO|8F)Uhm4ZA^<%MgsTS*e1I<+cD zv|5Q2>3Et>=QC?`5=Uv8E-&{Dn<$EggORRGtJ%?p3A{$Dxw^W#va;Cicb1mhQ505X zde>cFWoAEEK5^pIzU9TUcJ!lv`Ugc|-twcbznr?J#v|43NuzV?>%KQ?G#`2JRfqEA zfg2XGk-3~hK#^%%IPjjxmltI|P6v+RGk5>hE1&bm-opMpFZos#CFi?3kA#exdtUas zcy#*K>8I1l^!ntvanMA-M%X$xz7YdgCM!)k%ch_G>c`v5%JV}ajDyBE-16#Ae)-Ql z4+m!_8vG}anr`U-gr3d-FvD^Va(K|9khJq|HUt2S=-QIS7~y<8S`C3Lr4$4ROu!D9NJs>tI%Vye zUd}Fd@uW{sxuyUBAOJ~3K~%s9^{d3^0x)WBJMYNRb~cuGtDUQk-Gb-oNB4blxsVL} zg%=m@;8S{PHekU30)eZib9T&h+0uv41%wiVFRAXL2w;F6ElQ2^HBbGI=NdN_Q3&CP zG1E*05|M}n2!Ylyuyt^i!m#U`IDcM3Bw`6Dr33)yYBC@*g99Mv>{U{=A|j)>kXphd z5$x5fsGKoj=;uZ0NoA`-AhwgJoTtD3zTZ7|{65d~{^oE0?)TpRfrZ6H3Z;}s!XlD3 zl`$quQz0c1Dkba1LseB(RXOYY!1sM$5E*NowbnU7W)I$!w0 zSE4Yy`58CP=W{_+~lyyxd$_x3jhQ^>8< z&iGyk0H@C!`{r+YX&g8FFxtO&X*TB|@b~TAi-fIqQe?Sx&RTQk%$cex1yK}+Nh97I z477I4Yy-1*&(f*W<#0G!Sy_$(45LI4wYnYSkcd1_&1Un!^O-5n^1?7Fk!R)Ewe>Iz zg!I#Snq_5WOoZ@Klxt*t>Z_X01z`^)$F zzPH@JzTaOIM9;W!v3u{od^jHrvN>vdh3c9M)$J%`KATkWR7UNq>*0Zf$`>SXb8Sbr z<4Zs3Rfsq^gO3a+1%RqFmy-Tn+3Ap^2neAlbH@%5)gu}^0AQUN4o*2|kcA_QNY=rN zU-gq_GS?5>$IfQuEG?(!k57x)C%^I$M10w8uY1Mq-*H~XgGl@K-u#Bn@-!R%_Ah?O zi}?v8`IIIdr`sClz6^Q?#YLJc0H~Y-Ms~FvAHVp(-;2}mjjwDrn^!i7F$7-Z1dE4z z9XyJJvyP(1N6KOVmNEeVgWwtqc$knJ69EeVz?x7%#Ox3mk>Q-^2%m&$#4dL6l%ak| zca{oVlhsKP0e}SubyRwN4DR-Mt{Qd=o~Ie~AUyvI0Ro5wb6~X#yC_GC80#X zD@z_l1c@XN2nDf)b3zn;nDV}!eO%41t|v@l3kVEI%xIC7CA{znylR30I(HXb7hTLC zz>)L`Eeea)7`ChhK1!J969J-RW@b|_4HytmB1*VQ1R;{rSSLt?o*d7nWtjnhABF$! z-~BIuaN@*?C~n+x>kX@Gt4gV|&|AZ`l|3s&D$gd?xs}C*PPc=I58Qt|ilZcn8;yn# z#E!MmMN#;^Z=GXi>l_K;oORA=trG&d)E*H#K$9|0%F))GfS2|z2kAI3oocnpwP7Pp zW(h_b36aq{ay9vc9b0RywQOy(m1t8LT_V!Tp8i+9d}p`Y7J@uaEi5ezw@2+xtJhOy zVMr)MjKWX~F`a2+tmnxhFUONu~bbc9!1#xqog;Pn}te)2XDw*$9P?mfw6NG44Ym<^VX;djwzs#Jm-nE+;bClmvzur$SE)Sjz;;uY+>%w%i`oG`x z!S+J@Bme1**Iy^#jh`(heEZ^S=0p8RhX8i`#7rZv9K*q>-}t5Pn~nw-+NLl=zklEj zFZsdgWbn85e6%Q2TU7P`GILSop&vKGW+UtX9zo&0$RMtVO&P?&vtHH>2oTQpuI>4WL)^1I|yEmwv;XLt-F6fk4P~ftxd*vowVZoSo5$i{?nG(|XV;L4rvDA=n+l z8(uwP#7^GmPK${UX{Uz_vi6K)!vGG2Km;MKRtJXJ5CftU3;17J6Bh`@ULP?jJpR+*rGB?;fpnmd}g4IJ0_I z60|$5EXzF=q-jbddcAJ9+c|N1{ieM~s!H(o>Z0M7zVc^aYr0>dC+R#}>Z z<03DXm-|3G8jZKMhMuRABq{Q2Hl6H0u*W&DhBr30JkLv#`0(MwLW(p^*UqjlFE52* zptbhAh}o^5-N^EyztlI{kO0r~hr@9r)&QW5<_h9CwpJ?{1YwwGv-S1uz5DhowA;qm zvdp5u9}EWD+rxRD_IurVnpThlyVKm*@Oz!*Qzurl!gagLcYpPGQIvU}x7)4z z9$aG8S%+eyAKjwi%vejL5oNld8HF%H7;Hu`e+yaVJ&sALyc)*AV zaW?=!FGeSj3kBz#1{hsspOiWUk)j~JsG;GUna|dpGgVOyho>1*5*L>ih1st5EH{tb z@|tHo-xZm=_fA_plon9SctnuIFMN#%V*p?T5j23%Z*{M`VR=3tJia8KYWg>K{YjzI zpg~utxdH%YU<2Zd&y{EV3za-|2WdK}j(%l8pk93Is~S;98=aMN0I<$c7-N_?zQjIL zE#RpaTNnO}k4z3o00Cg_(6y~dEjWS1Y+K}rG@KrvdBzTNhJjV z1%9D*md*Vj2m+rS_@4B9Z)vIT`C>dCXIaJ$+wDdz+VMQ)d!BVx5D6)@)>TzGYdw$M zIk64c9cObd2&9y@(a99q%J)rGp4q0NigX!xepN6o_5`oX$<*7ElxgKqSdi=x0E7_i ztOH|=1tvrUutk}le&CFdc*Bvy!|m-L@Bm=n-hK1=yez9}QQms%t$AK0abq^ir4;O_ z*Xt%pm}fZ&noZ~6$@R^3M&}3e_{rm2Tf>`fI&$*lnK%v!sNHUj$1^E}6!PrZ^>(-Q zzynA3?Y((rslPcGV`+QKOESQ6b<6XE$WMwg%d$C<9|VCmRaKS8PagxM8*jV;fKHxR zZ6poPryz`+v;F>(F~%4x1cgB`9F5o4H;gv7J@Xc=&0sKE=(W$BIWwJ2ecvyuvPiWM zAP|+5h!`cYtZd*%n)T}H8L*C!i?S4?gal@u&*#7}-5w6MH`h+Dt?XNFB}q2VItwdN zzy8zx2VS^!2C_^?(Lz;K*)Xh14Iu89>2zyaW~HB8+pX?} z#REU~Qy&}*j{VNB{0PbN3K?9A{3AE-D|LQhJ)rP!m|^8mQ^4ZQjc@X3Cn4u?<&$0# zk>7aLbKeyC4-@Uor|Td8(|Zye+I|twx)%oV^`CyqE4;3(IfCvE40kc!mLnH!MGp_4{EM7KW=<(vA$c6eM9U#=v zstyrQFgmorj&}SKu9{E*jUcH+?FSBI!GU$o09>33|HQz|Dik``Q522m6I(|GIuiuJ z$3FJ=uYUD6DyBEf>O#BjN%Q011a|{Kd%U~#!V5rUa zn86rpj3H7=3M3W;d-pCEMX|j#e9^yp;n}sdIF8aZ9gioaHc=cK!%F(IS?+sYWekv0 zLXAdarBp3I%F-OjCP_S<&U(G>Y?d-xX6u}l0*@X&AxJ9eg;CgSwHiqyN#aJckE)n% z4I&kBucO(@ypVei=9NdJJb>UUb5Wn^J3^ty|25{-uArT(&Gf*GDP>)seoC#yS89d_M{!>A@4W0U)F#XsWnzK5_>DoHL{Cjmc;e zI2ZB~2}J-ZB6o8s1r@S_X&FLt^*4@aCVzvy+pq-T@o^glKptzKc0 zPo+octXNoXJzmX~(+mJ6VaaF*MQ4*0rL`H)Sku5twLBvFYt+N1^HVfIs6T@!7^E6=#Uh)?a0&Yut z_MI9nvp}xZYXS)bBB68c2~qH`9Ku=4=$K1KY)A>`2_YnbxeTREFgbQ;03@+=Q1hnY z!h+$#-p)DI9RjF&l41ZrA)xjsco^{NdFwp%MNS}y`d=&qAUS4XA*@{r&T;7;_xCd* z(vH^x05dxTL~Kea2&4kZfX0y|<9V6k`Qu%7lHKv3W^h0?X#?0I6Im*BraTIwh}jua zDo@%HKYi!jzx;;pniO2$;>v{d@M8T&cn@o%4f88;vN0bfuoF zAYNNN(`~of?bbc_+_V3{o}!quvxg4dTogr-8i}gPt6pa@n^&Il+nq(J&=_6hSrB;L zUbD-Uk#|}zVI9TNhqczub8MzQKD0_x7eGe**G1yTZ;m4w7I@Lo)kKl zzUt})i87lN`8=Pcn@JLFYz$E1;9pjgM)Sy#8-NK&1fHy_^vvng!@)+Y5h;LTHtTg4 z9g84{*?6s}kJc};GLHPs^|R@GUU@;D7Ohq{X^3vORaRA@(=buZ#?sbceDM0~rKB%@ z>2p#-1H?R?wOWCoMEcqCzUJ9KwKv`Nd@1E{IP7-24?g(d&-~2KeBc8gkW#+;-S6Jm zT%8w1RT}Y>^o>2wJ9uPyJlecc23Od;q4Nz<)O-GZJsz)LR1YA+sbe1q{kWEzG@|Bf zUht-(D&F_*j|2^T0yY2$Aj5d&#owah=6Q3rs;W*rxDJqCp;~5pEq~7P-_hcs==rad zaT9g|UM@Xkp^$NNpAik}Uk5~C(gvYyQC+xh*-7#V+bUuWg|q2wJmx3l&!9X%2^xx` zaxCVRW(Lm}Rq34NsNw(cfB3G&mG(s+8JwNG|5tuCn^y;qEGOOmvtIQJeq%pMn!dW(stz|~!M{Gzf-zx#&$tSHoCPD&h1&|5TGoJwC~K=~04u?|3-~_|sSb7@ z^2d+eg6HYM3;&Nu09xQL{QN_t@SVPdWgzRUL3b4mjW3N0C+u@gRm<$u<=xUQYKGur z#@+q*h+0HjlSg*^#{hvrq2LRINQ}VjEIYVLIXn`DGqxEeRaur_wmpo*g?j6%-~YL9Foq}F<2aX|o_I(0@0IhjnB zm;0wro!Z*k3Ic`1)9JY1?7Jj;SG2!d=r&5X6JW+#{#pRimVI6~QP zNtBs1c|R&WPdPA?%niy|i2dzl!_ZNiXyX~3_Rt} z@`;*mZf>5~6W%JsV@wkyWN%>^fUlgv6?=`)Yk8eSNH0n{D3!?{st2rLCpih5jj-iK z&}=nE^Q|(gjJs@H4_wj)AZQv_5=mW6g&(S@0p~o~hTEsZ*c0+`BovK@tAG@ot4W9- zV>?QQ&G-eciJbesm%c&IC)pi;Ym0|c2X-P*L$~)^rYGFzha0oM{iT!c;$5IC0udn+ zFs`238cqg6(8_fkB1~FA(hfR%{7W^jq%LMm2|H5J(KpnX8?2elhCVLI?)1 z0PLUyW)SK!&jld>@4jYm-u!B3C=^aGk{~J20f-B%gbc90dYvmpGM&%DxZ#mR6)L3= z1uBnO|JM6|7t4zLC@-znT7hs*vMZ{pGOmVrS8Rfo~qrtLl*#m zV=JYfWf>p@K`@`s**PggXPKmP#tJDNo3bpO!yt^%RL&Gq3T6p}##m1fNoD|Tw6oUp z{L+?HRT0s>_a4vEEDAki>|`=_%uyH;!F*QqdSQ|@1K%eiW^IiL!eBn0IOnn~UtaE? zK7IP8BS(%OKiTQ_=Cf%O_1GEfoDg{Q=<&&T+UxbIDkEgilSvY>V<~6)0~XNO(`ZbV09|EE&l6dZhJGxR(9YjHeXP`4 zj3-;$Th|{t)ai86v`BfL#Lc3d0l>_6`tSAuB&H@~r%kI#PgWA>rV&WGxOgRiSp14i3?{h&V?&L5WzKwi!N z<|`lWEk$1FhbL}pE?x%!!>uzPeBV1s7H|F0Z@n;~$T^q|^o1EN>|o^^usijb7xJH%!0wGKOupy#AJXn}WUs9jtIFuU`vOBW?UT?_26W9q`nIbaru zM5vrYLIAKV4BH)<9$k7HVi%8s-Gb+7z%568065yy+3U~Ej=U4ph(wCOBOyqTQe%B> zDQ$>Agn$S@;Fz67B1XELOB({>m4nGtRfO?TJ(Z&>3q<8?E(ZJetj> z2M-i{$UH!HH=e^(gZ(g6LmA+JCge_MYu;ckaPc|w)^t|BWbWaD_U~r6`@dA&8Y$nTe zscsJm*>3F%MPq6CFp-EG9g<4tmtb%;!;Xq~6fY`l$SCpR)?%YmrIWI^f4F`e&IN)s zTS;9H+^0WBy2`B$dThWOoXIX3*8`Wb0jR8=q(hv~y(0R+Z~l0eP7%>sm(QlnUUX4H z(QKeU@t)Oebn)^%Y|5oQT`5ITW=z7QQ=84mkAVTiLw7jdKJ|yc`UA7k7VwVwM~%4E zdF@+%vDMj&hi_@NSEj?$ANkd{5LG|+t~WQA{Ch^9H^J9G{6U%DCwo0)X}QH4fpaTjj8GNrWg+2ogl( zz#&Vp2F@{jb~od8@#L|SNyrWWh)AMfcGg|IXeI{SjXoB-7Xj3few&R z2&ze~U*{E%LxJoFK}e|xlti#V;2gtwUK{dNvw#BtgIrdX^n;|6%*NC2_&4A8p7;LB zY&>b{(v=k}=@5*v&wTdHKkx%@m`pc4&x_))D6`sldOn|PZ4MneBm`AuWsPOQWm%3! zqq3~9i&ldlh_cd3DQirc&Xp2U2G&}oB(abZXS2-rLuPKZntp+0p#6=Z{>GacrE*j_ z$sTyAHAsYrN+}@~>XJbqp)qDYPop5*+#Dp0sM~FC4~CsqGYBI9(ApHa7O@vap)sZB zdDF=h0KR(9y-6I+CKCXN;$%LVS!1fQvd(2$9)x#T`mXavxcKU(@ z0Eyhrj-6^UboLyuL@ph9*WWN_*8}Zbg&^mc12H>;LON?RtyL&0Vdq&f*xvF}<#`Hi zp~6;Kmd$4K(80sg*`zE>&+`DF*-Vs@QlgYt)6kWkj3#?m_GW1+6%B_2KlG;4@&5gL0brbOx7w}g zY&*}><>j7Io~|^2)mne_qaT%0e&iz``O=rZ^!va6`)_~y+h6gDR}ewB*Ii#<^ZfY0 z_5HlOL}SERwk1@BIr-qg3)H{;={HFwF4B;Uw&w5qe}A|t+@Twmdkf2N{O(_ExA$Fm zfVF08aLT!Q#mTLkZ%J;r`3Il<0#oF}uYRS?l07eZt%?!=00$!4QPilY8Qy%` zUwq^j5UWNj5{lmX&ez60`QY@QbudB8n81zSq3kTaeeufeTrsw#byaTCp%tK%xVUj7kWA&O(g{i6%=`-< z50;Ka&wr%~nruy$t~=+dyqb(oBV2n3vC z=jx?2;NhKS8X_Vf5$zNEdO zDu}#xyV-0ys{`L3PbNE&pv+pAQb_QDnT@Ta3!HON6iSIzB}s^~C=szN^P()JB(1gY zht6qZtgj^IQ!tqcg_&9#Xeo$*&@mD#rGykaBzr=3tdyKis&qO@k~oTj@p!stWd)I~ zG4pwjAj+}~0^j#NB(&DWak#lTaMlrGtKBS$GM}Z+L8H;Es*oA4@T#O(4`5RCEIk{Z11rnYsRbD#?WISEf`$cmT7fi?VyT5vGzrVP(J!r>qcWKc%O%wpQES)Ea zz9;h{_a%FRwg;Qm7ywx6Eyi)Ub#`lOYkP5_AI8bzV#8=I%Tjq%R{6%}AkXrx;o!)j z1MBOnw?6a6d+)tJ43bGUj-#m6YRsoxRodB#1W6$)ZQuLe_X2=1W-u7M^{sC`cI?=1 z{nl^&{Qv%+=CjHE{rf%NYc;!}jRt2SBNYn_l*ISLyT5Z4DJBGD=j^gq?Wt z9U$T~8;ypWN!$O||LeE4mi-Oy%j>q#VO4ML6G6~IN2C@5K=fj?gj^`RAYJF24L}Q` z!m+b9E$68a$jl;uxBcX|Ev~cxU~qQyYd`l#^+#so?CuZGW?SW{2e!h7_dmVkjSI^c z>-)FX$G`pyf09nhl>;3?B2Tw%)+azDOsDIg|LBj8w>M5cupT%4?|$1$;=~`1=709P zpGs#J8kINzR~1_y|NZ}{OAX*Eq+k1we?$T-o3Jfj_0GLW7q&g4W zdq>2X&z;}=a;~bZi2?zF0!(WFgan9%g-|bBqvh@;Ygj^qyS={CLd{k$h%u*X`1=u?m7%c#$n6Vv@aHBpc zAtKVu+W?Ue@o(&G+iV2@z=A=G&$zvjB^GQAF);Hj%)zs^GP#t1Ug(2`Jk2~w$s|dR zJr+|C-9MjfB&NHydT6;ArYDEn!e{_M#H!L;Tib#t%Zr_ER}dhQkcycRAq+hd3K4zZ zCq!*bSyt9m0Fb8BJTE()#r|MiRe6?L$8l!)gISizScGSH@_FSXdTJRID6I>w2tn`G zTuGPKY9OMjs@RzI^|eO5?l{hLn&x@VVOSJpbG}toT1m%RTjUi$Iv!65(N#3luADk` zM(fg*%1XJqx-5iS7LzP50l;-Vnq;H#v{4tX9|?(36nU;sET_{<$pC>cP>3+`*rFpQ zmBCV{l`90b4nb$t?(g(;Mn;S7)SFQ9i8Wpr%Ftb%uVXD3X36&EKoWXH~<{FL8Tw`sk=Q=`45+IDxd68{yo;TJWKfY5Ld+yA7tJUsw<{I^yAmyrH zanYIUv;oAqbDQl}({aU_GiR;U(xqk;xjy&CT`!Vf`0KxF)f&T5ue5sK>PmlD#j(4* zx=?9RRgVIIQpy-pRh1AzN-2ccw{PEr4?g%~KmMbxC;s98`cnqod*|N%+HZctXBU2d zr+e(ygRSC`kN&59i}xS-AKp?z zYK<=QvfDdrd5Tv@c2<3{y3lE?IG#cj)@_NI0+?v#9KctPhg`@2yMZq=Mx}o3r+wx( zzhNQWknZPRdoivDE;NzY&#Kpa3W6*h*vEcnnipAA_oIf_Ty|#K{oFVgS&}t8>6Pg~ z3s8=58%x*J_p6Jxu*`r6%odm}0vkK*ZB2$dLKL-{`)7anmuFAx_>uelKk@CI#X116 zwUbG1jV<%)^oh+s{7;|uqsv}jq9cH&UF|o->;LEFY@~nfmp|w#?>U&!0TEtqnfMNj(Lil+r~)G7^{=>E9Eqs4P#2JO%Q~`;mC26*4p<2&+~Ex;nqao->6S@Uy^i%%yo$d5sWbwkqMcZ zff3OdGZ_yS7CTm(F!IBobGkTRuh++;#29NeDqneS002VBAn>IW*>uwM{mqT7IF1%N zt$wecq;-QVGjEFP-jAFA5`}0&6XTm`)2%0io;rUR4=yRC9pACcB@i9aQ}T9Yv-HI#@gCOz1?XxYekv$x;yD~I+;%X@h|^EuQxK2$KQ z)0I@~efg{(HjJrA2xhd_&hlhG@PQ8)W3<-qde^(&_0I1kG9d8W#xV3+3++Rz%ZCsl zt~Euj%4xyOK;Xq!9w*DB9I-{3< zHpWy&!@c zR$CAmq8tHgv6R|DUn!PVr2#MsYJ$)@83$ALrxX=>Ql2=rCQx0W-5(5c!&;&P099F? zJ>DgdH>vMe-I66W9YW8eB`ANj&~kg^3LY%J}Pt6_igXTSZI z{q5w;@ohJ7e)wmu;Sk;39RB+IK9nWp{<}MVT@;zF(wj{*nwinXUY)!E{OI|J3=k2E zl=3M8Uev<~L?&0wV22j_%;PY+EUpfFFDz?ZLfg}QeF=l4GsI(9YC4wX?$%)Wyxo|%Wy2P3rb@?7ly+1Z6kK#i(@LvW zE!|3pWT|bv5m;5x>22~a49iIgiX0dO|XrpN%Y33_U!)J`ss9k1^H zdTG6)#%fYI%AJ&%@`cy&y^e2`os`-3;f1@g+4$5WorPvMwn;dxof*}~YHH3Q!_t9y z6)pe8r@rvgm%Yrb%=~?eNj_OWyWX94Yt1;x^HDk}ZOOutxaefc09@Mg%*I+PilrY8 z$9WjULJAU4mO2cBB+Ur%^r_QAhy(i%oIG{9)tZ}|7aQyA1_Q0r>167<<^Fw#(y24I z=#9pGM=A=UlF{3$%0(#!LaE70R23LzEp3rUQ5ZI(2fpE39+37mZ-3WxH2l-w|1Tf= z%x|dx{>LAF!=Hcj^Rr{RBb@8@HxNmXWgaH|Pi=qX(5t?&-`yGxwwW`!eq?8!ji*W8 z?;!x|GBL#%93KF1*NPH|FLQYnL?oWYEf4+jsmUj%eRJl-mLt5kKKys%mQ%g%&mqXz zD@I$@v}gRtain{NcE7UaY*MScHL5uELdTKLP3rprV3LgmDc6*foztVz|Vh(1mC0?9RS$FUndq1 z(`e)77x4Nk3uuK!jZ%ZLu27Oxl9%Rk%TRYR+p6va3<7|@xTR@>vkj6#AR?j`TnPbE zI>g3g2GwnLH{HY6Gz5~h24I%aC#qRvk#75k$~=>(yE~czAS^&;VAjUmRkGdg>-gHm z9^tvuh$;a9qtGUNG!OL==26N(lgrMagX0Ub0bNg-6!#;kaa zF=zS}E6^V~XNQLZXVR$m<{1iz&J7?6PoM8T{J?_=LcGvk>z=3SbXX35^N)XLV{7Nc zQyXF3`@Wxe>oxlx|Hu1&Ihzy*?_QYiw14OwKeXIgSYO|aLN7`5Q%^l5g*bR{|I+eO zSr)Zg>^SO?N4|XY=v~V7&z{-pwC9@5y5o4va{qz(fBpVn{LvryM@iDFOtDgUo82L6 z?FOFdcR_ZD3)kWQ_c#CDOJDsu%lY!^LY~`3JeSr+oz8Mm7OWtyd)GXsUy3XG8{hKv zZyrDK)cUDGZl*WydVKQZAMDH@UU>LTPE?1B^_}Ngizlu)FLagVsTS66)jPl7= z_3?kPCQ$w0yZ`p?6<(s(^5AP9O(eoygQlDH6=UY-JTLy$4n(?ipI0aZ&7y6d*=m_t z18LUGc!QeEY_;jaN(u&pRtb_<{S^?ADpeAsW#TH|fCqxJ^|R&aC#~17ZCPl`RjY+$Sj{8K@xfvCzCZ?3Y3> zOL_dsr(W{FO9q4CefQk8v9(@gnImC49TtN^*8TC$cwyf>qbzehAuXja#70;mZP_pg zCL}=;tY%ADRT%?CE*g$Ek*U$iWav0V5_-e!(P->@K^TTrrLD3YD)3`h5?h>1Cp&1| z#rXp^PUqV2S7#5s;z)+oyz&2Pcy0k{d(<^nZ)|Q4#$%LB>biZ8X*!uC`A%1|+r>NG+8MvxKXI>XW-`7VUI095yQ<8>sko$Evi0d!;Ti>Yu zzh5#sAM_`F=#s#j?{8RZc6QE61ySVPyz6nVw+1NY>>V;uWy|S6DT|s=)1|n4t)R#% z>C(6St+!8y=B+j z4G9PU(}!-$EPw&t?F?M9^UZwNfOki*W+v1E(Iw%K-F?8t$IlMnc-GocUw zfWjgm63zy2FPb=5X2TXN+<+HaCbT$XJN9CHGJ|wz*PsOifHq(eh!7nVT54l0GPxnz zGS3I=H0XL9Ma||(%G|PWyW^>AoI~>vsAk|o7%r|&=0`cj@?a)0(QCzeGEMtlwYun* z-Ki;U*>Q`i3^I;eHLNU32tzNcDqUr%th~8!cc`i4)U%z= z+-6zZw#c|Kuc}7SPEmSJRu+K>A{BJYF<9_|pt50 zWN}#U=Sl4Qm=^m~Ebed&@(@DJ+D&ad|?R46V!jmUYMp2mclOT!% zDY+~~V@{9|L;yer3|YY>0MaT4fwAXnMp2gNpcGh^r5E~@E~aTVNvBGAjaEYlC(DPG zv7vP=L6=Q%Wd5;7*4t5?dc|6dTaezf+LTXhxDV}ra_7|1dMB+3rKq>wJ@xc93v=^* zk3adNC-*I`e#18%nV;{BMoFjBI(K%X-Kk3Zy~* zj-QCbcxC^};R7rE{<(*azA~PV^zrl4p&qv9gXmym-yvH;_skbZ!)_dhgEZ@`9wOmn zg^A-pg8=|Hh?s4j79alipZxxJe|vrL+4&ca}tLeDgPc zd(iM^(iMr$HO=TM&b6+_MSqe{qQ^hQJ8Qgrci89%nsztG6*$ku>g}fC7YG2i-JtD; zn8lSSWD-Dt%!UC7Y-V!d*&G(2 z5E6ty0ldq*W(4P!X2$%D05c6s^n_(sW0| z&UV!)0KjP`iYl;zOU)4l$H}xkeSWhyo*X!^FARg>a5(5~1wqi=*qlt0!*?Az zbLN~7V%qOVQMkOg;@Fx1RE7~On#zC%umD9d8bWFP_MGwp7E~rlu7wqdNO`W=VzWLc zrDO}0HE~p@QIRVia}KUrJGXIYWq;JHr&-n=C)9BGu*d7?_0B-8#7>D%oj>#VqmOO& zciccpPu+aqqdVwJ;V>L#=DE3czu%popL0Dq9QHRiH^a#Lx|cl^*XrBby~uOB-JK+v zJoL~5LWrzLAAjOYB($M)yT5%@Kj*@{Eh_Rpj>YV#RErW{;4+P}n0pcND=FW-i9J3kVir zHzsE`-bRFQ(M}!_kwKtj5CpphTCn@`UAA-m-p=*FZ2zWpeP+@fW+nzA+_lWNjL4Q* z000qKV7AO`QHbkIx?8;bRE8RfB#=P9*rh{!=1XcBs;Y9NQyH|?s66#(b>=hzwO@W$ zFPXH2ll9Wl72rC(=~TJC7HR-&Mn*X51ZBz+2zU6>g?g5?pC0MYZWc|?9$rws!qPBd za%RJopplaCsL*Az-Kvbyrc5Hb_k_+PCkHd#84YXlz=*KoGHwo9E`XH|3d68H#LYqU zkuAKRgQdA?1X*ApaFgCnIv6$sKX+8K**JduRIS-kN`3zGj~qI%vcA4~AnZis=Ht9V z&XNfjn-9kt&2p`^v9Y<*YKmNUyK7+>6#b;J;CfOhMNb|(HaFk#ydVfdt<6qvdv)Im zpg=J*ha+o*W@CWs1JyHFHY07xX@<_Yv_443nIt1Aq*BTnlO&U}EQ26uG#XZ-m5izO z3mT87@oMAv=`-O{XQ|dnvf+4|Kv33`v~6lna_`HJKK6nC@}CXqANc9F)fb&-Rm*SG zYG41Fw$w0A#w#mJS_>o-hEA;!-GBelvMi_5$x}}~)vEi$-dKb6Jhis5xw>yz08U2J zyY?@y_0E*tUh`nHur5{UOCD$sMw{iN_~I8I@oR@_t!1XbB9MSM42zWQ^PYNgq}Tmi zDAzpuDhGn}CZA>UV)HZq-OfL~__{YcVg0fnS>4|`Tj}y|fB$=j{qz6NFZ?qh%kTcl zH+JTnZRar!SMr4G9oCcK;A8*dY+j_+aG6$4!@I%t%(}AA>KDHPyRzon00MQ$f7ns- zq_c%YzUTYOb3_0L>}HIXA+>Irn@OS5nS^Qgi6k3yhk#8wDFr=Ct2e)aUZ~xW;if2q zTOk0HFX;RjGZP6xjBFTo$GP_y&mLZ!z}xIrJ`gnSdq8cEYA5?)iA7|Khn8@)UL~m> zCN0mSz75WfDc8#JH{-%iMe@p($f$6bWs$;1H;Rrb76L~If2_CjtdO`c*Xgb{rVpiu zj~D&pCxV66{QkMK$zYU?>&o$s2z-Ay94#!&3ldtJg9rB)dD`i;rqf)5RdwZifmfRP zPGZMX(;cUW_;R!z#gTKmSMshXD1E0uBsKa|;ccclb@ z>!RZdB@Bu3(KC)ATv^Dp@#4@=t*!f(jUT#f?KDlM(=ifxfeTa(N4>RvSCnSH9&e6D zO9z(Eb+^(i+vob-?j%|peK9+|Kdigs1U9|ER<(9K93`lrvsin!wftlXj`E8W22# z0N_L@ycg-c3yC}#5zs4+euJz0EYFLgR3c?JvoC!lT45s06RS@Z*L=EioC9|)PDeW* z`1uc#fSa{?bA$Z;Z!X;ky!d9!*F22?P`uDbI3iL4kqv+$LSAmX5ya9Lc*^BVQ@FvPcRB4g_!Nz#^UA2 z6st?aNNlvNtm$u@Qrqh;a_9bg`!(rU8uWXOM%`hWY;NDZx_okH7}V4`HwVkj9C}RW z2E8bVR|8)pCThpT01M3%brFVMyPr3{yx9zL3WI7?7^QP-VJ@B2FyXRZ_!I z+V_fwbXXK69N8y|Y^_G|!@Q>shQ-lk=gS*4-#0~0BxJiY zXBmkNkTKSAJ=SKm)nOoQEm|gv@c2ov8UU>DFbY(?>4Xh%<>wzi7BS4v_0rYg5vt`FsHO+229@?^fbmiPu7mV>)*m2rywVnC;15Z|Z#kbum zJ~{SQqQ$UILhy5P=q+>o#~*)s-@@|izwv>U<(4tdXFszVm1UW7F~+N!Qr z^&nw9r>;40NYDP=Vqf*%%JVX^a~4oaei&4x4-ajX_09*7{D|m zPKGOH({?=AjR``WwKEuQVLeSC7;9%c7a`gU(+MxSElen@OJOSCk)A*a1}s=0WP$rUoo97&ZdV@HlEV*Ndd?`Uk8-qf!KZB9%>fiM%qv z5thhqjDAf*->-tg@ea+|#cZ;EM(b&ml&-|_c=!;zW->f{WHA&~=!nrI>5dZsa7z(1 zox$3P$P^UIUW8GjJ?c%w!Npcy7JIb=z9Li6DO5Yp6>w>0M%;oXf*EJ z^^g(9)$EKCJ58`0+x0W1KUr8ich)Ztucsldb!*heBbR(X=KB*oGG>p z5|j_DU?y~Dg7$pK7S5mSefAUo_D6p9UGvLVCUS1C4}bN&A5163{v#db$g(gqigJy^ zx`5_E>DG36NyTox?Wak(y*{kKyQUmyW=<`Dx|_oaytL1M^o#4${*@y9pef(*lPi8G zua*pvKt$+mkB#Byss_3dq!3PkR^p}oc0!tL>vC*OA@WS?>Kc9nUbOJwoBmHT9lmV- zW8=a4O7YS za6?!-)MThe^6w&*d|ptAGA!A^5J$)uDm)| zzxwl9v!e zy1vtmf}q`M?mN(4Tie*_Zp5{yG8)P5Z0%(E)M^sGS^)3Fx%C69hX;d=oildszSrv# zOQYE`2>}ecC`kxcsY+V_7DCR??L%?PV(E3on@^>a?v>2G7;-t42#kbIh(GYt-&SaC zwJ!5&XKVPSzc|Loanp|)UTfvriJT-50IJFuZF`%!(WWRf*SYerUfS%j{-0sBJK|*} zzy607KL4BjU-@Uh6F2>9YWL$g^@g8V?mk`p-@ov?N{YArz-twpRaYgS3ZT)s>Zvc} z{65{x=`1vP#v&&c+qw>iHtBML+d(-z}rd{zl!+;jjJj zhmvlw?{M2_?ro%ReEB=B@EahKLA+u_E$AEs6mHmHA#Gk=$^tG}y)}g&?cQnqKx=CR zBBEuBAQ0`Wnq`o#ju>^A03cV-{}+88*c%i2n#P5Cr-fN%6_J^l&EMEOj6FP0>=B+j z3KtLn#`oL;wJXvy!gfSZD2N1nrOEYY{T60cRslp1;!b>8NJs?GS~IgCLSSRTb}9>R>93ke4Y>6WEjo`$e`I zO@Ok+pf=RHp-gW=%JnAre($Bkwj$Ke+~{{=trTO1R~Ns>>~WNx9&7Sl8<@^WFJ z?KobZXPgxyYocaLu@Fj45K5)Wep*B6MoZ@Y{dtgve>uvIEM$4<%Vb&=%xqbgWoeBi zK>#2XZf|$*zxO`Jb@MWtOeccCk5rx~EMfE9`s%_$yV;mz$#9<SsT?Ch_y44noMS z?e!oKtyVJ(gX1SoQ`2U7dH=ol9DCyUj_#j2d!{JL!1vmIqcoHkm2{LJ1TG3kh-w1M z`yKz(NJUY|E-b5VKRS5Tem+PqUq?j_EgRiDoTJaFM*y zmRrXrAARpxU0iuvBci2)bFL@jh95P&w3>YUzka?d^!XEACs0BN5_t2Or*C@YI|=EJ zANeq$sE4h{t2-eeabZ*TrJJ~Zy;s|P#t%Z=VfUJDwrUxOgGlW%+^|%iBtFRwFpL_3-u&sV=W7@M|k$|T(C!Y?i|?cerwZL z+`>)5B7h`90k^JV3vkh&04)`z_U68%b1(VKm9d z8bE`BvMe2!ilWfk#8D`vuvWUR3jkVcA_~J00HhGw7$Jz6wKk1L9WgA5qAbfej!P2O z8e)NL6&UF_q*M_5y5f0udR9k{r(B}LZTeiVI(;5Q>obx6`SQ0os1|uv4BD&8G*gNAjj)Y&zIpig-lGpvp0HdPek#u}$ppqgmm#QD>%s*xZDRhBsb5UZjn1Ud6_3v1^#Jl}U+Hw;5< ziuJYg2M(<&S1c~gDM>rqeSs=1&DdjaY2H4+R2gO-4##hL(`&P7F_}y{t;Tk@-)uF8 zJAEY`$5GNyGRc|w(MO-~{jgS#4<0=1xo+UNH8!KQv!{-qYqu6hX%@HULcgA8iIfUZ zYQu!6q++l}mlvC~3-bql`lsIiAAjp-e)YW{3hVB3@Gl+@$MLyE^y4#Yk8YpM!Z?EX z8o$@}+Ays7-|;_vgBQv({U>#0n8Ax&KXQmjD!Td1Q)cUXwYR+b??@pduciXFult+{ z#ub;q2E)tvl8W%?TY_>jpLB~~d++aAV}z8K-b<7#4&2u<86!ei_mm?VOU^aBOr`*~ zptVs-9zL?_D2M&5dd;Us$*}tUa^I0oS(x=x+op7cpo_+6Qi_+qbMCYMVf+0*_dB)L zwYy9=USZAorERMjE+c`$ee1*D75Q~=Jb2j~(2LP~#ti}y(T@P25j1o z*LNGcH4uU>YJza4;lbI)`r_Kbm@6PfGcUYr-Fpd%0fiu9M0>-#v(>;%49ZcC6aoOO zHOyqKu`>le7&KJLuD%A}KQckl_HmjgN=(@fL0)IBhWHbnJl4Qpk zTb30fR#l~xGS(82)+P+YWSk_)gotLo%mBc7rARqK8K|a()fGzwR4_`X^~gn6RKVFZ zbzG{?HE3K8UOpe5o(hfelT+{EIP0f07spfCGb1UTsgRi{9Z$yCbjzYj^;D&jgqzu# z(UT}Rc_?e`sC8mLRD49=z6`Wq-c;ib*-aOn1B} zl}JQHQb^bH5rmX3A*Pe8)oKMnKtiPHG%J#Oj@~sMkA{=YWH@ZZ^;)grdVWxgHHyt7 znQO)+ndcrL1MtdMyz2b<-p0myQRFXu+5Jf}Y1ZOon%A23lPAuEvDc_|<`?FQTsum7 zeps*9jIlWhXT0I2BjL2!KUkZelPV|^2xHX7R<>eLfTWEjWQpRU&|L^|&poex=Xbv6 zpa0zVOh(Vnzc_Mh(_%a=Mt}Li&ySPw+NquwslWT9-`bw9x8`EHL`>4%9KHYNemkF* zfBpxLF!OLUDW{eJywD**Kk)9iJ=;W1CERcNy0_MXh6=%}V-k#XFub~+U@ephGlTR1 z34@wE?kQwTCJIRFbmQQZ+ztsZFuz@^4$d1}&L zg=k3Nvt8k=Oq`n56GMK6m)zU0Ab~|$CFw9!zVxCQy}2gHi}_`5d}bmUcW>i{9V47l zR}2JTFE~qDL}IXpO{u{cHZwMH`4Y}%+4A6e?|CP{2x!sbti!X1uQecB=H1XPMC6&6 z=fzk8-NRQ0_6X0NL-ZvH0Q%OQ-4T(2XL=g}NN_9tX=a8+On??8q7WqE#wYh%03uQhFT0uh!ZlwzBAkye!k03oDBiy(AmCew-U`(YS3jzfYblc_a^ z#4afU0LOKF-#11BfUy<;>dLRG3al20e&8}dTBg(CB#_>EKJqeWAo#%iq7ODZ#Qx*k zuI1#RrLYSwq}5{^>3wZsKu^k+uSh!Da|$YqG(};vBuht=BW?rg-bm)7Vp4bA#afHz z-7Nx(5KJu(rznMLN0{by8BF7Fq1hY`$6*k3=H|NHkugY^W?6r6xj7h&t4crp^vR8l z?WN_V(Re)9X;1niztgUaCPkGJ1?eJ7cX*-((}Vk0>Mgg2dHTTNj?;4cn++4iQEZK6 zFzAPITt`dFafpP`)%o*lBm@8lfv-(@_Uw5;d+^Yq`F4AIyI)jgyFEur^!uax@4NT? zKl4w{|M_G8^k04uq}8!^RvEWN8Il`ko6KEVBRv zA_3HC?>l_Y(s0;)R{q6Vm3-`x-x`fZMU?}yH6}~=H~;lV8*|~0z2_b6rRK%wmR3qd zIdGX*)`BZS85ImL8RbIIb4cXOIsJ>L{=4JIANiT@s4qE><>fW+rp1_#eYlwPs?$$( z9p(JU&%SGJ>9SchYwgpIuKkC9^@olxqq=wVU8bTa#$ps)SS4djcPsg>zyED#kNtrV z6xRHm^C>gTjM2(MBhl*ND~ZroT;WME`uG=r_nThx=J=6U>eqe><7b*YSCc?jdar-w zJL}sg(7TNAAc?rWPmlxvA_702u|7+J?JVe+H49y7V>J*XNWhu2S|BhpRmKwARjo(J-^UNO{mA(M%k&}PoVGmysdxYoC zp?*dHKz=J)F>HBOjoVEWWnj>3Z*i5&0D}cdNVAkuvS4nnmPQDyDyxk~B?ujB!GIOl zlFYuakU|mx0K@h9*sLrCH+Ekz)*-2sB4kB?U@v%ElaNkkjIWVh5CUj>n0g3tW7sVe z+e&aQETy~zQAhim<+dOq63lEgO9@hmEX`K;FHR=YvMfmm*LAZrt*WZq?F&I^nh~P! z`=e3fI7&(h0EH>iJk!Ralu}8BTxEIEAIK$7-Ko{k*HiCawpxU;tDXAHh0!$A6^ zsS0CH0G5R|);hJQDAVIlANTzLSRFjDk|Yx;MXes5KYzN{>$|QG04pm?VH5!%3Bkaw z<1mtR93r6s7>rkIJIcws;Ww}X<6oFS;mb(jo`kA z?&p*JsOFtG_t(vI?aY^V+6xOC8~v!>Y0oQD#w0vJ;?nrq83<93XwNS(z_ao%mYy4qp@W~yqXAo#TBl&%8L{-7c=*Y_>QYd zpsw_1zVrvhU;SQL=9hlp!baz9Kl~ewxkCUj({llU0kj4xW;Qb^xY0cO5zg4o%+7Px z=dl(vFc1L?1Ym0~J!#H9PeuHK29FYgVct!Ix}_uCdw3B*022uk#LUJTV=eP6X6ePH z>D|Lu3-$=lokOjU05G{7Do?ZkgqHahMMK~vQxu4ZL;yhcw$lzmuwbmU0t6C*Wy|~` z6evm}B9uS?c2+W}=@p`thuSK}n$`2>@gZcK1xd3-(^a*#xwX8!RIk_4G*g~(V#gtcNV=@7){*jLqlJ!$n7TGQBx_y{X){o| zsM<}ZQ*WG_=$9@vcZ@x}NMG9Fm$y78XuDh#npkSdg{_h*B?nvWmSQAV`mR$A^PSNs z%k##*mar%?SxTOkS$$$t0aZ(tTDMB?lb`+c>gxW(hwt9r7$l>#sY*~zwCVG%*N>kR?ZtAsxZjoB67p3 zD}?}y0HRVt2`Oz+mSrI-27n?jq!f8k?Ck7xS{)|KmTPX!5?0bmDM<5VIMCXVG2QXB z7vbT<3*E`+S=I7`(0TQ1mdkQH7>w?|=RQkyL9lQC{-Vg@IF`bxH{8mA9|YEzB$=E( zb4p1uO%ow$Fhl`V8my!?)OJ}qtogvukMT6E0Y{2dG5I$NhpefX!nw4 z?Z;YU>7C#8zHu^q>LVZS_1A9Fzj&IBzW>MHws7c5$xe53`0MZcP?nVY@9soxbAV)GYRLqqD1OVQPTH3>N!ye(ebBJ;RfN}jq_AWb!)>wEf9befW+V+NCIKeUOl#TOF@XkX^!N9vX+S~AX*8G zqT<`!S-Qa`UF^@$1=8~Wv-hS!wq;j&;96_%ea1WG&EaL{n`^F;R2mQklAwiz5CM|G z2nYw^uyGR@(}cQ-26y9b1rgoRMBDDL14Gbs(1tdcu%T_)q9t2cXaF=JVNE4fm1=zN z)f+PN<;}eF8Ta06^^cQpo=c@CA?Nqw#fyxSdCxuf+ps0|uI6cH2z07aA*I0}l?0SBHjskWcY zp8UXScm3dZJ?6dh#1#TT?7TxU?Fnz~4!Ye1GJ$2NocD-Ue2_*0x#y~?Fpg5K;(qUd z^FGVw-dO-Z^kqE@B6Pm2>zYuD)kdSME3HCbLl7ioFjo`+P_4}}#@5?$M3mPlDGb#7 zp8J!}{YCqsd&Y}v=|VvB=lJ=p__5R!1o!gn# zDv2TyzrA~MHYt**zr4`XQBNsi51xG-Ehr@{&f3c2Tq(t6RaF$n5r&aq-RpLO^Tp%+&=rj1NUZ`cYZ65(z>p+iq7xM4j*aH=A+4EIv;EYtyWo<$BrJ! zhSQ>EB-|SAn#fPKJ6&woFK%qKN`zW%OX2D&qSe_0F5GoK%9=Ob6Qk6S^Y!y9SUEY~l2vE)jdFTGBmi{So0 zZGJ+Ex=V@m^>{XFzpn17XWsd}N2)30AARV@JI>~h4}JBAQS+Ex_A8|7<*TY&kA4d8j7Uj-XXd}!%t%I2!eo! z#6SQJL=XrZpm@R3vNITwA-H6{u#dm$U=;!?cE~K&g7;1Q#@Bt8cpu-Y*e5)950OUz zm>#;b?r5&XeDL)!zL7O{Wet@Fc2Uh}GXF&m9X+5G(4+Ike3!S?x$&2y2_$6x(ux7~Ff1c+HGS53!L zTl%`Ll~OFuJLe5VQ5;4lG*SO;j|G4E#q3LGf`_IH2N%vcznm>(QbtiCEOq5-Te62Z ziQBEVi9-?RoO4c?y;1}ybyehfzBxG4>9&I)DvNS=cQ=lrPG`XwQ!V(=C;$Che=Hjm zA3QMM8gAcaEgwmxNs5R`oI2+nA`UK1gEaod926h=&wprZ`?ucxj?Pl}eEFIG@SbP# zk!@~oVGxEouZ0DXHck!z==76gQkbsboBr-F4>m^?7wo@Ynv~hVe&nB?Q)qtb z=YQnpjtDP#5CD;|NM#-rBMw_i6FKL9;@xjMIr;Lx`1L;ubnxz9`H_c?m?zGBo)*J~ z*O*j}{XjY0`O5dd^?;ul^Vv6Gamh}txxx|`*`uHQ>W9YJ(4KmJi|??AO$1kYSl6s< zIjgdAHX;CV*;qk~gBCQ^F;F6WqvhR$h>*K1jrw}m0RX^Voff-?Vtn>F!lO zk2;I5|H*%uE*`t1cPEI5AdQL}ft#NBUNgLT?jeA`+3D`%uOO_oL`;OtBEooc&(nSE z<5t)wJa-QPAOOrCxr6!>qH2m6%}%As-eE*>UMppcF@##d%j(c}2_hl@BF(=4ZY(rW zpah_{QVSCU0C<3JRC@<5#T;EdigR(<6}h7Ag^I<22zf*S!X{Ca8L+AL3nD6zfIuq( zAR=#?!1fF9ARu71Lm+V|VW8ZsI=>mSt9vOkBO(ztbc)&A+IeKzpT$w6jqzC>1c5O+o6PIlv4d8t0|49GJB$4#78eA;WU?EDNuK9A zfV!@$s%nX76@n-)DC7Z%*#Vfao!Aqncy+mEiWiq58^D>(m3E9ZNbNG47k0PioPtOP zou}<=g;kvUnafssUEhUGEzA9d1CrXb-rgD{aqM&6-JU)8idP1$xSS3TF0a(pPBxzr z#hq>|&pYjQvd~{K#!R-)v-d$@NZ1xdKmmIR0;N%VWNj1xc=p!UYp;II7e4bBz6@5r zu(2D~J&5(82bKrByO=d&7z%V8r^ZA^#m@R50^uft$XV;e`P!DXo2O~4NT+GiYPG7W zN|HE^qAaVN;WSDP+}|&E&mCDw0icy6L}Dwsd}rO%@;h-aN%uxd;z&LI#V2|TX%Iwp zoyAEqn+@LdU%g2q27x~D{PQoq_~L=JWi)7gJsQod^JyACbZ|u>+F@~I6zE9h2fJYm zG593u+uo7x;z3hQwC;m8o&?B&67b+01MS_ej=}pTUj-HEAZ?Gf2EYG1f8S{S;Wz!b zSnZ$^kmd`(oLN0%EOm^kTh^u=pPiE^eUYjw0Dv$I1%#adKqKe#o(a^suViPR*%fyA zH2;nN<-HTRI|qjmXCJCx2(7$X$@YZ~vqB zwR-X2c=uaAmY=R=&+@LaW%=M2;w8{Z?VKN5jKU5qwOeHZW;ufVinlM2bCl=xd|piR z(g9!`CW`K0-K+U(59`bQ<#soUS0DIr(m$F#^j2&w+~n_EI;AVudyy-8HBJ9XK)845 z!64qba$CH!Rb5Wc7?n$KHPtjKFUKc=oe2X}T1P8*o82C|wB$DbK}2B!U_cK*#3U$R zTOigxzPZ2+(YY`?h8GHm-_VoV$6sOW6P~*S$p8Taq7SGOE zA4d@>@?J<9FKj?0_Wba}56|cG*>t9~Rz!K3VTFL~oa^>_tyVG`4U0Uls;blJwc7;9 z&U(bkJLj3LbwD7ZZOE zM#u+ewbahG@}eucot)ksr)d&cpKjN-8_`12+pXsM7v4zH~Zc6NIUokt&ecv5FN zGM!dWQJAzkaTqx#XU?1%jYlF&trjp>)>iXumd|EHni*DCSG7@1>j?r75nEept%TeS zTJYVkk`F%Z>p^y6-fA74Mcb_~B&UEV00r6rIz$u}$90vJq?C6y%V$NAd9EA!zr3_M znNFSa-EK;V-t%NK-Ps)m8WYExx?1h3?^|naeP{nw-}!DHRbP5)R$V5ZYHImmsNVRd zW3%}XP&PL?m2pBHXe_Ll*Cb8`!J3z zkkV#8nucCSBlql)Ag55Dhe{$`J<{$R({Wpwwvh1*AOa{z2p&+e7a>3-EzBO6iNFJ( z0|90?84gg@tKVI8mcu89pRim4z--5U{GV?q)PMbNzxB(1`P2t~|Kl${H;B{Vr+)rN zmR7GW@9%6)e(%>lP|WKi_bs=3$zyMM^?Z{3>)-s7AP%B*&*8v3R@wl_OU^tEQ~d|O z^B+b0O$_nA-atSFVGwxqFrSuySWV>cJ$+wUrt2kqYVH>z}Vd7&BpOYk0R7? zQB#MsSJn{^7pyO6v=^~(xut?Dwzog^OZnvd>F2lNR`Aom@b;zE&Q*VSXKVV~zxqEE z^ZLkrt4a63%A5YNX|3P--GMZbWXwzg3dQeov(dP)8e6;uueoJ_7zp@tt${qm3gV9I>ji@3&G>Y~u=?xT6{&Ho!GSGeHfK$mfzi=@RfH?b;Cz&d9= z01zTI7T<=HR^Fg81RAekO(Jsf4nyG@aA>WixclHElaId_Po8ELqD$@wM2)tM z5K$PJy$}Nc60*0}+UX=Sfo9~gES+x_dSKvH28PbXOrL{SuhKv|So zRtG_lreP3JRb>F6mC{-(B2t6`2!e=>vqIfnh|`vtOro$m7FV@lqsz%7uR6d<>Qdl( z*Y57lcjHm9Fr<6WWzQc8^FSO3J=|BNz@(TyynO0QPei>Sqf)mhh}84XKkJFn@almh zMNzhrUKB^{YC^NVx^{5wfJZ)c>h#WF!}&^U)$jE^(`+_hT#B8qy!T2e5h;p78W}%+Pc{3={(PM{>a?duULcr(O}yThlBaN0szw5*0nJP5!>x( zak;y;-adKiP|a3dGc(x*I8WZdx3d2)k=N(3tv3EejqSVlx0;_{iVYzi~Y5= z1CzW;JBiJU*lAMbJQ|J_k@VIVR=L|NdtLF`%?cYt;6)HvETMoU01zS&OSHG?X`w@)%5Pwe_P%7r{DdK={Wo2 zKl}s${Hy=-LrW_y6DV6CKx4?J0KnFqO)C*-&bBQ5wN0n8lHpEvxqV+d?m$vWoQqsh zAiEI>y!Q02<1d%=-txM4bXxu90D&7?+#up!hv%{o&&wyf%&@7oU-4VwT|PNqP6vj{ zD1hFYx!xV3xSH9#%*O;GSdPhbe30H;s?^A}_jnfxAvO0li$VY*FiH~bk)<0WCA@Z2S|o+bdeer&|eAs0P!M3X{b0Eh@xv*+f<2JGv#1Rx>O z-K(5A@01Dw1qB&Z^Yr>gv7M`M@li?_l*CPoLtVjJSbzYO^WJ*#+~n*q3n&pyV2C1x zc(Itxa+P$X@y9a^1PtuhSq>uI>w`9dcj`jEUen$IfQIcfe@U2`8wH|>IL~!a&}?pl zK($+~>8#$~9)wZ6xYQ4Vz*;B5K@cr0goqeLk@wEoy_Qs*#MauPD5tYYS(dG|gQ%=? z&J`d^tG&jQR=$EL?DgRMt~q+Js!M0eaeyoHItx`9k*Y0azFUin^e}?O<@SANW_~p~ zyF~Tb;k2x#Bnuxq??Ybbcao)EIj=29tJR8P)9?1C(_EYnqhLIq7==sAi_5+KG#~!a zhyG($WUY1z!nL*L+<9YycB}npD~*Ckp$Y=k3?nf!iz~cM7FIil*5*$?G5+LN```O& z`t(!kzT?fkCoEFqmOpmt@dm_uN)_F++SX-%BrfW*=(2DzwULfKJmhdp{vU> zUowlrGM$f4pE%X&wM0Z4-JahKAXO?B{Se=?k3Ylv6o))f+5Z6J3w zkT6-$3TbESC3cw*0ST?-43##@JFYW1e>z(|-2Z{^_%UnU#UU=GXzl0%5#Et~pGl#9 z<6pXHgy|I*`9>u0+FsDL{&F6bWK&6}5T%%0>&;}FE8F*PI!Vb!8NisYwOd` zZy8nIW{_*3i`T4vI9)h4c;KxP-Rv_%#JvKMa6n3FBJXPkL;_(%RL%6{-og5tEyiFU zFAdE8;$yeT!-ah|yN|B{`-JB%p?g*VK&kGGH#AKfVL?I#s0lO~g-AezLc-tyFFcrD zMiVt=77#=vytJRb3(JhP%p`)uMBh|}9KNvZDpI8IMnQc40tL`sn{hCSMvi*imxMV?#hjL}3?lzClSKb`OP zg9M@|3a3lh9%OYyk?wfIXU;y~ZnumvhmRaQdFpf&hiA`j-2cFX^V#%|Klq_XUh&Y% zfyHN^doFuAN5V7?*H)Kac;Up+Lu>5e*ztQ#o;VZ5al7B2&$G>qbF;G8oedB5yQ^## zy&6Fs#%TN)pmK9p<{0-nL)8hw2mnBUgm{nJ2!SU=56CQDgjqGWv65TlG&X(%qv1SG zLsED&$KU+6-~ILX=96mm;9?rLzVF-KE+U`!%71c; z9speJy>(%bXsr|}0I)d%-fk2RGnX#6u7JrEM_!Kvb|5LQ?FC&6sq6UZKTCE_%^!RV zCT${hBXtlndtrM)GuEtBgv_#corBpGV~vd`TRAxsr$H3LZ3elDNIu>GRN}8TbGr%z zAhK85SExcHN8o(boc&&gDmJ4<)HI*>@hyO>+O@J5entDLwtc)b>=T~5gw7NJU>4um z7nKm1Km>$6kkX_KDnp9N@5LvGh+LSeXQY>@5p%7)yYVl$ol5Z6f|?=Rdpqh<7KGw& zpl<b8Oi>hdT_ZxP-39<-jI)C10HEPB z3%$P9p*AMV@^&j_W&khjO6S5LP2#lGj;xz2Ql7=LClVmz#S3~s(n^Oe@ktxAYE)0g zb={gymxJCG0#+Jl;D~Cg5j&kATJ&s0mk~X4A1_uxZ;)4QldXj3&TbxjYI5*9UOTJn zC`gl}J=okRoLxS$Qs$X}A8(I`qupmuJwKh!%A(vH4&!zh!_{gTM0oD>3qhdMP77Hb zUp*Yhkv2LAH14{j3s$#=53aSJK9xOrGB5{+^QYT%6cjOwwN_BHLGf7Cj=eL1(kcL` z*|V)Zd&SJXUe|lhGEiElX<}_DVp=Q70gY!PHJatiQ8ehP2R1ZKa;@xkk_o!nm1&}? zI^P{_ce&H*$3dWWcZY9y<6~Rrx4!U&v&+ki*1F}TWlgZLajv(}U0zx0v^(wg!t$~| zaA0M3HW+MfWm$#+96q?B%0h$7$HNn!9u})nF&rH;?I7*1t{y$Ka&X&5-c=Wt0@LhS z2@$k_LjYjUp4s!>Ao$HiV8Xx-Y*oGg_y7DSfBvs^SHqjfbUyGy!Ojbq&w8V+qScLV zwD)x&Y2UaKE)#&=ng)3Gv)!Vw_SDmZd~CsM5jb~ZaG?N!NJ`iN+(I`@1lEN0Q#mN)z}S?uc{~~R`+YLHE-R%qA?A6ZL7ULjRh`7GcBkWnH@9~e z7J6k>Y0<*o7*kb67^)NQLpiG;Ns)D{&#^l3Z;0HrWgUXLX6~~J5vIJo^SP`^LtHT|Y&~_{Lu69Kc zr=9+=*vbcSr>_<5xLqL^r3z-%Q%`*1;K8*{xA*L+6aVg$f1G9Isb{v6PV{rX{9{Y2 z-K##Vovq3L^(*hqr`7R?4y0-P-~Elh_p19JRidi7Z!N8`+u|U5=q>O3!i&Gr`SXv4 zKleYjKJf*2k6>UGDQ(Cx)eL1-mSxV?_DnaMm5mu{yVXMFeeEp_*X%qX!4O<8RAjo;$Q^SXa5-(#{8>4)>O4+vjU2w&&-I zVz$=p4Mtua;JbzuFqt)=4=2S9V=_)>82MR|`iO4uW?MprSAG@-tpZWdRZ4V^7& z5Xz?2(rWjXF`aegKl`sYrPe?Do_F=uZfFc0cJRT!9#-dDulwxx=M#IIG+MxUiSsYa(V8TWvfkA4V1?U|9RchKnQL=e&Q71z!4Mdy~U zujWnA3pPeEmv$$N5Fj<_BTb1MFBpRh12ZxL5iyd80|Z5+6)CL=uvx4bL4hW`VSE}9 z)d0*8MV;}P&!Y96!>eJufPrG~J+tF0LJ2yZj<7iI!Y~d3Q)ZbfEg*}?Y&P%rd)C@0 z47UGjSz?H`F5;y3;+ZpsR2+tNo(~3tEGwP!X*X*1qTX6?-HCan z2^ChA1;Cx1{FFYwwzAOfbY}TP>DqZRVbtlg%c(8LyRlNFh=r}Qo}Cltg$XeTOq3?V zq7>D&4a3k{3jm6s%=0)3I-U5rXP*avm407oy}G&{1vs6}^P=wb`dWqUFwBc;<s**p*wSUKkfM zqd}p_v(vEMna}cYePLyBDLylsvtMYhm+;Vmp3KY1!rFpR$9Y8v#0DryJ zgGhJ#%PiT>*0lE8R^-@Zd6AFY9a+)~OFnUdR?BNQGlnLDxQC%qYB};100=u5nB+Q{ zr%}&g>0Djdsg?XQPkxj_{+a*jUCV1%d&CVkC%^rV-k(otaiRNv|HJpC-CJnYPJERx(VTV^)1B8SA#_>Z1Q&0g}j}Y*Ma&* zKtf^g!j%&Q0gXf#PN1<`Zl*`z`ueVy21mfPHSRJA8Gu3ZP5#W4c{q1x!lx;ai|pw- z1VIE)A@CLZf~NIuMZ9+`f~XMz8I)jPv{pcXge0)nrxI*JmTpk2Vyf7QhZJD@nU8e~ zj_y0GbX?g?Q4=02o>@c`5hbg$Tq^_NJ-m@$(FP%HLaq86Rm6c^{?at2b z(W8gib5V>jWT~f%w#t3xCVr=y>C9W_;-s~*+;LW_($8n}Akgff@hXB0iRQEU$!E52G7|z<&O;j& zKK{AEMwj0FmLTc0k!n%GqE!+u_LgSbr>nsx2osVQ@4XigVPWwsqDU20on?6#g)9(; zp$ONt4FV(LN8@1}ML}Q!rRVc3%gdujjyYRR$1`mLL|Qw%?u&9VowgUcahL>!7F~V( z+*e=u#@E0!S|2$1=!tfir~^G4+GM4ljP26MPFKn^_on%i*(>h9f9veVXg)8-vqbRW zhaNa}^0Ys?PI-!3@}}bJBj0pRPAz4Xl{HvlkBl>6pzgv z+%`P?CtO&+zDJy(^I$EP`K%JSg;p&e z*?i_FJN4UN|1K83-7Zrx{@7FR|L(W7T1)yWbryhBb*U*}k#@KBH~-tWpRJ$#-QW6m zfids?l^^R(*LJt3FMbTfvIr0op}Bma z+v^2I-7rNUskwmLnBKYJ^+yB{0n6t9001BWNklBdcL_{zy{nitLMjc!$J&1S! zP)+&-5db*vrLF-$858LM8LYK{pa^Vjx5gvytgA7OgSvL&x!X!-v$;`fJee#mE_&yZ zI4CQa&ZeDqCyEn9G{#g_H6Bl*C|X`x*x4Pj$HiWklp37h&gR*XL+i82I0h&EHQsc=a+G8&R%$|StT$BX2 z=MgtqKe_-2x6rCRvBO@D9$!z>1iTJ(#8gYAt`(cL<1R#HmAk@Dr}-$$GoJM^34(UT z%oo*J01yUIsN=|_^I`GH&wcWT|K4MNT0CFpzM)?Em}fh-9G9P({&Bk-|D9j_f&R)R zf`=%k6>v=d>e=^a)2g=;c9ON%9sK^wPrD(3rOnd&=beMJW4`LJpy)bvwA(kZ-g|XW zh$M*YFK_rlK2PwHhyfv9$lDR&ZwlA4 zy;vTl8awQlmwh2>kBsPrNTU*RU+<{Xn}fkB2mlxvL7@OJg7e}D6^dY!fTtXT2NnRw z?0`iO0T8@^SJ2q9U3wcA8)7%_)G1BKSe*JwRL}I{;c$6T0V)$&Yi(VlQb7Ha5NelZ4}XDK8@nI)oMBK zov+h0L4@gK#*7CKu9amz9#2Gs#VbYDR_#{2wYjml*j-rY40m@rX?kulTUH{@f-)e4 z6tr70hvFHEqEw2Bq;_Rl=7@kGp1ITQIPa}>{ca~Yc&G(1+}K!u@Rj4uDS2$C>CUM$ z>B_?C7f+2x!_PeV<=^^)f0J~=pZnz>yXD0ERTX#f@?GD17^01_LpbA+%+B-6p;>4kV zo<8&7#^Tn(H1l^D8l3LvM5bdEg?2Qy zr8aRKc9I&x>6BD(eI_lQtavA$3GjMdfglKu-M2b8zxnhR&!oNRXW#R#&T{bh>CZ6u zulK{Ew&kCG@dNLC!`}>y{*%wY&r|v4pIL7$8Wx}NC?EMa4bsl_8E><(uBJ?(=okUO zSvDrD=Yk4vu2l=e;KkYF4=%jn2jBd|^=m$F9)BGcSBuRgF0w~I`PC1Nv!Olp{FZlK zf95;&a%A7|DS%6YJ&nQlecQVfX#`}JY*t>CM!Iycb^4iMlmtKfKfkNH8l4Zmv}Lcn zlZTKOe(`V+?7-&fQ5j+9{+?1sOmr!sn7vNYKm7ea5}dpQf4M6TB56u6CNI=*Duxr-Wy}ki8t_9y>mIa;X6#!It$4haj$S9?Vkeysq zCx88C_DBE)gh2p^NP)WexNX>uR^SnvJ=4qEX+czt)W#z)0?6LHl4sw{fnDq}-L=t0 z#Kt~a0XUCRvo}Zps0jcyGuIxR_nyHL02&}AA}nH15dnAx5XL>KgNV!s00MBMc%x>Z zO&I3Sd^+@`j~@-9P&rpytB6z(cxG#@B8tLLYu!mB_8jQQ7?b6*(P$@|PUrJ%ab?Lm z8^>XumqnJZtgM8A>2^A0RfU0`Ovlc90GQ4uaTFD0DU8-}x7SVLG|vmq)-y~e)AhC0 zt@GPy8V`r#wY3AScI(WUbNAeH4C-R%^x&a(cPh3nZ5$=ld>SpTI4(q>0J1<$zqTbg zmn2EA*V^4Fl|gHrLWzut+nw_}&Lq*`{Pwh{7YZxZj)&tgh^yVYc8+HmFxM!5{^ifs zRT)?#!ruGA#?*2N07%$gHkTKyubqcxCtF+NbIZfUWP6(c$(3^880;lH zh;z<4hlpBhMCmW~gTU04H#*2BQ*DUZdM}SW^k7*QLIePLQN&4H*S6JadB@o-?{(Y0 zu9p{jgRQOAwPnY(oz({qFIsC4m=#~T*qAc+1@Xezopt4qs|avh7g0Z+E(Z6cacg5- zFPZGj;I+8W^6BZ1e`(3YOvr!sY}@Fi*dsZ>NZMUV;pxFV{uNC&J#d69KwdQ@Z>n6o5EsN6|EDKD8guzw3@!~FfXtg?zJ@h@F`RYe*N2_LH zv@4-mjv&86EGLjdlKU{Tl2^`_Rbfohf6e+etU4osKr-$aPBewy(D{ax3QKV zFEjw0>|f_W?U~E5uRPa<%Z6ToG3x5}nnH3l*A**GO5rWX(0!A_Bji!67b1|oF;kC- zM4%89Du8ANSnaFY_OXwBT#LIzcp6tR1ZXnqi3mx^gExrK*is2L5%zma+ub>@yM)fR z0)R~4@w-w$1VZ2&YtY7l-ZyT?UuOsl04k(VDWjDJ7H)FcFFG3Bu`J;>UbN9`dG_2i zK$;i8E2noZzWUv0c@bY8QzFcaXjw!NVKbFREKoCA4@Rs^*96x)>UJ#H*lc48f37%D~LMZ5>CgCK~aa5fncB1e8Uchk|XwY3S< z!eVPaouuuwuInfYmX{X8Fl_uDM0`;?MYOoMP*rw3n&d$a0F&`-{otV}jEkbo=6S1~ ziWJK$%Y(s=F-DR0&U^6V@nmgnWi%X3M;moks0#I3o5H{w@VTm#%ckQZtEbcX^2$o9 z6(>n@az51>lcZIYWfZk{w|81;Yc|WB0%`}{vO5@M_Z>Ypm<&sBlj+E2W0zY@g2^;P z#C)3n#{c?WBJi>ork*V5xBcS5?tz=ktAH`#vrml2XPoHU zC_E58`Q%q$iQW0iO4@Ddv(=zojqdAiZSGE$ec+A9&Ya)ewdKOWBh%A)6`Afdd?2`2 z-)Gj>+UL$aH!rrg&Tp1wdGwK%j#h58ezIrJV8!3aU%syD=f8Tku17!j%Rk;*3%AUd zC%aiTs+*vj+p#{Y=P!?ol6Wv*`Zm28`g=Z>kDO6gyC5(_JrfbRc4K{!n;DI4YVSNL zG&&M@X{C)HkeD3&u9WE__6ji0`rzCf_Ph3WHEK*FS_?5Vvp((iiJ_ka3{kIv`S zfAgLnU0A=Nc^zESsQi=9y*EmGKlGjN=*I2Kj_Dk^??5&g+>yT=gh}?uTRCcDxYxoG zVQ5??8@mE8R=|6IbJrlT&;tU1FTdGdc(Xd{EE=8fY)waF|I`Pw>2CSrvxB%D{M66? z$kOW7_7Xc=tPTYb1z4xftOQZI_i7xz3aq*LHY}rsNLbAdE>C0`Y717<9 z-f2LH7aa<`C}ys`0BEbg05Ku}vjBr)u_Q+JQgJBMXb3?ZfdEJ|R11w`0o*J-jfg?DzYKyt}jg;>nZD-0s9IzSCal z_j;$#ZuS;>#^}+`PIsYSlx3F9z2mj@)vBt_pWh-yK@fDh?J#VKNS+s2mThnE+}k=H zM^T(4=gypFmVvWXRUcemMWXGkL6+t7`9`a|%-hrSzJn8}wzf9x_QuJLvt6a*Fp1)* z-|stL54N@kgY5?%Jia@c-E-&&_}W{yvs)ZkTiV>J+Ht_6X)iit+4mRwPn>vmX{itG zAlsd9jK_nmN!n{&OqSHRx0zKy*^UF2Al8T&wDH>8kca@#IYv|n%2t)F@+j2(ewV;g zr{{`H8O5?^dDj#a*s~(llx2+3I_=ahN5r}=2Ak)DB#1G3@WK1Hwzsx+wtwX}e{*Lr zzI^mtgco|9zyDwVox^LZGZP)?^`;x!<;Kp|VB9hgDjsaScd-}PZ8*Quy zo8#a4KR%!|t{++Mwfgt8zcbXy-u*+W6?JCCzk@!o!Q-Js;XneC0nKzRy)v83k%({buHMaJ@#Qkn-7-(>X?a#?45o(?5VH zgR_N*+@`;r07}$?sCDreL=xaed4LQa#XDy`<4qqhs~<54=!AFHo`C@X0DJ$)JO8(8 zcJ815lYbJ&ZgIJtjjRF_sIa$oU3&?Gh|N%FtivQsaqqc*GcY0udfw9(c#sekDI{b< zLS_&0O(6Q-$3FJ)O^RC(p2ndPWv@lUxTm1SJJb_Ns4g%WZ~%pcT8PNBfWeNGh)c5Xp%}M1zFh16@#iqX7W%ARr2^wxzynYzM)xhoXN1j^ZRHZ32;OGE+*uc=Clf3J$C;inKO1CyA2bXl}tpb&{3!=3vKxr4TOP%_D#( z|Npc1o?((*)w%FmYwwdPcXghg(Ijb<5t50*2qYnLk_`@Az#j%D%yY51pN$`9bHVt- z;o8Oqo&YYhQC0oxaTiZH($Ls?;8*Ub+ zGP!L_C(+?T%gb$Z(kK0(5i}G_NHJ?6T5{%L!9qC`;Dp2nYq>juo!3a? zEQ#Qu$EdPUnq#%rbnm@y|5$xEI1Q3XV*1CN_VSi<9E4@CkVhT!(1A6J$!%_}jnhaq zNGr8mJd!Z&#(6JE2dPN_z~mIRa{zvb6nZTv`&9rCjJyiDqdp*lm)yGNOL><1P&$n_ zv}wlQ`HGC}mCK%^N>u>xE8~}3_bwYQK5^{EUgyXf_2rI##wb)6xgi!pgXT8Yln?Vf`a#$CeUB#ERvd0dlRBs|X2&kwG$(=OT#9 zRLZr3iiKMMkO(x9OIjgD>H6jn&Ja970O*~2(hiS^AT4d}OLQg>JjvL}qZX?ga}0(= z6ataZk`)tK$O#Dy0*Fh*2$u2tF`4#=qTm-<7Ct8XTB-#gA`l@F7Q)o0^AJ7de`2B#9y_l}iePsfnrYeeZ5fI?WPhTP@YKLxV81maLH- z7w#yPDzmdQ1Q;jL*yw1t-#&2Q&_ZV+PiS9C%jI1= zcaM*c_0rUFbiFxhnJc~@#UWc;tyYXRl}dGHX5MvuRM?$uRV$@~GqaBC9N2eg-=XO| z&&h#GBWO;YIF>aLqyru-Anclnq`~y)h*|uZD*vQaNU30xn&BXYanXTQ(NX*v#I2+>n_frC z_gZXabVIc@6ArrTC7IN6NfHzCve6c0e$sOIL?y61GY59I6gq1TtfNcEIL^bn4&U^$ zpLu3;xCQ_~^``~@qgb|1mO?*7Cn_6AlCFN8kf4;>Ai`2?uKao+^4x337x&6n{_5}v z@AD~vh>}DS4^}E&M7mU+vZ_`Z*#fA%azm8nBtLfjUDlTyLch!c0wBR^_Kt`EaIw)8 zwq6A#=7g<3vBo5GV$HVjB0#t$`=VE0eZy-L4K`-bPuC-;D7~;_oHFax-|-XNhof{~ zDNYpxiZSov5P(9^?G(54aRySf;_Y6{V-zX<5Bj{$;w%6FtXKfRCAQ!(vn|57ydZsl zm@KCnX%is%${#(AwY0SE!WFq41?=ZvHst&q{Cd1j2{f_D9V=|ZkoECZnc z2on%IN)iUKOEGWsIH>yw+Jfsgp`A>azt3M1pos|gmW=O zpbPoATyj7}VtOns&{n`Ops-;uz`X3Mi(rXJDMBO!q2+ygU2l#|sn}fisUHWqXNWz- z+;@!0t;Is+g9wL)8l6td+U#4m-{}x}#2K5h(GdV18X1bxB#zQbtK-9c0b4<4Ev8!eapx!IYn=lG=( zS+86TNM~RvV%zHvw5BGPFeq0mjUHp*x}~60bt*Oo6xp+Lx9__1t+rOWHq^`pVYOBv zl>PhnSF1J0broq5*|K%>^pQDmY}5A#0@KsemtTD0P^Ynf*L+Y}Yb@&?@t!#TJUy~n zHERW#7_>Qa79VaY-&5s=3^h_CK8dl$Dd{{nfatm^j$#p7Xw7vN7n?&B$I;{Cqti3< zgy?7|O=BWzwL9&_MMjI78$4#P;hetV%) zsRT-^G|ifg+Q{hW>})F}9brC(PH(1b>qGVWkmJGJVt3cR-C@|Nmr5@7Go$bQ-k~Jr zg=jIiJrz-uJc0#1E28C^Xr^ z1shacS9@z$Do@jlh;ojbTh!>pYWCO3Qs{iZC+tLtM7wXy+O2T43>w1JGm}HX9q4C> zf&i7W?j6V<@$HC$iahbUhM1Q=^~E;q%6D&)V~k3RnLY4I=_Oa^ZWRCoaD}~dEJPTW zl-V9?<2CWz+|6%|Tdf9u69AgOH2=F-zy8<*_V1ke$3OX`WDurfBSmQ2?5NPOCZa0|A0X)Bqra zA_61?f(R}tN0Y0HMOXm9N3=k>VMK6=a+CzIsL~N=3umg8`N%>LtVqtbP-839;}De; zrY=h#;nPLbV4@qIQS}l}67Q1~y85}V7TnpkTG(v90JKUacY#0HPlv=>s8opIp!G4I(sg0x7 z3@GWK-|ZQZO07OIzJVM?q-W;mwdBpA5mK;q%Q=qY+(Xbyr;cKZ$j_*W)pBN|VFQgB8-LD}LAjCkVKP%$`pQYELKEN;aRb|vv@Rss8E1ZOPz_M zWNaf#;S+p+#xGAf(zc{Kyz-ag#r0+qD^f@+?^*mQ0yzlhCO5_yW+Wi>;7Px=foO%T zQ`9gGi-G*nQ0%FEM+1Oa^A#x|rBIX7KlpQBA6CT76oL{|C=OX&XzQ>+DTeeI1szQ! zq!5e%2_OqRI@nfg1cD>Lh5?JXnKc&Q4aqeEk*1?X)6>zi6A{l<{R6u-r&t*+RZ1ev zvSbkH`@XAm6h)SEt@QZVsL3-;I5R&dVESQdnT@rGdUSZSHQ$+=o4e?u^DXnt?2PNW z_uYSgDJV~EnCSHfaR8z&`~UzT07*naR6pIedDL~?Ua!C7-1B<9Zna$6xpVi}#Hfg5 zd5Q|MG}GE|l*`hJs+DrB-fU+y*{F7B=RFUyv6|^igffVeh7L?Fs3_0#p`kiyXJmA| zKM1{YNkqm+hWp+2`1shqz59FpX#f6$TefbkRx5LJt=TNx5LEV=SU7+C-@Vsh{>I<= z@snu~7dSqab<421-^fBf&Ui!+C|9C-14CSk6*OxMD)2p%q(~CR2_mwXUV9M~0YI9@ zlam`doyFW{?RFaxE7i)(>}+hZUKIKzmt4K(WK8DT3kbABZAij!`}VCzjvO8to6PgP zUaQ4PvUl(PUbo|UUZqlMOiqv?na@i}HWNniASN+3jnLTfk&$w_<^;V~r@Pqi12H+! zm~>CnUkanBH|Qs=7K+HA*C}~*RjM0-wF{^*^TJ$@tyt#y=}uzZ#ZH=Y4mk}CyMXAH z(Evi`9Lsb$YSS4cmo%QiMlPSAe%M3#gqZWx-<${`WRQ)6nfRwFr28?mgm`lT{EwV zUI;bl>(=o}W2c)4o~~b0o;7#gR9)CNzvCJ?NqV;O=~X~P;E({XSU(rW35?7l_J^&- zfrySqO`615Yi&`56ZiY*-EbCXaZ1=CyCD<>h)6&Ttc+Lz5(EMgVT3bizIdv&Nox?u zj3u^Ec*6sN)~6IySp@}!w>K0jY_MV}18A)^B8C}|kPsg1(zr%g%cx`}l`4MMqh!^q z?ND3%MhbqC2!H{w zAdIMr#Ne@Uxc~rSm$lXlIR*g&%U}_;Qb33+vT`SrnR*BqG8z=_eLxX=TQ-+!zD=#l zRTvGlR!A5}Nt}cLP%2kSrOLsBhc<1R`1YN5IY=WTO&|pG|O_6b@uJC!hWw5MKNeH zX(S4VN1N4hU7_oGbl||D@$q4mRMNS{e8lifUGsqm)QaLIgI=0h!sRN$U9?04VJyN#c8fquihrxUL_^ z(R{n}uJ`|q1@qcpePMmVT~{(zDFv5Z@r#XWDUQSG>FHWyxKXb!cDuc9Z)9|&T=E9} zUUO=~^(#@T?J8;3q{r*^UC<<+7A=PeW|Lzu3zV`moEuZ=1^Tt@|SO52`oXUfi%9+FM_r2p| z@gRHOAAYP{_uusP>ua?TaObJNMJIwu;J}T3ZS)Fx`psBPANr{Q$jDR~5mt4gthMb{ zFHHIbu0G~<1hirYaX;zVK_EfN%`7#kJ&201Vtyp9zB{0j*FwS`*MC;%D)F!qK82 zg1DqSg)Rc)QjddCA)-aH45_u2jW*zDVi2aKsRRPUkCBWA0Yq2;S90va%fdmWRpB=J zu)erfEF>xH+GEL7F5ITI$DCCqP-Resj-Oc1^U^d`iWV2U=WN)w0si=#M>;>{a3ZoOg?XgxPKBO+lKmI7~b!`STXY?j57 zlM`v04h_|N{Q)z_S(Yq@d6t}e;c(XN2PR3=q#Ne`hH~yZL(MubM)63<6hLNzz_o*f zG=i3chi2M?{@dR3mz_=z0IX%Ds94m7hHCHnjo&+G!u12MR0_6jbK`h0H|RF=@`kC& z0|yT=pXMBfq|SMjtEh@1H+i1pI1UkAcyV)bvN2q9Y-+5+Kvd=_LYJ%Oz3{B2J7>MsYke)I5A>Cd+c)3p$-e?W#_@CyGZVYU@qL5ZPGBGC6W&c5-rj zc6Lr!JU?g*=_m@>m@tax=jSE$+>tn7^o6{7qaP(xQ;m8v^t{U4+{{etkgm8v#YIQ0 zqrcQTgrqNIMm{lPXT{HotM<08;0h=Vqd`Bs*B9^h|xO%V{r+@;mIGv`P!-<;^rv@TH931Z%dcvn>b0dc&@Ji3Q z;^oJ7qIzk2|L$24S=FJ6v+%ZEU%6o8$sdxW?& zPPzQ_3MwsuFf5OQuD59^E~edtXXhg@dTcb$6A>(-%f4l{EaG{dA2@@-!1Fv;J0KMJ z70<(d7}aXEJ$nvl?UsU)(yG_%@7Z^t-yaMQ*Bx@p#qr2!BhRx9Q zDT0x)p%Ra_^%2Z6KQE7-vvuw}_jbd0c6Ncl9-3|c`MIKzd0~CRTUURnR%<@# zr9W9aRnXk)&wTQRw=A?~_B?QyC4J*>|M=+SiPgZPZaOmB&{|b5>r9k+pX7 z=*5H@fKc?|J?+YnU-aT;-R~I47M)};2nqB$#p@a>sEA)?Ii+6%ErkxtC79(B;E6YS zL|jQ6MVJ|wh3#q%kFZI43*u&*|La)@m`jpewDqi{Olua!?r-V+9{01;n#>e4|KjlvXaGB2pj-0>GM-WkftG zvr$A+r&-Nf15T0f(6Vq=(I-Bg<_-V=h+3ZLTIJcImh9)3Nj}BjAI6f2j0%=Y9`dN5 z?D-Y}pttcMPX?7(qu4r%Jg|y^Pz#gL8P0jslF;W;LrefI0VttdEE50#8WciA2C)np zz!=5KDmSzy1M9J>Xw6^=gpo)@6;fpYXpN^ZvpN%JJ*IEn`6MEhdI16LV7yr%Qzva?P&ufmBa}zd) z&+YX?0TZT+N+EN}q0uK?J~=nn`jbEU*Z=*Fw+xSM-nOkW-+e%=zis>Z_wT&56x1sI z=pyX~s&3dc(e1STs$($s9IQH}DB*r@=8~>*s#5;EB|&y{+@h2jl~PKB=XqM|QV?`| zi;f3%uWAkFdG5MyLAdPq`&v8e9pya=#55CYb#r*KTyd)@&-RkIl5gxuQf|~Dw>dSW zgR#Vo2d(Plp~cn(8ztLNnsoNfebdwa(6(nU`gixk7*jJcQ6HN04$h?uvwb-(Tt>p` zsI#h5p(5Q|Y77TubYRb%M(>&{UV;cW-TA51B!0;aYIMqml{J#~EdZJrtrb4*!p{VVs1nrb zr6B+i;V6wf#|MD2UwhHhUZqGGYd-s}e~;n;E|q(rkaqSx|I+iXy#LTQ{VG1_(ll>6 zcR1>pb&1!JUxLf81-}YjiA9hENTFRSiWZdGqBNRj28uR|00n*1%Nr)eZv0@+a?Wjx8bkn9<S&yBqY+BgbMFyHs6oFyp^RS))p)q6cI#Qv>UO=w2g>f`pmJ2LZ`?`MMNwM z0i)((*g%$eIH-hB5n98@u;iUUq8>Lbc3Do%S6(R=to6Q+MFbL6JOUO0L{{`$}77w_43=x~;XrJy-`B!HC#OcUfity`*VBi)q7hQb zsTI#cYt=SkV$I|^qoeoiIsCx)D9Xa^L9lIN5a%0oxn;vU@3?d8w$1Z%t@F;?Iy*Zv zHa6NH3|!Z@ES_KL_xhgig<(=ISCii2!#p=(CKAtc?%lJevVHSJ9IAbX8)FmPa69GL z_7{V;p>9v&bl<*tQ%)|r_-R^SQL;p(4b|F!NXfE{VShgR;-4OlI;&L;OGElO|7)r~ z{vgfeEY9xz%4ZhFx1D#@3%$x}Rkx#uW!b)6GXn9Noo&1$UvupqpP%AFDLUbMKIr{z z94C>ZIPfZj7^jKy?a#jTMQf2T4qMLMACK(7dCreKw-VpS`7i$kEk}A-(tTEw6a}Rl^%gd&6%l$_?ZIfP|G{2NBmI?Y%+`53A+unGp%`ylUI}EGMDXxW@NB|!W+7o=6d>sp z4;Af;VXe@0w5z~bj-naunO3Hj!em6_Zv#)&l)(bA#_R1goAJ;tpeBW~vR%eey zKl#(Ie#uL(`T1Y?nO?6yJ2(F?ANr3QKmFb9I~p&&{@GVw`{X}-+uu1fG%@bZzxUh!HF4<+%0lf(;#5R{2)ms@YQw>NroeI3 z>WZKO3R?zPI8(fmgd-$Tn1=n6otU+zHGiPhIuMjy(z14Eo6bT{DRS1|Zz*|I*YOzR zHA@(iALt|^03jl!wE)i@S_3~s?VJ8fbx*zmK|l1jndz z6>K}D6j@scJ1xzo!b)v@=~fUa)WD1cxw2wJmR)+5@JM}>&n7%)7XEF7fDD2sFnl`- z0fXo$1VsvICbMW6tmVRdl?oMhdc3J+DnUhXtkcx7cnFm?LqsBqa{yq_fVyxh zymb4E1hr$0~1p)f=em5)w1dPd}VkR-W?Ib4m>dv_%DO$s0;TbX7m?UH*b+ z3}!mj&FAEUtnbtK_=w{;{a*jR`**T6^+ql5eb;rWl}4!)fPkaDBuZV^uhlBm#oog- zgSI9wSNwB#JfYK>_ElMOcj3Yd$~&HQ?*m8L3-=FgZCs+TJNtm4(%gJBHe7OWka=k? zo`>XkLJo|KS3mjBHyzkL=alJZ-+cYZ#ECgJaX;I1?g+73*(OA|)1RN7-sP1ar1?vv zM@G+S%^&!)KYArg_}VvLw{8Ktn)lpm#)EYm%$&}R%sKhO?Kfz0pY^ooipu`+UH{jw zs?!Lp1y0?MS^!3Ymc|TYwAz30y=ZZI=eJi-eF6LGUp~ z1bsvx2!=s}1+AC%8+&Re*|T^wK!gNAK#n#pAL9@N5M~x&5fL#AVxgestdtCwoF~Of zL4-!s3JH_}Q;>QdoE8EAKN2DF*@WlJqH-SrKz6F#T|^K>Au0i}0)=asI-`o@0052# zP2?yoVhkvy*fJSoErbr% z1raeo#iZOBy_WAk7!?TsSW@H?YDEBceInFI1PlT!!bn7*nZcx$d%pS`KYjIEe*35H z{$A%(AN#NW^TEHr`Swq3-Z)b6lB=HitP9S&;=q9ecinmK-QT_6b;|(!yTAXtX(Ts% z;-3JZH9zYI`YBJj;`|*KeEFtN-+RxlyS{z@#Mq`vO}hbX*)lOdJNUJ?{N|l^-E-$% zx7>2;H}1N9Z^heGX&hnO9`vG1w>@F!!2^wv0UsIt=$po=XJTnPlq>DqVfIE%6@S*L$B z06>z)j*`jpxz-)r8r@-4a=GJqvI8UPWIFq&HBrq`ILWu|KBEIzG=&t_DTm2 zv`J-aRtEPj8^2DE`1!IBHdZoo<<|p|=UqE)`;Pv`(NO=O(vc0fh7!6?MH-k|*Tqu`(>@~jwMlkQ zS{g(`VG%$JoDw*M%$yggpMoOWS(@?tVS^w8SW(3+g$1%UV?KlA@3VNAI3}96So9?2 zu}$EC6Be=93IZ(^NE8%hbSzpy$buwd3;SRpU?vog&w`AobAb?0D z43hR_Fn9BR-neg}`+{?S?3dp3g4ezJ`r&h*b=!aM-0`ZRFpU1`{U6`E`^alv`x7sG z@pEqc-0g%OB0Tv?mtS_-6aMyZ|M8ryzaGZz_P*99Zus(%L+xMq`PUQqpZ)ZIlV)bH zIiy*b+4h^>^jFr(Ykv0n=e_9JU;o;7+U=}Vau4iZ7->#@>z3Qbwr}++HB6*Z_qx5X zwixTlv3f0-8HA%jZO`rlTXt-lJ$ytvZmZY({4F>AYp=Kap6Px+JU#y$5a`b9WU=$P zFFmkfY~rmy|K{KPleZ`ROetDlEbG^owNE&AkxP)LoVUBU7|B?JF4&mv+TYqgJF#QZ zb)3YcWmiS!o~IqBJ~YOl25Bp+_`!tkh1sBUV0fGsoW*D{afVzk7%GpSv*G-0 za{#VSI%Xoz43wxno}Xw69@x^+P{d77_Sm*Yz1rA$9N&@H}VpMMF_HTUTJM1KIf8c%R&X{_0zC z(x*mH8PWaT?4X+{cMz27e%W=sQwuE|^)Ow?0nlG5ZlXXXL4aCSbIDaBzHK{fCC?22 zRs0%}Qb7fSk}B0WXEM1U0v-(l01!wMqG4dB+~z=vlooqNR#znL*M=|7p9%m6x89}U zq^UjtAV8y80g(Aa(b{=Rx#UHa`-JI=H3o?gi8KL#VIXD;48$TXAOYYq4|Q3_;fD$+ z!bX5Zz=ATy7yA3TMbJ=;r6Cfb zM$|~CB+U!2u;Q{Ui2#DqN(r&ZDuaqgM04AQXK?1W<%#S-7cdqw zCLsa@0i%k~Dp@FG$Ipaz=?@SDBzzjKS%p>s00_Dk1ue^9-Yo2ABY*$d|K9QZ7gmS% z-hStI1Bst}(Y8t+^_}1oAOHN-S6>^HoNs*N8w#jcE?)E6pLq6F*F5{07u@;nyPo>= zOOEV<)c^n>07*naRQ$lZ>C4}`=GoWPYa_Scb^`!pX`;}z26pY*li9^vZ@c5FAAOeN z1h?IGdl-k6D(<=GaF&s))Op*sb{(gmn9ZXb+I8`5DY!rBdE}Pd^M^*#x$fk)P1e|v zN*yYG821(yyPaN-l|Aj%NRxZba0k`GGsUwP7u#thB)y z+PLrT>B$|93JmQ$xO>C!1vt8Wenv_)iX!8%%*-9BRBEJcrS7jW)Fz@s;di4XOtQgU z2fq6Hx4z_fwn=NI_kq87)1Vut$)Mz{?iZ~Eh$OM^CJj(Q4yzNMle)@~eVE}GB2|VR zRI)As0A`7kG@&>J1kwS@gu4@Bc&=w)6eFXI4&QSTo;f(KJweI&#yXJsxJbT`3YBE_~{RQ{W({>Tm;t0Q%c~W6hVp$ zLqq|E01Sp13hQbqL~#JDwMMLV2#FqBjt-9qP=L`e6Bx(^Ec{T;_B}>`s73NZqRnxX zgCt@>IL{yRPpojAITi|ug{5dVA|ZkTP>Km5N20>>2C-mrC`3e5iomiQl) zh(o9ll_ExkEW!k$h_ph&qC?3dXh1O#6lOJrBP^n<-;w6gi6UoPYRd^Ai=dztL|WGc zA_EBs5+E{wn9PLTyf^oht+ikK?bm$bBmenF@7RCtW#|3F2j9E>igUv}$@9f`{^2|R z;B9}n|G;-&eEoI*{xARCZnqJEnd^_Xv{Q9r|-h2M$op1c**Zj)|zc4*Fcg?j=`|yWu?DP&dN2*#? z7dzdNbB6P>SMjPa;3N*gm{K=B5_5z!>2b8!-}uBGi*xOYg@gSb$Jw3-X26l3`lajs z^{;O{y_;G1=Xj3(gP{hx^a5f=PKo~3%72c**6nK;f8vJASNZVhY!5xeZNYsdE>9WVqF}YPOk+B z<+|rr=_G6umBhU`jQQckh}KHn<2+l_P#FYiruwYYhqH(IsI|536%f{vlKpH#Ei;{IB-TlN?-h~^AIq!{ds%%gsHw*3Fo9# zb4&ztN7^Q{T5DU_hA}(JM>?LTRL?lF#`d$tB#Q#?A%@wObU|4x0AOKbfsSy>B#eN< zBG!sk`iGIWLLh=%$fgQdW)M)Q2<&PV$Fq1;K>;~PS`)EYvG5pAco3xeL07DN`i z6yX2>fG`7~C`Ldfg1jX3B+KO+DNK7vi3s!3{_sd;J8(APIn&@BAVn{324DijA|MxT zlp+Fb6_O^Zd&PqgE~W$s6{v?+>{!_dk0o*mX(hm7Lcr z|H2LL|KQs;pR--W{M;}6SZG9k8Wc>MLuNr3<&6H`{LaqomF}*Xwp#GZ&qI5ow>l;gNfcTUGSJ3A_);e4m#E1NaI)((2}fto@B z$MtHCkLA?HeW&iqo?G)RPer$+<1{n8xX=PhPsp)hhW>nhtS3*Fh_GadnLXU84wX(h z0@ps`9NF7?I8U$J>3{Dd9oDODlunpMJ)h-d%t8v?2fWVG&Z*Y zpwT@(u&#LZj3X9~^WGrtCp}(sJBWK>Pi!O%lTSx?Qt!L_GCvN1o`<-! zqdz9bbu=iI8f(}V!YB$fBa3B3MMTybDMm&Ntal_p5J-T47(}peu>llyyjs)~cDn$u zFW)&dTs~o{&sJ;-%|>J2%-m-_eDf~==Rg?0{njg*jXGOC|K+dDLRh%9V&bDGSMZcl z8-C{2f6G#H)uk`2l^P|lda@l)L<4|`!Ghb3y09$)T?T7Om=H*5M|(*4I8($~3s69W z7$8~R_XI4R)K2Lve!yVP3u=l*j17<=fJSuSxDNSa3>Jwr2#A;>XEBVV91?4nB)Hiy zvY=toN=G&&6j3N_5sMg6v!F*NXJ)hvMLt9b1dQ^q2@z)#o-+;xPyoSQ6i+Y`9^U{s zJ?V)eWm@&KXql0bkSu6TNTfg!A`mc$LNP_wOvp+XyQ5kT(gmOp^eiM$i>?$R9ZP&9 z0V1U}A>#6uqa95~a<<9>=Z14DmW71?ND<1Cb(DiEV;DvVq2TxP@>IGN0pNAt3N`{j zA_{?vA<^&SZYLs&kVq*)0u)~N)O5i)N#b~@T+5;qMS^nelVA8^2KJiG=Sxb7SPMp{ zQqRF8f)&a$8%J55XL)WqorPXl>i7EG5)o;4+LPmrem`?O?)Q4*W21vXyVY*Z&KAFvz)#YM$gn^^jUj+6%L!y`<5)KgdA?8OVBh|O=kGZ8 z&O5*B2mYpw8`;`+ckxZX|GSpV&%EWu^$GXB*0-$Wgr_qTbu6;f?%fr=EHS4~8;bIoz)w4C|~rrMae|Bb{8a zx2Z+K&d_jukbo5p+F@bM5;*Qi)mL$Z-M$jL&{|NUs+Ica$Y>M|JQY;@^4`Unsi`gh z^VR>W*NeaWnY(6MGiyx7#29}ju8;e^?}>rAh9i-0JYUkNw9u+FOsVfMny@~;&|kDM zmg?j6+LUNFWeNOK+|~YkzRHtF81k5j$P3)HjKIa=!|e@-K)7g(Rv^*PO^v%7a^zTCDd98`%;IusY@y~UZBDZ8z8W9x9J9ldqS zrb{NSa#gVM+l#)nMJr59KQ*y2Ce4$wUn%=__R7|+ zoc!ACF}s6BSn(wkU{)HbpbkKxiuwrNp~nV_*$^TH0ISFkXYptQE*V!8x@A(>Og#>; zQgB&uLl(A%$Ri>IVFtt{&uF&G;j759ZwY}007kG3a@=S55g~Y-O?b{YGLQhUvYX;Z zy7aUvJt!ubiIEUotr0{kQb2?ZT97e0W*b0J36s;yD083)aBnr`r zC`Cky5Hc&sLZCo_5yu!QxROSIg@iP~l2I;*1_WC;O|cb$Lb2^wulFT=(UT+$CzX3< zCPYn)geb@?x!@xrUwBF!+hL>A7239iIv*(%uvQf2pZfF{di!=i{dw2?{vZF-)z7}_ zC*SZB31$lN{(Pr7)QmYbHW$nRks&cQ%2EKzm2x_Z?Mp8^uh;Ii+nvE692ptzb{C@f zi0^r|nuq8!a}em>;Qwdu&BH9qsyflN*53P!cZw+^BFD(*AE{j^){&rfW>?|s@L{hqcDwQbw?K7Ak{(lj!ND5FdQRn(MORXN6d=QHoU z*8Ah!h>VPkOfs^DrZ9eg)K_`$jdRaA_nfo$+Uqy0M^WfwCr!uG(=&OIH(Md+m1n$$ zQ5czOG%U&rGdD1KmF0&xF53QFr_=5BPuzGSio(^^wfO@x_nf?cFdUfB@36|^QQ0U98pX5V?Gxzd(na$Y4hplW46=GO8o3A8z1iXM(Y<6L*7fj@wJUO z2tsXA8#W_65q7P!BvAq32vWi#YDB|8U_9TK4D(R@Tth~AR%I32Fbu|3R(Nv21r1An zvrz#QP6k<}N^%(9(tKLC=*{}xR6{M!%>hEY*)$sS>=H-dx)^JPQ*mhOyDJK`nT{*P zoEPmzncd||7H`gyDz2VL_(dAVH zLm~{-Sd6DdBpnvxLH4`9^p{8=V7D%!sI6b{;|H5_W;aq?TLnBE_RpPOn>!q{lIPs^ zqS@x6(JJ(s2n2{ah>%E_U6DI+Oxg(*XSRL<9sz zs4sD&fv0$f|DJ+7#WG!|fH=Ii_g zjnQc`nwo0%R$a3ZJapgPryn`}r+@JOK@|P)5B|*0{nVT8{^D0|dD@XAN!rI2)mQe`D**tBESJn&RmFh=i^G1ly1WrJ{DTJ<`h($gt95YkfH8V7P^;^!>+9Wx0}Fr@ zM?qPZ)|J*(aU1|Z6oyq*HX2bk9bsOgCd0@gp5r#FGgSuCQl!V@!f7eIPRuR|bZKXodzlJ|z| znmn!X8^7sLW6JXk5qZAnRj#biHaxUxDGtk4Y>piqlqn69>R@v;PNGt^m`6y10E^g^ zE6KcSuHrxiUfAvox@!t$su_puHOX8k9++<)2>o`UTmSS9aAzB@o&Uad-~Qc69+wwa zr0QZU@acxzl^;jG??>ABO|{(JsDLO|&BVqK76qtjWuWjziPDWm6^f7Txf{uf@dP_Y~ue>db@dVbj|+lV@$I|Hp5AZ=RNiZtBF-`j%Jub^PUa)M}II z8_e;i%?($}-}%+IcV^@3iHt<>8)zzoV%JoeHbglKGb9kD`N-b?fqcAS&p+6oJ=jXe z<>ruo@wSx$?|yqy+Ym3E>f6fA9c)EGGbzU^gd@+X-u@ro=fna43O1uoE1c3n2&j-y z2jPKle4&XN!eaAG#J%xFcjd`osZcN{Rq)gPYsIja7rPd^S5ni#K7^VQ=tmsau zY*kdL1?!x(mZG4chy>Aj4fY#XJ-Y2rbw)&A5hx}>g+K@>PU;Y6{Q5G**~ixxcFe3M zKFycC{^Z2g+601t0|qAT9M!6XI*kVrFV!XxXar;c$Ly@LOgy3NT*PA%O}St2Jnk6# z+(}h)IQglNP`1_dj|sLe1*1d(YK4TPfkh^M=Cw>#A=HLGN=?#Y)Mk=m?dU=R44_DP z8WaHu1EOQLfGkc}j0PgC-9Hf#Njc^sFVQp3iGw;z_aY+#>quR~+OSZ8Xr(=cf|}WZ z11G=;B#Mv`oZCy=5|IK$3P}?n3Wx&5iorf14-MKhinZ2Oh)O9#Sg~zHQFm?B zYB$Ryf8g%V-1W-4s2QmW3WVFf=^6KY{vU2XJ|B9)g_Y&F5!({A_Lagc&qdJpJpJ^F4Na=&%>ZL6H~EqUZVR8+~VOo@cg#R-<$H@Zl^klQeHM+sw@Dv_WeNQpy!p zYZC-GJvBYZ66W!N12fJ-6k>EZOmka;xI!5T^xVJ8Ly0z$;hy}7Nk0K;RY0=M;!GR;k zaWHUSJf+qKtxjCtJ{?RQKj^|!`DfC^vaN(gD<#e$K+~va51^&ZK;woaROq=1w9>7S zYdzA%W=y?2@tkg${+UzWZF4@GG|d`8Lf$@}orA(e8 ztCC?cS}#RJ#;rR3@^aT+QW%6L)ixWK+NixnMg}b}Ler3c@~;jS)s*_g^HsS^BQAN` z$JoyR07!=Gd9uc3%2jEzr2O%J_qw^oU8=R;dGkBQ-Gr0^0B2?8+yHTS_MtzG>2LS9h)}QhcarW7_-vxPp=H%aI z{iTn7@x3O3H~#OhY|N_9-2buip3;ilzSuzu=WhuwH?Q-Q|838Cji=(PH_m92rY5zI zDOUc(F%}LK6i;J%ZI1 zSW+{FChCUz;AxV~gUnDeTj#cJVic0CKG?o3^^*cgOCW`~xZ;&f+g8f=3gJo04H6=f z0jCrqiUwv85UvLj$6&_zFc)VbQS#(NeQDML--}_5SC}szgs|1Xh3u z=+J>63d$bCKOYT5SfI9&zn)lY2S6a6(vHD1+z9OFKlRz~dc%*z21Lqx?)m%=zW%OQ zv;|m*JHSO+->^buVU>cwkF@r|K$?~-%iSZ#4if6~=U0lNIC5lhWofmlN_Je8EP&QY zuRF@}yx$w#d}|AU5Qz}|z%R=x@FM}zNQ1$6lxHEzXld20bW7v23FexOm6g?ng?VS) z!s5K|d7uCC7q?%uq_912KqMQNCCXm2AS=mpn_Pv;Tt}De^2S9D6d)0c6iMkPl~H+V ztktTT_EJxqQros_YAt!u=X9!say<1z`1~EuUho2q0v@7|h?ZSZtSzm;&5LPL zHB)R13L5a~Q!6<^x4D9|(Xw-yVN?IkeG-Ps|YEo($;Ha(L*)YWld!a>$3CnhWfP7M|2; z+E6LuB1!Ih|AvLh_hyOBM-~wp?Xb}arVd`L)*SPAkU7VdqzD*yVxr4@PCXb666H(O zF=m;-@i6T>=A>NfjhE3gUf@wRXfzjyGypiZ-L*69Dt+^<7qdA<`fKO@@=t#iDSy*1 zzOJ?4fAapne*aq@Qeb}I=Uy=h&%N}N4hDtaLMib2jTS0<`qWC6PeehN^Zj;gM?{#N zt5XATmj~dZ#Aa=Sh-&gQ+6_mn0)#J}DC>{1-vEFp>R>) zEP4Rov0g~s$K#EyigYrIdy-SyaB~5Dk}3%VSTluCBO(!72LNhQ!XV6e(PW>TtJpcq zu*LU5fXB|E4Pd|Ec>*vz-^H!~NfDWPP}rJ#Z`Kc$*jfWd zinLOS2-$*E^$53PYlx(k6SwsWA&GK|Jkp>PpllJ@HBqG5C8nd(0!{HFc*~(5&x6hqBpJ!>S)e3{4EK3Ap5djVY@8IG2EGr4oT8l)AJhm25 zmpMC^Wtj_1(4G$5>GNLY(wT5P%+{AS=I0OedVN3ewZbCHSJ&2w>W<(=7*8L)c{c6Y zJg3)?0SlLW?AMk;6p)w7?bLY0gLdYGJ;n<_Mx z8|kg?#LB{k6X|w);3*aO$f}$6p8Czt=$B*XF&qdpTZ~s$fBgM_vN0Gjh*C;`L4XCP zXQzJdNB$+)Q`DIb!OP0hiFMj~o>vykf&!jWdTM6Q@pyfCSU5c%aM4v^!}GL%-SL;Z zpFKnbvKh)XyMc@FAnnmuYtQpr#poHIc<6&=+ON*uI~0N0gRxR1BHMQ_&&uVq{l;zy zs#(w7^B1G>MtS=FHLcB0{QUoNdGlv|dGH5sc~>?rj@&qV?3M%RsQl39-yOyN>wffw zfBr{5nI+W?H!V!f%zxXff2-9w3;^A=GjIEie?IK3?buG#XpaXy?OBTLU_2ftLo`-v zHFa?JQ|iya3*WSO-+Qv(`}KD=+QD_SF-O_JQ-M{Jv%1Omo6=FUp7E$C=56X+nRvBM zB2{)g10OwbbEL2in8DR*%N?KTgO4a6r(V9ZPOiH>!wX+AjkhUnANbNEy}=-AM9|pf zySk5*;v{POHk&xvz+|vM=S3SgJnyUV*+7I5)n*bAD{TNQz%~;HsjD|7{|KGh_VJ{} z*Hf7)2=x+oJp-&At0rlK+drl*vF{QQ=PWyRfIvzBU~@YcHw%w}h;hH*dE7C+iQ#kL zJr3~zTf^a`8YbMTrx*Zgw{t{9vW0al0-%soo$ITZOQyOY*@l{w=0pT45RHgZw{l3y zHfg@FWl+fAa8lK5vyH9^8$yVTT53BE08e3{$cO+~u*{4iAX2A0BH=Fnbr<*Qie?4` z!YCIr){yYJB0%?ydgg%uN|DwI0a$piKeF;vk_-Up5jy#Q?A?s}1@H?%j z)o!ulGiUlpI6Xa;rWv6`VW@P&^SrVwea~ZNV>|#*T1zD}^Rwls7-v}{uOiRyH_Wt( zX=*A>Q>E4V+Iq7YS7jN6Av5ow$|GT8#vtOJvLMUM-ha>Ovann8!lW2nJkOVTE^mET zb8Z)JF%e*q*+wgKm2tk0-yJ$wHcX>=xLhoV8P?XLNBaKy z253p3Jdj&dzGdr8#n6uN=zOX@>KuSVm179?9Qb4t8z}I?u#02q=hM^Et$Ai?m74$n zAOJ~3K~%rA)o?IeSy?-FxBg4#Qa~VuKlD?tom2~tBL1>I zy?LMWv?_~g`E0Kdbzb%S?@fwpbpsC~`=@{KXDn4+0Nf*=IPq%dM!{_#{nl~!@^~B( z2Hy|boo3ipmse|r<<3q!){OMidz!|(Zf7JKzmN(3{5;k zm>u-|2I6--_n&VOHfp|Kt=myy3;=?#UA=Shl-27yPBsZ4kInN9NdU;zsTppv0=MHc zM?dHxU@j~(m;E^+`;DSpIefHXOZ#7b<9$)vf736$es}g>@?h*@B<| zq4Fo=#WuUodaNh~l`XJvVL834j4^8M(-`9ZrKcpfUx zcg_ir=X+_9t5W;EPpFJXMPAh6@6gv2O|{0b)b{n*nz=c5u6xjHpH0V5*f@@i7tGBZ z%Cami^TWoUJ1~=1>H6}Z0>7sBNUM0tt9>_W-ZA&G-6p#LyUm!ha>xvX)QUQ-u$>g6 zq!BfQp7*j_I_@K1c<iwU6HyQWZ@4pjJ-uYktCK*o76%r<+QJ$2D_|f-%&i8bGy}XuF8c&;Jx6Ee! zy|pn_(1`B1vv}b1Cfr%is3^uTqIl`Ckrbe3J8SRvLgT@64aI*fFfWKMn#*( zMwf0xq+Zv;&D`gUYh<9EaN)Q@K|&2A0&wX=?Dmre0G8DiosOApRaj<@+d-ofbQX8b zx7At`DJlyGfYY5BtOvATBo9zkZg>_XYuQ`-ap{ zPCV&L9RL8pP4}iP;SC570BKWN0J}+=b(<4UW$Nb}vtuR^0bvrUeN(pX<1MD#qsM;1 z^Y~+Wl0B;L1Gyc9>oph)0GgCXa2+C4#@f6b5iJlHK&_NkwfO)tfCH$kv%>5w5!S-r zYo}c~YZ+0as`DQvF6jvF3YXn>vw=DU0Ba^3h(~BNXd)89dI^(AK#?M1Rv-d&dCuMC znA{@ZP=E*&NF6#VBBj{UAv^bY*Ev@L!k$ak8iE!0e(oyD#;QtM!CcegLtp%Yy71tI z_H*XH>qktSuU)v;9KKl|OpYBbdU+O@siG`RRC+EQ4Ms|-Dh{i%nwst`FJBn-`$R;D z8yh{Ep~Ht4(sVEyjmc#5a|b(}CIGwCA#$3HtEx&;X|-D-6a+q@vbIpl(;#siIZ5IQ z5)rM`Fx_Z2BbI7q?Y!^%ovF4m?#I6K4Hqt)|C8VTAE0@Q-h=IoiOgI8h+gB0`8my? zgM_&qjk4Y-8yr|{`@S*87=xd^_k&3_SX_Gku+n44#Rj1>p4mC4bSeMc@2x!ZRdabN z*15nBeH|$xcFtL+L|f~GD`vEn7^)(xMxl-?s=A5l#E?7BkNf?B)=FznDXkO{2@z_e zY?Y5jITGfD9Vf$1r@gVh>UrLHoHSc)M09MUIPiVb>u-$5!;Rkhkt2tqFgktuOlPW- zW(gv0bh~HHo?TvD8;nK{tf;E9Xm*k)7kMo|ZeHHi^gQo|n-`Xs zmM%QJW~O(e4Sh9i#b1t|_Aw0eGPC1#M{GQ;yvaN~1b~m<_g>EnZ#nw(2hZL8l4rd# zFc;_ObyI?T_r8z)DJb_dzxqAmRf}I~j=SZh1wd}_!y>SFyrp37DUBEUssR9lr1!zU z|8oGCTWs$rE$UuVvf=hb)dPU4v`}}LiztXpW6Gm5C?Z*w=H+Wu=`C!l<{B@7gxp4kV1HjLo3R5U!c{2MDHpKtJ~tmoJIz+SR%E zuDT>ib3&l4&x5nhvIu`w|00}d|2CPMc%aOH$2D_Xc~656p$1H%1tyI2L*$dmMu z2Ud4Cq~64i8udBf{F>&>)ai$QFUv3aaWDUNqM8_U37MG?iQsbYjeYE6A76tgcQYCV z0K9ZUxoNiXINsR%1zQ{v(lg(lG(E^0(s&BI$5y2>W3K>A}awFL2$y>kkU#Cf+6x1>e{YNY^`2% zo6%^9gcD`jgn_;L&eU{077zin3Y8{Mgd)l^l-5}bmDHZ?PoVNoT4Mdnf(rQFaMWl`SSKs%& z_das(``+)7m0NLSiG&eW9v9aNK-qO+v zk~StNbMACH$vBImMi6-2-nxh#j{1n)=`=>8WPV|0Fc>Y&Pv7&E`&L)i2kGea$yL#O zjdQ_`3)!dN_nyUtp|@O z(7%4|ZYF7i-+l9+3!~>5-{?R$k!Y0m5yiwHrW_|j9bkXlQvo+;d;wTHmtM+aoD6b? zz;v`i0s!ALS6UgUdrb<>bx`$OW$R@b6VlD!9_DT?8`uwg=AA&&oC@8hZ=>-hlESoK?(pOB*M96MsNb#3>O&@w|if= zfdJtC=j}3Ou~pGO^O~24aB_gh3n$X#}m1826f6sn9s8(1J&` z2{kBj%q5|!m~*kEfRJbf8nmx)Yqj_qHLr&BcB2dckjr&vm+cgQQ^*9MJ);OnkqCGM z3WWdxm_ZAGbuO=%1xpqIr2rfPu)-_HcV2Qo2%s>ML1fEVu~befVE}#6HQ|W~9z{fO z08*ER*WtFOgvts6k8D1eX$N@)rmCiz(MmKoU*T;xbZz{*jPHe>5hr8oL|Xs=4vdtHq34&fvAzL7olYl7lJR)#dEUb8%+1G-FRfiT ze)GacuXh=}XENi_z_-L&5sHA(iims_3&7f7=|i7?S84N?Jo7c%=Y_(o3F9cNN+%#h zsI|J1=dv~gwNov^ST6YHDRCnR1J!9XqcF@<3sv4|HiLHCF*w4KISLz5b6QPBj$^L` zqfMQoDw^z`{>}HiaZi`o z4hTciomg7?#=nwIMjK4B@^fcDph({`{ro7L`q1a!g_Qrm&%C;{NjR+(sy}+mUusR? z|8HKdl|J>Cdekj0F8~l>_1wE(`1F6;2zQonm+qCMJ!{nUQ1x78+pQU@-MUDWD6P1( zdDQfN^yhai=lZ|<=67VHa^Y~>c)HB0s<2s^;t6nw;(4a3tgBd) zx1CW1*WgBQjSwV8SCe#wx$gB`W>y}g?YY$U)&k&&2#MG+GglLiG6B^@wr&2` z&Sw2{Q=bV5r&(m>$o;Se0Dz>!&S6p-0QzS>^XcFJzPM%n*I)i;?S)+kid(q6MrF%D z5C!pelakBT+jSZ})QA7*>`eBtkA3`4!IkD?gbFUB^F6NYzWsvdi9o6)uAs3&6ORD^ z0`L$Nfd&$>dkvGTguyWZAP6C7Ko%AjZ9G?rb=Cw0)wJmUJRaqPIgdy+PH5#*J zk&{AeFpN#R)f$bHvMh};Q|)G1RhO;qZ=w3^+6Ok4G9o&BY_1VDZ=JrgDDB7Y{;Moc zLqBfE)2(nSihV#3W}`)fowMgp_rk^=gdER$-phS2I(jr%Sd3fkDDY#C9HK&0j=`nn zm~&rYFw>GwyPu}zwAT_Y#5!gcAw)tXA`}D%zK$T!!~SSyc1B@v^vE&iK$KXnkmSPo z3sEB&jYhrR#_=1Ej7P(=ER$p$2L73|{l$ZG4?lcnoTb0{U;oge{l0(w9qk2gPjkUW zqkZSAU*GEN6p1U+GgF5*IxD2qqfshUse9zUHBt5&PH*|hLl=zlZ=F%LDjd6_NdEYD z-bD(3#U*Ru}D+c3D1jO^o&h>HUUY)mgC5Q+xPGrDl%nP-3hAICE{007(4l?8~NUD!!b+<{$d)E7MSt{V^D8hVY(+caBCR{$X5 z0HLmSCJ}G|!p!@Wwtej5$pE>6-~DEc$)@t>@fR}f7d%e{l8EO9s*x&0L;;0Bnv_O` zBA3NlUklK&0BAxYBvK4O;4um-gbIL_Lh(dtBt0PrZ0A6K^$Ews`g7CWvtB#Aswt{N zW)zF0l>(0l!PS|%AR=s0833reI;CX>0#vZWKANxSCcXK+wcN=uNWrMAV@J*jfI?J4 z=(ZB*o)91+X;4b8n{_GxfnqmUbyevFkt4Dm>BWNwiN1W#eJ_00igGiDgG&(olc)UO8ojZ4-*=z+tu(7ehmX97i+-yc^ zGG-J2PLf1Kv^Ku)Yo!yLM`4JFp7D}&izpTd?ui!BoJNwUs5NtgwwJXm^_Z zLGS$eB@v0E#`3ufci#Ao@iV6GUrg8g-D{!u7!~P2Uh>S>uy8#u^nH5nok#ru^CBZ~ z>x0#bZQS&t)*gf$MOpR7y>sXMBS+?JiDXpVZYxD)QI5t*fGY0}#a7acrPC^kLV67bW>|HyJ@MX__oe12$`ZrF>@gVak_}h;x z_1AYM;YL&Xr9XS9JwI7YDP5KqnNdMInrcSvG#^J{jDSUzmQ^{*1`WjQ{?EqGeTCl5 zkl! zd!wF+SQr49Cy@qL08w*k9XJJ`kqnX+VsRkV)(?G+*A{IKjMwN8Pw0@qkTwbx0YV)m zYDF{xkTQhGpekX zJ}!9z;?Zbh?bPg4OOu8&*M_RrbZ^YwYBjJ<^-i~9%TK>S{(d=)A89pj?sds;%v3V8 zJdSlZ80QkWh;TF>fAkk# zw^x#kCi9Btz3!!rr?y*DC{*Omxk7{+L8KiAt3yQ?wquAxKk7s!ibqA|h)5|z^-{Oz z!muIWgb`8A&d&CF>!f&`^p$oZ#q#Rf^h_rik4cF(lotg%?)L{b9=~Df!jjh7GhQM| ztKCB1T(^^^Ey{oR$osn|AO5D7ziJmHk2X`Y2kK0o3cTxxzhvg`d(&OhC(IsoGS2e@ zKM1odRSE!r6gFl&09ZSRBGO$SDy6Ezl4vgkxJ);wjHJcr`XYL-1&BBp4NreO4U;O0Zm*3i7ncwIoGqW3!8C9wAqp2aT>9Xqg zhec^@QHn?$g+Umst*l02LuuFVt!G)$AB;pszOVBlYd7Wzwb6e4D;Gs(T>$`Mi51$) zg(7Za>~5bn0A3I(|2}<3@F&@r7MQ-<7&6TqM^!dV8akuOqFw{#<99-1xnLJM`TW)lFgW*^QbR8ra zw(_xiKKR}Fw;lExAgHyn&bl%qRO9|St&Y$mjnwarY^!Q_Gdo39l`EwI)TVc$kOD+a zB);#TJ9kEDtg2EO6mZ?aFp45!0p$LmU++emX6<(8!3Q2ZFh5U-jYcDmV*z*W)XBYH zRudqRb1qBAyS}?UlLu9C9r2e*F_<~fo?A3~JG~Wu>m9Gq#{AW%-d-!Unw{tyUenA5 ze8=3&x@)8RdmpovJ^#o?)bxJh7ysFTgS!|ZyzM`{r?O?J!nLJ-1;JISwd;V0{PpMF zm$}}L{oB`d7WZa*fG8E08a-xqu6+5cUU9bz5nJC)J@|1-IxUgxKr&hT^(sNoDOAng(V%3U@Ix|OW4a`>sI~L)co$z{!u5Q-@I|56?-ADF6TvVlh6q_Q{`5`m1M8E{9F;yWjXNfA{{+4tq&$ zFg<1G2(^HCKlVV-nv{PfD=tP=nx}nY2(RTRu8yooU^8;`N~Q&tcagO1V;}o?Qs7El zHKJWKJdZ2BP6{4jQJW%rcFgQRDWz3C){%g)#fuF9Mn&RS320PWX;x6Ov(6H#?Mq4` zQrm>nWpQj*2eaU2L>wX}PX+i}(0~P}f!2XXhJb25GAX&PAUV{;03`r!c8WwQ1TAa{ zg@XEhV1eD@vp3J%ZcBspU{ebl>UR}v`l*X^2o4pX77=SL5qhMF3!`kqf6x=fvIMsX?sgn|fwh`h0NMPMw|hB0Up| zB0X@uareyXgM)MD;?BX1G63r?lNe)64nVZLLGath@i@Jx9yDHQnj1cQvW& z)_54>Kl`Q^efHz0=ZZ$>sq>YyrH{=j=oU%y^N*OY?5(qH`f*6TrLLQq8H}J2gk@FQ zA|+!;fkVfYRSH&@y9W;)$g6IkL(5R+Zk+Ty&!862j3U;Sp63OgDsvtWd!FZMO^Q@A zY@RuLI*y|0si{ZV%D7TnUq2@m9wR*1ZY#dQhy2oGzbtf05e+xRv=Df+&ll# zKlm4Ee|^VhqxQ@T-uPdkaWjik$Ow**1Qi1@00^gp)nc?}R33QXx8=;KRS~G!fc(}2 z2$;+0i`8GjCV6c;8xUpm=({gvvRmF>eR`5pLyFs zk5nNRSZkw1oHyGTvI|N(&6rt9vXXSwIks4R<6er7r=>xX}K7~Ov9w%|Dkrzc?lx4l$HDmw)AOJ~3K~%|y4;>k$ z$v7Kot!}yLhI406d!b3Ql$75Nrq;6}$@3Y|Ht=VH=GZ}%m!wF6WXaGNW6S)ZQ|CO- z7*8qE2No9|URr4^%-C)s!e%x&c$12>zqq&nh`ru0j=X-qzr56+o|+#VXl~f575h_8 z`O{N5mr0h*%+0l$?FSxwxINSH{qVYL1R{!qR&S7e=*thhJT!7RZcA8t2_E56o1L4_~57BS#k2b_zl-_dJ#!0PaD0xA%l(5-uVey z$=5#B)9R}zXAa%e8LgK~r@PF61ly~%atvWhE28z~uhRUv5>-!th2{FLA1TdKr(bNe zKKtie|yK?F0&wt?l`yQ%|0CJlMh_HYL6M~pJ zWb7j26(Q}fpBBen=n+vAFW|Or4?PDU0gi0%|H99G4V;cZK5<(ELf&@qm zYQN&y$3FIP&GYV_^MyAS@Z08Q6ng#I(&Qc zWpypdo>##|y8_Z;9SS2^jigD8R-{O=5CQ@NTL2)KIHfWRDnh}6*;dYiAgXJ$#{QZB z8W9Fz0#wKf5l~RTGg>S1011#cZK(mS?5piWL{I^uLWIh(tHaZW=g6fqt(c3{vegQ- zg33Z?s<8qt%+hu*)lGoFACnq~5jNVv10QXjc+s=$@+YciydqdL^Dm6EdpC4M>*uC$ zCU4J?zcClhU*PG~PpeUCj7iee1fB|XtJxTh69MZfe`>z9zOlBlylkRyePhKl5unS* z#p1$LQuH{<)l|o&Vttruwk`~o!Y~X#u~erYdC-=X@nCAYEzV#Cfgd}7pb?+A@rJ=* zc>KhnsWA2fzqEYph9ljL^`+(Wi}SPE7#_F-x=sBwG1T>V#xv!)em-SRJ$x<*qM5k^ z=T?>G^Q(lKre>XVRYC+-Fn6Ct6g8Nw8J8pk5}&f@V^;$S57~;95uZ+{`AXc7j`!8)|ZEW_?G`I8I?zGT8KOI z3*Y*GD80ZSY;8U`lMl{@u^0FNy83_r(+91yKlD?t*$P2=b@A_j;M5Ht+rGi=Y`~54 z>B^ZD0M?fW75LXtqXI&iZ&c|Z?GuPlIl_Ddra_3Llv2cOQ2@aKf}q=)u{aQ#^!WF& zkA3Xpn(%c}@W3RS66!Jnv7TIFLmL(g03-^LNPz;z2_ZlTfKY_3B4A`7sEK9(fC@!~ z9`)mtgpJlpV+G;^Hc#pNB}_8muss^m%Z_TN{-;Jzq_jc}|37wVx4*eJfe;`hp^F%bCV(*@NTIK^%J-zS-ovMYitov<{8@_f%C-=&3OiKrQT3`& z1QHRDzLTy(m-Z&NzvtZ3?7mywoMXH{);{O<$vyW*4SK#m^20OZ%fEoYmObl($(1Mo<6_lB>ieR0;u@92dco2qOXjA#u?W5>u$rjN#m{ z00RDl&Zu1_ltOC-L_mzz+9A>k6ksuwboR$XmJe%tMH4}Y*Z`*gQA zU#{#}8LUtVBF+a*5xn%7p1VG zz%!}MoN=c$jvCd6zV^-e8?JHe;BIj-AzVI8MgF;-ZRU{M=gkXnSgBFxW>B zP_1uLzf_xPxULJ6FW}XEJOq-mo)#VJkvw!V9}VK>^3d?UeFrk_mR)~58feF>mWWL; z!;Q>BSkyxll4x|YY)pzA#|iyXoFwa=7Nf0JtIb}w-ybfmu9l;U>$>$kN7n%pb5EN6 zj)5FB6955L{7HbN&3W7uVFb-tEKUF>Go!Xu;5cX1sNDzvfLS1OR$3=US+AX}&z*cy zsZs?1rS#m~ZcURFyU66}cUxci@ZIaJQEDba_fuk#dLitOZv$$>9+|5%&>2rzVag=WCS3^B9_52@TFsWL=X^!?V!Cn z?yYM|TnB0k&P89&B$JUF5Rq{gDFU~Y^p?K%?jLdV_{Vz{!{Y?YSrCj2f_1_7GJ(hX3-be_3f<2}c!>nZ+ol`souLSI0Nbf4o%RyL#|N z;FrMw|3Co0!Q+t|i7E{cC5ga;8tpBd2s07c5x3s4 zSACUfWnoKqKfH3k?JfJbyMCaS z+e}2_H1>UO&>#Cj2ms|M7>_$q#ZS_lsC@so*6;n+15p&&tV9C6JYKZ!=)MOblTn!h zON0EgQQ7&Pm)?5(*wVEJ4>nuf>Dk$Kv)9MmBdbb*772qeiIXhL@;rA&qjELM470`g zUGt|-9Dm@!2d}$kFRk_RDNQ#urVY+^^QkYNR`uxUqTUhB7{b-nHP?TPPi%orJ=obw zFhL%Sdr?pogifb5SDyw)<%icsH6Gpb$n@ea|AuQbk9=!#11b#4+UDdi+rqJ6a|S~g zgP`R3jtn?X$By16 zjti^o>!-W#e*4|&I9uFbRj6{drw%uR$bIeWUo|~{{$&55Z=d>;-~7-gzV-p7H4)zR z`S+4i08pQr`IZ0hz8wpb*^eTV$D{I&g?*${RH;+!H$E1-23?de1DoHZYjL-clW3$j^F0uxJqe>}SmX4bAKcZ@FD>7#oO4&ekwnx#V(Lu(~|Ujz6-ZD7j1n zZdb=Q&VQ^_-`l+IMItuowZzK`+w^;z*?G;9(ubajfL3yO#;Hr65F$-r&3Ir*ZJDEz zLRQ8pbE)AJc6sCOGN1x3gy;fnh?J|97}<0!*a#bblnb?uZERy37r{Rf!Xt$_KcR>f z5eGygdgzMeP!xm+kwJhb+j^q2J0wV0%)L--;YIybWOEfo$`d~?ZgXlvY^D@CT04&Nl|ry0hKrLf0DvMw zsBprl?S+0y1#)4s1c0vNX-#C3VRvoNZux;-TUicu=(;6xojlJGC6Dv=k)x_URau;? zP?C>k@-@D?gqeY@&20LaZ{GdA&-tNhR4zNZjf2v+mi2t;_*cHhLv!GU zn`rlL(rEe}->>Fqj5Vm3Kmh@vB0|g7S|cV)@*E&LxwbqU4N5_!*=-ugK~D($W|<+i z>C)QL^6FZ**Rzm=R+p%S1Q%`K}^etIjLZK@{Ec(pMPfo4@xpop$S?&wVV5N1Lx(_~T`E{PpFJ zWgLsZ>EpdD%bd`COp~-n(I8bTQMcRbbp}@a?&&n;{86=67eTSknA{>_IjDP1Nsw%s zBazamNCCiw&7VzNDAhy6#EeGq821P}xXy)ymSo4)U2y0zYW-f`DpFxq`! zx;*7v`wB0pO_r4N9I?CYB|r-J%o=MMtOW}QgqKomi9ok`bl5o&mR-kz%QxUI7zNwM zHa*+_xfcOITb3U4k-qQF?T)OqTjHolkUZndTx;)jv$Z52~FV%Z{+R=SuMvdkJpE9)t(k&rnDNi8M@GYd)+ zD@_w4>&dGVP{!6;6i`BlNB|ZUKaNIff3I*gI7+#W_OKW}E+(@?A*U9wf5_f+oN8bH0Gw3dxP?HRTGY^ z?KRtBDO}jK&{!bbGBq~HT0A)0aWs1eRq67>uZgL*ZY;J7Mu-09B*Ij?M-fAB|yc(3fi?(i> zEB)X7oj+==c1tz?GOO$kc`tp|t9RY9IQ?Cn73UkpgX509?}LM3D?9OU(+i!~{o<=< z7S8YdG*|k+_x7KRhuPkP^V2g6Kl(#&pK9zxq@WxbhB?3Nd$s=jzGO6Hw&QWz+APoQ zI30+}82IGTrsw%Dc*gfGH&1=}-cSCQU;B${BfK&V(%#a|YySFD+d4>Rzwq&Qbf5>7Z;Rk|I4j+VBBHLB9L27Edu~( zMS{`PE=A|xru&_ffBnuMQ8fC|H@u`e?{3L}+X-v8+;Hb(-qH4So(TlUYxi8vISB$U zO|va=Q~`imSIzbmfBb;|YR) zB7{dN&1gYTDRLEQK_AgYWl#VVpXrBB5|GTfX43)!0L&72J~L;=?WR!yF%p3V00b*nbRi11vuR5WP}r3!MpLK)iW1?*WX(lzVe_ZZ&k$

    Rb3NB<_o9;Th@!`GO<8p7 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⋘o&P!7DYu637F8Z zcYNp0L7tZf2Zz(iB#KN^Io~j%>i7HSFPt|fLh${K{*6~}JooX>ma(xg&nQNme0xYmumEr>d#BtQr)yeVE-Tm85 zIm@y%co!%3&Ye4JYyG+|kB^SZs!FuFdHdDzXKt&0q)ZbI$L7KyWGPns)T2+#$1|-o zFdMB_tDK0Ed^R4B(+V%X?dt3u{o>ZO?)Awu#(8P;Cc$`}DPpa(A&7udl~?mRKyPy} zEq!fa#x56Ux@e3E-e*}>v@Q#z);EUYy*?|#1#}Q-0#t$P09Ea)+EtDl*LDze%BM$F zI|P&5Ii4LIuNV!Zy*pXleC0I@*h#SoMY*yr@)=C>SpDkNYJOM`J zq9~p7S}9>+hUH?J=f(QkD9?+7gTqdzqZAz;9`*V?4&3Bbnsg$x#ca7+=1JVKQIbY} zwOoi(-Y0{NbGecbguZrkr*`FD0k(_Y0!n}YROO}g;#fSeoLV*qC4cTts}`&UJfbHO z0t~D{Vn9Oq|JZx)D9h5TK6LNz`%b>G?!A?(I!@||8jVIXC=6JDmj%y&F~%~_cs;NH z!y}p}^F;O{7}?m^2G)Bx@XW$C*ery>SVkgh!&*&e`D?P>_%)1qi{jY)?c7j*&qCA^{Q2)I%T{jqA@PA? zobdTM>Y-%lASd*iy*h`uYM<~K94Q1GoQ9a45`RYj@cv(j6BG>m(BICk!5Lp`%oZT< zf_2u+Kymg}L?MBNltM@Z2cP|Q@@EYt&=*2UmJ*d94*}637(^BVgaBW#FEEfW`|yzi z0ZIxfP#)}Z$no_`_KOtAfIz?w$RV+q(OcPpP{izj4>_C%Hh_Q8=X)L3@xO`}?&t9p zKKN=#9RRSKafz8(9x}(7nVld;C6&}x`+-8jTD6&_rBn#$0^fH|zwW+UpL+82bf^(A zou;MEx3{_vfBX~u;qE6Mei#6R6ez?S-+13I{^GxV_wWAx$>Ya9@{xy$!8iwiue`r+;+$clH{Wm5@zKTRjYpP#{XhO@rJi)wmbKN=_p~lAo!|V# zM<2QH+?j_z{um>Naj47bG|d9v2Vh`!7EoXq1!<9bzE>8SEGa3aQk6~)1%onI=9)5httl!!?XY9Kbg zL_T}w(p;l`&pr2cdp)J(!ykXlTD!8c%*4aN=(YFUwRL63_k!icWeY$Ici-Ix0PC!h z%2~I)z2_+*rF`IlTc3UI?0l!Qy}i|F)K8o^x^rc(Iag!y_V+IxIkNWAhd$nJwT~P* z)~GKC^a_(n1^xZLv1O;T*lIP%*~=Rnt1C-IQCzvQf9q|xBuUb&kE1YF9e-o{oEhYI zz5c$kbX5+X+_-%An@*|6xB7R!-#-49py;&UcN2U~H&ZkYh-xYs3r~Yf0(ol9`}kJp zf%ddstLN#=WqYpbw?&b5gQ?DJ zl2iq%$#gUx<;G~KWS&j6fkv|~syLlw&XV$EtybOJ+b@dDQ7|5jgCGc_&=_Nk&GUS9 zWqH5bjlyt#zB3+=<0$I1+i9BlVW`Q;qAZOTN>!6MN|M2NJU1D!;eC*@y`-XgRyv

    (7^RR*4h1u-10VC5_)K^RC}x{0hYU#eDmU&bKJ(a?>-b9sfjsjx z2LJ#kfq^Vp$x09)IY&emz&a-W^QLiL$8}sQyxgd8rarayQ@e)Fd~OjLW*iViU|v`lpz^Jl$A>LfBg6NpE$mH>b9E@xjC1#Tb)N9dHU$FrMvIB zb-pv#?+>4P^7M^29ewRRcRlv#Q*VCrJz*RyEG#U{w?FdGL*2dZSAEr6Kk(p3Z@J~< z4L2THT3EW}=2Pd+Kl6bPK2&dZ{_Z!w?fB6}GZ|7k9rOp!UApp?x4h}zyYB#SmU(6U zXsddm&>zv=!*A9>;pZ@MRrLtsXM?3_fjZ zv~j%_%8(s9V&7Lv$)d>PIAUTUgmZ51$}W1cQiI?btISD>Ig$iTxy6 zT3_4i_AgxA$j0ft_ujd=x!qZq+uhyweZN|(l!XoguUc!dNcYb6W(Dyu_`1#+unZFi+WE6}7K?0&c zDI@|4C4@kMz|KgMPsmKh-R(FK%}N|7#bgEO-q?)NurL)TnqEBDS~*q%fRsQ^GLaOT zFc2bi>15;CV`rYMh*7qJ!(*)pBx(#$WJNdyEz>kj(>#d$APAx;s8kYTEwZ%MOeblz zR&ma1t))~_N@H~##|$il2m;?)E2U6U0YVgpGtxt~QUS!lV5pSxlVql&H{_Cf)sF%M zFw?wob}OhZToM7S-Ka4@mQ_?nIQYzDA)gjP!1F5zp%|dFTpDX;&C9HGKPdeeW|<@m z0+B#yH?tx`pxI{m;Qaz2EwP>Pg$^yw91#j3B}xRvD5O+~J_;pJB1%Rio=MJUO@fdT zm1F^$z>>>KYb+Zg=N!{)js(mEBv677f&nbCb4-kUZH4kEERkbAbaeuO;+6UsJn+~C zGjnUY`pSLE^GV^W|7qo|&&2@>V*bO${JsCz=i_<@Ui^B#u;&o~N`NQ8Q!}3nIz0IE ztL8)CnF*gj5K>Ahq!3afO5q_Yfl{DgMszdFIe>$M5#cIT=`X~0?m9jnAO#4iq?A%B zAyJ9LI42>TBWs;;V2R!H$~AHQYPpUtJc!wCoCPw#L3T4SPc3VPmw!kAA!Zf8;bagM zGdctVY=|tA0niM}lU}JcJ1K<{ETbs-tz418zGfyNl6q!cvljU3Ui-;d*H*z1Rh&nzk;p-|<@u;8HT z2a`hWO?=|A71_DSX&YGRkEdR}CLOcq`AnXtthETDEc9qRAxp-YB#gWuz$~vwzh`rZ ztFm8$?}4*YV4f9?My1>BCvo7cC8njNMbGo&IPyI2*=MheC)0cHzqj8To__kYk}|1O zm8VdkK>X;3K6>=n(XFj*-#jSdll<)FIpqaM){j1S=JftvS1P%(vSh8Z&Teg9Sy=4&NpSxB<-1?| zT4S72GELLVmp4wFSi>QjPSx!8CKs{rq?WU8>?QO+)*PVBK{1XqKJh8rU zX@_`d8kteQ{@T zerejz+N&*Jc~3n0=-P=oLVx4YXIdOyKGxYMvoy*BbVX6AvP~*#<4Vy8gc7bya|cnL zMCnAMmrS*B2uUsJ4bs)+dNC#RB$b8qeQTW%a+;T(P@a0et`ZCm4(A6T0VD%iCjcBU zD&ZuG0MU#5-p(j5%2P*=%vF+UHXvvB2IW@QF09^_)R&YLnafJc7)#%wbA(DbMgWj( z-2R5Qe?hI3<4&YobtxL@Ub$;WQk7w5rdd|2*P=$q#5=otWm(qiwaIt_0PRkDnvU~a z4TpoZwN(^IM4l%BKq;lQ_LL_QIm>5oP6GfD0YFif0#Qog`@R75eV;vwBhL$@D>Rp; zDHLgyDG$%S1VVN0Iyib9x|R__BKf= zg_N_AI5~1m76l&WJ~FZ|t_JA5Xj#P)fsuh(01{dTO=PUq4z6Z_qI_ZXjS>~317-*8 zm>Ez=59nIv*r52VR~M4O9*RS*_KYvY`fquE>xsle!N6PS{?p$d*|lqQx_<_kxpl*f zE$NU!3GxJbN{X3fA0P7FKF^jRv)Mczq`)!&umENfAYtZQ!Ng26t3Ut{hdK;~S%A+0 zRpa{b{)-dD2+lF_!2(bMN`Vp?1T#1mZsrhpF!VX(`Mh$l&vjhK=OJd#afBH~TrdDL zTPKJ=^?lEfVWvPxCKiYcf&i^^g`1hK0yzW#0#L-9Bo%=nI}5;hJ`sq${eHDtZOm0Y zFPx_1jm_tjRIAI!Ou(>JC5_Il6H(LvGeH#Hl=m;~eB$xb3(NEElPg2YqBu0p`NY1Zr$79Gro^QO-oi+h z*b$K?0FL9h$g&{tEkT+U^?G$U7$%j(ITy!~5JGF?`(9oYaU2f@gE$I{vIHPCS7G2r zrxJmvl?=Tp?T&1RScQQG0n7@a&{1kt5)C>PMc}h=0@(91V?=I!!l^Teg2<+6W{p9B zIEkdHgh4b-rxHLjN7YJUDHa|plgHz5Vvvv%F}xn&Zi&EQ)lJHR|;|&5j>mZ?)$xTs&{BId=T$<;$0|ET3z&Ha0IA zW2@C9Nn&Rm5wu$E+i$<^snbteYmud=B4Z|vW<8D*ttb8dU}beVj>9Wk`?)qz6jiJB zFsxoWe<4fr$#^oEWI>>mhe_2puDo^q*nT#gmXjl$3hGHPU+E18qENfXtD|G4we~Ty zalf}WpTGav%Kg^%hJLG&4$IuQC@*Eh&+@MK+(a8{hU978URsziT{?eZp))sEuRnX{ z%))%TEUh*MSl)EwjQ~*O8ifEUWj8B1{P;7Q@7=ik!1%aqwgHqU8lC2vfB>C3vbuzY zo(%Vo&$qHiADh zVabG9o>!|?04Oq}JQ4!(q5uG;RGMaS9ED*R1VJRi)J%(_RDoX>d8i2{sT-GBr?#7E z*@52nNv1U>!^00gyZRK7;_XT+>-aN+1w`1zE667T8+W1SmZ?2p)Y=WF*o|TtSXL zBdN^i02JaSUD>Nc0y+c$7J!T(08t3{0$GdNfVcg-+6qfVv_QXkTXy*y^tC_lYl@i` z>4jbeGmGa?Sww+63%wDD$SAKJqwpGIc6}Vwpa=UmH~aJ9mkxGQ#Om-(r$3|X>N>uF zK)^)E?1)$jb_@cQMd`>|2M!QW0s^uF00xV2kQ{Km=edqAI9z?aGP5CeWM9dz#W<8o z5i_DBb_`&hGt8E*-ZRCliBhF5wXsPk0h}X?0zfzwKvt%dSt+U@%b6LgHO5z=E47r! z4oXu7VUVVU68_hJ{nyp&o#&o8|Dg|j@c4=2Z~xYBzU|a0Lu18?K^W_hsmMnG8qL(p z%763g?_OJ2{OZ5+woo97fE_#MJgFE-I$dVj=EkM9^%Y=3VlN8H+!||*b6$W&UPNJ7 zSRF>b)w*7<0fQ7$2GST)t<;1Bb(nk}#??`OSg%ydtWf9*XH(McV{J1U;pQX^0sv*F zg-N_@rKu$aB!bLBpt?3~$gpN4M_!rbO3G?AW@Z3Kj^^eX#ALNAOT&dJBCLceFu+Pp zsPv{zdnCxTJM)9VVD-pakrzoN$+EoKh)qEd!6T18;fSWwwA(xLh6mm-on|gCrqj$> zMuAH!3+K+Cf6d)@20?_#o15F!YNgd_T)1?xn$&i8cC;>i-#c;Q*w*Im(W7fwu8HxF z|Kx*(p60o||GxXTw|3JsTUclXp?Knnr*1rcY-hjUs5jP+tOLqC)1CQtw>wx_S!%b< zWHM=Y=E<4ybSNeE2K(ek?%7_@PCleBu8bNjr52l&VvtRry&}eG@|BPDe)UdCvHx%G z8Ncp*sZLkx7>sppK`Y$+?LRrQd!gP>nbB$&%r(v@e)GnobBhb8)L=ZSwHkAk>Xj?o zje3okjn?&g9Z~v0=qN5X9?K!0>nwl!&-}}$?)z(_lhO#A_)Rw9>+krwfARA_^uYbE zf6wpy_n-NhUw!Xy{cKT$w|&zOeCrRs{iC1w_-Oaa-~7g}+TZAY^xYpg_U1c&@Tczz z7Z>;UdOz`f-~aG~e{lTN9dG;g?|}+MIk||N1k~0HMidKy}$TNU;V#* z&F}u!Z~fvs-|>MX&EYGdAhvVXt%N3#G zBPULIV@cW+st9Cq4adxeoDvcd9kaEzaKzxFkP=z20|4TKA@`>R6Em|TCqTGEnw(?= ziGYF_iJh65UQ5B^uyHz=i@F2Vi(^D35s1*SGsJe5VtFW$CkHcb((GSLkZ!g?Vwxpj z0Kiqp$p3W^ANX#5hR45LuPlTFoaGk*0Nnk{;aBWL0+E5A^33mj{{)h2bE3PIjf|X^X&w;IL#BhfX_C+xx}W|Lw1Rwu)=%Ai@u|nelOGuO@2K8(d+s?XivVPbQYZ(QqEsY3v$dLqJ;-v7Vx|$@L(zIGF8*A;H7kV&XA%-kX zlQ_|N5!9+hUNqvw`i_7Gz5Q0FO(63;LvWMHsG3xDX#mj>313zHaLi`xnNGnvFM`<1 z^)!iUX_{x#tWj_5@9j34bs>PsUD@2JRx2^7)>3nSpN^k68TwH%P2(gk^GTU!l{g3_ zJn{GwODjt%jI!xycXt=TwwkrGXU{Dxw6?bPR#%sTNmQ*?7CH;#{^Y`i%O_5rAi{d9 zxwE}>;`qEVRI4?X7MBNuU7cHCv%Nd4*BfCF4FRndhEsHtN+{d;7VwCr{p} zlm|-Ip%Hqqr{Y$v<&Fo_@gUJM4jX9r%5HCOvVTM8*l|UANu% z(>u>x>Bb(ncXrOa@BJjoprFpmYB5*U8&jL5{$!Nz?+*p%VH~Zm%^f+CQ&OwUkMg1N zSqKr-n&VW1SFLSb>R#HC5q#f2`i}Sg*Z=(E|L&LG^^W-9f5WfNm&w?779z6C8LnQ$hIIl9OT1c(x?Cc56K9T0hG>K zWMY;C0vUh>dWI=8P&g-r1OPM)N#GnYIbZ@}2T&jtj$XVnnf>MJOz5RcBmv-@mQpH# zV1WsQ6fD3J0eej37z_hlSsA>6{Y)fy6*rWIdn&0RGC)#rLKGAf!yc_E#svH+C6sZwGSC*n96YzsVK3x;SUE(hDnjo`v(Z^)I<|^WmpVLZn%;p+PG1gFD$gnvhcjvGWt>s^D>SiTjVU27BCl9?9Ny;ldjCb6^kjF-E<;c z=5tlmjCRsj5VS97O_x(K2)7;dm@nkgi0zWVHjL{M$ zu_H)r8MZ5!7S5ze6mNI?fs*8$vj#B`f`hT)pem6OW%Br)gZN4tqUhNHcxs?RP|Rw7IdlwRPpD8*g4%=nRLWrNxCO zpL&Xn9Snv=UZh!8@zlxVCp<53MCA0|?%?UuPa|@(RZF6ZHQHKt`SRr`4z{oCgkdO^ zD)N+xby;j~Zr^_U&0GEMU@)vzBLHA#hhkyAi9L`J1iR-dP(>r|I0=KcNN*6wsP4t2`U zJ~w>o+0y6w@Olc#S|XD%E$b!l3A$G`ZdZ}}VF@FV~5AANWaIEL{T!a?YJnI*`b=fDp@fkWkGDGx537Y-vJQHz$NVv)m#C zltP!*0U2_i-VNsm&65aG$QYk>d+y(+))I)&0Hx`trPRG#!nl?-{9}R$F`RJ=2Gu%%-E^V^6nkzXeN&)!0q7 zzyMhwQ@vI#OA|zKnOi@MEVAzA3!M};$vNxwDN@e&;#$R|T00wr zLF9SXaba}mi71H>fGneAV{BQJOs?5%_`b&g&3f!e7iHOK)F;zCiDQ&m zP9>CDDStSc6hi#LjW88dq!8)2E+n zG%Afoz1!XIc6%Tpio+sJ{XovmHO8ZKWo7yD=GOAkVkkjPMlOiX4EAeL!+Ymxe#cG7 zDtg!Jr+@v2_b=@R>nlg^|I(FX_YOvKUzp}=?-(R;9Ykd~h~~CwvJY-D8g{q$_b@f- z=9cPC)6{Ypm!@=JH5oZy<$GQ;`T1Xi4!q`dH+`jC;hDGqk_Pz?{028lP3X#PJiK_{HxLSh41)3zs<_{PyXPKeG|3} z{^U>mXjCnJ>gT?Hqp0spI#A?Dd4LmP_X98OPR~V2OGd#corI#!2T7O*p)0e3mIXKh z!h=~d!YuRvhl6S0$-tL@6vcrjEGg+Bu5{WL_qwW+OB?2S=0{aB6euN#4aqSx&jW26$TdcDv&q7XvN;&-ey z))hseo3*(b`F3h4gdv-<=6RkM8BmjAt`)>#n7dLJnYGrTcCx5VuBZteFO|Hq&#lIG z+>935mf%{M6EG190HN@}Yz-{~5tN1;fd%0X=J(H=AeGf6lp(%nVA9o2~C1 z6IcM`nOfZ*B>z1Bz1^$qFc@d?LCEA7m1SUO(H*>!2_qmpd~5NA)$PEni(_VB6g(Sh z&!!O9$}R9ZuH!Eg95XS^ZlR0-5*dKt)0B_b@#Fe*FG>-oOOx zuzPXyOTY9!K>!kbC4A)x6uPjo9yjj3GyTXT`CzB}V1NFe*Sgdefm5Z2gh)1yqQaJ? zp-QEu3&R05wsW&HkhMV6Lh!{v7n2Ic{W2aDP&#TQS;dR|0JUQfAu9lI3{s*bS!!*y zEwZ#yt(wfDKmk0QOzO4j*4}<=e$JB|h8_x$W_cKd#6VgzkPldxay;y0vvLcgGuCA?hyZgQF@Z|9mr%yj?j5F4)A6d078xKa-*|}zO znx-d?A7kg9dG<^kR+m@i&zw1T^ypf>Rx`$KY;0Y=w6(lCuXVAuwvta%DdnI)tW;~~ z&s{vSx+aA>ckW!4kMlHdw>t}q3v+XwD_1tPHbs$3rGmisJWoi7;s_D5EFX;~S9W$f zopx51OACv~j;stPx-yqsI(JbxEQ%tiBw)+I*51*uDo!?snX%n|{q~!?-}u3~-*_P4 z*65FJuYGy7{`&i>x7-YvHEdxOL#JLbr53_2wd6v_Bk-o_Tz8lZMnRRfwk|o!2bVVT z>9o1H#D21}z7{RCB<`cQXr^-@J0uYma>Fq0=XCd)-5S_XnK!CeLhP)%IR4IPZ^!qjBD-)_Rk&mKT+feculQ5gAz$ zODe34NC>GyqEeu!tew=ck7qvwjieS=){ZS-nRM&5xya%Ea8j$s8yj1390y?p085QJ z6Q^nF2O+tc)`bPKDQ%vW?Wx zbvrqRhN8ATb=R{K@I)l%ZxWeG+>}&wP3~gE23ZOz0HkFmB4f!IqggRXI(SLps(f2A zykswP&`t;iWE=w`N;ruAoK5|O5Q?maV5ML__(q4)33y?*^Es%%(Ge(thzt@W8Oz#P zYwT=$?tlS-5I(m^R$@j_4Av1_CoMZ>WFP=35Eu?DYOYo*%=VS$Sd2h`%uK`}*;=*$ zY#c}l00ANZ^pAbv(OQTFpqptFq!Loj8lYEu7GB47e9=O9vvCQ}B6{I)J9_=s<#PkF zo7q1cWM|EG{@3|ze-=Q&D2UiH7$(3^@7W`fg%F5>$k|uukyNYQ1Ym2eK;uwI6aa`I zQ2EFZMSy^goVGd)15X4Jg_6E;fk(RB-Pm~Yk-D>(mDQssswZ#Es!$T^VhpTA=$9ZQ z2xUcvDGDnAn)NCdqX+-weRK1Rz23gndA(UHZHC$^<&$-#&f_F9Xk;Z>ec-%U}e9*V~kEJai=wx=O&3OJ3D)hpxLZnzC2!8S?u)&LEvw1?-lvV zCm(-$adEym*Qiu0#+c*Bk3RX>6IvTz1{{b=y;j4Z*B>vQT<=}DaQoU(+#ZQeqyOkL zklV58XUk8;(2U^D&g9$mjsLZEYz5798ki*T^uV5*n(h9M%Pkf%Kre}+q#h@oT5`M- z?WW5%1e>nSFOTN}Tv;q3V54eo$xJh?%1Imz{UB=NPk+xp`0GFLkAZZfQUA{G{y%=< zU;f*|4c_pk`#X&}%N4B@m z|JASky5IlJ|2%oN`|tnRuSD#9&o_Q|&Yp+m&ekT7tlOy%XMi_h@IsY8iEo+;r=rC%8H- zlwUD`Bv>04DvT6jW*ve7U}DWydU4oX*4p^s#eOWRwbRdBh}xAwx0`_St5u^>il|y? zhGAHirN96cMv)A|z*@&l&XMPNQKY2=-;aGCEdxZMGB%o))zS@ZxnFg0D6m1ov-2CJ zf6=gk-FD^jJ(Wt~r~aB-z9Bctly<&x14=*Vp}MBGG9qDt9kF)ctShY}5#sY*g1h?1 z1BxhpZL(v>fPlz+plf7e#)Di+A%v%tb;bfP0U!FCy{OwEe#vJ(6R?!*h(Qn- z$7mUhb;KwoG9CPM2?%&Vt9$ir&kGNjZ4tG#M8p;hS>glMG6K$8?w9yVzlw(egXh2z zvXCC2Vq_q6fC7N?nJqG>H@Ppkx`)9EMj=2UdO{#FfMeq8lh*6Fj+cW$G7|vKW;@8h z3`DcJ$8~(xIPifG>L36bab}Wp-6sCpVm8!cX2XsMfC*4s%_R5~#~+&bd%gky=g=8P zL@&>s!}ovqm*X%F<4WN9o(iS#0fdx-fPr{@_00fq;qo6kM@mVF5*)@+lDRB<=1jS{ zm6MKESDS0cqDr$g6hx(+K*a$3qtK)E65Ha_xEF&YS2S$N=0=&O7>j(p$qgJGH}&y(bQW;5)8 zkK{{(WIfil6orMflqAYnVd&?>Nhtk-jPiZZG%jE@j_2l@4}bKL)?)kSn{L?I-K#h1-EMDh zXRp(lJG#6+fD%jzLv1|2jF9)c$8(TjZDU?-T)a?I{&J@^`t672`%-@LmjrsIGKl`u z!>WKuE+<#)Uh4WwwVR@QWh`9;h0BVv2l>7m?{hX<41B2gjW}6y%I=Kx*~{LMmXW%Q zDvgkLeOy^PY0hm;hFfAl;?#Y94boz?+w0A>7Lr=M$cP#VZ~yWKw$JKv z^P@*@zDum$d3rn_XW3jMD^#+%nI5luVd4f^kucW6;f3w`4NDHgZOe`9N-tVD`9HTh zH&u2!HDkRhjv&X)fxX3*#gqdSa_0IaB}gH~Rqn1pX1>a{5=b5j09dN}7*6eCm((PtJ?Q#ZZKq zDca4tndW0xf^{>ic0>$X|h>2gef;x!j3a=X0>l5$eFb z;6OnJ@Iu)-(oD7Wa^#MQKoc_~ph851gUcpjeCBKRNiU{_me3AYVu!$df1$ zBuZu`a@Pxv>$r}W<6tMuEC8?i`&}>4KW8xWESX?NoSsQc*_rFF=QRf-I1;6Gns~-o zewBs?Q2|*`vL6Hjh1O+hm|i*|1OQM>WQ>W$ER`1k80BF!+SQ-UIE(iUJYSF`>n0aY zXIJ)pFI>6#4qRGdz;w`$nDm(`G-7DYQ5;A{AanwI>10_|hMO0fCyqO7AnmqeT5Pt1 zpb%xoN-^VfG~j9{vL=k8w3wQqZAd01$>97wcVv$~vAa2J?{0~;H81dhAur7S-o!e) z)~OddSE=<{%^@1lmQ#Zuv$AZ&)vO{RwPio^gD`i7fs1KcO_F+0Q%XAP3|SQ@Z7j|b z1GU!L6h#ro2OOU9WD-UZ6I81e<@-S#GGUo(W31;XBe)`k8k@P*_QvjBEop{P6otWX zJe-xbj;&I`a4?ZdYOS}g?A-O5Tle>S>+8$iZlAd~98A{N*V#>b{eg2<3bD7}uho*f z?z$}wgJ+&Q)9rSZQms~Je}8{{eO(B-zu&D@YFeB1qsvb{cDmVaFE20G8@0%ij+;Qiv?RNY8rOSmbJM#;* zTCLk199cg$-0S6u@Bl-pQmw~m+kqeDF0EF5-&$8TK|c38A8eTL%8`Y7{6y^&cdKdR z>3=TF8~X9$YOuOq^Xfi$8M!?xnys$ z_leV&hM&A|@#tJlrH^mB{y181=~K&<)!^KjGtz_kg-Q_MxYyg+-L1@p+NO=5UQBmC z^w94gO^>zE-z;jvRHk;~um;9$?G5X#<^5@j1O?Vhsh)*M)SDmAz>J%d+zXQ%?Qmiu zzLYQSjkim(Ezyw;9Op_=q6MIH&RHc;f}F7e4z>*}XJ#M=+8!1q0{{%Bxr#!G;269x zmYxR!Y);KqA{;owj*QcSob#0Ml$SavoRt!s(dK`T&uaa zwE;|1$&+qxX=%|96f;lL;ok0^b+*}PCY8ujN_uDwYh$e;-}l2P3NLQ+o+cAq5^?`n zV_cP$B-XuQla1c*+p-Lri)!tr>f8~f0${99A@rd)PCL4>R7R8)c_ZFw@mzT=?`4L; z5@{kpiHrh~00cV_4gf$Lri%gqfIy_fC-kh_an3n=K7O3IHGuqKuekzHf6E1OSv@n4vDdKu@rz6tY7GX2&1_$r~Vm_g!I zXLFcQ+vvL2-{*v@rZ~nr0Pww;hv@Zg=g$NdhzR%~MGoOro>_A`z?L$@jebJHPuqKlj@|bpKN2;zR%KUC*_a z&pi6NAO7*Tu3!F{Z~pfu-#Y(+3#a~{A9{1_bI$4S{D)uoe+OUoTP}1fAe3)%yLh`FA702NQc6ayKwl#LlDAx-jk!W*s zQ*9=0TUMpw^mOGntl6AM#@x6&Y}lY}TX$L(kH_NNV76r;u$oM*FsxF(H=E6+Qz=P` zh=edEPMpYv83eL(XMVz%QRPBcZEbB+Thd*(8M<>MA<3-~jm`S`<%3JynL9B*VO-jb zJ7>AkATr|leJU4#a`Sm~d@F)ISRZwjaup#H2BJX$9Gp*^;Y0Hk*FwSyOH8`bxAV; zo!K7CVTD+0%IX@_l@slgDnsV%=q?H?>1f~*tz=_fLX5{Ws)C}j5~i=C0=9b8P@gcn z3q1k(0jpJRhY@XzCN-Gdd6hBD3L_Tuc!ntgGdxxq!T+Qo3BuBcj$&DwRp2A*{CcR@<`7 z4zW%_V%9vDB^!)XOA#Od)&fB#-<#}ZW)O|0YoSJFd6|j!63eps6 zVf(WL67>-RF@}gpoJaxypvF%OTVWtHt5OmW5oig0!eK)P2Y_;)oY=pG|989MUjl(( zh%j;oLW30`e563T8@sU^5E4})5WPPm^6oSGr-0HFvfwDr1>fD1{{uixBuL3{xBI&y zWxtn%k^yNhiHJBN|8Urk5QbH*xGYdLDH|Cxh0rq8i|)$w7hytb#=$7c94q#Sx7JWH zT{mKwAJx{jLeP_kVQD{B&s?oEAVZCs19AnNfi4%4M&MFlWtxi$ED9tcYH!5+sZ(2? zhUVc|eD0i!-u}<^w+vcIBhUE5?+$%^VI&MhuxWn#PKJ~OohG{h&dCH>S+>Ca~ z^S5q|4r%RLpM879`qR((iU?@tjJdyi@V>1b`AnT{lX>w)-vV}0l5`VmXpy|-_yv;ipmBtB~g-A-W2xNRy#cJ4R|KR*2Y31#|^=WYwg!&YNXPPaZ*q&dkuB1 zYgVl*_V(&jQjuX=$(q`X3Y6n!HK}34#;#hiVa6U))~tTlbIV>(nLc&CRNkgd9i>u! z;>2;uM7&fg3n8S^L14t?=8xgc*8*4_rv*MLX zv=U7u+uGW4y*qYpqtxJNAy;0xcFDLglQwN%D_BND(B9T2L_O$2HoGI+S+11x@u*oW zDp6MxVNPy~9g7YsiM45Bog(6|%Q`zaZ?x+UIkzd0exTX44gkeKI=_7*!U*K~y8HV{ z&63P>m>uy*022V9397Mu3^Yi=1tTiC@yw_N*{;pMd*<0^{_@IW_di6+JNnc!FZkM5 z-+g=I9(xRiH=d0I^~TVVNma-NJ+5m?FbxY$GEu9Z?LDSayw2JqTiao0*tpNx1Qd5f zDb5VfSEc}B6eu86JPC+MLPSdvk^(DP9YBnuw3P4|)}S9q696bCd-5E>*G9rn0IW*9 z<%1?*0U~3ZGp-dd&_Dzz6#;_5h-*Mp0TOUP#y|$zv|<1RQVB$!i2E9RUn64{M+8#7 z6v8#6Eh{p?ndjyqndUV^yTy(!`Cj8zOiXCoX%%x@J6v1VSmrR!op8aL)|w001BWNkl9`edP^ zSh1Xpa~DjbAbB*y;^7*RBV-9gKtq!W7Wft+azk?fNdj1+0?OEx+o7rjQ2-1Xy^j%C zL3N}-35!SxQvLQ9LQcd=U?~M!gCq?=j5GoI4DU5myAi@43rN_BWe&I8|>Kca)yYZ$XflJF$xrsVw@|)KxtnS z0n^HdkT`(=swSOkd{ek+_J;%SGWdKHC{!YmB2tJ3FrkT5UtDIt(;6ZohV@tZX8M+X z4)jS1FM~^8sepi?;3Nw zrjSWufo581rC4=)3RnD(cb(A6M?~OO09D;r)vx?R5ZzrpkytDdv$ZCJ3q&T#H2@fL z8B|Bh2LxtIsp2KM@tw8Y(23E5GIe#Tw@2n&V`!5!H5EKFYA78rEu`ye$5G{y=Qu)$ zXxX8bW>52;TuFE56H%kRsZLvU$pn`cP*-my)70wuso@jHmLA)%r9AcMnn*l0a^{Ga zx0l4U2C21E@S59(zW&TZx8AqDG`doD zuDs@J2>8lNOCNvquiyLrrN{yuU_5CP82NmTVZ=5qCIUmo2{bpQQx2qL$gD`jbjn#$ z0?A6o;-veY-FJU++aC@+Z0~3!-P7yU)iyX@UIxYH<`&26qFkQIAx#aJ?;G{2{IB(HG`!=*h*R9xRy_2l zx1Vt4@h5H1cPCOA57jWn#souG8mVo#<1HCqAY8X7Y{Pe}PDQ&i?uEVT1;8j`3eF&% zsY|A779I9^07Pyvgy~Z!u3x!o?C6%*_>p{zw>{RIjGD1XoJe!d5YaFhfhHnrP&x^c zRaDLZt({EXAkr!V7;pk$h`i4gDpdHFTqGhzN+S|u8Ypz-)Su|xL_|_aq2S$QS zCWsgS0b~7Bg#jtX86rmjY8n>~ngFnWL4iIJ1_Vunq(i?i5~6P$s|?-M z$dUowR?Shv0RWipTWdo4G7U;<3E<0JdqcPxv+7^1Kjc{+5>pbOLSP_t9|Li?!VxHB z$Y>xVF)`Cnq+~$8Qltqu2ZsG*;-5Uk12559BLE^N#;U|dnm%QYoe$lP5EuYTtpSwQ zOn!FR068EB7WDO&0>VBY=#0kzpvV5V-iZk~0wB{wgu2Q+&e%UNkh`%PyRjSpGr$4V zI!HvM0T?3czWuJBUk7&Q2>u7a0IQUu)u0{iD zKyb?s6gNZ=_=Xu_SWUm75N*=jEp2{nDL6rF?5K2ovu6R@koOxBp2gy12}8*4UMP3? z9-xS@WQ5lxT%Fj|RgAW_+Pa+U>8Y)61Fg#0ZrAfP1c;zaa61btm_<7Z1(7Rv7Itjg zY%(f36(+qx$tTHxaU+#{?1oGESHAj_W9vt?j~r$uBL~j9cvSa6zn}Q>okuL1e|c)q zKCWBwJeL3)8XN2g2Y|ZzOuo3qu;Xtpd+()JUfRB8$EY!5_T6v68*eOmYuU#0F8m@B zephGqmKz_q?7J64BGJGvzVq(7b*r~*-O@2?^oa1;ufFnENaC?SKKtk&pS}F53m$&( zFK@rKR8cT}+MGT28lQ|AdGH3ew`{CLn`zFJ;!%>2?aigqNv*W!2Z5AL&CNtm zC=}ZV4SM6XCAAGr^_hCt^*GmCw``6^Qc}T?<_4|&ci&r)sZCWJf840C+dH-}#9S_$ zOeBiMV!2e|jAe6q)3i$E?4Us-uDR--?b~{<|H+l{82ioL51)0$#mUsIC|rX_TAGJV z7(Zp@x+T5cK{`_|gWuEJ{oCK(y60XKJjY$W^0mgg5hO~=Gn-md29Gs1CQ`2b_B(4M z7I!Pq*^?FV2&5yunwp#2GIlz@c}r#cX4S3yj*VsH@wWECcG(f>s0ZE3h<+d3qqMEr zke?b|(*gv$QUSyI-~MV zlv*3=i@6diYHXn>ogqnpc0E$4N)<_%}5rNvJ@<9zmq?qyofo=|0)L1K_XKBo(S*XWd@2pyYUG?kYU1{ zP@ItplqLy`NQTrJyG|XXK1~9>ey~(3DOI2~tysS9tTVrr@2x0FhG9Pc%u82Zd0lvs z!AN+8t`%>CtTYT8e#v#edhLzZu@C@b(R4~9_-nSGa=|y=eDzJQu2~Ejg-wHWG^OlF zDG021nwjxpP%$F>8y9`^#l_DE3lMz6Fa+pWpkw1lj_xh`sn~^A-mM$>geilzZ+3(k z(SBs)kn~w+f9I{Y-_ue>htA#h+?#7EwBzm7Rx+Bf@tJqF819zmo`18x!Dwx6Rhm+n zWJ_yfp^)_h7Z9|TmSrzn_TDdlasRAYGcW$;1lo&a>ob7XHeUrbrjK(-}c@hXIrsmmZ^71#5n95HgZCI}=A9Xfc;>UD+? z`CNYOn)QzBc6W8>i+QENvaIgjTzBuz9UVLDh*e+Tq$Fm0dz+gZYHKoDYblkKQfX>w zX^OtF;e?Y zJME9Zd!s2e!Z4a1`ODj9oO;QgvktrX+dqH$jaR#0db?rl2yO(XlS{;c+s--Z_=Cn* z*1zSf*>F?lhXiD6SaH%T%-0c1AXZ;hLSd}Fe7Az2?TCp8v1B5e%z$NIaqW*E`Rmg^ z``)#V(=~K>eRm<31A@R+-8&fLA#as1gx0ieYe&9Nuq@LA9&qMqBdRQ^To=hwwvu5? zIagY1?Gs4^6{gV9f&)ilNDSd0&=!QD8px0lnt~gqWtx^@@V@N7;WZ4PDiXO;I#POm z;QGo5bS2QPMpt7cAWte!fv=PoNLOkn(2fLwX5e{RN~t8tKxhn#+0M;tYGM(Y;64R` z7bpPfOB5DE9*LRl%}u3jwyC}rIV<^YF>t$jyH%sUy4eAl>j}B8VzDXaW0W5WC20=k{YB2#W>>zHw;Gbffv^x1}y8E zNE0cd@QX-*1WM~bkt4OQw5PTIerX4GS>A{!0H_A+hgF3agtY}y1(E_qfzk?yG0p%P zuQH_dC*dI?*O!3|v{D)YISW@(r9Rf{Nh1))53i)vPY{&?UrD7vf2Nxk=bWL?$Q7WJ z%2!&F{&1GGe;WNl<1W)`-!n!D0idh--&*@fVf(cL&;rq5$Qft_a5)+g680-5` zEVz>hd8wJnuQ5|I$72n<7%$_3Lj6Ujsn$ohsl5a#q*Q@3o}-jmCfU9YCT zuA#Z9uA#20r>9WJHq^E!wV8VpS@r3>0!#6Kk^75~K`3u*>E3WuPZB46EIAqYM z>C@&49(5=(YWU1n(fFsIKYYbSH=cR&mw)}cnL#7F@s!N}y?6wDNip#}gUIOA-WR)zsF_yo2t(xjEvN)r)h z+z^5Tk^~}60Gc>~AP~UJP&N{V&6uf>dkS1%mwmtFdL`HMN&8Z3Vg!Ov1Pc5>x>Azn z5!)hCS_RQ)#C4o}u6uB6y`fMiBC$jw6^}=v5tDO5kU(8KcXoAk*@jKXa-JV=sByG3 zBKAb9)~=6xvN(EkxqiF1o*Qe1jPn~8U~Mbs95pD$IT#F)Q2D-cBvt|{2UL;h5GyMz z2UretiBwt2lJ6IMujB_6DJ!HMA|ivxV8j?PB+dy1G7iCTr_c$s zA822q(o7?8#@L5821EqTLaA6I1O&b!S87j_=PN(Zp32nCYD5v+d1t1SR# zaA7hoVAodk@n#c57$7xO2fa_XM1+!*lte`R4Ah?qlv2KuK_G)bdew*~KxTYa^?xJ< zT-bgS5CD2d{96k=jD_SAS^$}xnTFulFA?v?ZtTWx{0pE7l?JUf2eJe=4Z%QDpV=7) z;9uL$|2@#5ZASx>1hS8bXP_sW)@q;+{HKH<0!Z2_}YpU8yXv1_B&{wNUi;g+kSJx@kh^|HLbT&TG<($@ugX~>bccZ z_MNx?NmJU==f3;e*r#><4F_ed6aX_~DTp96W5({I|MR zY(Dt$|47;iec)whM^gn(uWdOrTV}!pL`Wo(LKs@1mcY?aii9vZiXaFom9k-2K)@KE zzt@zX-+oUf)s)U8+u9pEzZ8kuLKw)oCuJmR30{pwM#d4fRDm$~GtVtq_1?DqKeu4q zxG_&W`f?BiAs2*ODCWy zY}&lFb;u|$2+HM3I-N=9>FFn*yK((WZ|la+`|khEC11NCp0K7&9|2$z5nc zsALl$(`#4117MU(rFdEew6iC__J$jNc+)?uTc zU;F4GzdOxhk-7Kn&llw@$`T9_kt1@>jOxjl8BB9v7H2#WtyC(OY5JZ!XYako1QW%I zjooa`h!IV(ShHPm!J^)dPOG6EKodyUbr4x?ZA~g&SN&{n>Q8i9+ zK)TGTO@mMaZ~)F24^QEW6rkcV0A|=xgJTc`T5!%x163e<%DHBj2}@Rdhoo0=a>X2# z1CCa6ea3ebHzFEKy}do{jSUt7=8H9}wkeO7+Q;-HhE%MYrj}X-)&iLYe}p zQEKID?JKQ`0ceI*x3z(1@qXb)flvqlTx%tzRw2KI#Quw`V^qy>4O&&nAXVQXSTH68 zGZ+I#6a=7^Rsf)pA?NJlG)7wKfuhd91(g7l)>4JkYoGBR7HB1vR$2wXbV&AxReJ8v z1bs1U8aN9nJ#|PbSPa={$Q|)-opqEEBT@{BGZZ}Z+$Q)?GNs+vjosLd|Bu0d7#Ey# z#!zcXnwaymR$&X{S_zzv%>fBvwAOX&5NUtBzU%4jJS0chk2LjWk{OKbQDWBtxx^A0}T zwp38zDkjXlTM~jho@1GoX__j~q(Kh7mcM-shYal#$+;qB+JF}vZc$JK@-MLv@Odt zO{t`5*x78pwY3raWI7#xamlm4y7TTYoN&b4g|myFF-FHn#zarpCrV z7E4Y~pel~zS{8S`qQMQVb-7fmt508c$&In7_|cF5gH*wB1pqj{58P&ki9A5^K?D^g zm2Guz*|zhY_a;o;hjXLsR_YTj_n~oE%Y`R?@v`(gx3+9(Q+)80 zMyX1I3joeZFd)EwexQksFT8s7kbDUJY0JR~q61s)-Wu{;Po&;Wp-IdU$l#BQMo8-70^MH)4c zue4O8G-~Qo96*?`=%WP>sR$7@X|2f*bvnop5lDx34?#rzV~L1_L_|_b06-={01;9j zDK!$pCzCe=NG*|&0kQ$P$HU-AsxrVK0TD+6AQiAaPPR`8Vn~VtU<3>?l!5hUXveSe zbTeR3P0ES{NECmMBcKAp&&-(gKLV{JM>K?CaO(Fw-EH65josLde<27tGR1&#h6qGb z5)m@|NWo^ewDWh-FYQPIt$_#tf#I&LFmy`)4DTomVaPxksO*^G2kz{-Qy+Tp&&M8p zL^_i&%&PDEq9e`^3%~fq17YFeKRsKm;6HBcuj}DQsvmy+qH8{Ur(16N6#zW;_;dZA z{NM-w6&7y2^}(?4(7k`Y>>ED{%U6B(=CJVKeNX;#&-TFm&-9lc{o_mhswrna_*F_uiFcXV_rr7Y7( zrIMLUy0=j3>gsVzrP|ueh>?R^+uL%vqA)DS^)_x?@3~%cYhAWCmr7#3ycx;r+-86O zyMH|MEUQ@R=393lud_6-u3jEUQhA002AY_-bdq&=IJLA)V_D{^si|SFPN(V)-V^fw~Gtw-ompG4bXb@18Sk=-{T>v+nps z1S3ZsaG<0v0yygA(@#I=pm*Nr_}R^OUirguZ$5qZh!JfOo?UFc6!%VUvRZ`_HPso! z;e#*-z9C=$WPuF;8mI>55X{P=QYiD_XDyoy(85>36;bjb&oh>n)L_}AL?M&(3Uz@S z&DZ98qlKOl1kCUwECD1LXwX1_Kt`xGU{DRp>Cf*-j6OlHuB2ks5FJuV0s}yf$Q5X< z(Nj`t1prbqTL|Jxyx;IDt8`pi@X+8>C3WeKT;a$fF+-_9N@+(D`Lf&9*;&Jp9O+9H zQ3O6|rK3@i_kF`75sfm9sZ1>aOUL59TX(cdR#>;St7aUwkD=x!&vVn3vSVhs0BI{x zKr)a3S%9D=5K{&c2Wbn=G$-v5NkYy*6B>+h3_@ag4qc|-OX`4PHvxqQE3CIJbffF*)nlu5a&x$%$Gthc~h@gp(KttUo0skAaj_N=gCgVZ~ zBp{_JK;XMIrn~V0Tsy0lf?PgGrKA7O2Fw3V@GCiGq$7O_5ejm-ax{}R```YndfTrA zX7nTUG=3#lfq%M5m0S+e>FB3y+y9SI&gFPIZU3vA@hNf63q4_hUvS|U3}Ki&L4X{1 z+=~A3(Wm#^XGVKXro493jdwl#uWjhR9A7wbzoElh_t|sK+yyi0o9ib{AG2`b%pq;f z*|~nz3evKzeMEg-eLi2bExWm~F_}!HQVC%iPEfWYw)FfRJ33OSR6HIn6-rw+ zZz1As?ZcXynr6-%Un*rE{KI2^d2)$h>B}xV@4!WKa@pLCH~xCxedq19a7wm2`}5oH zTQGmpj2ZJhm;d%R56zu7ZT#ptUpezqt@Hzr|K(S|zW3L6J$lvG&#Z6K&%E^ZyLl*y{Xeic2}Bz`jeXv*mLN#IeW7q zldr$}yVEDkoO9s5Z@jSNsXsnFa@LeNtM=k3+=$zqq`&~5X~{7_P=KMrnLq(hzYh`i z#ZrXiObi$U&cNVg0Yy=o=$Xukh;oAE5_Ya$?8xvR#LxIcyBVQXa z<7j|qXo*o<#OoSeyCDz7_E$U1sOPms(auCzo#3oK&bX=3Y8IbTLV}eU0L9P_22{@rPz(ZDcp{R%f(>k`}XZ~)L!BLf7&FoPx` z%gkL1001BWNkl^ zgFvo9BWi&p7zf6PNuWTJr?ln(jOp<1q#1z$S}_778jyvi%8?*6GL4|L3PMYnOUwh* z8YP0}EF{MRWJJh-5q|U$pQNdjR>%w?EXGL&K*S7=#9c+6mO#jWF!b|7`bW)ze-8`= zC{fsfJ zVq{S--P`+29^_L3sgIylZ6Z;RliX}hP%x?yD&YAu_-l~^9e%tlW#K%_dn|1I{09SnXyqoG4EUM{w@(c40 zeKW9ky!)3+u6%yc7v@L$_MpP*KOZx9(VKz&!kt(A?6Km$2TzOj{VQzP@4Lq@nm_u} z+nQgv<+LID-nHngV_NizOAk7DdFz4Em%sP*`!;QP;@h{a7hagV+h{Jo zVE(zWBTgQ&^S+Pl?c#Az;}TYKff3vOGU zfA!~=KiV~F(TvE==Nx*|GGuG+Ip~195Bk~>^`hEQ-OK;5&xphL0jEr9wqCva>*w9M zeVBe~&jI~Evd&!n#C7|h@!Pt_%J&XmuyOJ!^9IKOf;-OrhT7|MEhdIt{j{~{z{!mr zum0!!Bmc1H(fc*@O@p3QfBLxL3(>jwnzJ8_966^I0D!u$|H6!8@68^5@cfMV&j@CP z)qg%}_>^sPPn|b74gfFz?8reUzjWlGO_%RKu78$xtpCjq9$x?I&1e4Pxz1;Qen)hy z_0_Rc-#;jo$A56r!I!-dWnE9-dChCa{5iwo@9*T?HHRM~4){Vi+jaJ>3lBd2HJM)j z_|vhkHo9Lx%!zN{QU(7-nx45=l5!V@Ty~u`tjODpZ`ZY zA)Hrh#vCzGJ{lYP)z(>arVXq6yWiUQ%x(9tZ=3f1M|*6O6BYz#oG}iT%M~KC%V=r_ zzN@@^@8%6F!i)a&-0wkE{&er-`|P#X>;-eqJo9U3oqp1U@uRP};+o^WbmG`4GXqau zbj~^Fo^f*fsMhaabN$I*J|+^6+;!(8V<(KCHEYtVFTK9_*%$xw#_KOQ|Kc;xK4Hq# zDNj7{)SA`njy~#$t=l%=fB&ODy6WPT1E*bc{aI(7JY(AEWy{vya`WA{|LPjCz2~gU zetPOzN6elw8>Qzl&$g^01C)Mc)td6VYn^1gW%@+21aJkwor-JQhU55=h#dry5PYv> z7@}Nuh2RrL9Ss0W-@SK7$BtkA^1d-+Mjvv>ftgG!m+uiK5;EJ2luEh4_YpZ4f^+7& zP9h#J6bhZ??m;)|y*prP5m| zmQty7EE<(6h(@jYhMJu_v%Xj9?CL>=r=M~B`RAWqldjiCtQOrSZE?>LZZf}2n)rK+6Qj%yI-u&9?&UT|W ztKCI2ZcbUz!ZM39n}FR9G}RP<~*U$;TZs^QDDn9Je5O;PlBm5Gkm*5bd{nU}oV1cf7CO z$FwfkYc$5#!Wr$x!o6lrYib)?I`gEHY&d?>i|fZvnb%xXI`6zI4u~9e&`+P)c-wxX zYg)f>?rGC3Hf_Y>4^%a}ruC?EPn&I>@xVosW}RKP;r656*RXkW25Q{>O2v%+T^q%& z2k*zEX~SlJanj5h1~6{XF{iZ5Z(Dig)}zn=!I7;8Uh|_>T}!Un@AB4s=haDs1*y{Q zYrAUy_QBo`>q!imHFoUuBafdwuyS|9J!jsSxbG*2e&nq`jB+j)OQ%2f-#GG?-+vnb z4qQ0srG*z=HfvscgH}5+gfc>-S|bv9C+@j`sTN8x})=O1@&G zJ~TzWT#l#HA1A~nM=h8=E%Kx5?mK_M1vYK^=~YjUz2J#SL#7OzrGI*H>s?nK_x9B< z)bIbTO9s99HXrq&L5a@YdqQJw;b|w$gA)&1zJ>tceZLn>f9H`u^<5m?_~irSSucL? zxDh}H<~nbkFmJEg$E$|E56^!9_`st%tM0sQ-TXVgwBXsrgJKKk*cjdaz!^6=bBD$7 zgZCX+MFslja$?A=v11n=dD!T`U3b&37C&~%)I`{@kC{%@&xh=DQs?34yfN#J>G6*c z$As&7Nz>He`And41fk8Dp~?09bVF5~dg8%{eCZ#!?|w6zi-=)u_R3=be8#Z%ESGURxm(iio3BCMXqXGiFKcfiPXK7>$|0z%N%K!~)w+ z4IRhOb~mod;N>Qpq$8(%LjcAcO9n-m&Ax`o1ewuyV!9bSfTC zB#Cq)neu)AowrvuH#hn|H!a(BDqS62=}db3_;Fh4QmK$hCzdUHt5hzwwGPoB>*`a2 zo6DE4^nE>f(o}{_`o5yd;K2~{xdvNpmEo03iYln}CHH_(jQoc94=AG5t zVi+-sWvg|t)^U4tPI`gQqA4eU#a_&15D^HjuKA@N3g9qW%Gzp)h3-j85pqP*0A8VY zTO2&gGE*^LD3&8J%WjDIO}^lc9R=yDa(+i8U*6(W#`sP;62;Mz3>GPt3xO>90EuL( z;s%y&6Uo)fmUu=ik{&!s8OEk9E9)0hWo$$is3U>}jzy*lS{D>}oVkELfW)+e9B|5Y zk+;6;!Zd(SWdGQeWQL*Cq(FzU7KTPdG`L}M1Of!ji2+DuMWHX33ichA83CaqfHMOP zV8~dYK!H+<{1OKw!_=n96-p(^P+$?S&DK|}Y?o~e>MobZxzSD^wiHFNB5F8h>UxJT zR-fqZ_PWc-+UD^sB38i?{`(G995ra& zmwL6z1PurSn4l4nAP6NH2`o@jYlTuXZZHuN_n~D7CZ!t$8VChrfbfazc^p}oA_zGG z;~I$q@@b$K*FOZokq8-ZNeUI`oDP@}HowL5U=mz_P9~-`pbCob3d7R!;c@?vHqpHV{f?h;NkuE@qL#^ ztgtN2c*=z4b~a=5-VZLm|B_1%`RliTaLV;}CJ}Tc$ETlqdJr+|2K4s(G)WQwJRe@T z<+KBTy8VEbb&V(9f9SS5pIAI*$(r^T?|EX!`j_gDy*&P>OK*5BJ80seEwA2?n{lYW z#hJ2K+w;F){oOy`xAVr+*R+n_+CBNI!@CC0K6~#2r!I9Cz5DD{{W4X@(mPJMeEU6* zeA{=)^UJ}ejawo4`X8P<`)BjQ3l6^QC!R6jfJ^z7!+v}3xXTxw_`9ulj0}fkVE=co z`a|PE$BwlS0HWiMIc+Eaz~3HvK6_R3spmbr$FRr=;%LS1z89hY5t z@rco*?PPk|+_@KAd{H!>^tJx!tv?$%VSHJ;qbHC5`ggveO&mIU=!IWD|GclBzQ@$j z*Is)W%f7ntxmS)k>Z^CW*~@!hyYGSZ<7!oD$f8lBh6q4eW8d`cbEi!nrx2%4n{@MS zKeB94EI46k=Wkb;oT>cwt+wlViHJyAf%G|8(fXRW^dtE~;0HwD`vGSt0~w1%h=XmL z$kBCt*YNqftLAvu5)JxH<;2Cc)pT~q)f!)m5S#$j_dl2iJF>BrR+M6 zLz)8#0MXpkmP}=8Yw8Utl4K<%)Ric0#8k%KY6T9*WHJ>^rVK+wA`!!247qLDG6*>1 zq^VM_Ox|N$CX+-YDgEZ=Mj~o#sBdd)kHumyE`Fu8t+BnmS!o@MMWeC!u;D}7+FHux zN)Y&4w{BUra;1_gl}a|Zv=}0i&z6?F`f4`UTa$?+b1H6j-G-HpTiM>RL#nbJVTL7E ztXcugOV`+ghcsui-90_srp0Yry!qDBR4SSrR_`7lKoYGQS6-mi()sEU$-!wlja(y@qDlW2;j zAZ7+-moz03aUx126Q1YUk%(b1WYj*gwJ}}a+SIgzdbt&;oj*7^6=+{&9>>_}fL{mw zT~@v#$p290Ze}}f)*Ej1mR{m2AP%_44K}{=;a|i@pz212q)3O3NJNMzIOl>fgEO0H zTR_|t77Hv;oFpg7wB)1=2n?a4jN6=|45Az@4lx6xf<*=60t9CydBxF=WTxPjU;u79 zhDJbD}y?3}}MX@$s)xCO!o%cTZoXLq{W=KQMVE_>cf&@W86a@jv zp9Dn^feQixN|2xe5+o>~5``h>ASNy}ys=d#0ZA%$&3K z+TGRFz1HelRrS6Vo{77=P3)SM?r2T)M}%9dc&iJX)#r?OS*}we#RkC=06=M`H2M;P zu!f6W%T419P-tXSpXd;N}4W5Hyh5w1a`j7%`AUQcI~oX#n7CII@Ia5Zb8;fkZ}{wANaY0*1&0 zAq>_F)d2Tugg^hITW`jhU?><0gA2|~&Mbju6;=>5kRm0k@x{-9)n-TtweqUkh=?SC z2CCYydJqS*H{(^-(e&5R;Tg(0L_~prg8{WF^AiBz<^rD0vaU4jd{*zg$6h>X*I5@m zw|4e@%clM4{GZ=4>DAxNPfr(qP&aL6Q!!sZV~hBt^ZN6D&p!CzH!r;SmIof&ziI9b zcg<~@xK)$;*^*rEQ*TucJ@tsRwe3S6-!^WrkPj{Jf?{@{ui#Tq?s)FW1yjFqVB5GI z#w14F`sSQppSE99F~6=Zh6TmN^FEm~=e^}?bJatt4+^<#UvF_C4{xak)uXvU%duix^sk91v=(<6z1^?wz3-w~$yw*zc+&}b_Gbgr4mfW6hSGg^za5)CWv6ME z{`=VvZk+JxJ1d6MZdz`WW0f1lhw?F2FhmL*x!1L~_ zm>Y>H3{77U^i@~Uv>8*Yi|v@brWEt*+ZSWwkN@5-G3Z>f#yaBIS;t>?&%ftA_0$!A zwx@slo7*(bedwOvag%qNcIjh(dv?dpMFZ!sK4aO>TVJnq2x66)A#eB=mErztsMQTG^y1KSR`+HM+Y?Y}hxoYX$IdkUBU$({p7R(=TDE|VV9r1PcA)Ul!?&{zVpVyjSim4P@1OAnVn`kC5&>XB?x1#XDJ=21WrIHjd3y}ZWswvBBY2Ln7M-N z=_!~dd+v^BzIX5at2*90Yro{}XZ&Wr^M3r}i%)*@{Hs6n&w85QZJGip7eQsxDKfG^A3=>V_>A zjSFJJFzXtd0@7h9c|dV8Y#&oai7`8C%kIFBT8`s50ccNpl}aTNv87auVJsF!M9a2= zAgHU$^z`(0bhZOPrY;$e$Kvs*($Lr6KYR8od+)u+=+UDX=R$~VHpdy`ob~ngl}d$$ z3m2?e(~-`kEz3;DlfFv^vqPyuUv0PTwoNS!U7g)4SFV^cWkNEZHkip6luN~)?(FEc zF+{4qu`ZDQ;zi4gMX$MWOghmTck1I#L#A<5_p;#Kmp*y$p$AU-(Mf-K;`t@6^~~aB zy`hSvn-mBe1uwdW7fzipu^1F{c@A^H#Pm>Ka%zP+VJ)ePC6}g<`o}iKS9bB;MLG zI*1XlSUn!^$dmty}D|J9>i{L@UW5Bs8hD zWCm~n2#ORD(Ny~Qm!1U80Jr&r#b5ordxNGCg!G(M>j^YcsHCjokZFZlazK-#ZEy#b z&7`0ZmCqN^QF7CHwz$k z-gkoMmIv}h03fstfOx_&0LdTtba9!b8uF{#dvWUbPdf9i-~Bk!eCz{fnEUSg%N0He zF}$f2h}-P8|IEF9c*ALJA9PQD=-vZwI_QX3R``*&E$U1F0G4ppiE^OnBSi2^U{JYU!)1h)S75A9?Sci4Pt3;5-k|1dQ&r|IYiKc-hHg zx)%0~*c@X704x&#VA0d}tei0|;>YINKbGK0Nb%k{q6}rI^`$7y7$zrRbj;Kq+zR_mOt=9^+>T;l+^e5V;@dG z_`+b}oj09%Ph{$thaY$y0Kjb7Ysc-TY%yx2wLdA1ycmr^g>7b;AcSLEe#vtI2Kp;Q zUHj2wx-L5WB`cMVLP(Uf0D=i9mi1sgn;$8%zgaDYc5)@fkj}X{o~D}-@Ny+p4v?^Z12cc zK6|(PscltW(j;pPrKvx%=0GnAO zeI$EqQ`%ee@*U6R_dj3{+cMF#EkF>WrM2mkNB`8B-e%8ft(FNqjs`?q+U#}H+k{u7 zU4D3x``aIVFz$dEap_xPy;VAA@c;mrHkvixY-m!3#WbO9(ylws*!ki=+(GYsderTY zje7gC)9;vL#!}U(5$MzaJR{Q&8olzBc{LBY)Z2?t-9ih;wxG8DhqaY!hle)QUDb6m zeBATf#~*y~!QVZ6Cl>^o!O(T;2jNf)R>Q7G$DX?K_Kz?A^-)7DxRpt_yt3%R=oLHv z%WlkYY>_0*4ExZ;x8Z9l!^=R3yg>O?XcuE|4tJ{EUGDqaDeo;s;_ z;p$3nzcZnwR4QuF=}aaF{9HB!DyrXdrFIIC8zS+$08{aF9DX!Z;fle=@9in~^z^m0CF1dzDWcsyz0r8ISSVLqcj}f?fdm61 z40Tg|v+Gr~Fbozu{P1G}?Fj}NV8RwN`(FA~O&w#6at6G$vOG}sNS$JAd81PnoE>$7PQ4OB>^Ib#}-h%824xsb384ZN-~ zL!1VRxlCQUrLJippS3Nk>}vE?CFe)DqYR;Jp$e{D9|h2Dqgn}qm8({d88dd(+V=jw z0ZpM-5LTlsE?<&NI9&h}7A{z`ORUY0_Zh&EhXkO(;2bzgJ(w_q2ovFxtNg7mwFIzj z?y*1hJ$c|pua04<)l2It&@tB_r6#CBnvq68#?fGL!IT1DP#7wyH4<>t0LSB?l~u0X9lAZJN@J!+c`}{w4Rg|Dcc2sn-W}D}!mfUyA|^&- zk=`Pc=>`@TVWCpw#ArCFyPASk4NZiEp#&n-NQfwqSECjRD6E2NVu*}YxA>;9A(-A5 ziPA%{lnJ5=SCB_gavxo;`1t6VH~!a$f0=Bd&VKU9Q}3YVy4&&lecIc+$2WF! z+_mpL{Lpi!fB!(a=+x5wP3?RjJ#yNDh3)s<`o|CLfyeHffBj3p zziQT~5lyXyyZ-b>_nWWhwtxSDli9n)wk@W7>+s!9IsZq`KlR?q{=5FNIP&yej~@M( z2ad%vu6fulzBlUl!^#((_|S8we}DVsFMhmy^rDZ&>Ls0@uJ~ZlXCLf&!4KcsdE&l% zee;l0uR6EmUt^}-{%prH)1$~5_WadRzdQNjTMldPSYH2~Z=?A5j_+KWd{$UkxGlADis>*#9Nmo~ii{G5hug6$huEGaJdcya#+Zw@^1dfoEE;@I4l zRd3$<7p)h(@$aR3=mk&Tcq^MvhuzsW+(oHl?gwwb@%H;4y!OfmOZ78_oxhVn_||2A zeeuYXk6(S_L6gcKb&R|0mj?}<-}l)o4_yD($%pK*d*ePY|KnGWl*9S6Um9uuC*FPR z)vG_*bKg@h{Nc_kKU%W;Y2SbI?BBIr{mi&=b+O&{`RLqpA2>Sk!NY%9IdQKOcNzPK zIe$Fm&JZYf)&8~i`xng~Ieiygw%g*;#Qi;FIvuz%gFx6S=%cGssXQzKXDA-DW%``l;Gz4F0Q{dQr` zLt$`Ib~?C!d~L?vw_cw2-U|zEpSYm1?TaqssI-M9O+(l-!i1_ z4oB?y)B}%JhxWZae?7{?$=gKldS&?mhtR8Y*UU3t@phT@{6FU`p6eBVdR)WRS68po z3&WMe<843a?bjAXo91-(nOk0dQX^t<<+}?Oyz=-z7hQJaLpQb^^ewx1*H6y4{b$!b z*`d5A-jeS6ytYkDc)1D=T%&i+%UDTyf?BtLJsj+J9>AyEn9*<@LRLX=3Di ziKWY*7KUX7rTMepX-H`)<(B83#NNa=#{_(e&JM7Yu92Ica z5SEl$N+k^RgD@V8mi^G?rtbk4Ku8o~=oPfr+160cnD+cY80v4AoZ0@3pUyx3j?-Vg zV~=Ki#oj;M{-M7g*$T|2=l|=Rw`TnO=Tkr4>)>UtEI;?jGcInq^s24r{N}`W_Iu*m z9ZW@9yV^8(XSW&%x{ZkI%OrEX_SHq#t>1C$`i43}=7vEopNqv}3{c8IO5hwq8HO_0 zdW&NK;M0W1oVi?%h(-DM}smmaM9|T0e7?evTE|_B&WSfR* z=(5MkE?3HmM?=Qe29>mkIl#d{iC8EWEQ6ucB)C>82&E|mGcfQ1!!V+b9d)9;{e3|Y zwzW0C`R040TABxXvu&*{ZR00(cXtJWS1DIUj~Nw>MtwhwMq>*X%$1=uO`b25OjAr4 zJFZgpRsq5@osl!NPQ)7R26%ozccGsm#mgh?y zqeoBW47$3yVzH#)Ryv(Bgf0}aPA1v=VduloestB1x0o{Y6u;`?^LO?-+h%Roy7x}K z*}kx^JL@VlI)(9M6G!?R-lldx5RGFVAPo~H@~1Mu2^$o z@-ApP0WsH;5=}txm6l=XkI0guZrJJ~%K}C~bC2-D!#ABkH3Hk9ieX(XO@eCu31hZN z5km-$f=C1U3Oq@H3_*tmM*|@ei2#5ALeRX1O2q-7WBKb$c?S6iQjzAI$76OT8S(r= z)Qsi}&nd z7zz;)0)k4;70IMn|FT{D>>VF99ewP~ItoK2gsy~U1j0}Ngc86J5L7}Xgd;>4hC+ZF zf+GY#Sg3@NNQA;l7z#5YjEyw4j#gFF1RK^@3;+f?IwGyDLvOsoFa&_X-T?&w2q7xD zij#^UQ0MJeK7G_LPiY*y1!a3XTu8Ro3lIt%+x*=r%PzWQfJ*4m# zS$eSRVcS+kP*_nSVn8??TPwe^%Z`sfHs^-XQFFsC2Ir-MV%Rbx_5U1|*0X>07hTD9 z<-*3+hA#DzD>jqH5GI{P*Mxb#o-gUi1)@pCBAKHtI{uF{Rmh#9XM zp;8Hj5JHIcP`Rs9Lm`ZS{|k8F0y{K?Tdx_Zo1&s1FyV%dUV5w-A1m{-gj@g ze(v^HoHXs(Yp;x+a{V{jHh!z8FxQzAL(8=)uikv-XEQH8Woz$GzyJ5QPMCPx{gtaP zKN5TAT=!u2&(1x>7y(Odn5HEa6;^kNh%GabWK-H;26JV$QozjM^f3SxGJvtIt*e)> zZr-+y5eJQ+x!~LY5Vlz^2Uf&XzAw1R4G2}pm>EJ~nn2R^2_46gp`5wL4t;j>_(reb zArVxlxh-jOrV8kq0mPD~9W_&94PbKYlt#l+Je0cJBbKZnU=a4BkAB){Q7_OMzf0!|9Wi)2x~P*PBJ8 zSln)InBaMy=T$Owsjkkxa@k9z61EvFR|?anPtE1>mMOZrSM~LGrV>_iaWK_N=2tAd z`I?(&OdR)V$GndgzIpT>+iy8z=QU-S%jZ+^XhpJQ%hst#np$TOz zi>7Uvkz^Qz{oOrrVQ2lKUuP^1`X*qk*U{8fSu-k5Yw{KpDsIhgT>xNE*tu~=< zgKX?-c!fx_D*iL+Y8g0!G=Kqeg`iP0V1%HxMnnk;z9O;aNNBj~W?fauRT&4ZflyY1 zJcJs6G#GN~JU~4X6q9AY4SP7>Kdq zG__3#X_VDq7y{!AnP#8`L!}Wm_$tv*5C2^u1sbbS9Stx{{AvKIs$WQ?2((hQ*v}@M zaZP|Uh)PFP#d;vd7_YLoRUzO>10i5y0S5r}H6!7v#inSTBUpnCta)+&msHyWF*fGu9G-e{b2aOst;F8oME@;XmoTVT?~GA9m|Z=|8rDY z&;He4SR~c@RXBKt+8{f({oBpIxUgm0V^2HP3_Gs4e2M`;sp&sEcgOWMG=^Xn3siaeN+*_y zkDKfoQ7iDtkUA!;a%~S15->CwK-a3S-FMwpnLcS#sTzKcBmf1%5IP`Wh9=UIAu}~l zBofJW_fj0)B`@yxooA0ZcW1A%#TkdRgf|>>;q?#Zx9U%vdG;=LC66G$`*cnBiuYds zu(!K?>FUqs%z5nom+PWiEqZ(YDt}CN()gq{0LK}wyP~)MlWy;)KRG=_+IF|?|N4)| zI^4eG$Dbzm+tp__cQIx-`BI)pbBmYqm2#zDD$~HhiACSGQ%D}5GKA@SK0_l2$@5&x zcC2U}QJ{eAm_<^CWuF*I!>G7LuN>M|7}JKSJRNHeqavkwxm2=EZW%%=*`M!ErP84n zfHa(>6^22nQi(*ILZKLOoLD@nNtg4Lv12AUmLrvHYG^SWCz~&f8Pf;~(&-F0L?Rx| z7Yag%-oD<5<8W?I-)76M&MvK$9kFsnZ=hJ{>h5Z87@thk4-E8>g0{An_V&&o^wODB z;FkvmI&!(Z4AB;eT%jwTG!1S^gQYyDk}s~#FZMfKY8btXZjKbYDKf6NA@;LBUjE^~ zUwZq2t9Poa-)sA6_1kUHE-;r3e6OjO(xb+XNo1NBhaezOHo25n1dhc*rHO&fEd-^w zCxG9J2&jRA1HlQvaBM@66=>!&$$>@9oUWusO6Y8XdUCyn!cJjKaN`9XlzMuy zs$^z+D;3U@&On0Vj87=?u&FhX_j{NxOy;_7u~4k5%h-aU z#OJA%u(R6sQ2_`viAXZ7Q2_x%BOqkb@PVL;kcG-b00xRM0A-RTeNO|SHn@ob2uU#j z-nvcingv0zVsUPTJjKk2BX|rn2OGIvR!YMFbGZ(OcA-taJA(tKqeUg(;9&k0RdP%a<%ClvR=1PWcavNzLW|G8Rv{?t+~!QF{TMQ4~e9djB%ebTQHa>=;Q~->KG-;nH zWQ-9f1rj&`8AKWecjJf~6m}DpgC);8qhuzJg zWVX%Woz1dYzRpq&2Q@UTk1id!RPdob^~LD}WB2^QgL?u1l=9k6vj0BU(3h8TF2|zl zBOd@%vN=!hYK;QNm`p=FHJK$;AO%yeAe-)81a3CIXYL0fBE=SM5!k#yz5r9o?2 zHYQ}jZHy#Jf$RB!=@^!Dgdw!9p$bML8P^S)nj5qZB`5|w@D&g$1$A|G1O>~mWI62b z%_@e#$pn@FBu-8|l2HK_D}IBcqY)WYa>YV2p5h3_Qb}uR8WsR(0?RfE`GPPlEw%6Z z5hr38tdK9dWj7g50YF1TT}Nk^5JsU;tZ%3T0MGLfvA({pyQ?dajD7O){Bh&j3dPd+ z31fSDdJ$PPVh;@D63KWF$f;AOB;$>q?|Qzs<4!Ys`+D;ELL#2@TyJ0?8;!PpQIv9 zfgfn1a=Bt~(?{v~VIiLjwHBI~ZI{bsjm(U)q)!9F=RSGBm=>v~#2T_&pCvL}_WY%Ne} zsg;Q+5d9cryeA}~gvfe-)@7-AJvJJ5t7Xe2ODDG0R$0?xqTJPb8cnpIB+ z%@7HYNdIR5WjGiSVT_T|$dD9iAYFA)Q0r=xj0i^{idJJ&0E&P(B90)Usd_u4DNs^t zRh>`7nzz8K#VXZCzFf%%2O?zE+9D!Ngc=bUufhrZ2SfgnvQc{ykp_cEs^Ov@fX~hA zBO(HgG(=zoK*WJ-wvq2N^a=ndef?3MKbIP7vuu`{ko(NF$DR9J!$m*bq5q?&>w zZ`S%iwEzC~5p(wb!!P!(9e?+ME8i~#f1B-nYr>*O=Z)K|ZmzxK?(^FBdh*)!i#U5; zzxsmr5BzEUBbUuT@c9is9V!3%`L{pb?~YxU+$9gX=%De|uy*AozxwWO3-AUfb)ri_D|WU-`&A zCvU_dHCu2*|UG1*~I<4=k*(o{eAb4ahiVg*PrdR5p3U$ zNjUpY*Sy%1nbyYMeX08=H(fr+T0;+Ck^eX62R7-y&t-T0E|&fhkCKP4$jwP}n(a5A zow#t8Ig*=YQ&OqG+BxMtPjerdotf3f0N|c8`>*Xb-gzwXg*{UFlXDL}*F5Cp$=)+R zeR8YLmyY@Uao_%Q`jz)xI{Mt>{rVrJOZxF)g<)78pA zH^Ob=Sga+=jBQHvwJ#snR5yLwS$+K#tv5)Z85RWOKmY^?BxT4sk|tmvoR}DVS&kf0 zMC&5L2q9FS0B*&i$T0B3SYtDHY~MjNY|aq+NHJub3*<_MK0r%L^P8`Hyfy4-5-1b8 z+q-6cbN~FZWqyA?@bc+~Eg_Q#D@<^QOe_aEI}%}ND@oV?$FA zx}F;}H#Pfy$>c_Np|`)-?>Iatc@d1&HMAKbVumF@A1LhtfiC&n1chu|sv)nnU#XN! z6+>{1j2ot~2uLffEyPGPDhysKmrc_qB66&BDj9^5ah^)1d_Tz8PBM|`>mM+Yg-Wei zohPCouoH<`Hk%(eek>8RukA>tlEq@)vMd0IMw~=48u*pw=0>7$$>L?M>n7sK2@@uK z@czd@q3!5oB9%yT$F{TCqE>*wm@X=vh+#|@VM5W7+|5rLZ}3Fd+*g*)>uB^WP-=^B z>`@#)eqk1yw%Ef$ODa_i35f$|Mg)`!!_fDYp@9K1h6n^20JTPB$QUx6@)!VgZXY5; z#u#G=iU-W_3}8|U(h=fZL`9}yZMM%|nzyGmm}7KcSF5DZeDVVb@#)0s@tj;WL*h%v{Kb(ZMK#bS~6_6p~Q zAwg*+IA@$~%8x-C7Tgs~Jwk}Q#Gte;fuTU{7fzNRZTx~+*b1sZ^mh_oit z6oQ*>u{S?Z@I20j@I!Z-P3dV0rhq_#)Swke1YitF zOQlHb;qcD?U!s(hY8_YY^ZhP^nE)DyAr7rr4v2D4`I?{tVhtq(fUNQLs{XI0v=I?j ziG*t9I-6y)e378DA(7&GESv{k_Qa60Qe{HCYF6LQCmgxe{A>P!``mENPyY7o-2Q=) zjn>E$Ys8V|^0?1RBad&W#a6R+pYMnJpLY1M2VT9?3s(&7WidK=-`%JF`ik3Ep0n#X zCjWlpZ(-D#`_0I}7m{plIMC?iDw%0wgA1c&hgn;^Ax98FZbZ*L&bno<-B!Q+&wpKT z!LN78JSsO$`xxT5>+d;#$T)w0Lsm_rDLzo+&*l%}Wj&jFr0E2$T2RZpOU5rl-G%S#^B| zPYLiP$yhhb|F{?ftJWkXvT>uWNGjA|38oFL7^$KQ{ob+<{$|=y7PH3IC8d-(?I%(R zGu1pI%VnKqgbYBlTG|Pa){-+;<$-{a>G)N`4Tj_?W^n_Bt3%QZ4UJ8S&_Dr(R4mZG z;Y$T*RqJv|5$BF&lq>lcUU+WX*3loXUZH(2+T4&zC0EU#OFiA~&wtRm`_3|v3d)}6 zYAzz0wAK($q(1uWG0Qeg&hmw#?*|blYDKMVHZM$3Uzf~fdn0jsd0!9uDxzb;azw^R zB~nRl`@K2l6`gomHpIB6d1s#}>dsPsC1pFp7AD#jx7{kXTmS$d07*naRGg@=BSc7= z0g^CGt-ltK>*nSbCDqg|r$lTs zo6Y6&dE0W5@nl`5PAVBnYB1_oNpEU9Ny`@Fl7+P4$Benpzn1uDdB(|vqnpFV`ng8L zR`J%cQw-)v4hoP+lLBOf3Q>beyhIA9_U^g*Qk+$b(24Qafddjy`2;P1kycuxMF^(h zD;Jec+cD{*tBrWu)ZY0|&zQ9{^RtmpR|ljWtBLxGq|>fT(Nd7Bl*nNbK$BasNHQR^ zR2gtR&os?Q#4)%ThM{TNw&kSLX(M8DPxTfGexRImB%TnF0hbaHVRB?hq&WvdX`n&K z^d=k`G+^P~!Q|7-WXPv{D3)Fig`a(%&%+oJBCuMewMO#75D__o;D$lG%AUB+de=-U z>1r^51On%X$OS45Tq;8|Ktw0ihE!H=U)(YrZhHX*p~o4;Y$hf7enAGHwPQH(X#E)A zF@{`g(o%8cA)%+yR}g5U%EH1x19A-vfGOhD3^A!dYT(ESnN$!c?Q1Q7h)hOYF%Ad; zkst&BVq}a6HGCyOMyRW0=`?sZAOP|-3PeR(X{kViMg+-7z#vdT&B9cR9wK73+=X#Y zNJ{HaDPMD!YFWkQw2AL4s_NZ?I z=m|XX%YeIoXV;zwuD|u{W!JnP`SD2d#HJTd`)%&jr_b;K%ptzW))TIe{QbmB-;GV` zUHGj#oMgCni5ygy*fCef_>a_vid`_jAr#hx`!$0PFYK11P&d7u*8T-rw8q zx(hC;(mq~uME>x7PaoOoOYdB_1H&QXv@W^w($|fZZ!I|Uj$gli>Dh~t$fg3pYt;-4hjG^Vo||CAOSI`|g^3`ibNZ4q`VP zUwo=gjqh~NxhZJd%DnOrKCfNA-^K5{*16+mw`+CSe0Wqp;6GKTPT0*pVrTx+9q#J0 zobG@62W`V500W=87d;TR1a!<*(ZBsTKR1pm-_RF5nmT62U@(l9{QLD$zqn@t0QkA` z5oaBt@|D1&AP5__J{S%?=%mU2yzBgPhA|<)(>1CZ2>^;#UH9|9IthQ~4^Lll&mBt! z=6AH5`(5k7{m;C8i$kt|>z@~7V0{Kp=y>I#LH5kUtcTD3-HMScv48y`9kRisjQiZD z*k<|i!u-zuVqLQI701355eAPgpp}TIT5op5le+$dF@J}iZH&Z zoOZw?3R!2$JoVStezs^?#!1>Hba$==lAOVX=l}M_f4^Z{j%ix9Z6}lQXfy%e(sh;@>F?_&(uqXOb1S)gZqlT2fgcnKjI>}s~`ln z4G{}0Qd~-*(KdueB!*Q;E+Rr?8bKrYQr16#08n9?MXCWFB$6mY&Xhusz(Nio60w+- zsK*447lY`MEM~oqhDiIijUVpNwtV|>{^(@6AzDgXxz_laaj`|C&9(Kcgd~+}sIQwi zaUx@^QgMAxMIsInG0w~7N*GGV5}8brv?dh>o|`RHl9@)&m%a=c=SoS-H2KEze1=ye zgQa%|SxX_{r1>I!)#v9AE2xq}vOx$hB#orBuJXgw+N|Yu5;4?7VHj4i6Ob{6sDOm2 z7)r}VU{Ee=trh2@RIGHYT|Lm>>s4~nFT3SJF`q5v21@z78#vr*vXkSSSR0_l5I71A zhC~dd4nrAAAR^!bI3oZ>4AB5I6zCvSVW=c%VnBvaKmkdqi5LJH1WW-DM?kI-0@9K| zY0yN-zj92#;9#I(8U|LYx&~dDP)jLgC}kiOF$B)Q;)ZYxZW`QVV4!BG!B7B-YLElf zx*d*+P!W?FLaNgK3`4pNxi>J#IWtn3&k2$kfQ+Gmtcr%LlvY{=R3kOg|I6W>k&0D& zRJBmYFmwZeqD?>SYJ)`snLs9xS;#mdO5$2W70ep3Mk|!4vX0h$y&RrF<|U0(B^%xR zXx}VfNrs3Nq0m0}gPxX?zB{W*r1-*}XH9A4rNN7MhzW5$S=znjjrTpe9(m%{+fN)K zjvV5PT)Min+nzff^V6Fjy!E?XU7dgU#p6G^?2MmZbczT<0Ek=dZ_Mo;*>WjpJ@daV zzU}%u9{<~d!;jlbmjM7aO0u~k+DhZjy5r6}_Ks)Hy!PJP52!2?2mbp1Z1wSi7HIZG%0I(f9z3wz|Gn~oYaG1`uK+|^jibJ4mR6{2h3&Gf@zZNlFW>LneCIHwDdl?R`MOH^#iArHSY7#s@EeAADh|fm+c#Sh-lY?F!$=+&pA6DID|x$=fZ#epA6!L44yBKV9#tkaMpS(vG%lapEoI+<-aG)OeT^$Zp-Y5GSP52c&^b? zWUeO1kSPbuNHz#7p4-(|QJM#y_B8=#z;N&ffWgq8x|(s0NC?Hgj$%N<6r3Bt7yz&u zd{Pxci2)!QoD=vmfKXd#5OL#kYTzU7uvDizoDJVZz&6Q1j4GMPxk>Fn%UvSjJXRjWB;xqQA{ zsnpjs#A5Lscbv%$UMv(4skN;onT$#uX0zG8-u@tP0i={t@p#IK@jB>Dm~n~~<}Y9M z{=6}+ZjU9?+wD5@o5#zv+kpt5H+1>6m450T4i0=7o^kmP9$a+M(Aq*&=hK|gCG!s<@@^9cD84``^$yWKzons zF8ER5lgPBRY7~G5B9PPo3cduf=JGp({)j@r@k@>RUvARp3ANThqzA(Y$Qb9ym;s0y zfi&v%_OgtKs_ZU|8wNKJ45?%gYS*i%&@)ll0!-5+wDToNX0j*et!U3@ON3S(x9dZe z2q+@4fkj(Itc_Sig~T*64jN5g^MJTgnn+gnz?yhKJR}GRLQYY*n(`YDQ61XB%v_4dWQ)L|;{q=Hq zU_`kRV+Vhf^625)z1O^3BjO;T(00Wq90su=ma?M7_ zAFG0<;Bhnn*Q0&hu+w4VgrJMQ1d3;p03a}(iGnb#RLr7))@9X%@pYy4_#W)VTmSgS z+g^P8?K!<;c5Pw+FnMeC+N(9IFMCh!a=36T5C|xssR2E}gO7_|cSm9r5{uOEnXwQ& z_;Psg8L9VfG;jE`9|QmZ1^}~w0_Z1x!twE2uZ!k7;iwax(=JJ$ycNs)1OO}w1nm3g zI)C_OrSV|1E+iem;@91``(VF)I2sTFL`@JTHYG<`CN<-jajU8fn~5!_?=<0C`%Z~f zt^Lk}e_o#0;g0v(f3W(o`8|Wxp@CoUYILRXEw@c!+izaD>eF8waQhp}oox>}>BpDf za{9EKXECehqi)FHDQN_I<_0XW2Es-sWwZQ`h|#vwb`@p{*Y_=Lgxc!OlLDTM%Y+3I zQ0sYryXCu={BzgcC%^sXlK-#0?~b>ls`g)N?L9N+%xSl`bb5fq(0fNI0*a_KQIW0! zk7`FLDxfGf1Vup*mFL5T2%>ZpOz0#)LP*ce?d{Z=z4uzbKjz#^D#fSo$9tcA|4HsW zQ}&)ScV?}<*7y5`^q&9u)DKe*Xp?$H2mmtn%Gb~Q$X)Xqe(>j?P8zrNSZ~>tnFSFm z5@ypSt_}B%V1ZLUf#WK>KxyYh9G82R-g3j&9&J49&M)mPA_%_Ws`8a}l4{PHWh?x) zmZn^Rq2^-q*N5jKj{V0~Hv$0Y8Q0x({^YLSpMCwh-~Imi)!ek_(eE!8;g5I!t!MS% zi6JHB+^x^HPT6+O?p^H}nDefgyX-o9a&z~Kbn^J)c3=C9i<>r>Ak&#i))7`7P(_shz zg@(KcELiZ8BHCt~txBa*sZwfeXliV1u#SoJ>ebytLqoBtO_{c3_p07ZCe%vnKnp`U zOy_gCR63pSk5&c49iHDb=6k-sbm=N@Kgbt*ih~P(TJhW;G;Q$3TD)DrE8u0U~-aIirUL z!Zpj9*09=ln|_L`QIyFx7;CX_XcWhc?@P*4$^!%wIbR2u@(D1VQgLL9V--YHN&!G@ zYKRzBs|rzP!&De5pbY77xVomrr)t(q7i^?-pkoJ!sHAR+`KDNQL+sAgZAEYDN==`I zzNOFKiJ&lK>baWSOiJ zOF~Y#Zmuapz#za-HZ^u&B+)Za=%_|ciD$4s2pLEL32KkDFcAui7ZPvk@Q|ig!&E2I{;u@WStlXjzv%-B7*|} z+L)l6Mg)M-carPq+DN9ZklrA{+l2)^F?+T>e9d8(S3mpER}SLg=YRXFAFq7Z!DoE$g1u(#y7bRCKCxil^Eh} zgtOq+)=bUr+q$gfkvaqLlV*Dp;vDFYt9(-cKyvG*| z9kJ)htzW$|v3>jutl7v(_tW)@17EoC_-}po+rOIAx9ZZfKECkFmo2^P(cU#rznXjT zx%`@!7ra=E+D~lXKFdd$`M`^2r1`gOQ_~s?)A09CJo}a6uPszOZAph#C zOKr!izyCu<&dXkMZ0bFe@RnEj=X0xj9WHnOx!O%`d3WW47WvNgr5UUEf-mLQa;0p! z=Al2FcKp#_Jnq!3;wLk^&haYst9{ZT-S0i_vaftNvvmJcc4(_Vh}-u3_}-uY*rng^ znY8M;j`x2?jV!qKrWX%C;p5S+C+z(5Lv}o3&ja6c!3nu#ugp*P#s{|hxS@mRf1LHH zA6;B`&(u$@?-Kju(`_4mDe*%e{l`AHed*A*C?K&Jn*=Ui`9Q{{Nyn91(I2fqB)YSu zobo;Pz@m;895nmv58ip#nN#)f{J$P{#vi^h_rJEwrxmQ{X#xO%Koil19e(8KJ+J%X z-Pa#D+0O@PN!LBI5kwe~1VAf=nnG5~MtkE*G`VwXdSnHqx=dq+BoYXe^xSgkb-((> z1F27c=QkJcCSVz}phh9an!~JD-~H;>@4sc)SDyaiocQ^(_P%7` z;13?RbGmy?Pv*tPu6=xP_Y*#S>Y-gP&0p}bkDkz+er2CopY68p{h$2A#U~%(jQ!Si zH(qezY10a7s2F9M+7~QY@snGB@!=DWIqZ;qpM31GMGKehcF3XC^2kls-E!WAr(XB1 zTR(8zVa8P!&RulI87H>1HP#%Td;V9B`M_a^91c9;E_dTt2u~_sxkBHiu zT6+5W+uBG%(mNYy<+()Qo60J1pusdixw>g;K`FZ zbGiJ=Rja1Yn5-yRvAjFXgt=^{u_^zz$Di0@tI5N|BP0|Afe30(D^f};5Uf_J9nDQm zYf83XDm%{@e(IU>+$T$!p!LvquZ|0oX6@p7jn_krmF2&x{|*%uBK3!p`@ zf+=AVUGMinVpOr%S{yZAnVRvM7b8D+OHC7|J?#OIK&&Z1;&Kf=YH0Flc$xRwi!J5h zXuCE}t5vI4`!m|NEC(Y|aoNfxqvVB!y)mSrDlu|j}kPX}0icZoMPNlWyd6i1l zIp_PnbI$X0U;k>wQUd^M$w-TzYF;$9V)xvto`#MscOA5i6!>w?q_v>(t2HTcwEkbf zCeU@E?i}&}pu5?uxo-U!aY8t2f_9R0MK$>zGk|k~F7Xc$044_U0D#1Kz=7}i9x4%Q zqM=$Up8+3Yjja82Y{W#83#n?2A`-C))H55$obTQSyJE2MxB zNr_=ti=QJ{7oZl$N-IR-wb)whcvDOs5@AHkP&GDDLRN?X%xc^f$O!W1I(E0SY}a1^~pASFe2L zjywA6>S)xB8EkDK09gK~(l4z4*(3aO{F+ky)d?}mpcJaFLs7eRiGb*(q zg`p1T)DU(yaa}@>J^Rkt=LdphyN@86u_f=hLtYlksi0MfC&C#<< z{da9;Jmn}#RkI&E?ab*dtG`;QSg#76@~Tx3U$iq=A_-V!{GuIc!gQ4KAgV^?BQH93 z?}kjRw$+jE&i>eM4~rwLy`6SS!Q(LZ*T2aWxBl?4@0rrle*X>Ec3TJD*2f&RS9Pp^ z;j#gPRD&2>XLNN110$usKKjVP2k&|C?mKZ@o4VtSmdTR_`g*!oudoPJD~NL6J%2Ve zIr7MT8#_A7&{K6a5%k1otcgnJ^Qv4dlOncmXrw3tfuBzKsgC*{*XGjxkO{Zm z>yYJAYMin^#C{-LvDG;AOKdDdI<^crv9v6X06+t301*NLMPi*3aEPcFJ)yQ`1OS7L zjs%bqEP^IN_9_I0*jH6g3Pdon{FT{eIF*CQ*T%$QTDzs)tCd%aY%bS1t+PF{H4+(I zy(-9r%~Lvt21hdv17lPsWdY0OlBYebl_C|#@xqrE>7bgYT)(NcX42{Ykrqz(&uO*8 zE(luU2r?z~o-tHR!4HX!Z3L^jbub z4P7Z&1YFG`A$kf32mtEbcOgI&cFbT9$bkSDk=S7_6)Dt;0tAR-77^t`#X28}SwKX= z_?o{MO@N?SVi5@fj8Mf$wa7&=0fGap0e}M`v>F+N!8z~*#DQ~A*Kih8BCJRQBw~uM z&jbl0(Bc@Z^%W9`vtmF4c_|P^C*y@I04vTq$C|uk&$TZE0C-;7FaTJE3Y1G8+pHB@ zhlr@e1E)bkV24gvG;2n51QrxCMhpZR0AjI_bbld&*5j_F4w4rkGu5v!FakR!LS}|_ z!{tO)qdvNI3qI@|XpMvl(Fh|VD{fWT1l_`rjNvxhg))Hn$sbA8K z!ZDiIF(;yk z{pc$Xo&f-bZI3)}rx4b2*c^8tU0axIZIjJ$v(fsj0Dw!cUVhH4r{DhLHxM;LZ(~wx z_0QHZ7+v@5b=$`cPr4zptzGqxy$!c92Yu?YwP!@@nwA2<6_>2TCJIv0s%&2tu9zF+ zTU~qn*PyjQR1?=i^@_Rw zc%pmF=phFk(lNW`&-Xl`Q6W%6Q^Uar9&+cMckR5>ZeCDyS*=N_AkCsOopN8~j%7qo{%g9C_Ct(1LV#Sv$-={QzHLn9p>?X^lIA|0KbuP$1g4zpWt zHNzPD@+%8HPxbcp6^kX$^Bfy$2|@*gs+tP~@>>VFp6;G-YBSel$d@n|(r6T0!(Cwx z$Sm!v7E<|^sjohIH)zl^-?jf<`}EgJW-O<}f_PpG6p@M@I}6UCsLZhfv}2|0v83QflVRZJL@>HOmMVQ5G#+T&`61 z-)Yu@`7gILx5c$6o5>X`#UK>~o(7PpTA{#0utc`JYPj6#pcdzxn+nvZi&$&eSrH*cNx+{_#W(8a-gk|aFTj-5x_wOPPs7q{4Q4moYTYa2 zSTKv**P`A5oaw!au1*gTWcc?AmeEsSrP>Fe4SJi z(5}^krBNYBHd#|&aw5`{(@S4tL^3C@fnCCF*tcfyv1tTlCaCr9HAX&a-v$a*4p z079FVvSGJQUibP3S_7guaT5_Ri{pQBJ!eCZ@>m3%dnN_G0z!5cL5M&Tf%a^6*7tsQ+2=m+)$d<%#m|0o^tIo+YM<@g;y+w<&VNmP z_;+7U4?VQY&S%|!#&Ji+zq;j#hQGXYRrVvzdwt^WQ;*p(Ti2)Zbmiqwo%`VD@499W z_3ZA4U3UKTZSVY#T^JC+4Lx_uf$#h7dIS3W?SHs;);x0h zsmDKl%k7PmyY^c;aQE+DyZZc{fBoGbkDd7beWtDfiM>K=m~C7-e}MvUfrmm5Jo5PC zk3DzpnIA0;m-~i?nmbyao4=@|xwEm*xcIe22uRGHRtFul|Go$8y>iWphaP_X1Mk~6 zLLuOasid>nl`k#xGL+3_gTOb&ib#-35$c3wZ;WAa1enW(A`-_jv(qYQZf;VfbNQ6- zYtIYvg?uWNTGP|(tjp&M0HCxtX>yk$@_oNN+Hag~?&^w^PPKPXgoRAgz^cAX)lDsA zg}vcMB%Q%xQC3y5B@TAop<0UF;@5JMJ3IF~ve*#xFX?ZXzGn^nS_~GPb7(<9vi7W0 zB6Pb^ut*X_lTt}olD^L)pMl9ewV~#8l%E=Q?2^K^NUD+e^|mHwj6y-GT2bN%k|rTVhz=by1AyH`sM-Hj zYp;YEuj%HBYWg&ddAw?WS36~s9D@j~2Lucnk&tmbxYq1^U-`+>ok*hOje!PWm6S(W z5I{{7*2crvy3jHb0I>*=RisFfIB=GowE#qC+~^-p{+ znIVPm-=_ZK|LX~&N@T_ZN)jusNSCO5eteSg90G|5M&fcjBwZ6vSU~Qz|h+l-1~PU zSrnL%{Ql>(zp>t6otWz;LOQ}OxnrFIArPeiK@p$`B%Z*p)4gEhOCFo?P6o>0*N#7D z!cz0jKW2`|J^$WYZhr8?v*OP^f5oAlo7(a18$te)t|`kOyXDr$UYNgf_h0|;#DT@N zGfydQdtz#bJpB4keCwU-8)Ei6QMzoN`q6pmiQn`-UH-u<>WY&$nUwwY=8>x&fls|( z-F#W}$=@_id8vHF=gsZED-8Xrw6<|40Elr{oH>U3`;E)uh0VeD&s#eya2+qx) z7RKuhU^6!3{}^>UwZV$uRVCrul(ufXae6S5j2ipd+Po*kbCBy zyIhHKNq3OQ`q_VZtVSGaP_LSeqZ*)J@3HE5gk{KJnv_TclM zd*r*5JM*40q%wznWY%Lp{KcwOXFd9tl_%cN)gBK3j-$G80I$U_f(*KV^`53iab zTm9+Yzk$$AH~x|UVzA%(_SGLd>9l+9`@=1_|9rPSX3yDa*3i&^u%H+sJ8RaqH{Ni^ z?z?ZZ!}MteF${HabhN3ZG01wx#I;(@^MXt^WsEhk)ud8>PHUaZ;+i!*?Hw&~9EV=I zQZA;$jEFb`HkOW#j%S~JX8QDL{e8X0#8DJ=cD0X=jad^{D*ym}{mZ-B3Wbi2;y|_f z%!--Y?=S!r>KPiCIyr}0rTd2qD=U6)iSwz{zS{{;TGR7@cBb0dRcLG zanhvDY+73}H#Lb3r-NVGCQdP}?#qSxQI7Y7Kz~5Nibu_#&iGB|&zg zd_Y8uEF#Wre8Nu2;AO^KFIzq9DZqkJg$EQrAcI+6bzIB`ZLqxqBqT3s^7JOIV=C|h ztv!!KfE^-#SXo0FiGWZ!0%J{N#EF|wUR#fZqZ9!ENx}&fNHQV-*@VYvLZ_NgK!!xF0D#f6 zVq?c5K;wGWi2Np60sn0XvoKg^jROaO#3I0Nmnj9wWD*zLy81#=?Ama{)<^+B&pXV7 z2T?=>(19e`?*#kk?V-;30uWJxAd;BgV$Cpu(;yxtwMW{NW?#ZA{qN3aGyZ3>o~7o@ zk6+n_7#*#-8kMT1)4BFo%j2B`(N_? zFSio_v}_e@ohu)IR%T8>JI$!UIDKW}q#b)@f3(*+$NB3WwVyqwFFh%hUH55Jsc;xl z@6)A|u7f2nHDnR?Dd6o(+%ZR`cKAN;y$yb8E#uAv^KLHApBeo6)DR%N?6ARK92}gq zA8_K$Ar@V0FYIAWn#|{_0V{H1E6DmuDTc%ha}g&bi`& zeRe$L{a^jdUlvX-L#bFv_V?1RyQi8OxaaU=etgZJ|NN~(I`%leNQiacLWQN?VVJz{ zMV~)!xMy)kQ(8vK6>HN!VQ zP%LxA=&UrRD`LW>V_`m3nUeD~xz=} zb55SV!?t7SbdU;=$<(Ul_>@yWsC7D>_4n9QQl8y+@4ZxtjjL_F<)m-l@a41?Sv~T# z>o0A~W-HNHHL6uACJe)Lm;pf(yEt-6scbfv_VYv(=u9OOhkgUtlC#dEtR~;au2v~; zvBehM%ex!%O~ui%FrD%na>kgb7W=-hh~n5xnKH>*hY{5(5)^V>9a9jgL42Is?XiiRfdLs%*ocWGj!jgF<1lQ)YhCCY+Bry zE$pyYlWninAfo}mA+QGVQ5-S>XoZNVIH7Tmw=5wEqR1vm?Nw(0pme@{R*e5gHTfQ| zu|@>gT2ie)OPil@PrK_o!@^ee?HN%BPzZ=HvEdZ}aB0s+Bz6$9wblYaQXSJNuin6w zD0z&>dKzp!=wm<}FZ+l@juK)Jvon?rkYQjEKxbJ{Ybz8pTk9B=QkdwoL6Ysf1@kgt zAtJ4aNWpk&gounZPKB`o-~^R`6|Pw)EL`Ww10qD$Az@N%spk(9;Vbe+=~DISTS7ub z4pD%Re00jI)#bba*3Hw9>xQHv0tmu_n@DvMjFYJZ3G0VR;$u#{Z;}*;goGH@(@Fbx zfRKb7D4*E^fFKa6e~w0?P()DhO|sYqMnG88@eWIP1nT~%h=i*|8!dBvA?xv;a6D=UA(Ca_{k5>m67A+Ke}VVDtX_Hcwb;?*HK(&pGtNAN}>6 zaZR9JU3um2f35!DPZ$2?@?WO&(axt`woe;@tZxK4`1q|C{dE{#esISNzE!&ZqwvXF zraXMbtNVO0^IzwEXYTN{-Af4=Sk-*v?9m+pVwgg5BPJLW(}ZolG+ z?p*#KPkP_{*1I2g`YHP9om*dY!eqaGv%N6SK*hcg`kgPel7SZ{W+=sppW)Zk5 z-kkI)2DxHg87$yh#+^x4Bahtg_PDSv`+VTR>iR!b7kxE)t(6wee-&{_S-#Ett@%?zV-tTN>`VLjs6P{E@?QULbAo#=kI#|m5+S+ zlB0q}i=t(NU|(DOkC&$|S?2jcY|R=bOjlAd_ODq}WMdSwwdiAha&zR`B-aoZi$Ty} zY>hz2m5O1^`l*_>6%*&8IHyv!S}s*8o({Ak-wTDITCI7W*V5d|!f_l2jt~?JcXm!? zc43-EN5}HHhE&=gtPW0|Je5$jceD=-3=|r}II5OwHSGnpC>DWQWE&eBtF;)AG94Y- z3b3pmS<{)zhP`FeH(F?Jit`S)&T}?R5ZDONAzM|+da07BEnOC-Tc>qxUy9e1A@==- z7F)Ay2oW@}V2%^#6kSpTB zK&`rR$#SD$+Ll}NuUS(qmk}H)*lNoyo0=P+fBpsI+)g`9u9T`HgF{+r;c8!BZxW*v znj1tUDp%v!Hh5_O=VT36Vkc zCc@?V>%yW4n4@Ls(eV-sxtsN*d6aSF0Zr+p$yezbO82&Q2?azrpCTqu@_O`@WF;EWjVA_-1R_p^g=^LV046yGDy|chB(?@L2`DyV z9SaeGBmrEVE%VlB*-2ZSCZ*Kt#Bn4f2eOvS4THqa3Lra91ncU01_F$NZk$fDu^4>4 zoTr|Tc?uIc3j?5Nr4(xLpjLGomzEZEfC;-_L;z3;DN;_%`df~lbnX97Tnfv?=mhJn zg9+7%#nHdJ!JDlJ2nrc|Ve>SqS2nZWy!ym)=ZN*4BB=j|lTmj8yS zZN|SBiKQlHwm<5C)+l)Z$l%SF-(EQ7#2u$R_1d!DM}Bl;C~c$Z&# z+lL>1VE55!bB_7LRR`st#z~(ze3ylT`S-nVuT=+~`t{?ty#Jat*%M~odi)jZ9q?T{ z?0m(=v*y0MWQTEY(CVV!-P&`|17AM+zKiz#>GPjB_VE33pE`ab+W~;Fq7034oEBsF z{(s1~zYxycMhXS*$tMcYljXaA^ZKM-{6n=zyd7uAbvM^e{6^;JBmKU;{Y!Upr{BuI zyefa>^JdxaN~r(<05$*k+~HUE&)j@c(v*&8-q1YxhLOV#9=h(AjUU-b14!>u=~(NT z;3C{}jy~Xwoci(Teb3mP0RUjuPP+6P=$hkg*Wmr~w%iv^C_Q^$`KD*!!d-A>&*rs& z&G^3nEltE@LxJC@l|o70yMl4#$`w0WmVD#rvv+*r@KxK-%-(^7tEXLZ#>Z#nZN`*~IjiGoO{;sBe(lDeH0-w97Be&HQY-^jm0r2< z!&k0!t?xN>M$;At{`R}Ow&>{AD{lDdqF3%Z^_vYpy?nn@KX}009glfeQ_o#@eeTZt z0pN zMZ?sMVrsr94tBrBf;2512Wd&9t?(_N?jgeNX4TXz`kAuNS*D2jbYW3c0V6i<2aB)HkU0Lb}$yQJU2IONpCy7G+eYzLFflk!@g>@nJtkf z)ZiR5BWlpX8_8VisOJf+0Kl=cPMYsl08my;8(RQE2|(8}2x*;i=65DSpNc-2HKf(5W7 zY($9yA`6C@RZ?hTW=aH(6Mq*ZNhZEYx(i97%M2*>R1g_3DWRZ+q|Xh6Ktv?Ab>;(7 zJ)uCUColvkEE`7en<(!HBprJI;H1vtAXz)r*&ydhcu!)b&cXuFf}3W4BvN23*a0s(`|OLS@ATeVo;`N_<{29r1b~jMrU8J& z5XI|^cHe{jIYDaA6=sPEZaPDbI&tjrC$iZLcz_OoUT>P?zrIArpX%rK#2^69Qe|8E<9|lieJDUr?K?-wHi|+}8Gym~ju+|VPd3b*KKj0&Mj!c} z2B7`ktNyyCe$Ov@fe$;^hevE<2FAwCQawODJ^+;g4bQ^K>}=P!OLE(v5e z|9x!6|8nS5i73@3z{UazD6I*E;}S$=6<2W1(NC|u0xPxQ>gZ>`(bO7hs{qoIPyfMv zANyw2=~T)?0GNE>r=MAPI)ovSyWrw$bl?M={iz=U05U`8`QM-WvCF%Am+myPJ*9$5 zIf`sdq!^SR28@2bxhs&URxS4R_IEWDIF*qoV(|rnJx{-I-Z__+IchA)$Z%=2T2`$& z94e&%3Y|wj`p};3QyQVC9JRL;OHxbE{>!|dr&%FnQc|_WAwS*qiLYOI-qmRbCRCfF|=g0UcRPU zj>9R9;QSy60+kxAIN#H0ts`fA@=XKbi>o--+SJhjRR%#3P^1MEK+R&r7U>0WAGOPihcZ-e3C<1^g@*QcHE_<#v z+#ARkqZ_l*H#{^vGPr7aY3u3JQi1pK{6!gZ^z)oi6&i=vthg1y_iXry1phIA8T8AfZO)1gF0dkPR3Jx_ZGU`-5y z3S_)f|MdZj$a*rw6G$m#2wXycCYPxCG64x-3k+Rmhrq&o=)6U@4Jr+kx48YIK0hkM zA@{sL#={siX+q;Pkp@D?;zS52(O;`XRiCuh8VS)lJI&5PKy*DHAVLNP5N3ort7k)yAoA<0>m*4bN<2c#AOy%j z3P}(YpxdOCD>@PsWDt>h_Z~o!V5}EbCegWdoD`Qxk+6spcFw`3QvgB&a46QYa~1%E zMS=1+LHcJQk$RU?lJ+DCk3+@It$midzTUsRr45C^bLdnePeBMmvI)1HO+zLAMT)F| zAYyP{G?Mvdofn^~|_*m#Eb~sLqV#mzPfPz}YFar_1 zUdG&z0}`1|NL*v5uXeQm?Ikb<*HDCwen8yL{lNLqGr3!@qOWg2PYvcr{s) z+rS9&>}!v?_@W=Ip56VS%TC`v=YR9FA77H0w|d7dI?R3ZT4&osJF>x&i!QkRb05+h z9+2AV-k`}~(%T$$JbvQqze*M7PCn_lv0vZxI6X4|z+-0vz`){YVK?7?Q~Bu>{N_$` z-X;E$5}t8@E-p3;y4{iyE-rA(mqC(O{Qb7#eI<4AHd+i!qS9BsQ#pDhex?!5y(G0? z-|+NAARz-3GS%7l!?&^DGsKO0vgH%70OrK@E{sT4NP^n)Na4vBygm0@9V z2udk(*0L}OYTr*9OE4jA6ETA@lk%8BYp`*#GPrC~djpYYjrfFB6AxBwu5pH+@?&E> z<$-g3tCmdd%!Wa1myM_}Md=j!d77M(rc^2T0foLH@-nHcMYDR?kfXL- zgq+806vs|PJOYmp5G;8@eyR|gDCKE!rdq99D-8_|rDC}$m2!YlElw-nL}lw$$E0LJ z=T#egKSfTM9Y?jsbXZ(OPW2|&}+0%V@|FPCSWvhJ-E^I#sQZZJ0oa4t|8ETt#U>5R16bn>qCUTaP z2LK}0L5hF@7{S7LqYQv%F`%_D)*@pZ%QCgol>q=eb7hQE0RTi;DM%>_P$P)2&O^DJ z!3GWXYZZbS{xpYCWi|bzcxHpo;qdnq_)=XRsEy2()6vj1Y?!f%a$y0Y|^Pz zu~<^RE|qF|+mfA%;=63Fy}M^Hgs6~8L%NVH4mGcI!@6;7*F9Wz+Gsz-0Wj7)ew!^x zwwz97iBwdr1in~M6;4GYJ~&UbO`LPIRHKTBkVQ~xg5NTs1fcGPDR+B~6{2zWvjrY% zeG0viC{l=fyq8A_VFgkSd~0%v?rr?m2rNdScf6#y7=go*@&F=3e# zsd0Kw8l)i;aTv(7Rbh3ILeG=LLkH%=fv5J3u*^GIn#A`}*d$SCYwnN^bKu*m;+-xWecFh*1?WDFQ)5m6wD60N?CKuDti zhy|XYND+%z@SJn(oK3{3K~4DjtiAiTw*?rZQ@DL%4Pmg6Zq-r$S3h#s>hd^!G-E&c-*PsjPRvf>&9# z$}NM>AGnyWlm zg2q*)2g9zrlr->K7wc>LU7h8R*qfD_Y6Z+i-W*VUaTfEzUNuXp6{91 zB1+)+&Yv8d9Xh&9#}%QYPoP6Hz zt7eA#Q?D$`Y(K*oXAHV*i_VS~`v+3(Z5RgCk)oH@79bnuYOa(D)6SU?L#324CW;Io z=65|HT+=hM@a6Ktm!rNF+}s#;O{J!G&j6)WT&h(NQZ3EWJ1k2^(_1!`tRMJkSBrFv zJ}B#~N63~#k39!UiFM4@)S{Z@FqQF2am9o|oc3x~eDKql%DC)kwbrNuQ>g~IRMAA# z2z`UggK9AwRZFw>a!`v#2Xd<5BH~O~4QwSXEW?AvQfk;Ww1=!$FZ7E44hsjCwJV&@v0QmR?HqPE`Astu)g)uI_QrWLiX`f5`~Ydt{mlnzK2 zqKXqwA+XQ-?Jg8M@+y&O$f?$jOwY>KO2rZ7W!l@Oma1jopdptVDzOOEYH=Z(H*qa7 z1f6h+NupsQNoJEb))<>;Zks;{c+EqRYu7QCCfJ8)+C1!D$NK3JR zQW}*IdSFSkLvRe%I?HV9b%_ZjuGc||;-t9?q3%00{>i51ixZUn`d1GkEDR`87fw(b zQIM557D;?*80t!9bzx^_M%;L%Xv1_OxmF4V*(GU6-8Th5L?SlKPK>Z(0B}GGP(T5= z^}65^ed@$m6A1|@QNBx#lX!>$ka9=}j39tX;`Zh@!T%Ik1Q11-U2^XbA`md5Y^t)v z>`(wfh>)?~vIVG|am*~j0tliu)za75uK-|}-f@liEX=@28ni;4u)&1oZ95X704WVf z;t&{t0SN=`p|b#<2(dWJ017mLzd3mOKZLa{HD5PztbbIufkZFdz>jntBS;EcJ41L= ztam^je*TJ2{_GRC{V2We8~__dvJFM1ZM~u2oAx61b3HvzWdhw5sw86 zM$fSK?(XWU>KHW@Su|uKWDp31CNC$Y0Rlm@gFsN<5TSv4isGX$fL};1a(Zqc5DNBx zKTx2YJObcO1b2C5X@o5}EPQPCc2Ua&;4W%+X|TJdvz5D-=@(0ovbdI#xCAqWmW?Ha zvZ=d`uJadrH)aZXCv#RI@cMsmLG|DBCBImjy4yNCQE1sZT7o$ESd>kDSUA}^cqlly z1vvNxxcJn9u~$JL3Xr^%xR!U`$&Vm+;=S~XAks7o*rpkJ#7yX~@?cY6Gn9H13obn?E^~=u#T@`BV$b2&auP=NFx!PYk1tN$3kQoZ7vV)3I1dmYIId%gdX!+4m{PPA(L@7rB?6 zK0KtygcZk>D$h>;2ld}yuplJrPzpo|y02nXh@lkjQ2*~H{{I&@4Hsr+zW(F*HodjA z_34+;_1p9L{mo5$e7s@M>uomK?6(h+SLdQaxEWD!aU65z^5Fz2Q!n0qPNCZH|;VOANfm5OS8!&kGObw zjeERZ=gO6vnKRSVf4sjvw^&&wOw&dFy>b)=ZM9w-^}&KdSjw`=v`GFqLaBOTc6_E; zd{Qv58g=9Ex2BA=7#Q4^9T;pHE%woPaJ*7=EI}acCO0J)w2Q;Osp0o7;YoF-zSMPP zOCS|p@k@EYQ*Pp>@*8ss`Rm!OsHk|}bFBgbcYB_m2faT(ULRQds*P!E%zp&OPiaeo zC?fyj8P6PN3LM3L60Udkeog6SQ9Et?PNKs>z0^uJe5#aWzltf@yu{Y_5NZ^(yw}L1 zi@V)oV}rqWYUNLIM5nzmA4cank4yJBPwP9A^UC+}Q&*^YKjp~X1iBU4j&4%`&D>9# zzN@F9hq?(m|GBn2{yE_nssCQ%cWlns3^fg;(S@Dk&dj+BmV7)(@j%d5OX>;C(s} z^z#?@2|p{0*sI+~Bdcv8LQv0}%W=@{4!j71zg>4tLtl`!s7RHf2)EE)KT+7exaeDM zz!7VsU=+A4bya_Hdk5zI9<(AGfQ`Z;v}kdQHA5PKl2a2a z)Vn3-Cx$x49fZiO%Q9rZ0_NkO7ClWrVscRN8}_rSH`)Hn@0Ne}Gba~$ITedG&<;_= zCUtC>6-{-;1N>!mDwLuq*3-gf-j){y@1y+@N<}EB;-d6kORZ6EXlb&q^kS!&(kUjw zZS~_aQ8jvH&zS&;>*~}|FIPe(LQ;ZBQm62&Zm9Git4lv$U=o|%$cPG^hw9D-6-kTL z*P}(91H!q->#XDeQ!m?NCb(v+5gJy-OxD{+e^6u4d*C|JF%UTh=DLsVWCrG$-3coK z-s-er=KsAnyKJstQ;)deq){OyP*VYgGr$QUZ>M0W)w_A0PA=rW% z+tb^pq5L-&WqW63do~g7+ti%Hsu)T_>(fq*?_Je$X%;W0?oUGnXGQd5N9B2*WT0{6 z$#w`U@A$-`Q4$;Yv~eeC^caIzmxcIPC1vDm?LQRa0iG3AbU$?>!nMTL>e_yPYU()3 z>~(UUz(qJCxf9`#a8Z^i3cZP(Wa{3b;mMEPaKDchYJTPMx0nt^ItM+kZN9(Vf8s{v zpniXWsVZ;F93zfgV)J>`2#8>5ENd-oUp~%sNx@>y>vucawb%E9E6}u8uf{9Uq$_y1 zEiuevn;-ov^r)h2-%!_ta^JlM?SOF%CtX@0cz7E{yb80o=4+OuZk$%vRC9jPSRn}B zX#I7J;Wdv3BPJPv#%6bP&k}ZnhAwz&^#_lcWDQU9i<`DOur`daC*C0k0(No4j1FdU ztj=q72C=GUBomy5`J{A{}X>_TC ztPpiOBz!Ki@i^*jOvYPKO++j32w!V5E=I&DTsY2<7(SeOSY{&W#JNP!PA~md>m#&Sx46s@`6!(hfBBx$Jmm?4FD&E9P|W^ z*&Yb5i=V(H_|;?8EU^Jmbp2GO5=4+R&}LJyKDi;2%|>VxK|iK+64E?v*tdEp%#ClY z4YH|c{K8+$Crj7SJv1c*#$&ZX?^FaDa+>K&_1Wugv@cQw7NTg zt%{(t{fXK6w2f;lshvANHTCWbihO5`->b&KHv9K<3=E7-b%M($8r_(-E<3$AwnHZr zv9h~z8nG6&%wYdisLk;j(#6B6R)PU?JV{Q4A{x9iIXTbODeoploHE!|Xca-@(?+`j zA|pYSaigG4^UxXyOrB?N?ckpslpRao?_s1KOfFA&%n;6QJ>lT}YRg(SL#8jQk53B3 zIgUTx*kiR{lIL}oH$>c#F|3A;E1B+|%J4RU^Ilim&wL?syLHLrztDf@T1nbALa$9Zr&qmBl-Mj@Pq9nUCkDcS*AGL-Ub7B~oG^f^fIyq6z?cG z8P?v~Ebb>>L22j~-nxX#_x$t(&g8w_A_>Pn6YV)!+wjACmgcqe=XR=Rym~6TDh~h! zd(t@=U;EZf##s4NO2<(hi75qDH#8ROLpCaaG^*9u^TvK1r4#1dSyUUis}<+Bqrm2X z*>NeMWa0F>E zIgEkAC2!bo=pdw%WLq2xf`-AJMz{@dZyf@iJ%DIrYcqyvmZo}LFY%ZC#6mG^I-xXx z+^8FqUgho}T5kdsJYi~?EdNLwHek|!I(y)3y(&b6wcsU2x|E)ERbF5hg}Ybd3;LvO zPl+avhV*S-d_pOE9oWIace~NSoJFHN z4Gt0bJ-zAF^U7{32{;yZ(Bwuum!ph~RArR)W#&~$)5;{J#yit0Rg}qKtB4|LJYcP||2e*ngFj8}S4d;(L z5MGtgBbIOe21x>qNFJ{KeNZEGE>vn~W?ngnEFlLu=gpIHl;Y6x%ASJU7I;c_JFVBD zBhkMRr%-OwdAMwV_oJs9&%N6Naz9W6Zmu%n^hsNSTunKs*WsW?&vPsKX3!iNz` zMrJTy-ni>UXZh>=T7^p+;ZlMjwhbAOGJupxkTQ!-3+4m%zHVXk3HJLMjFQ%t<&M@* zk_{Ivo5AmY!+`u#*U-vPLKBLuC+pZmKX#~e2>kp10QA8c#obtTb1dEE?NrMJ+{U)m zRVs<5T+udTaXu1XqkY2wmEdsea(XDQ^SSAobJ54Sxr!?zrd2@hc7K_ils4}t(dwxQ zq0FPh*B0iaG#q-P8q&Hc3P+o+MRhQ_9n3v|9sls=9V z>WdLeZy+4iJj+9}9VZM#ypO)Pp*um9cX8_7AtstiEO$>dI8lCyvb5jThvP$F zHIC9&rXD18t$4!}4nXM#8YYSiZ*Kgx^;nLHFbU5j3edL>(MF99gVN-UqdEyws}FUf z_)_a|za)GjujM5Dg6pWOx*=mVJ+|aL3u>lAOJFWEQ%y7a<{$SCl718iV_q|gW`hRm zCJ=@!`R?XWjy~=LRf=(z`PLa@(C8vBU%VG5@FZZjftpH`))o$1gdPH8#f!|=IO%lf zjsV~rDY{Ly`2~YUmzt|IZpuB=s`D~3_@vmABhfkOWoUPoR3$1rM=KA@(R^#R<(!deAunc{SDcaI{ei%vg@kgipWMD+( zg)6kAZV=BV48X8}GPH!Rp%E?Ip4&$s?n0f3AFLuZzK&JoEQURd{suyTu_^QlD@=gg zx8(d^_YDh8Gbxr_Ram|Kq#^uxoDr7^4RxsrXe0%)k@I2RZ{E*E<5-A9hdd0AXQbR3 zK6t@LW?&E~%I4Smhu0l2!B2JAzcf_aa{fgs=b&|hjBL%33Ga^oJHoMEy2hL89fP*K zyYoEB9UXJi-3qk;=$WrK9F(`%{e($Hu9fZ0qIYi z<8~PC^V%hDL4YGrF6b341ZYZJ|!ajd*r*4XI9A zcL|R8eN-d?|9Bu$6MkqCQX8hF)~sta#-Y}Y{=D?^oL4#+==N$zQGf^ofvoa_2~djr z-JpMYkfD#psH9Szu;2cieTU8+`AIhw1EfoR@tdb10?OcX$>n*z&!dCeuTl)r?KWCn zS#RO@i^mwdx<%f5>}45Q179;g9~EhtWY5e*CJM|+DgK#M#-oF4L*P;2nC*MyscdN7 zmJqHF^z$G1sIdIem#YZJ)&@gMmu0xmpd#O^Lw3obkztA*c7#7GhRT0R_L!tsurym8 zb<7giO3axn1fP`i%-a4FpM6U@<4sq8zPA8+Rqx>b7qDZ(XXa^m*HxdJBH-LVG^2v< z&ri;YNzN(_wp*`nO<<%I#hlUGj^JZ&Mn5EqtxZa275>tjUzGHy9W|lv7t7B;XmW>iu68OyhG6VF>~k$ z2~K!@fCf*c(M5@|#cF|al8?HawUj_6Kk^4FBA!zWRadF(6^UJltA|M1aV@@~q_lF{ zt&RPOL?NPQHh0~R!x_p*sv_pyZ4D~71XCc^jU0MoXlt@D__>u}0Q6X=(t8T#dXOQt zAIyuJN&K*^Q9WiC@0>gtg66@H=F&vEo!2&lxT$Y%ezs*sUt$CWpsR~>5}Jhln`JeE zc09CkJDz%w=>sBb$YSeVY_Xi%0;j+30$;^;<@|v55hj&Tre)`>p$Pp^smV6#fynEC zU)a$D?tqy^!!;2;l5%jSzA9XLjRXL@t+kk?*-aEt$5^90Y-}o@hes?>?TPXjuN`Vr zL-*Ui%>*LbywEOxR-O@jcC`~Sp6^4RVq+hhkaq!Vou*p6MC_hxUYEenmQA^eetubh z^Xj{K^ZK23mzzh#Debu=snFl|y4L5o(Zi2M8bjGtCisxlp>Jsaw!cA)57d+UjZO+? z3?O_SrW4stR8O7&`k=S*d3nmGi_~KTcytSR-h~WI{beV~;%1Qdsx9xP-)<<(tE8a4 zlU-%2#}kb;lrs-e9^8w02a5D$Qy)O2puVGOT__uDO0J4dXv*&nd4%~CF-}49f zkMI&vVfx?Rio+_{w(g`5@mNU+A@8FB$uQ5)Q7&$qUOJvnWy_OdCr+dM0pG>z?jzPm zFFqQz%{f_x<=Hr#n7oYMl?wHfNBX|-vgK4LT$t+^a|@!Dp$JO*J@PjKv=uq>U#V^s z*~t3<>%EY-7E>QSfd^=#MuPi$3?w`!>#6s{o2cBH*s~w511Q}|xNJOS6+#+(Bs{rO znIf!fPYOX^sS%4`%V8(JHMj3o0?l;$1AwD}8~|sPCJ%5%i_0|NcuTnbP9s!+asv9A z(qEg2P}R&BSxe;gp3K9VhUiR;^s@vw1w*?~)(A8eaTS7KRz^55z5w>(?e1$Z*<|O`BG@h0TMRTm2 z*lj?tAgx;hZ)8tu1x`C@e%0O~jccFR?Zoe9hQ!t=qK5(lHxhaj|HW9#_&s;!kxC2jP|zN>NiH+?Q(EvP;AMSE7z4 zZxs@A>(>_;BwbRWUWzBP;-qGMW@**SsC-Ydgpf{?NFLQ5^Q?rlI`0rG=)DA^pe%lF zsp~=&Or+uVCb*jhbH9|Bngk}K6j3A8G3El>lCXt40X2SZo7L=j_IWhB?}?<8YgQr| z(W_O$ixrXbqz$6A)6#=Z%>*e1{xC*;t<=7sKPWT_>{5oL2@oiSIjvK+hTTSK0q$+(#`NXW)dbzCpYt-6dPV)6% z!N;!1F$FKGV~UV8suC=vF!Da5v^X8wfkDz30R`zSEzB~+7PYQ5=-ND3`&jAECOoQY z`}ugrm>hTd7tcRSs4zD`U$?ibvz!9zUC9O!!9ORoG$>O@NAOreu6{bV{jt`P30vPJ}u zp?Uo&HqkiOzvh&KloFad&gW^PjRigljIUw}q{=;XIR)(7$TA`f^ zn42itN=8i83?m`?bM>L@Biq?vm|Tc5QURG@7e&Nt6knZtz}-|~k?qqnu@2l`7LZzG z3j2f`%jSV?u|0LHXT_QAo)r>TIgR-SO(; z+NSi|jq{oIn@e(Os&hqgSsh6-gqF(<3>NoD(V^VFPWoJt#=l!fDr*(bu#vbGKnGU{ zMoY(M)sIDnQ*u{{UaIAR^Qzd@br88jEwM)MQ$FZ6jSdSl@f_cArBH0>xiz8T@)*X1 zdozee6T)}hRUm${Fcmlg*xQC6Ok>EbYc?*~X(bDQ{maQf`>qqaN4~9rL^;KV=rvdb zIO-K2-BzcVXH^ciFJ1+c2vOmcrcCTlupSZXsXgZF`qN+?J`;_k1Jxy2673Yq{n5Z| zdmgF+?bJM5{>Ph3ONv0{2)@4q4F>3tC4uq7KCDDU{M5OFjJY-)xYxzA8yr{!@HHM! zcD38#U8XbS+Knzi!nH|)Xf+GX07*706On?bV&NYK3Lg4(1h8C9(S)k>Ir*xo46Kh1 z)kr3+vq0N)Sv#e3b)BBG>3~7ot*Ft{r0Bw5%RDYSr|!@!D2~Jv>qy6eeVYDV#3WhZaEINJ}iJJL`edfUvPVLuOO|M6BD2YBO&zu-8}}fF@NYgWeu&h6G^~ ztPvh98D)~j%-Rie8}QLe`j4)JMBaf~WzRto7ovf%-lw(N&wdv zxsmuMQGCLxDK8$cnX-YRhK4U~N{}ml;YDVK1)JUc<14K8FxK#}m+JhW#a`-fX9AFb zb{8H;CR1Sdfj8`R)>pBd0pLdk+CYKh183YjzBjABspe&=$Epuq@De#>OS2Z`pfy*o z-jajbkJ1il*j@YxQ(|DSN;gGs+N!J)189H%+Q(Z$T%BPNVV90`v1o}L0Kp-+Xf7s7 zdGxm#@$7uTrHq<7-@t+n)f#n_5w1yfO%qks(h2|U*vGX|$Bd+1N;V?9Ao-pmn_Rgp zUZ$}KQ>W6&i#x<(KKrfLEDBI`YSm)J$Pv)EvTKIg?$p$N-@}v~*ynbnLM@u9HxYBo z=hWau_7vl^tIgJFXs;@wpE-Ph-p;K$zMLY3%BXL?>Tf-bYt)dU zW+>b>*a}KLy%frxqA5=pyd$o;+65$aCS?;dUNu5fmknz&1khI?El&PHsHTRqBaK61 z54Jhuc9+p*LT2CK3mZh5FfAJ2yH!L&O0{@aWsW`o0fo8i+<^Hq5Ekz&VF@9)7CGf+9juDng*}i_onIQTz0H zhwkIIa<~4n-|~hjF_S6S33Pj|v`FQSJ%7~7BbCHe(5iNUO1WkLa5z9X-|&fP!#L{L zoJfof7-EQ33CyZ@K!7QSMRjj*gD1^sdR+ns$h_W^{gXeA~R>dHQA<-Y`-w*|26 z3vR};>&P59;>lqfu37dAyC{GRVj2k5I*ZiPG{PIaRy2I9C5YE-LQ2b0qKErnqqDel zW}tQ2*iJuNx`1vEFcUI=i@XS*NTVsUBgT{XlatD()5NmzXHL{5G1wn+9o|xG zEFev#_OudToH{VaTZ-PIBhMa(&o2#r zLmg~QD;l3* z0Cxh7%O2?EZDHo&hg|XXZyZSl(w~DtLK3nw7mq9YH*R50{m=3VEYE z5n#q3KO{$%jWqVYCn!G`n)$Ee)Axr_CeO2}*Y}i4NeZ{HhQa_LJVmjSp4MZiO4n@f z^=JQdnR51R;@;qU?!PRid;2vCG)EK&PDW{KhHVZ@vK8#gbRd9lCF^$Nu=@}$Lq*(jZ34ZL|2PgdK1@Cz@63YG_NWDOh`4uMTId$?BOAATc zE5IFDi%s|;YldKOFb3z!V(OUC;#RmDnv# z5nm4P*X?IjG+gGaC`EiAX;mId884@oI1HP__v@#3$o@Ir7KC)8T9=pZC8iiXb2|%R<^cs5U z|M+_^0OzA)2y<#B4t@ajui`nVkM5%QN(?kx@61$#A;yN!bzCZJNq)Yq(8blH75Vp};rvf2NHny~_*cz}q)BYc|1fm_+hh31 z$Ve6APK8}vNCw9YCEELMusro`VaY?-+w0YxY&Q<5dS?N^(AP@0ge!lMR%aCBV_NI%zDWK>xMO zWRR0oAdNqa59rf*gVy7Vm_Gr-j~`Qh|7zN%!_!ec9gAmz`zQx+F~GNvCPw6ViOW$X zOXL95VrDl>|DReolqih~K-5yUae&s~geRO0kwBH6F-&o3 zWy-7xbIsSE#OxMdX<@k_gtA{6;zVIauR;1*e^PZ>wb%2Sy-;_{2USMd1dBKx6HK@q5rhd;?9{fkb0ci==98bF{-6h=S1iB5T|IW`eIxiCzip_S!M4+NFRy#9| zjh)$Uq7LC+id?vzMLe@D4KyN*b;pqDA=6vv2k^ShMzozCzzPc!x%5IFNq?}Iydd*C z-J=-+%In05m48j0Cm3h}0V3%(-Q36^E1Nhi8lYuyg}H~-q#9kIoh^K>=P6sgn^Xjo zrvK!>U1&NN{tma6cFxqG4O{Tk$msUzac1T&JbG{eIK=`ShtK&7w5q>@nBkT`TJcD} zyaRHAU1p1-)fepaNtD^0zFCR>Sr@A*heXaSG?QPhdLF*5D*W&ibPW0g4`0H(RIi5= zw{R-TM|l5(Jb*fVd@JJoL`j4P*3o2JiIM=%}Kx4|^oE0RLW7+D;H=F-wgr7}!(jJ=T=IRDr)Pa8kze z?Z#MzQ&L$~i}~vqtJ~K|F5#PeQY$M~EgKL;V;K(b#X6=oiN{a4UL;OI!TRB7g;UN1 zuB#`S+O3P#fVlA!D=!1kkCNHc+=V~?>F4XnnHq6;lAdZZI)b%8s|q~2`}NN$loCRs z0Nxu$^}Vlp$`Z>IngatVAiYhQeW_iqU2RfBm3CnVn?pB{g4Ftpy5cRl5TrxQIhi*t zOh!NpEKDCU_JtnN?ZTJ40bjzZ=?L?_5+z7`rgCn&R2~x|`<jNNphymp0YOzZPymugSFWWQx{K%LU94EFPfbkc)#WxLeHq%~lK$K(6D@?m!u) z(rBRf??5F2xYQVpA>wPIU{1{<$q<4RJ&3lN5w7{}5kPokZ7bu9a7(ndYRG=(*e8&# z!pnt5$IlRp`8nJ3xN{l1PZ^RD1YkZuHJ~3$YKVnTE@FoPWxQzpm<)T4U@QgNK@oJK zTXYx?S7D@pZ6SqFq$wM{!xUdpbd4Vf3$$K-V)>&wS}6n!frKAOs#_AhR()>2=ag%D zs?rLE*>4nl-$Vf0nAmFVpDGxU8=Jpf!Xo`9&{6Pnh7w zUF}?btz$(tKDO*{^(TVgU(2Ho&cMMQk?eXTZ?+tc6gk3`EWvm5R^v$-f<$b7E;D z&t)lRjcylK9zn+*ECQXA>>f4YtF{R=om%r3M1^WS<**pP;fU|UyQ;yfSfJTlY{vu^ zw`$22IFyR%+7KgLa0wZx*C-7I*vL5m5jvX4wAqbHq@i^VjQ^DRL7X=3SHzdJeUo5& z4Af4bhBBp$Oye+rfZ?oyWekn5uh-vajIrbAGdAC*F|^je+POT^H1S`D-5*F6yW*Ic zEt+(K#P1(6{nSV)m4&hUMBmgC`0p+MwX+0*nlfgH&$OUkH$VM>MlX%3c9prCUMV`0 zNZt-9bmZsaksgWmj^;c%y3&Fs+qAM1NT@@A&6oEAe#d+GYrM1vHyW*tj#g~I@IRVj z_jnJt=!_t(`JK)HhIXet%4&CIf7~Hvoxe-$Er3D5eeh(z$;zu1J49X$oEEwI;VuOV zuhS6d@q$(ae*ebnf6y~9$2aKc`@1|J#eeEwA;9U#R34Pu^aCrDW+V_lBP zJV8m_<<`Y5uHhBH2hj%Bkt{)P;HjEpf`H9ZcR^Oj09&t98~s|rEsl(BSOcequ0x@U zB_8wDi+`fC^Q7%`QKNGB!wBOLs=2cd8++`SMGdq+E{3@(fmENZsSYBBRnTG@==J4{ z7NC3GhF5tA0qy|;?Qr)rbT|YJGKm7Zu-MrA%deU1H($SUP%pd3a(IPFD!qHatpNYL^cs$mkrO;fp(zrxX3 zQl*FPP_G{;5(u1e;sFRpg&;>5K*d_pi%XkdpKu9~nkr#Thp|Srt(u+^_hd;3stB@y z;{ln=CS#ZzL{n$z&!K5-yEf~`Q@`ZRS)?ii+A_>AK|*$3LKyw{RVtjB*2%hsPO=5> zx0dzN~mWx@wA!D7W7YknuIQtL8|Q*x3OWM6xeyV*Xsy7lfyq-SHlQX~3!G z(*@tgJ|oB1eir?9Pmcw%%#DBnDTV(`qg&*=j)JEoRg;n}wS%2C>kC5?ut z;zg{4xfIBiAm6Fb{;F6PbnKP|lv~lyRlwe)m=LWoe2kIF;L+ZwsWda)gEm_oBQpkM#O z)<{ElJ9~>#>VM#P`V@Q#FYM)4G)E3Oig5UA<8Q7TVy49XaA<(;TbhQO^&`+WM!}^7 zQ{y{23!o;@)BG%VvSmmF2yosorOgJ zth<0)tLY54iHXKcP6kezRQKB*6?QsFfRak17EaO6;H6%?TQNcagtRJjt-%~20LV7- zE?59fNC96QH+i42DKY)8T3NMu!d43qA9$dPBNvFZ-ttPD6q_>9!5zd1T1^o!h@NVF zqj>9|IVYd$QX0cf8;-BU10+%CU&Z=Be>bak*$$FI>)O4M;5x`ynexW1RN1CMQE&&0 zH!Qs&fKTbFxf_e3R%Z%J?ybTxKGV>M(YjG26VWv*sevEb{p zEJLcozf}#5fcwsZQhCF>*Z+v)?*Y+FHz~xg$h22b#|`R78OK<}+_d=sqqsb8KM{}| zAbIy{9E1F%4NccBoi0Z6k^7f$dX;F3zeA)$fSg->%Z|q#(fa`E#~Ny>ArOr$0X!K1 zFI7wY*9pUy*cuA44@01@&YVg#De*s% zf1djJ{){fH9K{Fdj7<9Mfvgs8vPi3rF<%wcdEMBGC=0;z>no0UKRlJfKhn#-#D~&3 zAQgl?X0DDi@!s;D(yr{@;KgJ)8 z6ZfM7evhz+pfQh@j{5>QL;C7g(?99uUS$rX=Sb24YxDocvhT(JFuQr{IDpvj7B%SF zt_M4dwkjRIT7(=VhFfF~F$$F6vcgVuUis2fUNF((aAfF_ijz1h<60-^j%Q#2j+skq zV2q&>zxhSmju!!R5e|Wdz->HS6_}^}bb_QR+so0Z78thL%wX(@uBgSYtG29T}a0i!Pt=t$$N=9;e}U)PY5npPr9&Rlmi91R5U zRyteAX_M%kX7lRA+RYp)Kld7u@ji+SFZd{3W$Sf)>?zBl#)reWhD*x1Vm1U!8aDx> z0yhs7E~JW|d$QK8Z<;^icN3~w!D>)rt@H*w?@#5P_dcHiyDfY@`Kh7z$&MaJ!GDpi z(Es=P`l-7BuhXAS=S>k1pYKiOlobppad&?*`=h+BLVV~dKXDpOz+`*ybZ_VMA2rjO zhQ_9m6fVuVRRh3Fsi{~r`k7PyLIYxZU;sIIQrueVM^&~-Gk47=nrHa^BTzn#N(r@b zzHIW7-(--!{3ocVwK7-u5_a9YdTHMbhjt3s{kxUh~l+R;)Vck)$!) ziuIS(CA^qoxuJ)guLM4^3f14g3pvT!dohSCf`a2*mIayER($vXe_xU_Gx1!(uDOcW z5t%xrz-n|(7-7ff@%hu0X}^qlP^;hQ%q%@^<;khWBiXhZl-EZmF}()e67OJ0;{8R zGC)vPl}cr%ujNQ?&DSa25oX-Eb` zYpDLNtseT=X}GPPiRO08%H0rY(1El%ENG}}d#EDPMKGdQgZS^=Mhg%gi~oQM8??!S ztef9O5Y8&6zd#^^P(O2R&#dC(i4tsza59Yj9gr^5p1_BncG* z115MB-=g=*D9GD`?7+~ax8Zzld;1quNktJG=Yw@&2^c>U|p zL~n%5L$k*>s3Mnwm#YFzz-qA4@Y*GacXBA)eb70XGswR1VmOqvA#gP$7;@VtkaR34 z_;T#m3$Xt?ZTv4Ner4n@+vYs`z_bvV2zU7F7yLoMpuF)u7W|av%-a3mRiHs>{plDLGSCS^ZosO&^C&37O(Th z?=nSTqDoI&yDjMb4Vd||PgJeQBn5q&^OD94U%I;HNIn!@Z&NczU;<-e$<|x46&M*e znhf-$MP;tW81s(xo%}OBa5{gb&YsND?1_Tz&&f>@xC%l?e-8>tMGzq+jRwY_tQU-n z*KTy*7WF-9>dM~~&-*J%yEph&c=;TjN9a126KmX6x*u<&;$~IF8wuDs zD*N36!c0K~(ZPPI!@J#>$Iww$LokJjJCSov8ym#%!R_WVynHAeZ;^ z(9noy%U^osa<9z?wR6+w{A64NsG%dl>103NE{1CG`ySOBUqqkb3WltV-Ee`)wHM8c z>ZkG0h5z8`XZSEElZTs#8dP|gI}hIhZIFvi^sxw~@O|4mC792^d_WgLeK)Bm>u6)g@+Yy*bNtPu`w&ce|?713e0;ZiT5sZ_?rm+l+O?;nom`msvUns+6RNUbuYphzSUmmpPCYKbo zVmGQaHNzM!5Ln6pv6RQPSEddn)4-5M2S{p5FWg8JVtX%jgpRd>+@MCGOTgt!LWXB= zQopRk1GKs`beg-8KgBwnxtg2!LYjVKR11P)cLPrlrOV3I0ZP$>1-I;Iypxj&n37Qu z{B`xXO4Pml{X=(l4llvy*BDD%-y$v{^)KKm^riRl}V2R3W#qdwIzSw zX9f2sizEAQ?_`jCCUHU@GD5El0x)*nJ8_CM!*3tHcqbh21PsQ|P4fc!aluCa5f$)I>77_K`c81RpejcA0ZJa_{~7Y{Gi3r zXXoXpBPgkvh9U?M*V_1~QsNOcdXa90Z(BdaC&%K1?I5L2vTk(d2$8P33Q8U7*YKqs zqD>AbOt0(88Sy?)e**5;-`~#PdtG;B+AqvGvpKo5vZI*FkmbkN83;cP<1o(SI+R$q zttBg>6Mx2?QPq#m=;a3HOG>Ce(b=l~rUf*YtN6(PLd}2iV_EGWdZ*3GPYH{-Ll2E) zH#X#R5I~r}m0~C%Blt@QXKIKfby7L$RBwBlfai=h_TKJXV zvKYvWRW-)|P0Zv|Sb4=!mV~%2PE!dSXxTo{@N-B$f$k@_RUeN!=`^21;UvF#38!W+ zqdC5I3WYD61HumdS@W`Uw^>wt-0t~C@tU-d(sL7<f5>iA1QcDuU-u znPQg)ifH}~vK<`l5_3B!8N9dOzOHyug&C#5e;>}w=-21F{Sc~QE}!L}=o2c&N&A(| zdn+WJNw+!a+3Wd4h!n+nnO9-o#eD`GOTz<*_#Ik~w3 zBF6vit2`i>z<4!#?GZ-Enp|gIm?IB<^xT-|`xp%9D}o=DV&`=MkuVdTs{Xlk&N2-S@o*l*>pc#X1CqC{qZf@Z-B> z*jI-Mo(j=wEl?9EsdB2dn{lNp!bn#(PX0MEtcjV`l9CdqS7`2L`T7^@^Y~}%Px0}# zasXm^A5#synvuj1emX4W=H|{Of_E+ZaO?ojXnZt0ya2!+dLxgTi4% zxuxZD|}$-w+AK)Y1aTamBh&*p0UOA4=%OvGMy8&{@C-7ry+Z z`$vwNjH|SJ1TByYm>&NfDD?QI44Rktv;boZ z(-dBp|1K0is_sL{h^X#h9xnE$ynKC2-hzz~Q?6sf_ZX<5uFn(3Z(p7e#4PZcN8`Ic zn_Zu40r0PP&-(KiENWG@&Bo0`=#)XMSlfIO(g)TKU#{ffKLE<|s$#7JTrtXVF`3ro zC4AN9;jUV&amh#$svR0mk}11)BI)%pgfidZejgql0@%*Y&22Z(?{a4Z1)tT>ZHn8L z47bs=-su0l0L2C+bM=fwUi!@Z4FQfHvhZjNPe8N zw(?J<_E@U@)G+Z`Yw-LzI%|2*voNJ%}q*F~RKexZ|#Od9@> zm61s#;lH|?U<*1n*c9-)bJ)R)W{RC2+HU&2m8w_LN9`)9iA_$27dDl+bf>|j`e6$ebibZfV%kumfZKqWfPCTxBuf+P5pO9P4k&gnv*&{d+g@1W|*+a93eLY2;@D$BL1Dl#2-IP7y49A z4=;`hypng*|GHQ*N{(VAqS;RwFx%jSQ6T<|7W3WDwg#}r^M6rw_48vyM1*1n^T4YX zM~3*y4_cHu4a{Lw3Lxsvy3c#PFR4I64_jgX&V`wZPK=~-D1%faFf7CBku5Q~F1%kUV=9VRbe@$;x(QLOz;K zP+NU?1F6&+yRbM5OQbKZ`fb7L(^Vr&$IW{EoB@-!~tq2tq>%R-Cw|%0p!g(WH7fLCqx@7!d^tK4;(56 zqe%x3V`DL*Hsop4ieTfJoJmkyWd{uOi>tpdutoOGT0VNH9ErQ=a=^=u0xH*aVboX} z%*1L~Q?ttra8ik&zoex1;NpNvak%su zQR9g-96gU8YN&q7Fb}~+18e^0k48@!pgWM@89GD;R@58K?-mvoU5778?$M%;ave++ z0;If0WkJP{%) zPBK-8a%XwmC#>L_*N9qSY7wR~j?ex6-RyaNbar-D`*G}Dref68M0Qygcr&x`o6v>U zoT1!j3c<_iS_XG@oT7Ur@WgRo`QL#pf45&YlEid=|M=&V8(0i9QweZUPn= zb@x+V@r8Qe3IHn$fSQ>te}8{>rZ7Ly}h&&(TMDW{`yvuFc4^7i(I^;R=& z?&s`W_`olPVguyv#KgqIh5ElrK6g_S`BHD*yg@=j;^4x3u~R_scwfs{$i_c=wrh&Ia&3IY}mZrRS&&aPtERJYl2OMz#(;Hk-cH0{FR z#hiuB7VJg+rcZyW2T444GF>|^3R#$R>vmauZbz6Jm(BpSGB7JfNI>u#SZsu1(Q5zc z0MCt$i)*(~CzG^QQ&VH__4oaL^l|6&({~*LxnObN`63^LEWgUqcG3g(*sAAoyU^2V zbS0=uz_+fWTysV%WGJu!xeX1od(JfiAd>Z)(f&hUIj#30TuRAIYE`hlTmg4>vY3{Z zmMpjRP#7fKwL!39xj8w(=A=z^8q4Gx{6Ui{PotAGLy8hCKX8i)PDhRW6^9!gc8%^J zHDL;$s~r`l%=Xf2yQU9DMi7l3N7L%vPK__66iE2%^ZSBPUUS1{e`2J%2ZY}9X)rJ_`_aiCt2naHibz!AfRhWZVO2lg^m}4nf3ga6aQ^T3_-I`oK#>34&~4;) zyOlh%Y9)vn-@k$M(%7Jfm=1_69mj-@r5}>HlP#VSs(6Z=`qg*?%l?)GJcG70nf@No zYnIAcgX#Fx%s52wP{^8}C4MQNp;zD`{u!U1nIeYv)$WA#C;Q4N47DdKRrLu-RDr7n zP!LsC#d1=>Q>X#69-wVt4o?)v5J67`^E<%F2VP$oDwGV~e;kJD|GFQGLI8}Mo5s5= z3^}@3O$Pnkj+{A`!raQ~loGGP&eq{Lj(6|U_Socy08Eo2^{O)&M2#Q50Ce`+uNQu< zKMV)r6R3Mu-FGtW8u@s5=1kek^_m?=)3^?ndU|@qLQo5BzwI4F-TkQOm|V)ty2liA z1obn-rv-OxY0#!hE~zYGRl9$grs|K`gQPMxH8s6HTBcRZXacd!VQe^_7LQ5y;$|ay zXLA!m7{J62AN~|6q?_t6zj@>N{CNFwlp-^l%vl!rWq|SW3I-?$Hmb%Oe~`d{Mkh6?VyBIP$os29zW<$ej^}^^Sb`fE5&T8V=Y)dj z?g113c~nZXpQU~pIWxr=vk^wt*VkueW&%QXp~dAd*vsZ)S&@cd2M37EA(D#d4TA}6 zOP;c8c-&u>JA7y%99&eQ_PZV^2)Bp!KAxLHvBg;)vbE2E?=34Y9~~YpDJ_Na^*n0c ziR4)^S_N#l!|_VHB{7`{I+oMK+s@-8TASmCe2hS{QHrb zn%Z^QWzP8$=bC$xa_XE?Zs$B~kywB|Q>bR7-valH^!b$Z1&ZwMT2Nu?fQ&ITBz=$t zvQ+jv7jXR(wG1YRl0*&d+fE0rJFW#Dt^j%h?p0GWbAWM9PfN41wtn6+e1f^QS?ze# z>b#o)JK%+@2I(Y&&-Li+a%Oh+>S9VMIx6bvveHMt)BBOrKx=7HI$C}#nlW?ijh*Yo zkn__JGnNi+NMPSU@4yjYG*Jc}(jLL;PO%}gwHXxe zCtzWbc;9@0m~VBpHvqFoT83V?cMMEShlhucPuHED;2MCaFTdf^-yV4}bn!4WdE2)B zSt?q7C;EUrHj$=v-fezf0N}4^0oA0fVc5xmhA)6hr<97SYiRHW*>+6u{@~dAx^-{= z4Kq0Dm$rMzpYW)yE=CQ*2nSXo(p7i-N&Tdo$YO|JU{96=rDfR?Uq*xcOgy5e5kZwy%58Nf&h zK3=FH`=xmpIykg0?~G+XkJ@_!K8c2KrtYF1z}S0`e*NG`n%qwFruHJlDJ1h9TJG|s zlJx)Mf?C$RZ*eXe+W}2;wAZc0m6i6UrsB0iS5??|Er4PadN>h-z$Ya9F+7|KG96eW zBkA@Xyl>w&x%}0lIp#2=`GI=s#RtURu7Gpotpx_Vx-r{6XtHjkN!=@p{$me3YlS znq?C_9OXR}s4&Yk%N-dq_}$OWE?q!Z3-rKj=c_&}x40|<2)gq3f1TLIf3Fn!m>470 zxBUDWZc0m!Sj5~V9ltVovF3=)_Pq-EOD*^QZVtyM?~x1$gp;IZk^b{`Yj-2LwRD;Kb5?p_(=*iLL_;9Pm=OU&tho87{_r zp3cEnXb7;F_S>&lJVA*A7!SxUu)EsTiWNVU4D+nGZIl^4?rU|NB_EQ zZ;(FUfb%f(n1;?ps$owi7THZ@@jeabA4?zIHhelu2BF$dclGa85_n-!pNG@c=f_pJfNq>OngA=7 zMkBxmIBoxIb^{AM91mPX9UYz2k_pVfikDC~70fsybkmJCTcK~wozBO{2g4=25bcazD?dQAX-Q^rcGsZG6vCD0eM2TSVjY`N#v0RaKQ z@W_bgpCG)qQ6m>F=;AKj=qRQxAxEBWLG}{Aj_2YLk#*Q;+pf+LzAK z_~GZB?d>%AqL&SzQ%f^tLIt*nDpfl4p+1Ov$ZXs+B5ZxA`!5v{SD!}(FD4e(s2pZ-54+Uoid%XK>MF&?Ul_Ecd9&W z@BEg{zf$|b#=j7|+pQ$~+qV|%smzA=(^^+oiQ7ltSoYsQ^78Tm8bap1YdkgZIQx(2 z`dbT>g#ymI$_tVdVR>Zm0J$Ze{_}ed|MG|%HpLqOeK0RUQiy}qPM@cT+f))%P#?v< z`(6J3f$jf3L>n_(X*kw^0^2*n(wWiS{o;2yCGk1^0G#kwf>-~u)1_&)+A9%x7%<@n zB=_WT1M_J9WO4q`m=1-YivKT{M|;wDmvvf*HuR$xIq?4Y0WU|Dr#!|jcfkBB#9Djj z&nM8a0;Wb$E$i~p;bdRw>Vn1fFn}TB9I2!wG{h~9SbZ;pY|We!f;)mJ3kXaV@O?4B z%wWb78cZ0T1G!BqA*KjAp)?tW7Bmp?$<~+`&#?f|MnHfjf?oa4FF+&Fo@4+~#np7( z6(T>ab`x?`7#Td*=CrULJ(!;dGIKY=fPdo|IT94;T*{Z{Lk9>F&^<|Clh={g25w*2{BuJl7dj5*->8hLd8hVEJ)ji zx;#x({sMO&6)@2p#4BLfhR($TXVe1dAQF#V^6W9ZP;r28{s7xm`RK1hs6cN!^12nG z%W`M=5EBB}DVcjHLpv14FGCHRvfHk92u$UZ)kGJs2=3LL|J%T`>cv-&+*xw!UGXKADd;DP(89NdJ)q0p1@^IPt022@5|3c;dWWHcI!T{>V>thHPAFxdX z3d$ijcz@xSTTJ91G&0831bhIMKwquP$v>!#6M-Tg_~^Y7DHs4PaP{+$m}0iwx^rNA zQ1ywpese+?ogf%IW6-3E7GtofN*Hi8ljfm-7XTTq$q|Fmw1^U(SmeLg3QA~G%|8yK z4tNxM3T9I1eT5)Y>(PHDZw4M}5N{73z#N3YVIrMAy2vgf`)>>_M9>NY)2_hGu(@;> zbob%;wN|F%_e3zD*PC0m6rA=AM1+04TNT15Qi*)jg9 zO#1z5-)E~+I;?YEVNVBq5C>p+q}IaJSz&6IVB zrQuA=&#eF=Q_A;pnIcrX`uB?9gUfC5~sYYvdtC*ej8_TgA^KM_tO??a8OKo!Pnj&sT?>fo7Djq~l%k&B$K1TcyT2b6bj$><`1BOcIf0_#MvAO+;%5?(&mV}xL% zKfupEHGgvb^*FJLU(V4bj^w@5eh315?}?t3Ls2#Q~ke>9w=Ckq;8X(14Y_ z|1_)UZIteNV30p?ktf3sA&?moBNOK!qUjJg6=zq6z7R zgaB=$CIC9kbe^6U@9%aSe%wFNl6_0)lT?+q{vcMNys-AbPL_ouFKZr3eFbZ)g-iAe z(!ABo=5#=It|qFeyu6+upXgl;s;8}t?Nl#1b>Qc^SLtVA- zpPqIGkd{AM#mKwYobBhVmAGhGzg18D6jC;69J1~}3Q<^twn7A3*4M8M`sYzz@3Z;d ztpUH5b{G=|QHrYloJBka(UmL&XW z7GP4rq6kSMijd7pxKi>%lv;AGO1?m--W<3ys?f{bwzIe#W$p(O}10Xj+v!8l)W6;9Jq@=k zrNvPt|1#85(*7#oRWSQ;?~~j&5BE`0G2{0FRy35)Pc91mrZ2l_8yZ`LjVuS9!*nC; z9i@-+60PljMu=IWqxwsKa79#4RO6oq8S*#n2II(GlZLJ}ozEF~z&c*4qX$2o{IWZC z(`YWbr`eblkRn}uR@5)FYjn+Ey9#m%j>W3J&l3E!>f*rb@VtVB^KM`uYS`rWMWWk? z8n9^QZB~G(dp;L>?#1T=g$?NZxmot%du~MX zoN+Cg#;9t2*?9Gd^ff9Q_na)h<=qcnTzSJIEXZ_fijcf~lj@(9Ek4HxUvkPmdk%&~ zWxLvzHTxV3rc1EMVA4a24MtOF_LxtMA{GQ<>&Y?r}S=<(;X^tk)I}Qay`@JA*<(m@pv`(Z%hTh-&aB01nN-eJe2)z5oE8 zqs7L`l9Euit81U4{Z7-7pOq_ITkns? zGlZZTbj3D6mUUZc#E*S}0>uxOEBP!c{_EHGt)2I+@)a#0HV~sqt-vO}hNnry^dkye z3s}T^>Ur1utDA8ciOB2esAxt&%cO~I1s_x~g!)CHc%WY2)mBD-T#j1AljKIDI2w|KEB{J` z^+a_`MNr?DzH=3HYFjonk}y5(25Xm{%~jI}XCnD@kl?T)=2tK%ldw)!SE!C=8vJKr z&7x}`w$7-eo@h%d{?JMqMmbALrR!yDhyDTpg9Fn#Lbt3`D#!}vmjgcLC4Du zL-0WHQF0b=en+wNE%Wd{jU-{BlB_(P@OblwQ~AHO0ASx~NKL!Qm50J($Apc@(f34L zwW~)H{0x2&sah0i@r@T{xB8$ff8g2>M5S)JAHfDq(bGdu;9|<~ayvrlaQ^Wa2lnEy z*(}YQn0IXuF$@sNTMI@MF(geG?ODE~c|MoYfz%_BnWv78Eb>|+@E_!C?ODsNygIxR zJ4-=4EgwWsZq8XJW7Va$XRp4SG`T7+LTIEVBdBlBGNHRkIJqG<4%4f4MWw{mW4Bs- z{WDZ$PX^{g?F_h(aUzY2dWTCh^cZ#d{idyLRE%BC!djC&Ikis}LoKZg`zzT^ zrxsx!x>}09TEuG!Z4BRkh`m}Ov*Nqp(uJpJf7y>Uxnj}aO0v7A*z1&dbCWAezM0{3 z@3AW!5}@M9H&Z#SRxv|Go9z({<;W_Fs*I zVzsLei#f+=Vsq2fL8=NcMWAd3beAI#=ne^_rKG&HoL*=ldDU3e4*((sA>SvNxev@M zu$D-}>X)6zm`9m#m@_3d8x%{FNGE?s z_>&l6o68EFoAYToi2BWh=}I*kA*=xT+vmjXH^y>FYy+^8J#G~ivkw+BfATx@Y^~pC z8oY~Sn_V$Fx`f^xu5(3|lO#6zK8PjUaS{&qN~wN&4brY5%|qZ+JG8)kP&sSA5+f+s%0J*$LnWen63D@yg~;LVMpj(ydN&d&i1R6yR7Jv7Xu+t}d$|E@-~;5&Iz3o-@AB4=ps>`#O2-YN22S)c~713qp{* zYo_7zekpVamdQ`^38gJonEV)K^*jW)y`%V7uon`CDBB+4S!}ZtMjbxKt@tqOuH{00JPkOw+&oCQv7WOmXNYx$n ziZpcd0cWSzh$9!uYgu9DTENSwA-R}dH+DaeWDJ|_js4U{v{NrqnIP*xS~*Sx+weDA zd(Kuqv?i}Vn#Fj@t~?rI(kDPUHt7N7@SG$PUS-eOfBp9=XgL#ZR~J4DH$Msr<)n&S z+D|*#0{5-9Munw|2iPW`epS0^+*Fm>mbae^D}5^EL;toxg!33T^c9^9+mOs_nSr+Mb`A1JY`2C__o$~lo_66{}+>Cr)6Nj_m$`K)4O5jRohz0)u zC-UbtcX$@sAqD{ksUvv(nVA{3fv4T*r*HGG=+UcaDL8T2A%sT61C&aISC(++=&8cR z{{)eufwV$+VT`Zyv40!77LjL+`HA9)01*~_B4mR>G{0bX_gYR&ZHD5;G3d+2kXvNG z@n)FV#)+It@t36#tH6x$$y2m|p|3Zr`8R@8M#jeLfDK&+WI!|ywx@VA+c7|WL3qjTX(+NrwIhPf{FqSDibn}~{?guX zY#?guQ_QV-EZHlt>2^_HX}w4JwzK(Amz}B4j74?HI=U}f)VDzmBXnk<NJh4gB7F4|H3cAyMm87eWnj)n-Zi} z6cm)lH8`Pf-@h|n2|EU>7qP}c#yRXOutp*aqjoOh`JeW!aAouwnj7d)sZ%tI(aq4UKCj69_||6sf#a z>%Up~&4eEr%8V4@_0=hlEm+5_*4?234fP8vS}k3=3ovwaELjvgdw8eo;(}9(;p#s3 z*#?AGBqNQlGSQONi1mx}XH#kPT}Wgrd=#gV!q9Zsg!$#GU@AOw<(o0n=Gv^I@D z-T)^5{Sx^o%wC<}fTcRKBP${?_1-bRrQX5D{pxUTs+<|lPn=x2(yuGxh=owKsUMCP z$M3Ip=ikHpfue0Fs+xjc)j=En3%)V~O{+8&<|eD4;L)XrNi|VSD>e*AT92MB z7g@)JysfT6J&!5E zkhX8SGB$|W(>s}wih#&}ousQaDN=;6*o(5xLVkomw8PbD>3~?0?EKlJLGg7h>u)Bv zgs|X?`_<=;+S+pO0kC#CEP zG@d#R@!oM!84i8cQQn>TtA<15kjkM9&ZkU?bg-(KKc7 zRBZ0v4nuq+Y}+5xv*cy)q*USGEO79{6bJeKr8go3koX)RV)22%)y-6N1$1y|XebaHMn^{Cxac`aFv$J-zFw~3kHS?tl`pQ{ za}zs~`xS)V>nqFHkW}o$EL*>(iyg|(BZo+QcMs~rd^^(eQ}h&$yKBQZlP8(QQoxM@ z1~CG>#!J&i0MLw!wv9{%ZEi+JYoI(6_;PcSCE)pV-}&4+FE)Y{r&~7}m@zslp+X@e z6!E%w5$}hwbnVPJJMZd@rqiSA)z*xAmPD1yld@_aymajiFv_ObR4zF2mh$t@Rre>f z0}U0xxS$E%7=cNFXdt>Hbz6fh*SrT4RCK+f+Y*)g2{2&k*clGBnHZK$weHGwI^T;f zE0j6S+}PA+BKk50bG|pv|2g*D;{rR7QfAAPnL$Ea8zID4fIJi`Dgf09 zKA1BpUWqVDO%9<+?`1Bh4=E*p(o=(OSXB;>uAOE`0=HHd1-Nx z-VRA!+(mc~$H&J%Um8BU09DP7XP~?2uZ?m9_n9t4j)LC|8mZZaS|tJ7n^!^UlJDRPkQfj=a3gO=xqk1%wP+@P6-wJ4@+WDO~<|Emn4}%p6RwoJWU4I*A1I zPk^Kbo!cp(diz#Z2HL^*>}{XsD)e9T*j?P?d9xEsM9C0LjcrqIxJ0GQ#MGSD6$eYAck-yTg+q_*#%*4D@YpUmpZ4RyK|#h_!d`y)^yviDD_mT|`bz+?V8?T2 zi|q10HTZVPduBPTk16{Prq&iKEjzorZU=v#?`bNiS0EP<%YJYP-Canzq6UKk_ts$d zr}$b~sbeHjgntk7Oe&1zB-=-3j!Ai5G5$7(+ec3&^+apsI^*Y93;jaei|_I(<&%~3 zf2G9gNn3Ym#cG`Y>@`Q2N^V~6==F8rn^2Q9wtW-tf%HC$&*lfvQi=bxuUPPsK7I7+ z$D2w(?;vp`(=)+D-P)9Y~B^aFcXO}f^vdw*4G0%wAK_t2eUT`|uc)&rLaHV`${$%sOK z_U#ueG-2hpIP}dlG|V|6%V;^WhV7T>XdnIqp;yE$V+ElUTxils$Z{C!dEPJ6omZ4R zg0L#pnN87V$u(X-nwK2$ju-z=H0OJTc3J(;Ir-fYyARroMH3dAMs*O-q||5gEWStP z;s5NWsbVEV$6;z9#hiW7<^iszT)WzMKn}n*^$T7@=?+LcNDzToz$m&S4zsAB-5uWkKN+ttq3u(|FD9nHxW?$n8-WX*pypJiUbASXO6`l$a zQA(ObCg0ev57}EQPDO5JK>fWF%^tf2N~eZR8oI8=R+{=AA4eFZRc*hOZ1%@64wLHn z0gVxjkEI?m54B$tBtkbn4CftNpkN$>8d9x$9hSK1HIbKh>oG)!EJIxm4u;s9He*m* zI(lTwGij92|j;#dJkFbh^~Sg#<8zyx56iD%#SxUVF(mf2ipR z`LH6P0yXcsYul~o>&t`jbVD;x!3khW%+rsHrtwd?9lN}fiIX;+%o1&f_);uUz$jY} zZ|TM+yhIj~S9eyf$PxwC1Bkr0zVK;eo9K;%9$&Tt{!-;9Y3s4Lwq-bXh2qsfdlG;C z_-#T4f$YS$q)+3)h_#C+?o_l0x<0;6Bnz|W5a~W$bL7|8b|?Hl3+2DW+#XueOUccb z7&litRt}LwRw!K-4v~~bmvcaQp6+^3tAh+^yYG4(b>hZO&}V_`NChFF-}Dhk{ascp}4oY0TF3kD+wofLd8 z*XNZIE^&RQ0}nT+WMtjp9BOmxCWB8k`KwC07&G%ncDj)jW@3R46m?|_d?8YU#-Ueq z{I3cq#_fK|QNGpn@P~9xn9iVv%SY#*hRR?AD@rk6oD_eAfhx1HoEniTQLj(;G`m_e zMoF6j>_cYD60Y*K?XRbUk4leErH%>{=eW>kk?T9;pkM*A)>RKME+YuW9iG6XkA;oR zL$S{tZSsi5fx{?aomm}EiYLDxiBi`gQvNp0m2wp<83$*qpl~8{FA`J1vC(y-E6KbM zRnIf~meF*ZN%kUMaBnY2uM}dC(DI%EsqDfI{zPF^qpuaH!6OnHJZ(NZvi>+0sZ}r= zB}yr3w|48o8{pKSEhx5BE)*`A9q;sN|EGfe3Y9FTGK09t=rPwo$ct~=pxLxAYfQam z1Z{wBN>83$(ps`GquI*>p1ntO$iAM@uRWpE=%hu(b;>G22n#19!Mu@WY5!t@4=sjB zLAxxWuOxJbHcn@#n~oG)N}6m3RVCe#)h?;g6=ktCIP^niXF>kzSh{2hUfszwQ!>J( zMRz_ZYjP$mK#gAo`l5g^^aeVf`3BoX(AhFL5E(_yi8YT9iS$MH$1ygdVkB^``l+l6 z9{}3*SAhIE+bTb(MG|)&gnQ=_dBZDC-#TB0-4yy zD(x$i4(w=2zm=*#J?e*E3D@~>8P{r^3yVN=o()V96O)K~ZH3WU#DV!P=@hy3iF}=; zhRwjZzZ}#EunA*KnrfZ_1kpT21AGHR$&&eCi}2k&Hd(u6ccnfZ{yog>l^Kl&?>$OT z$e5HBsjaIS+f3gG#0f&owd;FQ&{|RQ+E;r%V|hMH9s6Q#WRx>cnZ`vG#0{IcdLlZC zAHV~3PcN6XrhHQIG+n3N;axzZ#w9{a_iUTSaK>tAzxv2R3Xew}av&|5V=! zIs29}HWoMqCfTg|%>pjzM$l#wHh%NWp8{u!gb-&DzrZx+FO_i(i5w;U1w z<3a1{*DD5FjejnKs=fWO)0lv3Hw@mA^OV9W_<%W<)`J@3Xgax=V!t*Fd3W0ond1I$ z@c|QeuwML_O1GDvc{CcSHhTQ*DZRSwd9%jYwkW$RN-}p@@4+gNc&Y+QnF@)med;%h&!o?0ZE*p9$53HZ*gFJx=2pJ9**lq*( zV&-V+Bzj#%t)HuM<4rm|@*tV_Shr_+acnFHAdH6DHA4nhb zc}PxyPBMb+H@anmrtn#_7dbsAl0T;3ZTL$>nVXZMhz$!110dX2=&3gQ(S~^xR}gL3 zYn`$^3t~%m5-n?$9bPZSIgl+0Kai$aQC)S5|95NfX(G6d$9q(;>Ymm6f%5FB-j}Vh z^KoVgAHuZklZ>)+AuOE3oB(#_D5^P|TDl)Vh?I=yl+4Jc8SOtrqLjkK{sf9 z54BDq_uz+2VY}u2ko?zzwUH-nqTY%pgmvZka!wjR|x^Pa$t1^M4Jvy5R5WQv424$McT5`NWPct0FBaT$q#Z^E5b%cpkyi70BQ zk{e@GJcccEfC8vP%Sxyu`b3WyRgsdyF;V+6`)6L3>GnLxI~ApMUhP_c1tmfsCLC?c*pBC=db-+7NRch-)YQZ;Bf+x?v*KJ?YxjQpdz0e+L66`WEQc`04tu*&-$_frme#<@EvQ=W z6CfHX(NZH*ROPR-5Y)SE+TaG5j(3FJ}Wl_bYAM^ttf#_&mH{5(BXKoYV7BS9?$ zVT6&8Py}r`#t1z4j*&^$?mg*SoRl!i25>+FQlYm!C zN`vicl#kB?6Jmqu3te`;-a1f`jPUWBM$r4j3HnP3eSb9M zU=oqpMkiFQCWBVB^Ib%C@iTxJHs091?&VBwN;g`yv}Zj(a>jR3@7QuHvdT~8$sg|i z2Ew5LlF&^74U4hO1`IhiP0er}Pa1VV6r1EWOVawOf>pY)B{hXmtokcS!;(!zeN>!+ znLUlsmrPq~sA1T)Idu22M0fZiK9g|x;>e94m5w$h2`K=FQ0s8-tAW~5yh@_On9HEq z_qMz_tX%@caWZ;JK6;6)K9!po2$QJ*HFZ(WtaH!fL@-*ePOXIj=2C9isgnjfy#x#j zCgEwl-OY49A4C_pb34M5$Akr~rytZP^n!w;vyt!+Nb-eI&3K})d2G@M({aH&tKA7E%p=B)@0sAg^T)EA zHaMuipc-N*VUoPYd`&fJN-Z#CJ|T2xCC$E%KbTDwvTht_XqA|$#%^VcE0FccgOJTl zb>dUesPURpwNsoBneq>GD0-eIz`1Mbn|DPwtmN4P?}PwhMbvbOXcVa1hk56dUh5LB z?jOksIuNZ46{3b3W`u58v5$hohgEMPbX|R#2C>MzeT_^u{bZ zVdRoK9CB<0F+YjrR#ujE9hMq=ddmK1R9Fk?n}*-Ie(*3&R8wtJT}fRWT*_bIHf#_a zSs7kaT>bhZ$C5>7H*Deum7{(Zv&{$k01bos;^b7AEnXiy=T6kW+tSH$RpFo}x@jsr z%2vG+*Tk+5y|1-D%x8N{2$~zA%`B)WV-q{cMR=_N7ZO(Gx2^W0+G0skcTgwNnp=ZpArwrS zQ%k&*j!1;Xpi!l@sQVC3dm2a~!_w`Q5TGLHhrrb2l{;~Y4@HV^Qen%bO${EB@yaC4 zbeuddI>dC^`1JIk{$0BxUDhZAL7iI*$PO!o>KYX)8a{Bm@1hC}t*G`vg%^^ikw2Q1 z3lUVDN55%aGQPfMt~-#t_}xb`zg}x(8I?^f8gq$w zlUYHSJ0Ix9sl3-HiVaXP4;}Ox?zRBk+6~z?XF6`473fWK^4|pABPK$qPDCX24ydcyuTP60;8ocHZT^t}x&&OPZp4V|o?1FgI~L zs7j@9%Rqr{ji*GDFATBjcT;39bUo?s_A&!r z57dn#hs_82_rraXl_U1>VXhuanZnOZ?{D>Ekt+*Q3PPT0NI5s5~s3gQ@(3gN)yIC{O#}VwTYPD zSzpn4+lTC)vTvr-vl{!`2Gek@$Z9suuR2)k5%#QW@j-eD!)HP<4SGxyr1FO@2U#m5 zuZfF0oCJ2JS)R5r2D`=Koj;c!RKguY=Fcs^Zl{f_pi#anKO9ksPhL59&?idht#%TiI)m4{|5f^?p;KknJg?<0Mi1RGK4$-o@Miil&wuKym zI55T~ksf6T3JF$}Yzrd6+wWRDWo>Q7!k!aUEjM}95(|v5_-TMCx%~$BKt|3>M+zS- zh$$B*Vtq{1QQv|rq;;V8mH<-4NLl0OqsKr>`#Ho!_4rk!G?R7<_{^A3zVN1qdq}V# z>5FVSY?t}P-v-L28|#{$YS}}7A%)^nR3%B{B-@~(YdQ5xW}D`MW;#MWWpB{yR-pW)hobc7#pH+nSft@|)wMSI90?N*m zG@~Q|tHp1CUaHG-9R_$qFf->Ps==bLXZ79u5#=p({CZFv-OBGXd)+eNmcMkgn@%@O zr^T#=wkStbC+WtQm77l_dzX}QCy>XmZLD^X#9j;y2Fk#h`nU{1KoG~th>NI0Vx(ZG ziAr>tKw}c_%duNrlgh}bsbec&I)|~zQ5Mr@MK+$18`pxOox+~6>%1MxO~W_?AL0|~ ztyzJ!L)9EsSFMUh#fL42{-8R}t!L-0xV=I+9&DEP@*fhZNinlz0LGCyaYJB~hWAT& zHPmhKUGH2ypt-#}0-a0Z<7BL-uVQefKB~l5C>$5^>uIS&NH;fD*PJ}@E#sI203_#g8k5c?H=G)1pTQ?XEP&`}Ms%oxy`PWFVL zOFKdBK?9AERA*;<_tJ7*+NA6aTEQn)!PJ3oLB(EOc!ER`Kf3Aa-pG*GBt)nsluZ4! zn5+{(k_ksQx{saH6BRx=xuXkXLy737dhIlM6vYl z+Zh(<`Smr@yyzw7IIziRl%WyhzJ0Dme;z=Q*q_i6nv9sjO4$Lx!1KZlivN;b zmVB+O32q48PXp0D4V~%iBFz$%6s(-5OeTM+R9O)H)b!;bo79mJZcnhc`x;?|4gC-$ z{Lmg6Z+rtWfA6)|w?q^TUx#Nf2(l!m1qr~#K~NwbqzZ^ZwwcBEWAbU0P08u7&u8Tr zb&rjG>}2nEQrt_$7W+Dak@l_Bf|maK{*A9OTyzJaM_qx<=h{Hy02GY+Yf^6ec3O*Jf6b^R}y&2V7`gAGFzv4(22A}qGFd7eLGa{fz7F8u|g%by? z-5|8RUI>Ti+K~KJG?pmS>6NRdk3f<3+yL|v^Zxl`(TC}5lB74T&sUO8W6BUm6gQC@ zUqmC#2k_hTChL8wRX@6!#61O~FdR9pBTiPC>M_nI@3p67K+gApwth&!L{_d_EcpSH zs{k)`q|s|}JOMGaIf`jSkrq3{ua|6j2wg$avWIr1K&xR|$Syjjoa0?+fGPtQAw z$x741Q#ob*5Bp z`!TgYC^9Sv*?CT>+xfdq3AckFH8m2q7~Ytvl``{>zLj7Qv+P6bnmGQ5D+##{kcu>Wo zJ^GdKjT<_ypDV?vuD$zUfg9&hLV@eO!s&rW0B$->`x?i@;V8;UEdSh<8&R#Qacdy1nl2 z#q_Mvtesp`jf-Aj%>Bjw3AC7Ad}bPLe%FB6C;v-kxO_lH_i2VMH@8pd9Z&V*1nQGK z^qtU>7v-3>A{3Q2y>4Db^TgXd*i_Cq2oc9vksNLld`B`Ro)_iq(?;lDgIC5+UHVhX zH$x`J=@67qI{nz?{*3nW2upd~p8k;U;Ar38J#yZF_OrcbLL$X%MFXK!b~YUqD~9LX zCzip_0n!Z9y#qmru7-g;48~%CA6I~sG)l!vyq_c-3S~1XpPM`b?A%(Ellz#Q_6hj` z&H-&eR{9g~l7$&Jd66@uNm-}sM>FW7NW!$mkIoX(vsSWo!b}2P_vr^9asWEgm`Q0U zflS(QW3FbMZ=!=&q~zJR348MEr5WA$5<6?J)ahi%5d#jxS7&ogPi8S6qBEBPCr#C* z&b9Hz%2n<1j}ZXoKH8_RJ{W;T{_x?e{41x3{WBZ{4JM^ahoxA24(5F6zZ`#MF^(AiksZO-cC2u?Q;Z0Iac`1BDi-ex$L}SF|gNzjH0!Z@=9jhBjsv_+EZKHiH@igaOR zRbt(*11Is{@Go3R)*eJSHfy$+7xrLjdNZt0^+|AE+;5~WpE)_ToFWm+Y&_ls97dYY z4j!%E|C$wmZ0Y3PBkY9dKV*`OH=T}S5;5vFS(y{t-`#x+i~)h=rm}&-FH&Gnf%6O$ z(<|Ia^u2k>*WME6f z4DXN#nfz0Jsa`;+&xg!Ev-|AcCqVr8ZU`SJl_I0EX(yAHS57kna!0iimt8X<9}Toh zOd|d)g!P9ve4m)puq^w*yk5D`vO_nE=mSb+iyb4!(jZXEXrxMV;YD15vjph3KaXty zxNQJmh)EU|RF$D4#NTt{q${CJ&76$|f*0Ws|56>_$)4jNxu76D&_zW?>VwHan7?)n zDXWB&;Vd0*xw)@0kH66FHQq9hH#)kX)Yebtzelz+wAe+Jue%#hc!!u+WP%T zx%}00=!PS5eOk%vT(l2(l9z-Fu~_<}ajGk$pqtR{)N~y=9QD+A`{)bnHKKcZ)7I&X&uIfN%MutupR=C=dP>kcz;v| zmO5g#+tomInzD zljRLPz^IZIQ8CF#G7V+LBFV%a31mSikfzdE&S$EX!$yN;(B69F7)bW+?%_Mz5pO>G z%3G9Sp06B%{MKv~%5T>eG^h6Yr;!Q2b~Ndz!pfDfAitsDdZV1S=A)S^qy>fa>U_mC z88L|d18PXyB3=c<+?VsB=#L-wj!vP`Qy?Bq&SGDSoWQX8eqwKO-)FkREt5$yyAF-M zaMZ;Z|KIn0?sMPgT-Uj--}OC@7HV5oYiMSz)*6|nK6=67 z@WiK4XWqG7PLty74g77TGClVzPb(6F)W(HOV=l;N{J}FS+ePyn(IO!05F22}pRIjb zZlpuomr@I4W$(bPG{CoY3;tvsr26s!=Ro*kYUd17xyL%cSa-E_QJ zfZv%i83ajjis-qzBR<%Iy$8KNBIv5Y$h9fSGIX&G`osU%`06mTKgN{R%lL(X^4vPR z>QhXMDF@35bBmnp)TTHV*nV;-dQ^`Pu6_u!3Kw&)AS5x+$#FV8c?}8CNj~Qy1-^sm z!uh$?yd2Rh&lY&~shLvgyqeB=>0x0b$!_*X>OR;@topegUCnc_Os(zWN zx8jsah?wGMU!Ur8va`#eDZcr!7P=7d_+W%r>Zgx34Kjc@r+8BVlPKSp_kt99Nf3sT z-r1nP;U2WJU-;-%+Vqv34VDPl<2}X*DCx&FB|*{)bDJjmP|8+xi>kSb7tda?T^pf< zi#|rOXHsQpBgU-<z88_K7^v{ZxBB|wLgZT4s8rn32EV#d_n9(Ta=eXs!o+rJ@a^pE z{10BG;VKW0S*d{|z4CZnNsn_79ogWSezoGJV*l-fKcz4|pT^Wye!3rW8`)rH$WaiF z7DiM@9xz2YG@{a%W)bP-kO?sCaE5pZd_>Slgz{(Hm|d?eJjUf^8g?=WH}{+0J1QRe z+)hFW+%(qBPad|#0@`L3Z!A2g@64|Y=^oRzYvBWLC!V$=9in&f1E4^?A>*^y+Kj0z zC?3hB(8_Q_dB8FI<5z}zgQ`Xd@s9{cQfs?0C{zxY*eT-D&51X|Ne3lsM+m>_q&WhAWWEa#9Z0*X#GJR8&y+u zE)P@346%Z;qe&jT=SN4v@p(Obf3;RU0j!~ZiVFl<{yK6 zd8nj5qaP=@HLPLG?eRx@vh+~mx=p7?@`%-nn9A|*!UO6@$?rTMRg^Q#(SC2>l{_6C zoiu}Z(kwz&kQQ&gM8;n@XhI^szHZT!Wnfz=YoqQ?hS2X!k3NIG>yX8L*;eHs2AO1?$O8w) zuM3a#AO>4%ApyBP@x=!O^5E)wkR>2&2?!h59c$v4bAd#PmRse zM<0Xu3j{%sRPre@pw+Y@aIr8$zN;zOd0F59T6C>eUeS3BepHCn>JrRgxD~4NslL4( zH?5(EK!Eto0Phavg9a_TBs}^MgOQ3N6gZZPnj9#FjAbC5%+HZY2i4{Ai)4#zeS+*% zfQFrulyRNsd5jVmkZBzxF(?)cWH#Z5LBE2#Z#n~Ko6wM#N`&bPh>$c$v~m7yW`(`T z7aB(g&8%?KggS#HdkZu^Xbd$xu7+dMM;=qxg_oQ}BZ*saMK}6bEYN!!$X4a$@q;zu zDKXWzS&HLlbKE~y_BmZ&GkZLb3OW7g#RapESB;-uh1`XCyLrVi-R-~r7&CSwI{w^- zA!bsNr>$w`t*)Ga9UZ9%j5#B|Ht7iJ7hX4+Xp%d@J8f05md63c*)={V_QNLt>RlMx z>4_s{FCSV7)SLaDl~7mJFth}|omVN!sHJ4vLfrnE=3}Egf!F*GJUSXd{~D;FhkaVs za{IKcJRvhveuM92=lFPf>t`8Y_?aIy|%Ua*AY~NLVrwMo$&~;Mj08fY9LPPg_ z@2+MXI=-p65CWN_p3K$+yf&WhWmYQYq`CV86BtI=c})D8@FjbzLb~6kbYuG73Dy`b z9KWndPDF&?M%8Y>X~`=(7t9IN_fO}B?QSqgs*l&rNrW6fabnDEmeg{ZS7tO_2l8G{ z6j)eiC1*)&^DCXA*gAiAOG{4Yr8iK41wbS-EKsJdL`6ll3)-OlZoNDD0K0ne8}EtN zb4!H}8#daeEyH9s;;BpXVL-6ReSH3GyPYJB=?7hDAy>6kXI8jrA7FvWnL?rOx(3&Ef zcUe8ysqK^w?KOScx~I1)7026chAt_k#8sAd4X zVoGr%{&?Oi*JmNUOhIJ)t)o7d6Q*8X9E8J_$3ftc*3;8Oyxd9ae8JU?BD=a{tmY0@3fWnGI-t!is(iqw9{)mDb zfu7_O= zCrxDqUOgr7#9PAKsTV+{+98|eZ{|aQ1tl6hmkY!BrKpUUo|zc}5Sq;M-y|PuwD9#} zu~Y#p@Rflf6a)p^KttMsAI_h3hlAvG_v1^Q$ui={1Y7HAlDt{^Bf5Fc?9H|c=guEn zk)THZfV%+-2WbOs|T1ql@tQBC2Q`QD|J!qqyav*4&&-NqhYa;q0f5%l z7QGNS?S6T!8kF!9X6+2olAe>o(X2D?DT1C(eN z%_KZ`9l9vbv(s_9vBDMLrnWWpfS6EQIuy7)|Gb-F;rbaU^j6P^yge0qIxO^wR%kF3 zs#68x5Xpm*#3vI$3AUk4wz%i(R|)(xqE_7uaJP zB(i4U4>9MZgrixT0KC5gqF(=7w@$*^omvJgqv`#f zs&G^{3MoY!Vb|hzii!d&B~3ELwF22|m=k2^)Cxzq2Fgb60+KK71QrgPV9VAD-PYcp z(FT&|>$*Doz|S#IKU_GT$HOkeNI84_FW6;uP)$r!bI#ZzRXrFHK}((r`}w6Cz6@_> z53T~{y0w+n9(39jXN<23`@Ik9Z|;CD@GWU`VJN?V6SPLHEdrDr6(hhKw!#~MasX`= z7>DTrMg$!%He>}R%|Ny`8O9Wf+nw%PqjHGU!AAA7-!~uwiO+Yu99=fX#>`AbctJtR zfXbNN%6mbNy8a|zItDUX#&A8$>-p9JuxVCdh|2R5i2j95Vwn1N`Nm_y||I5ET7 z3m9KO(3@%ueSQAM=&3%l`>bfw9H)WFsOJ49!A6X9=DnA+YoU2ITkt9w#R! z&~5<`IO0*=o)s64S`nxAu2E4*X$3&igmXtaE}ap2ySNS^^<*O#c*vhA1lY5pq9P|Y zOKMNx0%#~>)MgSG7BDSz)E@*|3L+W>1`SL)bT>*#ODheMN*)Pm=>}-&0WK9T1Og$DmwTxWfuQq1AZR&v(Lu?# zh_D0jz38GL6TD`Kq0oPyplBbA50Q*Qa)}0enC*g>?*D6s^Mtq>hapy z0-_|L`AS0a3BBf93wov3u5Wc5oo!v7(91iRaS7|r--=+otuN(l@!Hke(Scsm+TH@f z`(53M@brSp% z3?dr(>e{(c{(k-8e$!D22e;Vq(MXGyYuBBw7twBXFMOXYkfY;E5aIM>Z|hER8>4>l zHD=&opts!gajSF-FXeieY#pa2kytwdEXG#e;Uad8Jp;9kFq_U8uZ&a?Mgs;Zf=UbKwQ@>iamHfiIRjN zo&Rv(e*9amVpy^C33bzgnqHT^I2a=$M>vmEU+4R{91Au^xyjEQE=2+TYl!FjC82|! zKv?^f=T>As^R7^}73j0AM+xmw8k*TXIXSxhIyh=BWeEP^U|`TJjeFONjfs=#;#_2O z?_;Bmz484UeZ*fI`KlwU3Bd`J)BZyi`x`%M6E9TFP{!3|%QMvOQ9hUBuAPyv%VA!K zl8Nt8UxvHS)sYvsU*p>BLl5t{$!YhYzVoK)eHQur^$adH?ic&jq$)3leg8B>PFYx) zmp^y>wN@v9n)O2&tmKLb9m)G>AWHpy)YMd+cBqIoZL4^QRPM$i$zkJ@)7p!geti!e zrpLdtF_rG~bgFFoLAh)VW%N7!?61pB5T`mo<<1GTZgiEYM|YY!j2MiS|ueiIvNH$uIUO{9GNeG zm0_r(eLhz+B!AUm;1_cO$7@csROCofKRP{bM)rD@yV7p=zUpf#ILI16HC=|lsILUn z*u~0keo-6GT}GzCCQM?UD9A=~Zt#vy!)M8HZj`3g(WhU3GaNe{5$PUC*91ra8zXTdr9KOkRlHR3m1% zH=7FA<$H$)630j8N7e_(hYW=sXPP1#1s&$#PBTH)VhtOz2x=k68DV+8M}tqgIestJ zwxEK~kUslAQ^R3goDHsPKa&uPuLs#&nA2R_v+?;1bU_-NIR z9w46KL9z3%?fKCAsx6Ah-H?Ad%l^79jqftmNpJZ|tc%s4ffGK|V~bo$j!)4>?x2uQ zm^hbvtIFc|**su5GpjXYyJH`Rtku8d@EcT11OrH!L=Bzp`yTCqZMu-Q09qOAyB3Oc z(OstQKD6V0QCEU^dySppdr+?-I)#$d=v4ZE_&CK9IYcG)N9zi|CQW$HT;9>=X0l#m z2$6IAW$kQDD8IjFpr4>tR^7$R3HQM9$=ETYi+kQ!MXqZuTfX{f%3ik^ zs3vm`pgd6EJes`qe%*P8&)au#YUui^ee8i{uGMKqz85My!mWrsv+9LMECt` z6dvX_*&7eN5etFoy`o0jjxqv4#9rQVz_L!NoAf)&Vo%vqsdABOo8zL_a0XK{Pk;oX zE&C@oV+K%tXv2#@CNspY|*OU?B zn(-Lf)%0oLzP*t>9`1t@Wc$|5+>I#t)>t-``eEE(Y~*IZe)GY+t)EM2PVr##mcene zo8%gfpwC{ONfYw3qy44!biGBa*i%#eTI6ycBoLg!7O<5F8<{vnIIj4j>BMHH=P4sH z%FK-RYnrG0V3yl249HP7hck*(#wOkf*-)`$f!8y4x%j_=ow0zt*wtW7CD~cRtZ}cM zv8%<=`zXU^%6<~#FOfSv`liW6fRB@pkHeMJLEBUN1Qt+oQqs*&H5rWc^zPLX5ldmcUa@wMgN|>r zvXJ!ZYEePVJXfPpZmxdiOHNLop$JZN9Jv@^au!w_`Zly74D<7z$PaK-bEl7XRD<=G zwSlqSIu7FD@xrYgO{a><5;fUST-@=wlC7;~tI^JCo+$Pg5IO0jq=sWSiDv?5B7C*5+ECXX6)tPT+2<$6kSfpptaE7I3H)5( z$+@^g+e18(X*%7JOsP5=sH^S8@TR7{ef2svy5}D>k*k7qZ*?uL-m8-CP6r*CkeQjQ zbV>txYB>XFEymf`2LJB`1#gGaMP%w2S+%W;v}Ou_C)*tVMvwpK8)8pqfbRR7`8qy1 zC_t%ZI^?~ibTAZp(#ugf`^>90IazXjY%D%QtTn0PR}3vg9G32@&&iqj6kDE!rKtEz z&XuQ9y6{0#MSQggGoov6|w)=lG#z5%Z z=3O<0&WS_|upjQ6ZX|HR3HkW0L3i<|Dc2GV9C#aWDk>E;N=KFT@(Z=C^WWO2%gy9| z%u=~~XHC#t?M}u!{KNrPK2%SB=>N5A^Z!~=J#f*{6)!}R9!>n{_)=5%ang$f;9|)+ zudX`ROD?{kk*Q^d0;dX=uvp$M`2h}Fai^Y5$h;>9iAfcvyZ@kfKd~bd?xm$??fUT_ zDV2xUtIoj?M5I`UiEE(MVW-IRs8uXR(+jhfg!4%5T(WyL+OjX{U zx6S1zxhbvUS8~K$R;Du|F?Vn z9FzUdM-i~RB-3A+6ELiq*J2>8TQH_b^Lo0`;AoTQEvC&mU{jYpca-jnO#mnVjHXef z%XsUt(NmZ35dsYVpNH34#_7z~%(j@L$XY~x+WVP#@&$X1f)o>YcEfvx!{lIFfJ?Z0 z+;5HNQ!TTHu<2P|=8Y`CW$G-S=xz?3r(iF7Z_Xzw7efb5e{9F+=`cU5<$sW-$;>9m zB=~~q`p?ownYw!r5{AoBxydbt$UZ8Mb@F{fr-e_+b+*kK$7xs8+q2Nw%F(L8=oyzC zN^7`pYWJnOM`7crbsM`JWaH5p|Ivl;9@OJ!xCGv-{#JzmeqjGTjIGHxyr2Aai|dnv zlhYcOf;9q|50&b2*Vor%Ma2~Ci6FX~@8Fv9%K0{-MM>qZ+A>IkxwR;>4w)eZDR-?? zEwO^@fE=HUofN3Ajj_9NPaF*DmzHytch$4ZN+L>7pXq?Gqy3gN!%QOth<7a(ZXMn z66!6cA7szmfrQ^n=Z9G&Vtxva2RlkV#!Y9Rj*DY}0ZqK9;$&;SLz*7VpYn9toSW@Y z`E~xBpmcQ?4a`g-M%+HXd_q2rG$lc4g(b0u$H-rgX8^nnw1nwj@y?2GF>x z%`4{&)!>c%Nkam`ke;>|K{F_o%~LCi91jMy>80oGMHUQ7vB}>YTx&ohUjl_o?OyWC zPb2>;SmsLKzh60PQCD28>9T$XHLT3pCryYrrJDzl1x3&5Q_Bqao`VRgX~EBAxiffB zQ>XZcuI*$&wiG62!*Y~y=)iza#_(K8HE*fZw*oW>KB;o{PaR%!%dNo|r>orOsn&Ly zYO&0#YwRx!8r@H!!tcNDlM+V#OFmPRf1Ui~o42+a+Hdh3rgv=|_uan6j-2CAnu+`b zK<|$xOa~64rU7*q|IvH%s#9-iK>%Np2JbjTjMg(2w|T@`_DPS9vEP3gF(t&26Hx0- zeD(>~(yTb^OT-Yl{xdBLE}b+LH=hh1?UvErUgMNU(nC2gk`HkGdiB%OWa0Y#*QiGk zLck*YyXhU!ROLfGbI&G@CQ&LhKwX*3gVRoAR<|Bm}wB@ ztz2h*uvRWOKYr|EnOA$V5ZE|$E0Yr(Pp5MN(U)XDlnbQa_@cUzr;->5rFs& zha?s14As)Me5cqSF2qb<^PG0DjkTXG;WJ0{BYxe)-r@;qprw#SVMX-`x!4laar7~6 z$PR>lPnb@gox^PFF%{TZe>tA(T6G7yP2Qp!O)&PhTs8w(ePY?RUT9rPTf;4S5pyp| zQ~n?jcmTTaQ~JjsD5e0#JZFsCO|*n&vu`NDhlq*;5{Xx|1bCopW>1=45^KnI0GX}2 z&h;zDJ)7ogA+MQYAg29si7rGt-M7sJnv8Fk#z={wLktsMsK368F=mf*)hZl$!Yf0^Z!uc?7`SlOAWV@MM~`nykm^sS#0oE3~M zMQo#cikiIbfU7DQ8QpLN(}5;@N0&YUy{)Fvgtb2|zJ|>qYf7H@PDz*~&{X2R9gb#$ zM94gk{Ed8eSTZGLBQ$z+nc?T#p+&ux`ZRx4PVv_ou2(%Ap0aMhk$Z+W7oAlRs^v!UNjE#-Gm};A`qEGerK|mb;itTXkq%5_n zvboUr=tqxF`ommHGXGrZ@YH*nLD*w*>z-+Ym9cf!^dq0ANWYEhQC>ParOf`w`*~|S z+-}DI2rgH4Dy8snz7Uz!+9)b2XFp94ps^{aZ|?lPhW0({&y_e~=uKjxqJ@m$qg*|< zn05hUIPZm$rT$uig+YWpK4crWoJiA%le~|YVn6}x0G?WK{G1!v%y0P@@lUu!lNF2~ z<#nCA3FWBNioTPm2FCX?VsGCvIHt@U#oyJnzgKd_V{gyQ)_B$&9i43EU;QO_8+c}8 zttK73<37F1&N(qx4<}6g>1QnfB=$PhOX5xD9+}P`4;5Ewppg4BHHv}@1-4~sZZ)4i z*H}hEp_;1SUhHkS{RXJ}T;+%-6obCz!aLK)R6{6|nNvT9_JyW)Uaq2BA17@5cR?1T zeD8pkd#(HKmfL$Cq+%5~yXtc9J;KTK7`vBa2PTj2Zw?4fOyv4qV5hl6+1M}_mMZCG z*8DcFD~7|TUd!BIkAou^BN?b6t87)Y)1;#}UCcz0Bp)qSrd6z|mRZK7lu>r(K9F9T zH>_``pfYv2eh%&5ui-Z^9F{_lVQ*R(Hl>YsgAIxr3=F`=M;IE79;JSRkxWd;tNXxN zRrb8TLQY~JK`-?xG$*;G&ON=fRo$M4oX;@$@pTvtPT(hSjwLqdh#};6cN-Ay({{IR zXYQ!_GyZ}+8LN!>Z5}jm^cl2oim8~QAGuDAbZ<3fqby~@l$iC$D7$VP*IbOJ)L}w8hL|)*r2=2tuWXRMu+Mf&B+OZ8>K4~a*uxVs6?#_l@vt&-8Aq{aoIh4oT%#cnUuD9b8IMw~PuZD1aB+yX8wtR4g1oCnko+ z>=#XK87dY4$lz_N&;_am{0j|YK~S;k^OIsJ63~^e`sRAHFfeVcO^=JK3icd!7t05g zG0{8T-v?zm?G|ox&gPt8Gia!2Ndzpsm$FJPY-rFmk)ucB$!&Sj9*l4I!-~P{e2aQ< z*wL@p53na7xZyM@D=YhItaw{#y$Inelt%Vcx1XbYqnG2EpYO)O-_OsSvfTHhHfum% z#+>SzTfS66Ig&+Y;xIUlW_I_EdJI35jAnjcs>nl~|s0Ac)88rK~n{yIeW8f`nul3*n97%5w8C>wv{XEG7@cZJm?Con%oRCd>6p=!!)Rz zB?dy#Ww3o5?ZhB;(i9HUa%y-JczM$-zWS}u%%$sa6m{m<+da&ZxDi5qC3>=!!VA9x zmX>056}HHRO9_+KOR^JCN-fAh873u(tiOQ1@xcajh88HjkQKua-k(}nD}XrnvmIld z_w(B@*GXLK9~n%moDKB_)x;$)5$xPVx%am3uzV@wT3ropM*ZTJT>Nc!HJbQFfl2L* zfIha}nk-q+`69yMUgs-X;KY(UUO{v zy`}|Ks`&U=8F`0&<9X-L%}4hE2h*?w4r5_fmX!k=2>-;rKL}?wn#?<}H+?bjftNMw z3(n`b433aDf6GrFE%%$R3b1q4rmD2Hv%cBGTTBypojhP^z;8BUA)Q!5V_o>$@byr| ztjkVr)F=yIBE`H61g^S}W|OBfHB$p~T}zs&RSFKK5>&oEvtH}ZG_lPU_q?1>bWC?S z78|(A2Mipd4-e%GXr+l4MW6G@%JqKaWjAL3K?bf(3|I?XdHd_Vhv%sECcV)4!n!%T zIC-?{46SiU)7J-+smBr1tbO!Me%rmo%k?_DZV;}eZl<`LMfsU|)pEts%KV|Q_d8%m zvFb?tbB5TPq^WYhM&R53{?-xd){f(OX#u~fENft2o9e83?ew~8`UtSy&+HnSFRp3_ zYXKwk=Yv<22vg})G->_Y_{MRgO>i?Kn}uxKds4so{Z zrEV+3_s46?YX6sTuNU_tv6f-U zGu!cz%s}*cC)x6jHOpM-G!ngfb;ZP}q8jaFr^4eY``b6$f)lJrn=W z!sBCX-we@DpIjGxU}SgSqI~V=3IIIT)PSvg$JDp2tzpXsYx`AZrFww)kWP+}OSOFp zb4_ip<=9FOJDZwO8uP>y(L0Lla8ju>vqZ(dgv}(YldWQ?Cx70QejzYZE4_WI=Y5-+ zdPyTnZK`EIBn|3p+R!o4uaM^~J*(;fZ4Ili#y}zn zGPpG>wJ48iA1H^qd>8oz0PSma?*T`$wr2y~hn%UT{#W*!BG{D{7aELy$SQ~C`t<|& zxu!mq235E?I*)cc-sCUiKGjCy5sp$;5lB$zoDUs0p^dh~gH$I#$a*$5{E>fzJ z&v37x9Db*)<_l@1w4zj+)s>CqXemLVUx9Qa{v$`1lDURC_e8JcP#4ix7t6*5$~&{< zW41WVknGh%xel5VsmhrKEotei`TaL=M>Y~EcZkfdGcs{7JS$6i(A>X{g zL0uDN5DRL45b~mB(54pLTJSo}Kv6=4x1W4~dmhQp`+Ak^gQO_M*P%z{I&Z!cRvdZ) z;Az+@O6S9S@b=geakIX)5w=MS+`~KBgVY^IZP<67P{n1G2cp9f?yvr7E6x*Ha4fSk z2vvOHaV9c7ndfuux>fj(1^mWcp2!l&W4F2r_V8&tUS@~5_-yUwjIG<@uVj9WDjM@$AG)c^tsXwuav3UbTLR`8bCZw zB5@LFiUnS>ZjiT@udt;5PbY*i#($j5_+j_vN*U8vOdufZ&!ATc5rzgsjDH*{*AZ)^ zDLZJRALzqWAxhjIDvqum)eQaLyr{Hbu)v9Zg> zjpvqI_Z2lMhzZ~iOakRFyz=hW@q4cTWd$>QFO4;Nmlcp2Jx_krV4SzMlYkyu2X8mk zV?R*CK$ofe!$&D22oZ0>z}^OnLdMB?b+cac`r}%^n&M}6cJsPE2OaCewZUDtALjCN z)KWlD5Aab`(gd?`Fix@`T6f}4+W|(R^zWNez3eE$`(ztYFFa`l1UWbd&1~?e(d4_g zE!v>?y9-`!m#e)41hfJIMFny&XP5YzFbgCELhN&U7a*{Qav12OTf3@{WiLq5?hZ?y`FLhlw?< zGa4^n2PE6FNf{}`Trs5qx15&Z;ria*Ven>HQKm2AX~qtl;Uw6IC}^86(YJ&aHziie@6qz zWDv1MLLGl@gg*lDmVB{xVU}c-Wns=s<8tjX&3^}7K;ZrL(!0LP$JZb=cu{f)^5dT^ zpZpJwpsi<_S(O>T3mfDUiHM0>?`m03UO?wY+VygVzMhCim^M1w?CMP#}D>)`+c6B>wLz71qKfF zo1gTkRYq-|{CSOtJS~&d(elwMtgBv9l^Qt3ppYati>ca7`Ec7t{ut@j$Yn_RKYj4I63IxQ~3d>Y|cG(v;d5+ zn$IIa4x@ohToUM_`~VjbY(-}a6i4rW{A1)^9SuV+DBg@q?AuQqlc!>+0dMseh|JRf z-5%<~5KxUpcYUC2MNR^+9*pBp>ErLo`G;fJQpz#qumVMR(T_CyS_9qWl)!gf-Ghp_)3-2CLn?6?PM<5h<@I2#-w0ju}ah`Yj8PKr2%Jj#d zLSSH`#6>e!JU;1Ti39Yc__d$d$0F|_ScC5m*h(23?a7{{Y%dH9wegr#pf=7^D8D1A zwbm4}wA+KQ;IjVnNtS+sSgt4BE4;s?NjOesV#0ZXa-OP{ACMy?z1sx4EjmU@7PP~F zKxK{^B2R`Em9j+oHv@!|VC>tHWBMirpfTtjl~CH88wUQ9q|a1YiAlV>(Y$09aDB`^ zDtJxXz`4!k9NI^@HE}9Cgla|5<4*m!QyZ3PT%V)9CHhGJw=kg?h}k9L==$_x`F8R} z?}q_k?Nompz<4%?msLVY0frWlu*iKmSGIsdMmD$F4X>Kp%<;o;v38g&(yE+|&nVYW z9qB4F%3u<@!PV{2=b#O~cgKppg3jIj=++5?5C(DekwsgD*iRi{xdJgSL&Kb}uj;>b^3%;uc2WRr*mdVz6l&`pc z0aT8-xEP|a`BF*bD2%zLhK+;cBxb(s?94cn@^HTe&`cr3J4Ba=%x4=X(?4j=>)LOG z)6>hm{qEo2+8E|2?{-McnXZ}`C-Z##@3etfv(kMLW>cOvr0Rzc1!82cK%PZ4F^oTu zMN^xdc;oWZ$;lYt=-k{MM>5C96_hE%wzi*ra9-@d_!f$BLb5}2$~Kdy7__3HlV57^ z%*S)%d$TcDVo{N%eo+Y4#Q4Tel@~25Bp@j6L6gVC{#3J%dP_=ZHv@A8_QUayL}w!P z7K+s!@0ns^R&J2Ps1S`uG?HzhS4^Q0DPp+|i*ESPK-1&WMeYoh>$6}_AvMNF{Yx>- z`FtlzD+5vpX+4Q}qosfmrkG*HlP2DYtm?M!l<(5g<=S$bo=cj*@>KTSC>l373eYK7 z&~YY-clI!BeX%}gn07u-V~VDMU{$KqW0L)D_VYR&v;mh@LdlV;>i=`rkPm6g$-vNl zNQ$5S7@mRLK7o9H%z>$Xez>54BSgaVmXVw)uqgj9J@K7Tm0UCK^ef zgb7@tpZ6rig*BlZOejtV7wV}v3Q%7mFYdjEr_P|B-lFD^X-lmp4ue6Yl z)E{<jOA-?E9zz`$M@H?vZx{_aaQtA0Atfr*2$mb)55gjK1VU;0&2vwL$Piu8fxRO1 zJ;ZXIpKWQ=rZ}SW*9RHu4EhpNY#&bCLtSX@p~;7cD=4>()E^)T!Ec4FWyn{GfH*s> z)W?jUAYUH_#0g)$BE!^C=jnNQ4}u>qUfCp??ecW>UoSi|>kwvAbT)~sC+pC_c86@4 zb(tHDh}~#MAvWal9o|a7xaef7|P-5@Y0 zh!{kZ^TdEn-;;)@V+5G1-{A^SpcM3HmZ49QdzW(HbA7cJEei@X#px*>zatK>97&@n zDl(v^(ikwb8{bPrQSmmlzAVmx^mu_0Irr{YvR zK`*WDLP)so-(eGGoXS^CAx4MX$yKGV2w@B1UnwdHx5bU|gbBw`#CCjtX%c^5+z{L- z_5X2LZ!Z8YFYFTL#&&@9s;R-nsP-sl=O9qd&Oq!~$r$@SFB#P=uGW~my+gv5oJ?jH zAWnkx8ouSd&G+urXJuuHc%4zqfBLGMTgY2GwpKwfN$}}t__so(Ng?I%xbAN|TvU(a ze@bY;SVF1`5?5#{U7qLk_1U&)4TRA^@WF+MU%&LLWN2yGAFH}ljYiNt<-58%bSX>Z zNB3{z|F$@KGXlB|R&XjVf^J)*mac@Mdd{N=z<|Y!Ys;QY+K793+ zhk={hac{2v*RNl(p?Kt6ue>#0K%sl}>*t)hz#1ejgX4>QF4e7(G`OY0V{Mr0qB8r1E92LT2;EiJ9f`k+yxyZy>i zg;^KL;`n-oA2RC2-dzlI0s;aZ6CXEvVjg*oYyLmKE6fl>Uo#642B+7HD5MGM)Z}9{ za+TW;=j)nIFSc919_Wca{&XZfA|gVoSX+o`ug|E#bu&_M;qm5#j!Bw;{S3~d)bH<> z+EY_gJr;fHzJFI$S5{Wm)}9QwgUv`}psx?~b9*o0HG1qDS6L2#-g+WVrxc&w>i?FT zn~S34aT)md3uVr9f6CVH%N$98w%GdXB_t*3cJ(TPB9Crdg)iBOv=e!vB3 zv4Q2CS&Pfa$ozZypT9F*Z1zzRIUP4}gu4xioC_cKgOyn~z4#Utq9vM}7oR2O{`Z4$ zI_MSwwZIDCwN=ucIw>FeUc5fIuCA^Q3=Hh2y^o3<)%+-tDtOQ03;9N%fp?xiHvv zAVEt|?5&{mnW6DzL1Ce_y*=VE+K&bq-Beh(30BG~{ll7VIh@sceK73{tJ0RsTR9D@ zfn*?oL0&eBrl+s3ucwC>%&SSoKa+}D9TZwm6$JU3(fkZwo2qG6rDXFEcfv5Dt;heY z>s%-qcMI~g{Csz|&hykpUhJZc2zd}HhJnH)_kO!Mn!7z!p7GS8SFrgol1VmdXTH&6 zccum`;wRzTxguR0pPZb$&!G)Q3dU>bG4H0B$OZosh}SEC0}ti;e8)qvPZ2 zy0(M7vzEW6_B^$P2=1ww8L02gMYZqtH8qkWG7TriW{{`|tP?A6?!l#bkc|8PzDfW8 kdfn{*d^i8UN<@lL;2Yy}Dn=K8{{n!>ODn%DlQa$dZ(W}}oB#j- diff --git a/core/@Catalog/html/cookbook_07.png b/core/@Catalog/html/cookbook_07.png deleted file mode 100644 index 2ea13e8cb3d0678729824592773e88479a10cd57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48301 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 diff --git a/core/@Catalog/html/cookbook_08.png b/core/@Catalog/html/cookbook_08.png deleted file mode 100644 index 79d41beea30e2f65d22a62cf72bd7c1cfbd37cf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11238 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�OtQA;H3>LdNi!S!p*9%t``5IyDnItOF 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 Y{Q{&a65E2{fh`0oqx7=$g`w~N0LO_c3jhEB diff --git a/core/@Catalog/html/cookbook_09.png b/core/@Catalog/html/cookbook_09.png deleted file mode 100644 index 166ddc774c993b96cbb143eaa88174297c8cad95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33202 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 HKlA%vThv#z diff --git a/core/@Catalog/html/cookbook_10.png b/core/@Catalog/html/cookbook_10.png deleted file mode 100644 index 772bbac36aea9cdd82d3d87a5a26725964bf50ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30373 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 diff --git a/core/@Catalog/html/cookbook_11.png b/core/@Catalog/html/cookbook_11.png deleted file mode 100644 index 8b3493cfff9dd5529dc873ceadf02940fffe0d29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26656 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 diff --git a/core/@Catalog/html/cookbook_12.png b/core/@Catalog/html/cookbook_12.png deleted file mode 100644 index d17a5a5f2cdb99ac0e83ffca1b5e687e392f1ee1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23045 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 aY;w33cg@K@;YAQvNo$xtGb%ho(*Fgpvafdl diff --git a/core/@Catalog/list_waveform_metrics.m b/core/@Catalog/list_waveform_metrics.m new file mode 100644 index 0000000..c0b55fa --- /dev/null +++ b/core/@Catalog/list_waveform_metrics.m @@ -0,0 +1,71 @@ +function list_waveform_metrics(cobj) + wcell = cobj.waveforms; + numevents = numel(wcell); + if numevents == 0 + return + end + + % get a complete list of channel tags + ctags = []; + numctags = 0; + mintime = Inf; + maxtime = -Inf; + for eventnum=1:numevents + w = wcell{eventnum}; + [snum enum]=gettimerange(w); + if min(snum)maxtime + maxtime = max(enum); + end + ctags = unique([ctags; get(w,'ChannelTag')]); + end + timediff = maxtime-mintime; + + % titles + disp('Maximum Amplitude____________________') + fprintf('\nEvent\tdd-mmm-yyyy hh:mm:ss\tJulianDay'); + for ctagnum = 1:numel(ctags) + fprintf('\t%s', ctags(ctagnum).string()); + end + fprintf('\n.....\t....................\t.........'); + for ctagnum = 1:numel(ctags) + if strfind(get(ctags(ctagnum),'channel'),'D') + fprintf('\t(Pascals)'); + else + fprintf('\t(nm/sec)'); + end + end + fprintf('\n'); + + + % now go through different metrics of interest, and list for each + % event for each channel + for eventnum=1:numevents + fprintf('%2d:', eventnum); + w = wcell{eventnum}; + wctags = get(w,'ChannelTag'); + a = []; + t = Inf; + for ctagnum = 1:numel(ctags) + a(ctagnum) = -1; + thisctag = ctags(ctagnum); + + idx = find(ismember(wctags.string(), thisctag.string())); + if idx + try + m = get(w(idx),'metrics'); + a(ctagnum) = max(abs([m.minAmp m.maxAmp])); + t = min([m.minTime m.maxTime t]); + catch + disp('no metrics') + end + end + end + fprintf('\t%s\t%7d', datestr(t),datenum2julday(t)); + for ctagnum = 1:numel(ctags) + fprintf('\t%15.1f', a(ctagnum)); + end + fprintf('\n'); + end \ No newline at end of file diff --git a/core/@Catalog/crap.txt b/core/@Catalog/obsolete/crap.txt similarity index 100% rename from core/@Catalog/crap.txt rename to core/@Catalog/obsolete/crap.txt diff --git a/core/@Catalog/plot_waveform_metrics.m b/core/@Catalog/plot_waveform_metrics.m new file mode 100644 index 0000000..44e1883 --- /dev/null +++ b/core/@Catalog/plot_waveform_metrics.m @@ -0,0 +1,48 @@ +function plot_waveform_metrics(cobj) + wcell = cobj.waveforms; + numevents = numel(wcell); + if numevents == 0 + return + end + + % get a complete list of channel tags + ctags = []; + numctags = 0; + mintime = Inf; + maxtime = -Inf; + for eventnum=1:numevents + w = wcell{eventnum}; + [snum enum]=gettimerange(w); + if min(snum)maxtime + maxtime = max(enum); + end + ctags = unique([ctags; get(w,'ChannelTag')]); + end + timediff = maxtime-mintime; + + % 1 subplot per channel tag + figure + for eventnum=1:numevents + w = wcell{eventnum}; + for wavnum=1:numel(w) + ctag = get(w(wavnum),'ChannelTag'); + idx = find(ismember(ctags.string(), ctag.string())); + m = get(w(wavnum),'metrics'); + + hold on + subplot(numel(ctags), 1, idx) + + plot(m.maxTime, max(abs([m.maxAmp m.minAmp])), 'b*'); + + u = get(w(wavnum),'units'); + ylabel(sprintf('%s\n%s',ctag.string(),u)); + set(gca,'XLim',[mintime-timediff/10 maxtime+timediff/10]); + datetick('x','keeplimits') + end + end +end + + \ No newline at end of file diff --git a/core/@Catalog/retrieve.m b/core/@Catalog/retrieve.m new file mode 100644 index 0000000..550fcf1 --- /dev/null +++ b/core/@Catalog/retrieve.m @@ -0,0 +1,91 @@ +function self = retrieve(dataformat, varargin) +%CATALOG.RETRIEVE Read seismic events from common file formats & data sources. +% retrieve can read events from many different earthquake catalog file +% formats (e.g. Seisan, Antelope) and data sources (e.g. IRIS DMC) into a +% GISMO Catalog object. +% +% Usage: +% catalogObject = CATALOG.RETRIEVE(dataformat, 'param1', _value1_, ... +% 'paramN', _valueN_) +% +% dataformat may be: +% +% * 'iris' (for IRIS DMC, using irisFetch.m), +% * 'antelope' (for a CSS3.0 Antelope/Datascope database) +% * 'seisan' (for a Seisan database with a REA/YYYY/MM/ directory structure) +% * 'zmap' (converts a Zmap data strcture to a Catalog object) +% +% The name-value parameter pairs supported are the same as those supported +% by irisFetch.Events(). Currently these are: +% +% startTime +% endTime +% eventId +% fetchLimit +% magnitudeType +% minimumLongitude +% maximumLongitude +% minimumLatitude +% maximumLatitude +% minimumMagnitude +% maximumMagnitude +% minimumDepth +% maximumDepth +% +% And the two convenience parameters: +% +% radialcoordinates = [ centerLatitude, centerLongitude, maximumRadius ] +% +% boxcoordinates = [ minimumLatitude maximumLatitude minimumLongitude maximumLongitude ] +% +% For examples, see Catalog_cookbook. Also available at: +% https://geoscience-community-codes.github.io/GISMO/tutorials/html/Catalog_cookbook.html +% +% +% See also CATALOG, IRISFETCH, CATALOG_COOKBOOK + +% Author: Glenn Thompson (glennthompson1971@gmail.com) + +%% To do: +% Implement name-value parameter pairs for all methods +% Test the Antelope method still works after factoring out db_load_origins +% Test the Seisan method more +% Add in support for 'get_arrivals' + + debug.printfunctionstack('>') + + switch lower(dataformat) + case 'iris' + if exist('irisFetch.m','file') + ev = irisFetch.Events(varargin{:}); + self = Catalog.read_catalog.iris(ev); + else + warning('Cannot find irisFetch.m') + end + case {'css3.0','antelope', 'datascope'} + if admin.antelope_exists() + self = Catalog.read_catalog.antelope(varargin{:}); + else + warning('Sorry, cannot read event Catalog from Antelope database as Antelope toolbox for MATLAB not found') + self = Catalog(); + end + case 'seisan' + self = Catalog.read_catalog.seisan(varargin{:}); + case 'aef' + self = Catalog.read_catalog.aef(varargin{:}); + case 'sru' + self = Catalog.read_catalog.sru(varargin{:}); + case 'vdap' + self = Catalog.read_catalog.vdap(varargin{:}); + case 'zmap' + self = Catalog.read_catalog.zmap(varargin{:}); + otherwise + self = NaN; + fprintf('format %s unknown\n\n',data_source); + end + if isempty(self) + self=Catalog(); + end + + debug.printfunctionstack('<') +end \ No newline at end of file diff --git a/core/@Catalog/write.m b/core/@Catalog/write.m index d80b345..dbe97e5 100644 --- a/core/@Catalog/write.m +++ b/core/@Catalog/write.m @@ -1,4 +1,4 @@ -function write(catalogObject, outformat, outpath, schema) +function write(catalogObject, outformat, outpath, varargin) %CATALOG.WRITE Write an Catalog object to disk % % catalogObject.write('antelope', 'mydb', 'css3.0') writes the @@ -28,15 +28,51 @@ function write(catalogObject, outformat, outpath, schema) end antelope.dbcreate(dbpath, schema); - system(sprintf('touch %s.event',dbpath)); - system(sprintf('touch %s.origin',dbpath)); + % remove the following tables if they exist and mode is + % "overwrite" + if nargin==4 & strcmp(varargin{1},'overwrite') + tableNames = {'arrival';'assoc';'netmag';'stamag';'origin';'event';'wfmeas'}; + for tablenum = 1 : numel(tableNames) + thisTable = sprintf('%s.%s',dbpath,tableNames{tablenum}); + if exist(thisTable, 'file') + if nargin>=4 + if strcmp(varargin{1},'overwrite') + fprintf('Overwrite mode: Removing %s\n',thisTable); + delete(thisTable); + else + % for 'append' mode, nothing to do + fprintf('Append mode: You will append to %s\n',thisTable); + end + else + % nothing specified, so force user to + % choose, as we never want to mess up + % existing tables or delete them without + % user input + choice = input(sprintf('delete %s (y/n)',thisTable),'s'); + if lower(choice(1)=='y') + fprintf('Overwrite mode: Removing %s\n',thisTable); + delete(thisTable); + end + end + end + end + end +% system(sprintf('touch %s.event',dbpath)); +% system(sprintf('touch %s.origin',dbpath)); + + + disp('Writing new rows...'); % open db db = dbopen(dbpath, 'r+'); dbe = dblookup_table(db,'event'); dbo = dblookup_table(db,'origin'); dbn = dblookup_table(db,'netmag'); - + dbas = dblookup_table(db,'assoc'); + dbar = dblookup_table(db,'arrival'); + dbs = dblookup_table(db,'stamag'); + dbwm = dblookup_table(db,'wfmeas'); + % write event to event and origin tables if numel(catalogObject.otime)>0 for eventidx = 1:numel(catalogObject.otime) @@ -82,18 +118,191 @@ function write(catalogObject, outformat, outpath, schema) % Add new record to netmag table & write to % it - dbn.record = dbaddnull(dbn); - dbputv(dbn, 'magid', netmag.magid, ... - 'orid', origin.orid, ... - 'evid', event.evid, ... - 'magtype', netmag.magtype, ... - 'magnitude', netmag.magnitude ); + if isnumeric(netmag.magnitude) & netmag.magnitude > -999 + dbn.record = dbaddnull(dbn); + dbputv(dbn, 'magid', netmag.magid, ... + 'orid', origin.orid, ... + 'evid', event.evid, ... + 'magtype', netmag.magtype, ... + 'magnitude', netmag.magnitude ); + end + + % Add wfmeas rows for each event waveform metric + if numel(catalogObject.waveforms) >= eventidx + ew = catalogObject.waveforms{eventidx}; + N_ew = numel(ew); + for ewavnum=1:N_ew + thisEW = ew(ewavnum); + waveform2wfmeas(dbwm, thisEW); + end + end + + % Add new record to arrival table & write to + % it + if numel(catalogObject.arrivals) >= eventidx + thisA = catalogObject.arrivals{eventidx}; + N = numel(thisA.time); + + % check if we have 1 waveform per arrival + w = thisA.waveforms; + Nw = numel(w); + bool_add_waveform_metrics = (N == Nw); + + if N>0 + for arrnum = 1:N + ctag = ChannelTag(thisA.channelinfo{arrnum}); + asta = ctag.station; + atime = datenum2epoch(thisA.time(arrnum)); + aarid = dbnextid(dbar,'arid'); + achan = ctag.channel; + aiphase = thisA.iphase{arrnum}; + aamp = thisA.amp(arrnum); + %aper = thisA.per(arrnum); + %asnr = thisA.snr(arrnum); + + % add arrival row + dbar.record = dbaddnull(dbar); + dbputv(dbar, 'sta', asta, ... + 'time', atime, ... + 'arid', aarid, ... + 'chan', achan, ... + 'iphase', aiphase, ... + 'amp', aamp); + %'per', aper, ... + %'snr', asnr, ... + + % add assoc row + dbas.record = dbaddnull(dbas); + dbputv(dbas, 'arid', aarid, ... + 'orid', origin.orid, ... + 'sta', asta, ... + 'phase', aiphase); + + + if bool_add_waveform_metrics + % add wfmeas row for each waveform metric + thisW = w(arrnum); + waveform2wfmeas(dbwm, thisW, aarid, asta, achan); + end + end + end + end end end dbclose(db); + disp('(Complete)'); end otherwise, warning('format not supported yet') end % end switch end % function + + +function waveform2wfmeas(dbwm, thisW, aarid, asta, achan) + wsta = get(thisW, 'station'); + wchan = get(thisW, 'channel'); + [wsnum wenum] = gettimerange(thisW); + wstartepoch = datenum2epoch(wsnum); + wendepoch = datenum2epoch(wenum); + u = get(thisW,'units'); +% try + m = get(thisW, 'metrics'); % will error if metrics not defined + + % add minTime maxTime minAmp maxAmp + dbwm.record = dbaddnull(dbwm); + dbputv(dbwm, 'sta', wsta, ... + 'chan', wchan, ... + 'meastype', 'amplitude', ... + 'time', datenum2epoch(m.minTime), ... + 'endtime', datenum2epoch(m.maxTime), ... + 'val1', m.minAmp, ... + 'val2', m.maxAmp, ... + 'units1', u, ... + 'units2', u); + if exist('aarid', 'var') + if strcmp(wsta, asta) & strcmp(wchan, achan) + dbputv(dbwm, 'arid', aarid); + end + end + + % add stdev + dbwm.record = dbaddnull(dbwm); + dbputv(dbwm, 'sta', wsta, ... + 'chan', wchan, ... + 'meastype', 'stdev', ... + 'time', wstartepoch, ... + 'endtime', wendepoch, ... + 'val1', m.stdev, ... + 'units1', u); + if exist('aarid', 'var') + if strcmp(wsta, asta) & strcmp(wchan, achan) + dbputv(dbwm, 'arid', aarid); + end + end + + % add energy + e = m.energy; + eu = u; + eu(eu==' ') = ''; % remove whitespace + if length(eu)>=4 & strcmp(eu(1:4), 'nm/s') + eu = 'nm^2/s'; + end + if strcmp(eu(1:2), 'Pa') + eu = 'Pa^2.s'; + end + if strfind(eu, 'nm') + if e >= 1e12 + e = e / 1e6; + eu = strrep(eu, 'nm', 'um'); + end + end + dbwm.record = dbaddnull(dbwm); + dbputv(dbwm, 'sta', wsta, ... + 'chan', wchan, ... + 'meastype', 'energy', ... + 'time', wstartepoch, ... + 'endtime', wendepoch, ... + 'val1', e, ... + 'units1', eu); + if exist('aarid', 'var') + if strcmp(wsta, asta) & strcmp(wchan, achan) + dbputv(dbwm, 'arid', aarid); + end + end + +% %names = fieldnames(m); +% names = {'stdev';'energy'}; +% for namecount = 1:numel(names) +% thisname = names{namecount}; +% +% % write a wfmeas row for each metric in +% % this waveform +% dbwm.record = dbaddnull(dbwm); +% val1 = getfield(m, thisname); +% if strfind(thisname, 'Time') +% val1=datenum2epoch(val1); +% end +% +% dbputv(dbwm, 'sta', wsta, ... +% 'chan', wchan, ... +% 'meastype', thisname, ... +% 'time', wstartepoch, ... +% 'endtime', wendepoch, ... +% 'val1', val1 ); +% %'filter', filterdesc, ... +% %'tmeas', atime, ... +% %'twin', atwin, ... +% %'val2', , ... +% %'units1', , ... +% %'units2', , ... +% if exist('aarid', 'var') +% if strcmp(wsta, asta) & strcmp(wchan, achan) +% dbputv(dbwm, 'arid', aarid); +% end +% end +% end +% catch +% disp('No metrics for this waveform object') +% end +end diff --git a/core/@Catalog/write_waveform_metrics_to_antelope.m b/core/@Catalog/write_waveform_metrics_to_antelope.m new file mode 100644 index 0000000..283ca1d --- /dev/null +++ b/core/@Catalog/write_waveform_metrics_to_antelope.m @@ -0,0 +1,98 @@ +function write_waveform_metrics_to_antelope( cobj, dbpath1, dbpath2 ) +%WRITE_METRICS_TO_ANTELOPE Write metrics to a CSS3.0 database +% Detailed explanation goes here + +% Pseudocode: +% 1. Make a copy of the database dbpath1 to dbpath2 +% 2. For each arrival without an amp in the arrival table, add the amp & per value. +% 3. For each arrival with an amp in the arrival table, compare the amp & +% per values. Are they consistent? +% 4. Create an event row & origin row for each event. +% 5. Associate arrivals in each event to the origin. +% 6. For each waveform metric for each arrival waveform, add a wfmeas +% row. +% 7. For each waveform metric for each event waveform, add a wfmeas +% row. +% Other related code: +% - a. a function that reads an Antelope database into a Catalog object +% including arrival, assoc, wfmeas - recreating the whole saved Catalog +% object. +% - b. a function to plot a Catalog object. this would call a function to +% plot arrival objects, and another function to plot metrics of waveform objects. + +% Pseudocode: +% 1. Make a copy of the database dbpath1 to dbpath2 + cmdstr = sprintf('dbcp %s %s', dbpath1, dbpath2); + result = eval(cmdstr); + +% 2. For each arrival without an amp in the arrival table, add the amp & per value. + cobj.arrivals.write(dbpath2); + +% 3. For each arrival with an amp in the arrival table, compare the amp & +% per values. Are they consistent? + % Probably easier to do this when computing arrival amplitudes! + +% 4. Create an event row & origin row for each event. + cobj.write('antelope', dbpath2); % this also does netmag and stamag + +% 5. Associate arrivals in each event to the origin. + % add this to cobj.write() + +% 6. For each waveform metric for each arrival waveform, add a wfmeas +% row. + cobj.arrivals. +% 7. For each waveform metric for each event waveform, add a wfmeas +% row. +% Other related code: +% - a. a function that reads an Antelope database into a Catalog object +% including arrival, assoc, wfmeas - recreating the whole saved Catalog +% object. +% - b. a function to plot a Catalog object. this would call a function to +% plot arrival objects, and another function to plot metrics of waveform objects. + + wcell = cobj.waveforms; + numevents = numel(wcell); + if numevents == 0 + return + end + + % get a complete list of channel tags + ctags = []; + numctags = 0; + mintime = Inf; + maxtime = -Inf; + for eventnum=1:numevents + w = wcell{eventnum}; + [snum enum]=gettimerange(w); + if min(snum)maxtime + maxtime = max(enum); + end + ctags = unique([ctags; get(w,'ChannelTag')]); + end + timediff = maxtime-mintime; + + % 1 subplot per channel tag + figure + for eventnum=1:numevents + w = wcell{eventnum}; + for wavnum=1:numel(w) + ctag = get(w(wavnum),'ChannelTag'); + idx = find(ismember(ctags.string(), ctag.string())); + m = get(w(wavnum),'metrics'); + + hold on + subplot(numel(ctags), 1, idx) + + plot(m.maxTime, max(abs([m.maxAmp m.minAmp])), 'b*'); + + u = get(w(wavnum),'units'); + ylabel(sprintf('%s\n%s',ctag.string(),u)); + set(gca,'XLim',[mintime-timediff/10 maxtime+timediff/10]); + datetick('x','keeplimits') + end + end +end + diff --git a/core/@EventRate/EventRate.m b/core/@EventRate/EventRate.m index 6330670..f26d026 100755 --- a/core/@EventRate/EventRate.m +++ b/core/@EventRate/EventRate.m @@ -168,821 +168,15 @@ function total_mag = get.total_mag(erobj) total_mag = magnitude.eng2mag(sum(erobj.energy)); end - - function plotold(obj, varargin) - %EventRate/plot - % Plot metrics of an EventRate object - % - % The following metrics are available: - % - % counts % number of events in each bin - % mean_rate % number of events per hour in each bin - % median_rate % reciprocal of the median time interval between events. Represented as an hourly rate. - % energy % total sum of energy in each bin - % cum_mag % total sum of energy in each bin, represented as a magnitude. - % mean_mag % mean magnitude of events in each bin - % median_mag % median magnitude of events in each bin - % min_mag % smallest magnitude in each bin - % - % erobj.plot() or plot(erobj) will produce a plot of event - % counts per unit time. The time unit is given by erobj.binsize - % days. - % - % erobj.plot('metric', list_of_metrics) will plot each metric - % requested in list_of_metrics in a separate panel. - % list_of_metrics should be a cell array of valid metric - % strings. However, it may be a string if only one metric is - % requested. - % - % erobj.plot('metric', 'counts') is equivalent to - % erobj.plot() and erobj.plot('metric', {'counts'}) - % - % erobj.plot('metric', 'mean_rate') is similar, but the - % mean_rate is always events per hour, regardless of the - % binsize. So if erobj.binsize = 1 (day), counts will be - % exactly 24 * mean_rate. - % - % erobj.plot('metric', {'counts';'cum_mag'}) will plot counts - % in one panel and the cumulative magnitude per bin in - % another panel. - % - % In general any number of metrics can be given in - % list_of_metrics. - % - % If erobj is an array of eventrate structures (e.g. one per - % etype), each is plotted on a separate figure. However the - % plotmode variable overrides this: - % - % plot(eventrate_vector, 'plotmode', 'panels') will plot them - % in separate panels on the same figure - % - % plot(eventrate_vector, 'plotmode', 'single') will plot them - % in a single panel - - p = inputParser; - p.addParamValue('metric', {'counts'}, @(c) iscell(c)||isstr(c)); - p.addParamValue('plotmode', 'figures', @isstr); - p.addParamValue('smooth', 1, @isnumeric); - p.parse(varargin{:}); - metric = p.Results.metric; - plotmode = p.Results.plotmode; - smoothbins = p.Results.smooth; % NOT DOING ANYTHING WITH THIS YET BUT COULD SMOOTH COUNTS OVER SEVERAL BINS - if ~iscell(metric) - metric = {metric}; - end - numMetrics = numel(metric); - colors = {[0.7 0.7 0] [0 0 1]}; - - % plot each etype on a separate figure, each metric as a - % subplot - - if strcmp(plotmode, 'figures') || length(obj)==1 - - for c = 1 : numel(obj) - binsize_str = Catalog.binning.binsizelabel(obj(c).binsize); - numsubplots = length(metric); - %figure(get(gcf,'Number')+1) - figure - set(gcf,'Color', [1 1 1]); - for cc = 1: numsubplots % number of metrics to plot - %eval( sprintf('data = obj(c).%s;',metric{cc} ) ); - data = obj(c).(metric{cc}); - if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) - % replace -Inf values as they mess up plots - ydata = data; % ydata is the data we will plot, but we keep data for cumulative energy etc. - if smoothbins > 1 - ydata = smooth(ydata, smoothbins); - end -% ydata(isinf(data))=NaN; -% mindata = nanmin(ydata); -% ydata(isnan(ydata))=mindata; % we replace NaNs and Infs in data with nanmin(data) in ydata - if (obj(c).binsize == obj(c).stepsize) & ( strcmp(metric{cc}, 'counts') | strcmp(metric{cc}, 'energy') | strcmp(metric{cc}, 'cum_mag') ) - if strfind(metric{cc}, 'mag') - cumdata = magnitude.eng2mag(cumsum(magnitude.mag2eng(data))); - subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, ydata, obj(c).time, cumdata, @stairs, @plot ); - set(h1, 'Color', colors{1}); - else - subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, data, obj(c).time + obj(c).binsize/2, cumsum(data), @bar, @stairs ); - %subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, ydata, obj(c).time, cumsum(data), @stairs, @plot ); - set(h1, 'FaceColor', colors{1}, 'EdgeColor', colors{1}) - set(h1, 'BarWidth', 1); - set(h1, 'LineWidth', 0.1); - end - datetick(ax(1), 'x','keeplimits'); - ylabel(ax(1), metric2label(metric{cc}, obj(c).binsize), 'Color', colors{1}, 'FontSize',12) - datetick(ax(2), 'x','keeplimits'); - ylabel(ax(2),'Cumulative', 'Color', colors{2}, 'FontSize',12) - %set(h1, 'Color', colors{1}); - %set(h2, 'Color', colors{2}, 'LineWidth', 2); - ylims = get(ax(1), 'YLim'); - set(ax(1), 'YColor', colors{1}, 'YLim', [0 ylims(2)]); - ylims = get(ax(2), 'YLim'); - set(ax(2), 'YColor', colors{2}, 'YLim', [0 ylims(2)]); - linkaxes(ax, 'x'); - else - - if strfind(metric{cc}, 'mag') - subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1}); - else - subplot(numsubplots,1,cc), bar(obj(c).time, data, 1, 'FaceColor', colors{1}, 'EdgeColor', colors{1}, 'BarWidth', 1, 'LineWidth', 0.1); - %subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1}); - end - datetick('x','keeplimits'); - ylabel(metric2label(metric{cc}, obj(c).binsize), 'FontSize',12) - end - end -% axis tight; -% a=axis; -% axis([a(1) a(2) 0 a(4)]) - end - end - - %% FROM HERE ON THE PLOTMODES HAVE NOT BEEN UPDATED - elseif strcmp(plotmode, 'panels') - % Each metric on a separate figure, showing all requested - % subclasses on separate panels - for c = 1 : numel(metric) - %figure(get(gcf,'Number')+c) - figure - numsubplots = numel(obj); - - %for cc = numsubplots: -1: 1 - for cc = 1:numsubplots - ccc = numsubplots-cc+1; - if strcmp(metric{c},'energy') - %data = cumsum(magnitude.mag2eng(obj(cc).cum_mag)); - data = (magnitude.mag2eng(obj(ccc).cum_mag)); - - else - % eval( sprintf('data = obj(cc).%s;',metric{c} ) ); - data = obj(ccc).(metric{c}); - end - if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) - if smoothbins > 1 - data = smooth(data, smoothbins); - end - % where to position the axes - pos(1) = 0.1; - pos(2) = 0.1+(0.95-0.1)*(cc-1)/numsubplots; - pos(3) = 0.8; - pos(4) = (0.8*(0.95-0.1)/numsubplots); - axes('position', pos); - end - - % plot - if numel(data)>0 - bar( obj(ccc).time, data, 1, 'EdgeColor', 'none', 'FaceColor', [0 0 0] ); - % hold on; - % sdata = smooth(data, 30, 'lowess'); - % plot( obj(cc).time, sdata, 'k-', 'linewidth', 2); - - - % range and label - datetick('x','keeplimits'); - set(gca, 'XLim', [obj(ccc).snum obj(ccc).enum]); - ymax = nanmax(catmatrices(1, data)); - % ymax = min([max(sdata)*2 max(data)*1.01]); - set(gca, 'YLim', [0 ymax]); - ylabel(obj(ccc).etype); - end - - - - end - %title(metric{c}); - fprintf('metric for figure %d is %s\n', get(gcf,'Number'), metric{c}); - end - - - elseif strcmp(plotmode, 'single') - % Each metric on a separate figure, showing all requested - % subclasses on the same panel - colour = 'rgbcm'; - for c = 1 : numel(metric) - %figure(get(gcf,'Number')+c) - figure - for cc = 1: length(obj) - if strcmp(metric{c},'energy') - %data = cumsum(magnitude.mag2eng(obj(cc).cum_mag)); - data = (magnitude.mag2eng(obj(cc).cum_mag)); - else - % eval( sprintf('data = obj(cc).%s;',metric{c} ) ); - data = obj(cc).(metric{c}); - end - - if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) - - if smoothbins > 1 - data = smooth(data, smoothbins); - end - - plot( obj(cc).time, data, sprintf('-%c',colour(cc)) ); - hold on; - datetick('x','keeplimits'); - set(gca, 'XLim', [obj(cc).snum obj(cc).enum]); - %ymax = nanmax(catmatrices(1, data)); - %set(gca, 'YLim', [0 ymax]); - %ylabel(obj(cc).etype); - end - end - title(metric{c}); - end - - - elseif strcmp(plotmode, 'stacked') - % Each metric on a separate figure, showing all subclasses - % stacked on the same panel - colour = 'rgbcm'; - for c = 1 : numel(metric) - figure(get(gcf,'Number')+c) - data =[]; - for cc = 1: length(obj) - if strcmp(metric{c},'energy') - data = (magnitude.mag2eng(obj(cc).cum_mag)); - else - %eval( sprintf('data(:,cc) = obj(cc).%s;',metric{c} ) ); - %data(:,cc) = obj(cc).(metric{c}); - data = obj(cc).(metric{c}); - if findstr(metric{c}, 'mag') - disp('Warning: It is meaningless to stack magnitude data'); - data(data<0)=0; - data(isnan(data))=0; - end - end - if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) - if smoothbins > 1 - data = smooth(data, smoothbins); - end - - %bar( obj(cc).time, data, 1, 'stack' ); - area(obj(cc).time, data); - datetick('x','keeplimits'); - set(gca, 'XLim', [obj(cc).snum obj(cc).enum]); - title(metric{c}); - end - end - end - end - end - - function plot(obj, varargin) - %EventRate/plot - % Plot metrics of an EventRate object - % - % The following metrics are available: - % - % counts % number of events in each bin - % mean_rate % number of events per hour in each bin - % median_rate % reciprocal of the median time interval between events. Represented as an hourly rate. - % energy % total sum of energy in each bin - % cum_mag % total sum of energy in each bin, represented as a magnitude. - % mean_mag % mean magnitude of events in each bin - % median_mag % median magnitude of events in each bin - % min_mag % smallest magnitude in each bin - % - % erobj.plot() or plot(erobj) will produce a plot of event - % counts per unit time. The time unit is given by erobj.binsize - % days. - % - % erobj.plot('metric', list_of_metrics) will plot each metric - % requested in list_of_metrics in a separate panel. - % list_of_metrics should be a cell array of valid metric - % strings. However, it may be a string if only one metric is - % requested. - % - % erobj.plot('metric', 'counts') is equivalent to - % erobj.plot() and erobj.plot('metric', {'counts'}) - % - % erobj.plot('metric', 'mean_rate') is similar, but the - % mean_rate is always events per hour, regardless of the - % binsize. So if erobj.binsize = 1 (day), counts will be - % exactly 24 * mean_rate. - % - % erobj.plot('metric', {'counts';'cum_mag'}) will plot counts - % in one panel and the cumulative magnitude per bin in - % another panel. - % - % In general any number of metrics can be given in - % list_of_metrics. - % - % If erobj is an array of eventrate structures (e.g. one per - % etype), each is plotted on a separate figure. However the - % plotmode variable overrides this: - % - % plot(eventrate_vector, 'plotmode', 'panels') will plot them - % in separate panels on the same figure - % - % plot(eventrate_vector, 'plotmode', 'single') will plot them - % in a single panel - - p = inputParser; - p.addParameter('metric', {'counts'}, @(c) iscell(c)||isstr(c)); - p.addParameter('plotmode', 'figures', @isstr); - p.addParameter('smooth', 1, @isnumeric); - p.parse(varargin{:}); - metric = p.Results.metric; - plotmode = p.Results.plotmode; - smoothbins = p.Results.smooth; % NOT DOING ANYTHING WITH THIS YET BUT COULD SMOOTH COUNTS OVER SEVERAL BINS - if ~iscell(metric) - metric = {metric}; - end - numMetrics = numel(metric); - colors = {[0 0.8 0] [0 0 0.8]}; - - % plot each etype on a separate figure, each metric as a - % subplot - - if strcmp(plotmode, 'figures') || length(obj)==1 - fh = []; - for c = 1 : numel(obj) - binsize_str = Catalog.binning.binsizelabel(obj(c).binsize); - numsubplots = length(metric); - fh(c) = figure; - unique_subclasses = unique(char([obj(c).etype{:}])'); - if length(unique_subclasses)==1 - longname = Catalog.subclass2longname(unique_subclasses); - else - longname = Catalog.subclass2longname('*'); - end - set(fh(c),'Color', [1 1 1], 'Name', sprintf('%s activity beginning %s',longname, datestr(obj(c).time(1),29) ) ); - for cc = 1: numsubplots % number of metrics to plot - data = obj(c).(metric{cc}); - if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) - % replace -Inf values as they mess up plots - y = data; % ydata is the data we will plot, but we keep data for cumulative energy etc. - if smoothbins > 1 - y = smooth(y, smoothbins); - end - y(isinf(y))=NaN; - mindata = nanmin(y); - y(isnan(y))=mindata; % we replace NaNs and Infs in data with nanmin(data) in ydata - if (obj(c).binsize == obj(c).stepsize) & ( strcmp(metric{cc}, 'counts') | strcmp(metric{cc}, 'energy') | strcmp(metric{cc}, 'cum_mag') ) -% if strfind(metric{cc}, 'mag') -% cumy = magnitude.eng2mag(cumsum(magnitude.mag2eng(y))); -% subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, y, obj(c).time, cumy, @stairs, @plot ); -% set(h1, 'Color', colors{1}); -% else - labels = metric2label(metric{cc}, obj(c).binsize); - t = [ obj(c).time - obj(c).binsize/2 ]; t = [t t(end)+obj(c).binsize]; - y = [y y(end)]; - clear ax h1 h2 - if numel(labels)==2 - cumy = cumsum(data); cumy = [cumy cumy(end)]; - subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(t, y, t, cumy, @stairs, @stairs ); - set(h2, 'LineWidth', 3, 'Color', colors{2}); - datetick(ax(2), 'x','keeplimits'); - ylabel(ax(2),labels{2}, 'Color', colors{2}, 'FontSize',12) - ylims = get(ax(2), 'YLim'); - set(ax(2), 'YColor', colors{2}, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); - else - - ax(1) = subplot(numsubplots,1,cc) - h1 = stairs(ax(1), t, y); - %[ax, h1, h2] = plotyy(t, y, t, y, @stairs, @stairs ); - end - set(h1, 'LineWidth', 3, 'Color', colors{1}); - - %end - datetick(ax(1), 'x','keeplimits'); - ylabel(ax(1), labels{1}, 'Color', colors{1}, 'FontSize',12) - ylims = get(ax(1), 'YLim'); - set(ax(1), 'YColor', colors{1}, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); - linkaxes(ax, 'x'); - else - - if strfind(metric{cc}, 'mag') - subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1}); - else - subplot(numsubplots,1,cc), bar(obj(c).time, data, 1, 'FaceColor', colors{1}, 'EdgeColor', colors{1}, 'BarWidth', 1, 'LineWidth', 0.1); - %subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1}); - end - datetick('x','keeplimits'); - ylabel(metric2label(metric{cc}, obj(c).binsize), 'FontSize',12) - end - end -% axis tight; -% a=axis; -% axis([a(1) a(2) 0 a(4)]) - end - end - - %% FROM HERE ON THE PLOTMODES HAVE NOT BEEN UPDATED - elseif strcmp(plotmode, 'panels') - end - end - - - - - - - %% PYTHONPLOT - function pythonplot(obj) - obj.plot('metric', {'counts';'cum_mag'}); - end - - %% HELENAPLOT - function helenaplot(obj) - for c=1:length(obj) - figure - set(gcf,'Color', [1 1 1]); - cumcummag = magnitude.eng2mag(cumsum(magnitude.mag2eng(obj(c).cum_mag))); - [ax, h1, h2] = plotyy(obj(c).time, cumcummag, obj(c).time, cumsum(obj(c).energy), @plot, @plot); - datetick(ax(1), 'x','keeplimits'); - datetick(ax(2), 'x','keeplimits'); - ylabel(ax(1), 'Cumulative Magnitude', 'FontSize',12); - ylabel(ax(2), 'Cumulative Energy', 'FontSize',12); - end - end - - - function pvalue(obj) - logt = log10(obj.time-obj.time(1)); - logc = log10(obj.counts); - plot(logt, logc); - p = logt \ logc' -% p = polyfit(logt, logc, 1) -% hold on -% logt1 = min(logt); -% logc1 = polyval(p, logt1); -% logt2 = max(logt); -% logc2 = polyval(p, logt2); -% line([logt1 logt2], [logc1 logc2]); - end - - - %% SAUSAGEPLOT - function sausageplot(obj, numBinsToUse, varargin) - %sausageplot - % Under development, this function attempts to replicate the - % capabilities of sausageplot.xpy written by Glenn Thompson - % at AVO. - p = inputParser; - p.addRequired('numBinsToUse', @isnumeric); - p.addOptional('numPoints', 1, @isnumeric); - p.addOptional('radii', [], @isnumeric); - p.parse(numBinsToUse, varargin{:}); - numBinsToUse = p.Results.numBinsToUse; - numPoints = p.Results.numPoints; - radii = p.Results.radii; -% % Page size, dots-per-inch and scale settings -% fh = figure() -% if numBinsToUse > NUMPOINTS -% dpi = 6*(numBinsToUse+1); -% axes_width = 0.8 * (NUMPOINTS + 1) / (numBinsToUse + 1); -% axes_height = 0.8; -% else -% dpi = 6*(NUMPOINTS+1); -% axes_width = 0.8; -% axes_height = 0.8 * (numBinsToUse + 1) / (NUMPOINTS + 1); -% end -% fh.set_dpi(dpi) -% fh.set_size_inches((10.0,10.0),forward=True) -% fig2ax1 = fig2.add_axes([0.1, 0.85-axes_height, axes_width, axes_height]); -% print_pixels(fig2, fig2ax1, numBinsToUse, NUMPOINTS); -% colormapname = 'hot_r'; - MAXMAGCOLORBAR = 5.0; - MINMAGCOLORBAR = 1.0; - % Marker size configuration -% SCALEFACTOR = 84.0 / dpi; -% MAXMARKERSIZE = 43.0 * SCALEFACTOR; -% MINMARKERSIZE = 4.0 * SCALEFACTOR; - PTHRESHOLD = 50; - for c = 1:length(obj) - % set up weekending list for yticklabels - binendstr = {}; - for bin_index=numel(obj.time)-numBinsToUse+1: numel(obj.time) - - dstr = datestr(obj.time(bin_index)) - binendstr{bin_index} = dstr; - end - pointlabels = {}; - for i=1:length(numPoints) - % filter here based on points and radii - j = 1:length(obj(c).counts); % replace this - counts = obj(c).counts(j); - cummag = obj(c).cum_mag(j); - prcntile = percentiles(obj(c).counts); - %pointlabels{i} = sprintf('%s(%d)', point_label{i}, counts(-1)); - pointlabels{i}=''; - for bin_index=numel(obj.time)-numBinsToUse+1: numel(obj.time)%-numBinsToUse-1: 1: 0 - y = obj(c).counts(bin_index); - magnitude = obj(c).cum_mag(bin_index); - p = y2percentile(y,prcntile); - if y>0 - colorVal = scalarMap.to_rgba(magnitude) - msize = MINMARKERSIZE + (p-PTHRESHOLD) * (MAXMARKERSIZE - MINMARKERSIZE) / (100-PTHRESHOLD); - if msize MAXMARKERSIZE * 0.3 - text(i+0.5, bin_index, num2str(y)) -% fig2ax1.text(i+0.5, w, '%d', y, horizontalalignment='center', verticalalignment='center', fontsize = 8 * SCALEFACTOR) - end - end - end - end - - % Adding xticks, yticks, labels, grid -% fig2ax1.set_axisbelow(True) % I think this puts grid and tickmarks below actual data plotted - - % x-axis -% fig2ax1.set_xticks(np.arange(.5,NUMVOLCANOES+.5,1)) - set(gca, 'XTick', 0.5:1:numPoints+0.5); -% fig2ax1.set_xlim([-0.5, NUMVOLCANOES+0.5]) - set(gca, 'XLim', [-0.5 numPoints+0.5]) -% fig2ax1.xaxis.grid(True, linestyle='-', color='gray') - grid on; - set(gca, 'XTickLabel', pointlabels) -% fig2ax1.xaxis.set_ticks_position('top') -% fig2ax1.xaxis.set_label_position('top') - %plt.setp( fig2ax1.get_xticklabels(), rotation=45, horizontalalignment='left', fontsize=10*SCALEFACTOR ) - - % y-axis -% fig2ax1.set_yticks(np.arange(-number_of_weeks_to_plot-0.5, 0, 1)) - set(gca, 'YTick', -numBinsToUse-0.5: 1: 0) -% fig2ax1.set_yticklabels(weekending) - set(gca, 'YTickLabel', binendstr) -% fig2ax1.set_ylim([-number_of_weeks_to_plot - 0.5, -0.5]) - set(gca, 'YLim', -numBinsToUse -0.5 : 1 : -0.5) -% plt.setp( fig2ax1.get_yticklabels(), fontsize=10*SCALEFACTOR ) - end - end - - - %% IMPORTSWARMDB - function obj = importswarmdb(obj, dbname, auth, snum, enum) - % IMPORTSWARMDB - % Load a swarm database metrics table into an EventRate object - % eventrate = importswarmdb(erobj, dbname, auth, snum, enum); - % - % INPUT: - % dbname the path of the database (must have a 'metrics' table) - % auth name of the grid to load swarm tracking metrics for - % snum,enum start and end datenumbers (Matlab time format, see 'help datenum') - % - % OUTPUT: - % obj an eventrate object - % - % Example: - % erobj = importswarmdb('/avort/devrun/dbswarm/swarm_metadata', 'RD_lo', datenum(2010, 7, 1), datenum(2010, 7, 14) ); - - % Glenn Thompson, 20100714 - - % initialize - obj.dbroot = dbname; - obj.snum = snum; - obj.enum = enum; - obj.auth = auth; - - % check that database exists - dbtablename = sprintf('%s.metrics',dbname); - if exist(dbtablename,'file') - % load the data - try - db = dbopen(dbname, 'r'); - catch me - fprintf('Error: Could not open %s for reading',dbname); - return; - end - db = dblookup_table(db, 'metrics'); - if (dbquery(db, 'dbRECORD_COUNT')==0) - fprintf('Error: Could not open %s for reading',dbtablename); - return; - end - db = dbsubset(db, sprintf('auth ~= /.*%s.*/',auth)); - numrows = dbquery(db,'dbRECORD_COUNT'); - debug.print_debug(sprintf('Got %d rows after auth subset',numrows),2); - sepoch = datenum2epoch(snum); - eepoch = datenum2epoch(enum); - db = dbsubset(db, sprintf('timewindow_starttime >= %f && timewindow_endtime <= %f',sepoch,eepoch)); - numrows = dbquery(db,'dbRECORD_COUNT'); - debug.print_debug(sprintf('Got %d rows after time subset',numrows),2); - - if numrows > 0 - % Note that metrics are only saved when mean_rate >= 1. - % Therefore there will be lots of mean_rate==0 timewindows not in - % database. - [tempsepoch, tempeepoch, mean_rate, median_rate, mean_mag, cum_mag] = dbgetv(db,'timewindow_starttime', 'timewindow_endtime', 'mean_rate', 'median_rate', 'mean_ml', 'cum_ml'); - obj.binsize = (tempeepoch(1) - tempsepoch(1))/86400; - obj.stepsize = min(tempsepoch(2:end) - tempsepoch(1:end-1))/86400; - obj.time = snum+obj.stepsize:obj.stepsize:enum; - obj.numbins = length(obj.time); - obj.mean_rate = zeros(obj.numbins, 1); - obj.counts = zeros(obj.numbins, 1); - obj.median_rate = zeros(obj.numbins, 1); - obj.mean_mag = zeros(obj.numbins, 1); - obj.cum_mag = zeros(obj.numbins, 1); - for c=1:length(tempeepoch) - tempenum = epoch2datenum(tempeepoch(c)); - i = find(obj.time == tempenum); - obj.mean_rate(i) = mean_rate(c); - obj.counts(i) = mean_rate(c) * (obj.binsize * 24); - obj.median_rate(i) = median_rate(c); - obj.mean_mag(i) = mean_mag(c); - obj.cum_mag(i) = cum_mag(c); - end - end - dbclose(db); - - else - % error - table does not exist - fprintf('Error: %s does not exist',dbtablename); - return; - end - - obj.total_counts = sum(obj.counts)*obj.stepsize/obj.binsize; - - end - - %% ADDFIELD - function obj = addfield(obj,fieldname,val) - %ADDFIELD add fields and values to object(s) - % obj = addfield(obj, fieldname, value) - % This function creates a new user defined field, and fills it with the - % included value. If fieldname exists, it will overwrite the existing - % value. - % - % Input Arguments - % obj: an EventRate object - % fieldname: a string name - % value: a value to be added for those fields. Value can be anything - % - % EventRate objects can hold user-defined fields. To access the contents, - % use EventRate/get. - % - % Example: - % % add a field called "TESTFIELD", containing the numbers 1-45 - % obj = addfield(obj,'TestField',1:45); - % - % % add a cell field called "MISHMOSH" - % obj = addfield(obj,'mishmosh',{'hello';'world'}); - % - % % see the result - % disp(obj) - % - % See also EventRate/set, EventRate/get - - % AUTHOR: Glenn Thompson - - if ischar(fieldname) - mask = strcmp(fieldname, properties(obj)); - if any(mask) - obj = obj.set(fieldname, val); - else - mask = strcmp(upper(fieldname),obj.misc_fields); - if any(mask) - obj = obj.set(fieldname, val); - else - obj.misc_fields = [obj.misc_fields, upper(fieldname)]; - obj = obj.set(upper(fieldname), val); - end - end - else - error('%s:addfield:invalidFieldname','fieldname must be a string', class(catalogObject)) - end - - end - - %% SET - function obj = set(obj, varargin) - %SET Set properties for EventRate object(s) - % obj = set(obj,'property_name', val, ['property_name2', val2]) - % SET is one of the two gateway functions of an object, such as EventRate. - % Properties that are changed through SET are typechecked and otherwise - % scrutinized before being stored within the EventRate object. This - % ensures that the other EventRate methods are all retrieving valid data, - % thereby increasing the reliability of the code. - % - % Another strong advantage to using SET and GET to change and retrieve - % properties, rather than just assigning them to EventRate object directly, - % is that the underlying data structure can change and grow without - % harming the code that is written based on the EventRate object. - % - % For a list of valid property names, type: - % properties(obj) - % - % If user-defined fields were added to the EventRate object (ie, through - % addField), these fieldnames are also available through set. - % - % Examples: - % (1) Change the description property - % obj = obj.set('description','hello world'); - % - % (2) Add new a field called CLOSEST_STATION with - % % the value 'MBLG' - % obj = obj.addfield('CLOSEST_STATION','MBLG'); - % - % % change the value of the CLOSEST_STATION field - % obj = obj.set('CLOSEST_STATION','MBWH'); - % - % See also EventRate/get, EventRate/addfield - - Vidx = 1 : numel(varargin); - - while numel(Vidx) >= 2 - prop_name = upper(varargin{Vidx(1)}); - val = varargin{Vidx(2)}; - mask = strcmp(upper(prop_name),upper(properties(obj))); - if any(mask) - mc = metaclass(obj); - i = find(mask); - prop_name = mc.PropertyList(i).Name; - if isempty(mc.PropertyList(i).GetMethod) - %eval(sprintf('obj.%s=val;',prop_name)); - obj.(prop_name) = val; - else - warning('Property %s is a derived property and cannot be set',prop_name); - end - else - switch prop_name - case obj.misc_fields - mask = strcmp(prop_name,obj.misc_fields); - obj.misc_values(mask) = {val}; - otherwise - error('%s:set:unknownProperty',... - 'can''t understand property name : %s', mfilename,prop_name); - end - end - Vidx(1:2) = []; %done with those parameters, move to the next ones... - end - end - - %% GET - function val = get(obj,prop_name) - %GET Get EventRate properties - % val = get(EventRate_object,'property_name') - % - % To see valid property names, type: - % properties(EventRate_object) - % - % If additional fields were added to EventRate using ADDFIELD, then - % values from these can be retrieved using the fieldname - % - % See also EventRate/SET, EventRate/ADDFIELD, Catalog/GET - - mask = strcmp(prop_name, properties(obj)); - if any(mask) - % eval(sprintf('val=obj.%s;',prop_name)); - val = obj.(prop_name); - else - mask = strcmp(upper(prop_name),obj.misc_fields); - if any(mask) - val = obj.misc_values{mask}; - else - warning('%s:get:unrecognizedProperty',... - 'Unrecognized property name : %s', class(obj), prop_name); - end - end - end - - end % methods - methods(Static) cookbook() end end -%% PERCENTILES -function p=percentiles(vals) - lenVals = length(vals); - for i=1:100 - p(i) = vals(floor(i/100 * (lenVals-1))+1); - end -end -%% PLOT_PERCENTILES -function plot_percentiles(p) - figure(get(gcf,'Number')+1, 'Color', [1 1 1]) - plot(1:100, p); -end -function labels = metric2label(metric, binsize) - % label = metric2label(metric, binsize) - labels={}; - blabel = Catalog.binning.binsizelabel(binsize); - time_unit = blabel(4:end); - if strcmp(metric, 'counts') - labels{1} = sprintf('# Events %s',blabel); - labels{2} = 'Cumulative # events'; - elseif strcmp(metric, 'energy') - labels{1} = sprintf('Energy %s (J)',blabel); - labels{2} = 'Cumulative energy (J)'; - elseif strcmp(metric, 'mean_rate') - labels{1} = sprintf('Mean # events per hour (binsize %s)', time_unit); - elseif strcmp(metric, 'median_rate') - labels{1} = sprintf('Median # events per hour (binsize %s)', time_unit); - elseif strcmp(metric, 'cum_mag') - labels{1} = sprintf('Cumulative Magnitude per hour (binsize %s)', time_unit);; - elseif strcmp(metric, 'mean_mag') - labels{1} = sprintf('Mean Magnitude per hour (binsize %s)', time_unit); - elseif strcmp(metric, 'median_mag') - labels{1} = sprintf('Median Magnitude per hour (binsize %s)', time_unit); - end -end + diff --git a/core/@EventRate/extensions/import_swarmdb.m b/core/@EventRate/extensions/import_swarmdb.m new file mode 100644 index 0000000..b26fc9b --- /dev/null +++ b/core/@EventRate/extensions/import_swarmdb.m @@ -0,0 +1,84 @@ +%% IMPORTSWARMDB +function obj = importswarmdb(obj, dbname, auth, snum, enum) + % IMPORTSWARMDB + % Load a swarm database metrics table into an EventRate object + % eventrate = importswarmdb(erobj, dbname, auth, snum, enum); + % + % INPUT: + % dbname the path of the database (must have a 'metrics' table) + % auth name of the grid to load swarm tracking metrics for + % snum,enum start and end datenumbers (Matlab time format, see 'help datenum') + % + % OUTPUT: + % obj an eventrate object + % + % Example: + % erobj = importswarmdb('/avort/devrun/dbswarm/swarm_metadata', 'RD_lo', datenum(2010, 7, 1), datenum(2010, 7, 14) ); + + % Glenn Thompson, 20100714 + + % initialize + obj.dbroot = dbname; + obj.snum = snum; + obj.enum = enum; + obj.auth = auth; + + % check that database exists + dbtablename = sprintf('%s.metrics',dbname); + if exist(dbtablename,'file') + % load the data + try + db = dbopen(dbname, 'r'); + catch me + fprintf('Error: Could not open %s for reading',dbname); + return; + end + db = dblookup_table(db, 'metrics'); + if (dbquery(db, 'dbRECORD_COUNT')==0) + fprintf('Error: Could not open %s for reading',dbtablename); + return; + end + db = dbsubset(db, sprintf('auth ~= /.*%s.*/',auth)); + numrows = dbquery(db,'dbRECORD_COUNT'); + debug.print_debug(sprintf('Got %d rows after auth subset',numrows),2); + sepoch = datenum2epoch(snum); + eepoch = datenum2epoch(enum); + db = dbsubset(db, sprintf('timewindow_starttime >= %f && timewindow_endtime <= %f',sepoch,eepoch)); + numrows = dbquery(db,'dbRECORD_COUNT'); + debug.print_debug(sprintf('Got %d rows after time subset',numrows),2); + + if numrows > 0 + % Note that metrics are only saved when mean_rate >= 1. + % Therefore there will be lots of mean_rate==0 timewindows not in + % database. + [tempsepoch, tempeepoch, mean_rate, median_rate, mean_mag, cum_mag] = dbgetv(db,'timewindow_starttime', 'timewindow_endtime', 'mean_rate', 'median_rate', 'mean_ml', 'cum_ml'); + obj.binsize = (tempeepoch(1) - tempsepoch(1))/86400; + obj.stepsize = min(tempsepoch(2:end) - tempsepoch(1:end-1))/86400; + obj.time = snum+obj.stepsize:obj.stepsize:enum; + obj.numbins = length(obj.time); + obj.mean_rate = zeros(obj.numbins, 1); + obj.counts = zeros(obj.numbins, 1); + obj.median_rate = zeros(obj.numbins, 1); + obj.mean_mag = zeros(obj.numbins, 1); + obj.cum_mag = zeros(obj.numbins, 1); + for c=1:length(tempeepoch) + tempenum = epoch2datenum(tempeepoch(c)); + i = find(obj.time == tempenum); + obj.mean_rate(i) = mean_rate(c); + obj.counts(i) = mean_rate(c) * (obj.binsize * 24); + obj.median_rate(i) = median_rate(c); + obj.mean_mag(i) = mean_mag(c); + obj.cum_mag(i) = cum_mag(c); + end + end + dbclose(db); + + else + % error - table does not exist + fprintf('Error: %s does not exist',dbtablename); + return; + end + + obj.total_counts = sum(obj.counts)*obj.stepsize/obj.binsize; + +end \ No newline at end of file diff --git a/core/@EventRate/extensions/sausageplot.m b/core/@EventRate/extensions/sausageplot.m new file mode 100644 index 0000000..6d6257c --- /dev/null +++ b/core/@EventRate/extensions/sausageplot.m @@ -0,0 +1,128 @@ +%% SAUSAGEPLOT +function sausageplot(obj, numBinsToUse, varargin) + %sausageplot + % Under development, this function attempts to replicate the + % capabilities of sausageplot.xpy written by Glenn Thompson + % at AVO. + p = inputParser; + p.addRequired('numBinsToUse', @isnumeric); + p.addOptional('numPoints', 1, @isnumeric); + p.addOptional('radii', [], @isnumeric); + p.parse(numBinsToUse, varargin{:}); + numBinsToUse = p.Results.numBinsToUse; + numPoints = p.Results.numPoints; + radii = p.Results.radii; +% % Page size, dots-per-inch and scale settings +% fh = figure() +% if numBinsToUse > NUMPOINTS +% dpi = 6*(numBinsToUse+1); +% axes_width = 0.8 * (NUMPOINTS + 1) / (numBinsToUse + 1); +% axes_height = 0.8; +% else +% dpi = 6*(NUMPOINTS+1); +% axes_width = 0.8; +% axes_height = 0.8 * (numBinsToUse + 1) / (NUMPOINTS + 1); +% end +% fh.set_dpi(dpi) +% fh.set_size_inches((10.0,10.0),forward=True) +% fig2ax1 = fig2.add_axes([0.1, 0.85-axes_height, axes_width, axes_height]); +% print_pixels(fig2, fig2ax1, numBinsToUse, NUMPOINTS); +% colormapname = 'hot_r'; + MAXMAGCOLORBAR = 5.0; + MINMAGCOLORBAR = 1.0; + % Marker size configuration +% SCALEFACTOR = 84.0 / dpi; +% MAXMARKERSIZE = 43.0 * SCALEFACTOR; +% MINMARKERSIZE = 4.0 * SCALEFACTOR; + PTHRESHOLD = 50; + for c = 1:length(obj) + % set up weekending list for yticklabels + binendstr = {}; + for bin_index=numel(obj.time)-numBinsToUse+1: numel(obj.time) + + dstr = datestr(obj.time(bin_index)) + binendstr{bin_index} = dstr; + end + pointlabels = {}; + for i=1:length(numPoints) + % filter here based on points and radii + j = 1:length(obj(c).counts); % replace this + counts = obj(c).counts(j); + cummag = obj(c).cum_mag(j); + prcntile = percentiles(obj(c).counts); + %pointlabels{i} = sprintf('%s(%d)', point_label{i}, counts(-1)); + pointlabels{i}=''; + for bin_index=numel(obj.time)-numBinsToUse+1: numel(obj.time)%-numBinsToUse-1: 1: 0 + y = obj(c).counts(bin_index); + magnitude = obj(c).cum_mag(bin_index); + p = y2percentile(y,prcntile); + if y>0 + colorVal = scalarMap.to_rgba(magnitude) + msize = MINMARKERSIZE + (p-PTHRESHOLD) * (MAXMARKERSIZE - MINMARKERSIZE) / (100-PTHRESHOLD); + if msize MAXMARKERSIZE * 0.3 + text(i+0.5, bin_index, num2str(y)) +% fig2ax1.text(i+0.5, w, '%d', y, horizontalalignment='center', verticalalignment='center', fontsize = 8 * SCALEFACTOR) + end + end + end + end + + % Adding xticks, yticks, labels, grid +% fig2ax1.set_axisbelow(True) % I think this puts grid and tickmarks below actual data plotted + + % x-axis +% fig2ax1.set_xticks(np.arange(.5,NUMVOLCANOES+.5,1)) + set(gca, 'XTick', 0.5:1:numPoints+0.5); +% fig2ax1.set_xlim([-0.5, NUMVOLCANOES+0.5]) + set(gca, 'XLim', [-0.5 numPoints+0.5]) +% fig2ax1.xaxis.grid(True, linestyle='-', color='gray') + grid on; + set(gca, 'XTickLabel', pointlabels) +% fig2ax1.xaxis.set_ticks_position('top') +% fig2ax1.xaxis.set_label_position('top') + %plt.setp( fig2ax1.get_xticklabels(), rotation=45, horizontalalignment='left', fontsize=10*SCALEFACTOR ) + + % y-axis +% fig2ax1.set_yticks(np.arange(-number_of_weeks_to_plot-0.5, 0, 1)) + set(gca, 'YTick', -numBinsToUse-0.5: 1: 0) +% fig2ax1.set_yticklabels(weekending) + set(gca, 'YTickLabel', binendstr) +% fig2ax1.set_ylim([-number_of_weeks_to_plot - 0.5, -0.5]) + set(gca, 'YLim', -numBinsToUse -0.5 : 1 : -0.5) +% plt.setp( fig2ax1.get_yticklabels(), fontsize=10*SCALEFACTOR ) + end +end + +function pvalue(obj) + logt = log10(obj.time-obj.time(1)); + logc = log10(obj.counts); + plot(logt, logc); + p = logt \ logc' +% p = polyfit(logt, logc, 1) +% hold on +% logt1 = min(logt); +% logc1 = polyval(p, logt1); +% logt2 = max(logt); +% logc2 = polyval(p, logt2); +% line([logt1 logt2], [logc1 logc2]); +end + + +%% PERCENTILES +function p=percentiles(vals) + lenVals = length(vals); + for i=1:100 + p(i) = vals(floor(i/100 * (lenVals-1))+1); + end +end + +%% PLOT_PERCENTILES +function plot_percentiles(p) + figure(get(gcf,'Number')+1, 'Color', [1 1 1]) + plot(1:100, p); +end diff --git a/core/@EventRate/helenaplot.m b/core/@EventRate/helenaplot.m new file mode 100644 index 0000000..f01c01b --- /dev/null +++ b/core/@EventRate/helenaplot.m @@ -0,0 +1,13 @@ +%% HELENAPLOT +function helenaplot(obj) + for c=1:length(obj) + figure + set(gcf,'Color', [1 1 1]); + cumcummag = magnitude.eng2mag(cumsum(magnitude.mag2eng(obj(c).cum_mag))); + [ax, h1, h2] = plotyy(obj(c).time, cumcummag, obj(c).time, cumsum(obj(c).energy), @plot, @plot); + datetick(ax(1), 'x','keeplimits'); + datetick(ax(2), 'x','keeplimits'); + ylabel(ax(1), 'Cumulative Magnitude'); + ylabel(ax(2), 'Cumulative Energy'); + end +end \ No newline at end of file diff --git a/core/@EventRate/html/EventRate.html b/core/@EventRate/html/EventRate.html deleted file mode 100644 index 81e5be9..0000000 --- a/core/@EventRate/html/EventRate.html +++ /dev/null @@ -1,1628 +0,0 @@ - - - - - EventRate

    Contents

    classdef EventRate
    -
    %EventRate Event Rate class constructor.
    -%
    -%    EventRate is a class that has been developed around plotting earthquake
    -%    counts - i.e. the rate of events per unit time. It has evolved to compute
    -%    other metrics such the hourly mean event rate, median event rate, mean
    -%    magnitude and cumulative magnitude, which are important metrics for an AVO
    -%    swarm tracking system.
    -%
    -%    EventRate can import information from:
    -%    (1) a Catalog object.
    -%    (2) a Datascope database written in the "swarms1.0" schema, defined at AVO.
    -%        This is the format used by the swarm tracking system (Thompson &
    -%        West, 2010).
    -%
    -%    ER = EventRate(Catalog_OBJECT, 'binsize', BINSIZE) creates an eventrate object
    -%    from a Catalog object using non-overlapping bins of BINSIZE days.
    -%
    -%    ER = EventRate(Catalog_OBJECT, 'binsize', BINSIZE, 'stepsize', STEPSIZE) creates an eventrate object
    -%    using overlapping bins. If omitted STEPSIZE==BINSIZE.
    -%
    -

    EXAMPLES:

         First create a catalog object from the demo database:
    -         dbpath = demodb('avo')
    -         catalogObject = readEvents('datascope', 'dbpath', dbpath, ...
    -                'dbeval', ...
    -                'deg2km(distance(lat, lon, 60.4853, -152.7431))<15.0' ...
    -                );
         (1) Create an eventrate object using a binsize of 1 day:
    -         erobj = catalogObject.eventrate('binsize', 1);
         (2) Create an eventrate object using a binsize of 1 hour:
    -         erobj = catalogObject.eventrate('binsize', 1/24);
         (3) Create an eventrate object using a binsize of 1 hour but a stepsize of 5 minutes:
    -         erobj = catalogObject.eventrate('binsize', 1/24, 'stepsize', 5/1440);
         (4) Create a vector of eventrate objects subclassified using event types 'r', 'e', 'l', 'h', 't':
    -             erobj = eventrate(catalogObject, 1, 'etypes', 'relht');
    -         To plot counts on separate figures:
    -             erobj.plot()
    -         To plot counts and energy panels, each event type as a separate figure:
    -             erobj.plot('metric', {'counts';'energy'});
    -         To plot counts and energy panels on separate figures, each event type as panels:
    -             erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'panels');
    -         To plot counts and energy panels on separate figures, each event type stacked:
    -             erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'stacked');
         (5) A full example:
    -             catalogObject = catalog(fullfile(MVO_DATA, 'mbwh_catalog'), 'seisan', 'snum', datenum(1996,10,1), 'enum', datenum(2004,3,1), 'region', 'Montserrat')
    -             erobj = eventrate(catalogObject, 365/12, 'stepsize', 1, 'etypes', 'thlr');
    -             erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'stacked');

    PROPERTIES

      For a list of all properties type properties(EventRate)
      time                % (array) time of the center of each bin as a DATENUM
      METRICS:
    -      counts 		     % (array) number of events in each bin
    -      mean_rate           % (array) number of events per hour in each bin
    -      median_rate	     % (array) reciprocal of the median time interval between events. Represented as an hourly rate.
    -      cum_mag		     % (array) total sum of energy in each bin, represented as a magnitude.
    -      mean_mag		     % (array) mean magnitude of events in each bin
    -      median_mag          % (array) median magnitude of events in each bin
    -      min_mag             % (array) smallest magnitude in each bin
    -      max_mag             % (array) largest magnitude in each bin
      SUMMARY DATA:
    -      numbins             % (scalar) number of bins used for grouping
    -                              events
    -      total_counts        % (scalar) sum of counts
    -      total_mag           % (scalar) total sum of energy of all catalogObjects, represented as a magnitude
      METADATA:
    -      etype               % event type/classification.
    -      snum                % (scalar) start date/time in DATENUM format
    -      enum                % (scalar) end date/time in DATENUM format
    -      binsize             % (scalar) bin size in days
    -      stepsize            % (scalar) step size in days
    -      region              % (4-element vector) [minlon maxlon minlat maxlat]
    -      minmag              % (scalar) magnitudes smaller than this were eliminated
    -      dbroot              % path to the original data on disk
    -      archiveformat       % indicates if the source is a flat file, or
    -                            'daily' or 'monthly' volumes
    -      auth                % auth of the events

    METHODS

      For a list of all methods type methods EventRate

    See also Catalog, Catalog_lite

    AUTHOR: Glenn Thompson

    PROPERTIES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        properties(GetAccess = 'public', SetAccess = 'public')
    -        time = [];          % (array) in datenum format
    -        counts = []; 		% (array) number of events in each bin
    -		mean_rate = [];      % (array) number of events per hour in each bin
    -		median_rate = [];	% (array) reciprocal of the median time interval between events. Represented as an hourly rate.
    -		cum_mag = [];		% (array) total sum of energy in each bin, represented as a magnitude.
    -		mean_mag = [];		% (array)
    -        median_mag = [];     % (array)
    -        energy = [];
    -        total_counts = [];   % (scalar) sum of counts
    -		total_mag = [];      % (scalar) total sum of energy of all catalogObjects, represented as a magnitude
    -        numbins = [];        % (scalar)
    -        min_mag = [];
    -        max_mag = [];
    -        etype = '*';
    -        snum = 0;
    -        enum = now;
    -        binsize = 1;
    -        stepsize = 1;
    -        misc_fields = {};
    -        misc_values = {};
    -    end
    -

    PUBLIC METHODS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    	methods
    -

    CONSTRUCTOR

            function self = EventRate(time, counts, energy, median_energy, ...
    -                smallest_energy, biggest_energy, median_time_interval, total_counts, ...
    -                snum, enum, etypes, binsize, stepsize, numbins)
    -            self.time = time;
    -            self.counts = counts;
    -            self.median_rate = 1 ./ (median_time_interval * 24);
    -            self.median_rate(counts<10) = 0;
    -            self.median_rate = max([self.counts / (24 * binsize); self.median_rate]);
    -            self.median_mag = magnitude.eng2mag(median_energy);
    -            self.energy = energy;
    -            self.total_counts = total_counts;
    -            self.numbins = numbins;
    -            self.min_mag = magnitude.eng2mag(smallest_energy);
    -            self.max_mag = magnitude.eng2mag(biggest_energy);
    -            self.etype = etypes;
    -            self.snum = snum;
    -            self.enum = enum;
    -            self.binsize = binsize;
    -            self.stepsize = stepsize;
    -        end
    -
    Error using EventRate (line 136)
    -Not enough input arguments.
    -

    ----------------------------------------------

    GETTERS

            function cum_mag = get.cum_mag(erobj)
    -            cum_mag = magnitude.eng2mag(erobj.energy);
    -        end
    -        function mean_mag = get.mean_mag(erobj)
    -            mean_mag = magnitude.eng2mag(erobj.energy./erobj.counts);
    -        end
    -        function mean_rate = get.mean_rate(erobj)
    -            mean_rate = erobj.counts / (24 * erobj.binsize);
    -        end
    -        function total_mag = get.total_mag(erobj)
    -            total_mag = magnitude.eng2mag(sum(erobj.energy));
    -        end
    -
    -        function plot(obj, varargin)
    -            %EventRate/plot
    -            %   Plot metrics of an EventRate object
    -            %
    -            %   The following metrics are available:
    -            %
    -            %        counts 		     % number of events in each bin
    -            %        mean_rate           % number of events per hour in each bin
    -            %        median_rate	     % reciprocal of the median time interval between events. Represented as an hourly rate.
    -            %        energy              % total sum of energy in each bin
    -            %        cum_mag		     % total sum of energy in each bin, represented as a magnitude.
    -            %        mean_mag		     % mean magnitude of events in each bin
    -            %        median_mag          % median magnitude of events in each bin
    -            %        min_mag             % smallest magnitude in each bin
    -            %
    -            %   erobj.plot() or plot(erobj) will produce a plot of event
    -            %   counts per unit time. The time unit is given by erobj.binsize
    -            %   days.
    -            %
    -            %   erobj.plot('metric', list_of_metrics) will plot each metric
    -            %   requested in list_of_metrics in a separate panel.
    -            %   list_of_metrics should be a cell array of valid metric
    -            %   strings. However, it may be a string if only one metric is
    -            %   requested.
    -            %
    -            %   erobj.plot('metric', 'counts') is equivalent to
    -            %   erobj.plot() and erobj.plot('metric', {'counts'})
    -            %
    -            %   erobj.plot('metric', 'mean_rate') is similar, but the
    -            %   mean_rate is always events per hour, regardless of the
    -            %   binsize. So if erobj.binsize = 1 (day), counts will be
    -            %   exactly 24 * mean_rate.
    -            %
    -            %   erobj.plot('metric', {'counts';'cum_mag'}) will plot counts
    -            %   in one panel and the cumulative magnitude per bin in
    -            %   another panel.
    -            %
    -            %   In general any number of metrics can be given in
    -            %   list_of_metrics.
    -            %
    -            %   If erobj is an array of eventrate structures (e.g. one per
    -            %   etype), each is plotted on a separate figure. However the
    -            %   plotmode variable overrides this:
    -            %
    -            %     plot(eventrate_vector, 'plotmode', 'panels') will plot them
    -            %     in separate panels on the same figure
    -            %
    -            %     plot(eventrate_vector, 'plotmode', 'single') will plot them
    -            %     in a single panel
    -
    -            p = inputParser;
    -            p.addParamValue('metric', {'counts'}, @(c) iscell(c)||isstr(c));
    -            p.addParamValue('plotmode', 'figures', @isstr);
    -            p.addParamValue('smooth', 1, @isnumeric);
    -            p.parse(varargin{:});
    -            metric = p.Results.metric;
    -            plotmode = p.Results.plotmode;
    -            smoothbins = p.Results.smooth; % NOT DOING ANYTHING WITH THIS YET BUT COULD SMOOTH COUNTS OVER SEVERAL BINS
    -            if ~iscell(metric)
    -                metric = {metric};
    -            end
    -            numMetrics = numel(metric);
    -            colors = {[0 0.5 0] [0 0 1]};
    -
    -            % plot each etype on a separate figure, each metric as a
    -            % subplot
    -
    -            if strcmp(plotmode, 'figures') || length(obj)==1
    -
                    for c = 1 : numel(obj)
    -                    binsize_str = Catalog.binning.binsizelabel(obj(c).binsize);
    -                    numsubplots = length(metric);
    -                    %figure(gcf+1)
    -                    figure
    -                    set(gcf,'Color', [1 1 1]);
    -                    for cc = 1: numsubplots % number of metrics to plot
    -                        %eval(  sprintf('data = obj(c).%s;',metric{cc} ) );
    -                        data = obj(c).(metric{cc});
    -                        % replace -Inf values as they mess up plots
    -                        ydata = data; % ydata is the data we will plot, but we keep data for cumulative energy etc.
    -                        if smoothbins > 1
    -                            ydata = smooth(ydata, smoothbins);
    -                        end
    -                        ydata(isinf(data))=NaN;
    -                        mindata = nanmin(ydata);
    -                        ydata(isnan(ydata))=mindata; % we replace NaNs and Infs in data with nanmin(data) in ydata
    -                        if (obj(c).binsize == obj(c).stepsize) & ( strcmp(metric{cc}, 'counts') | strcmp(metric{cc}, 'energy') | strcmp(metric{cc}, 'cum_mag') )
    -                            if strfind(metric{cc}, 'mag')
    -                                cumdata = magnitude.eng2mag(cumsum(magnitude.mag2eng(data)));
    -                                subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, ydata, obj(c).time, cumdata, @stairs, @plot );
    -                                set(h1, 'Color', colors{1});
    -                            else
    -                                %subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, data, obj(c).time, cumsum(data), @bar, @plot );
    -                                subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, ydata, obj(c).time, cumsum(data), @stairs, @plot );
    -                                %set(h1, 'FaceColor', colors{1}, 'EdgeColor', colors{1})
    -                                %set(h1, 'BarWidth', 1);
    -                                %set(h1, 'LineWidth', 0.1);
    -                            end
    -                            datetick(ax(1), 'x','keeplimits');
    -                            title(ax(1), metric2label(metric{cc}, obj(c).binsize), 'Color', colors{1}, 'FontSize',12)
    -                            datetick(ax(2), 'x','keeplimits');
    -                            ylabel(ax(2),'Cumulative', 'Color', colors{2}, 'FontSize',12)
    -                            set(h1, 'Color', colors{1});
    -                            set(h2, 'Color', colors{2}, 'LineWidth', 2);
    -                            set(ax(1), 'YColor', colors{1});
    -                            set(ax(2), 'YColor', colors{2});
    -                            linkaxes(ax, 'x');
    -                        else
    -
    -                            if strfind(metric{cc}, 'mag')
    -                                subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1});
    -                            else
    -                                %subplot(numsubplots,1,cc), bar(obj(c).time, data, 'FaceColor', colors{1}, 'EdgeColor', colors{1}, 'BarWidth', 1, 'LineWidth', 0.1);
    -                                subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1});
    -                            end
    -                            datetick('x','keeplimits');
    -                            title(metric2label(metric{cc}, obj(c).binsize), 'FontSize',12)
    -                        end
    -                        axis tight;
    -                    end
    -                end
    -

    FROM HERE ON THE PLOTMODES HAVE NOT BEEN UPDATED

                elseif strcmp(plotmode, 'panels')
    -                % Each metric on a separate figure, showing all requested
    -                % subclasses on separate panels
    -                  for c = 1 : numel(metric)
    -                    figure(gcf+c)
    -
    -                    numsubplots = length(obj);
    -
    -                    for cc = numsubplots: -1: 1
    -                        if strcmp(metric{c},'energy')
    -                            %data = cumsum(magnitude.mag2eng(obj(cc).cum_mag));
    -                            data = (magnitude.mag2eng(obj(cc).cum_mag));
    -
    -                        else
    -                            % eval(  sprintf('data = obj(cc).%s;',metric{c} ) );
    -                            data = obj(cc).(metric{c});
    -                        end
    -                        if smoothbins > 1
    -                            data = smooth(data, smoothbins);
    -                        end
    -                        % where to position the axes
    -                        pos(1) = 0.1;
    -                        pos(2) = 0.1+(0.95-0.1)*(cc-1)/numsubplots;
    -                        pos(3) = 0.8;
    -                        pos(4) = (0.8*(0.95-0.1)/numsubplots);
    -                        axes('position', pos);
    -
    -                        % plot
    -                        bar( obj(cc).time, data, 'EdgeColor', 'none', 'FaceColor', [0 0 0] );
    -%                         hold on;
    -%                         sdata = smooth(data, 30, 'lowess');
    -%                         plot( obj(cc).time, sdata, 'k-', 'linewidth', 2);
    -
    -
    -                        % range and label
    -                        datetick('x','keeplimits');
    -                        set(gca, 'XLim', [obj(cc).snum obj(cc).enum]);
    -                        ymax = nanmax(matlab_extensions.catmatrices(1, data));
    -%                         ymax = min([max(sdata)*2 max(data)*1.01]);
    -                        set(gca, 'YLim', [0 ymax]);
    -                        ylabel(obj(cc).etype);
    -
    -
    -
    -                    end
    -                    %suptitle(metric{c});
    -                    fprintf('metric for figure %d is %s\n', gcf, metric{c});
    -                  end
    -
    -
    -            elseif strcmp(plotmode, 'single')
    -                  % Each metric on a separate figure, showing all requested
    -                  % subclasses on the same panel
    -                  colour = 'rgbcm';
    -                  for c = 1 : numel(metric)
    -                    figure(gcf+c)
    -
    -                    for cc = 1: length(obj)
    -                        if strcmp(metric{c},'energy')
    -                            %data = cumsum(magnitude.mag2eng(obj(cc).cum_mag));
    -                            data = (magnitude.mag2eng(obj(cc).cum_mag));
    -                        else
    -                            % eval(  sprintf('data = obj(cc).%s;',metric{c} ) );
    -                            data = obj(cc).(metric{c});
    -                        end
    -
    -                        if smoothbins > 1
    -                            data = smooth(data, smoothbins);
    -                        end
    -
    -                        plot( obj(cc).time, data, sprintf('-%c',colour(cc)) );
    -                        hold on;
    -                        datetick('x','keeplimits');
    -                        set(gca, 'XLim', [obj(cc).snum obj(cc).enum]);
    -                        %ymax = nanmax(matlab_extensions.catmatrices(1, data));
    -                        %set(gca, 'YLim', [0 ymax]);
    -                        %ylabel(obj(cc).etype);
    -                    end
    -                    suptitle(metric{c});
    -                  end
    -
    -
    -             elseif strcmp(plotmode, 'stacked')
    -                 % Each metric on a separate figure, showing all subclasses
    -                 % stacked on the same panel
    -                  colour = 'rgbcm';
    -                  for c = 1 : numel(metric)
    -                    figure(gcf+c)
    -                    data =[];
    -                    for cc = 1: length(obj)
    -                        if strcmp(metric{c},'energy')
    -                            data = (magnitude.mag2eng(obj(cc).cum_mag));
    -                        else
    -                            %eval(  sprintf('data(:,cc) = obj(cc).%s;',metric{c} ) );
    -                            data(:,cc) = obj(cc).(metric{c});
    -                            if findstr(metric{c}, 'mag')
    -                                disp('Warning: It is meaningless to stack magnitude data');
    -                                data(data<0)=0;
    -                                data(isnan(data))=0;
    -                            end
    -                        end
    -                        if smoothbins > 1
    -                            data = smooth(data, smoothbins);
    -                        end
    -
    -                        %bar( obj(cc).time, data, 1, 'stack' );
    -                        area(obj(cc).time, data);
    -                        datetick('x','keeplimits');
    -                        set(gca, 'XLim', [obj(cc).snum obj(cc).enum]);
    -                        suptitle(metric{c});
    -                    end
    -                end
    -            end
    -        end
    -

    PYTHONPLOT

            function pythonplot(obj)
    -            obj.plot('metric', {'counts';'cum_mag'});
    -        end
    -

    HELENAPLOT

            function helenaplot(obj)
    -            for c=1:length(obj)
    -                figure
    -                set(gcf,'Color', [1 1 1]);
    -                cumcummag = magnitude.eng2mag(cumsum(magnitude.mag2eng(obj(c).cum_mag)));
    -                [ax, h1, h2] = plotyy(obj(c).time, cumcummag, obj(c).time, cumsum(obj(c).energy), @plot, @plot);
    -                datetick(ax(1), 'x','keeplimits');
    -                datetick(ax(2), 'x','keeplimits');
    -                ylabel(ax(1), 'Cumulative Magnitude', 'FontSize',12);
    -                ylabel(ax(2), 'Cumulative Energy', 'FontSize',12);
    -            end
    -        end
    -
    -
    -        function pvalue(obj)
    -            logt = log10(obj.time-obj.time(1));
    -            logc = log10(obj.counts);
    -            plot(logt, logc);
    -            p = logt \ logc'
    -%             p = polyfit(logt, logc, 1)
    -%             hold on
    -%             logt1 = min(logt);
    -%             logc1 = polyval(p, logt1);
    -%             logt2 = max(logt);
    -%             logc2 = polyval(p, logt2);
    -%             line([logt1 logt2], [logc1 logc2]);
    -        end
    -

    SAUSAGEPLOT

            function sausageplot(obj, numBinsToUse, varargin)
    -            %sausageplot
    -            %    Under development, this function attempts to replicate the
    -            %    capabilities of sausageplot.xpy written by Glenn Thompson
    -            %    at AVO.
    -            p = inputParser;
    -            p.addRequired('numBinsToUse', @isnumeric);
    -            p.addOptional('numPoints', 1, @isnumeric);
    -            p.addOptional('radii', [], @isnumeric);
    -            p.parse(numBinsToUse, varargin{:});
    -            numBinsToUse = p.Results.numBinsToUse;
    -            numPoints = p.Results.numPoints;
    -            radii = p.Results.radii;
    -%             % Page size, dots-per-inch and scale settings
    -%             fh = figure()
    -%             if numBinsToUse > NUMPOINTS
    -%                 dpi = 6*(numBinsToUse+1);
    -%                 axes_width = 0.8 * (NUMPOINTS + 1) / (numBinsToUse + 1);
    -%                 axes_height = 0.8;
    -%             else
    -%                 dpi = 6*(NUMPOINTS+1);
    -%                 axes_width = 0.8;
    -%                 axes_height = 0.8 * (numBinsToUse + 1) / (NUMPOINTS + 1);
    -%             end
    -%             fh.set_dpi(dpi)
    -%             fh.set_size_inches((10.0,10.0),forward=True)
    -%             fig2ax1 = fig2.add_axes([0.1, 0.85-axes_height, axes_width, axes_height]);
    -%             print_pixels(fig2, fig2ax1, numBinsToUse, NUMPOINTS);
    -%             colormapname = 'hot_r';
    -            MAXMAGCOLORBAR = 5.0;
    -            MINMAGCOLORBAR = 1.0;
    -            % Marker size configuration
    -%             SCALEFACTOR = 84.0 / dpi;
    -%             MAXMARKERSIZE = 43.0 * SCALEFACTOR;
    -%             MINMARKERSIZE = 4.0 * SCALEFACTOR;
    -            PTHRESHOLD = 50;
    -            for c = 1:length(obj)
    -                % set up weekending list for yticklabels
    -                binendstr = {};
    -                for bin_index=numel(obj.time)-numBinsToUse+1: numel(obj.time)
    -                    bin_index
    -                    dstr = datestr(obj.time(bin_index))
    -                    binendstr{bin_index} = dstr;
    -                end
    -                pointlabels = {};
    -                for i=1:length(numPoints)
    -                    % filter here based on points and radii
    -                    j = 1:length(obj(c).counts); % replace this
    -                    counts = obj(c).counts(j);
    -                    cummag = obj(c).cum_mag(j);
    -                    prcntile = percentiles(obj(c).counts);
    -                    %pointlabels{i} = sprintf('%s(%d)', point_label{i}, counts(-1));
    -                    pointlabels{i}='';
    -                    for bin_index=numel(obj.time)-numBinsToUse+1: numel(obj.time)%-numBinsToUse-1: 1: 0
    -                        y = obj(c).counts(bin_index);
    -                        magnitude = obj(c).cum_mag(bin_index);
    -                        p = y2percentile(y,prcntile);
    -                        if y>0
    -                            colorVal = scalarMap.to_rgba(magnitude)
    -                            msize = MINMARKERSIZE + (p-PTHRESHOLD) * (MAXMARKERSIZE - MINMARKERSIZE) / (100-PTHRESHOLD);
    -                            if msize<MINMARKERSIZE
    -                                msize=MINMARKERSIZE;
    -                            end
    -%                             fig2ax1.plot(i+0.5, w, 's', color=colorVal, markersize=msize, linewidth=0 );
    -                            scatter(i+0.5, bin_index, msize, y, 's', 'filled')
    -                            if msize > MAXMARKERSIZE * 0.3
    -                                text(i+0.5, bin_index, num2str(y))
    -%                                fig2ax1.text(i+0.5, w, '%d', y, horizontalalignment='center', verticalalignment='center', fontsize = 8 * SCALEFACTOR)
    -                            end
    -                        end
    -                    end
    -                end
    -
    -                % Adding xticks, yticks, labels, grid
    -%                 fig2ax1.set_axisbelow(True) % I think this puts grid and tickmarks below actual data plotted
    -
    -                % x-axis
    -%                 fig2ax1.set_xticks(np.arange(.5,NUMVOLCANOES+.5,1))
    -                set(gca, 'XTick', 0.5:1:numPoints+0.5);
    -%                 fig2ax1.set_xlim([-0.5, NUMVOLCANOES+0.5])
    -                set(gca, 'XLim', [-0.5 numPoints+0.5])
    -%                 fig2ax1.xaxis.grid(True, linestyle='-', color='gray')
    -                grid on;
    -                set(gca, 'XTickLabel', pointlabels)
    -%                 fig2ax1.xaxis.set_ticks_position('top')
    -%                 fig2ax1.xaxis.set_label_position('top')
    -                %plt.setp( fig2ax1.get_xticklabels(), rotation=45, horizontalalignment='left', fontsize=10*SCALEFACTOR )
    -
    -                % y-axis
    -%                 fig2ax1.set_yticks(np.arange(-number_of_weeks_to_plot-0.5, 0, 1))
    -                set(gca, 'YTick', -numBinsToUse-0.5: 1: 0)
    -%                 fig2ax1.set_yticklabels(weekending)
    -                set(gca, 'YTickLabel', binendstr)
    -%                 fig2ax1.set_ylim([-number_of_weeks_to_plot - 0.5, -0.5])
    -                set(gca, 'YLim', -numBinsToUse -0.5 : 1 : -0.5)
    -%                 plt.setp( fig2ax1.get_yticklabels(), fontsize=10*SCALEFACTOR )
    -            end
    -        end
    -

    IMPORTSWARMDB

            function obj = importswarmdb(obj, dbname, auth, snum, enum)
    -            % IMPORTSWARMDB
    -            % Load a swarm database metrics table into an EventRate object
    -            % eventrate = importswarmdb(erobj, dbname, auth, snum, enum);
    -            %
    -            % INPUT:
    -            %	dbname		the path of the database (must have a 'metrics' table)
    -            %	auth		name of the grid to load swarm tracking metrics for
    -            %	snum,enum	start and end datenumbers (Matlab time format, see 'help datenum')
    -            %
    -            % OUTPUT:
    -            %	obj		an eventrate object
    -            %
    -            % Example:
    -            %	erobj = importswarmdb('/avort/devrun/dbswarm/swarm_metadata', 'RD_lo', datenum(2010, 7, 1), datenum(2010, 7, 14) );
    -
    -            % Glenn Thompson, 20100714
    -
    -            % initialize
    -            obj.dbroot = dbname;
    -            obj.snum = snum;
    -            obj.enum = enum;
    -            obj.auth = auth;
    -
    -            % check that database exists
    -            dbtablename = sprintf('%s.metrics',dbname);
    -            if exist(dbtablename,'file')
    -                % load the data
    -                try
    -                    db = dbopen(dbname, 'r');
    -                catch me
    -                    fprintf('Error: Could not open %s for reading',dbname);
    -                        return;
    -                end
    -                db = dblookup_table(db, 'metrics');
    -                if (dbquery(db, 'dbRECORD_COUNT')==0)
    -                    fprintf('Error: Could not open %s for reading',dbtablename);
    -                    return;
    -                end
    -                db = dbsubset(db, sprintf('auth ~= /.*%s.*/',auth));
    -                numrows = dbquery(db,'dbRECORD_COUNT');
    -                debug.print_debug(sprintf('Got %d rows after auth subset',numrows),2);
    -                sepoch = datenum2epoch(snum);
    -                eepoch = datenum2epoch(enum);
    -                db = dbsubset(db, sprintf('timewindow_starttime >= %f && timewindow_endtime <= %f',sepoch,eepoch));
    -                numrows = dbquery(db,'dbRECORD_COUNT');
    -                debug.print_debug(sprintf('Got %d rows after time subset',numrows),2);
    -
    -                if numrows > 0
    -                    % Note that metrics are only saved when mean_rate >= 1.
    -                    % Therefore there will be lots of mean_rate==0 timewindows not in
    -                    % database.
    -                    [tempsepoch, tempeepoch, mean_rate, median_rate, mean_mag, cum_mag] = dbgetv(db,'timewindow_starttime', 'timewindow_endtime', 'mean_rate', 'median_rate', 'mean_ml', 'cum_ml');
    -                    obj.binsize = (tempeepoch(1) - tempsepoch(1))/86400;
    -                    obj.stepsize = min(tempsepoch(2:end) - tempsepoch(1:end-1))/86400;
    -                    obj.time = snum+obj.stepsize:obj.stepsize:enum;
    -                    obj.numbins = length(obj.time);
    -                    obj.mean_rate = zeros(obj.numbins, 1);
    -                    obj.counts = zeros(obj.numbins, 1);
    -                    obj.median_rate = zeros(obj.numbins, 1);
    -                    obj.mean_mag = zeros(obj.numbins, 1);
    -                    obj.cum_mag = zeros(obj.numbins, 1);
    -                    for c=1:length(tempeepoch)
    -                        tempenum = epoch2datenum(tempeepoch(c));
    -                        i = find(obj.time == tempenum);
    -                        obj.mean_rate(i) = mean_rate(c);
    -                        obj.counts(i) = mean_rate(c) * (obj.binsize * 24);
    -                        obj.median_rate(i) = median_rate(c);
    -                        obj.mean_mag(i) = mean_mag(c);
    -                        obj.cum_mag(i) = cum_mag(c);
    -                    end
    -                end
    -                dbclose(db);
    -
    -            else
    -                % error - table does not exist
    -                fprintf('Error: %s does not exist',dbtablename);
    -                return;
    -            end
    -
    -            obj.total_counts = sum(obj.counts)*obj.stepsize/obj.binsize;
    -
    -        end
    -

    ADDFIELD

            function obj = addfield(obj,fieldname,val)
    -            %ADDFIELD add fields and values to object(s)
    -            %   obj = addfield(obj, fieldname, value)
    -            %   This function creates a new user defined field, and fills it with the
    -            %   included value.  If fieldname exists, it will overwrite the existing
    -            %   value.
    -            %
    -            %   Input Arguments
    -            %       obj: an EventRate object
    -            %       fieldname: a string name
    -            %       value: a value to be added for those fields.  Value can be anything
    -            %
    -            %   EventRate objects can hold user-defined fields.  To access the contents,
    -            %   use EventRate/get.
    -            %
    -            %   Example:
    -            %       % add a field called "TESTFIELD", containing the numbers 1-45
    -            %       obj = addfield(obj,'TestField',1:45);
    -            %
    -            %       % add a cell field called "MISHMOSH"
    -            %       obj = addfield(obj,'mishmosh',{'hello';'world'});
    -            %
    -            %       % see the result
    -            %       disp(obj)
    -            %
    -            % See also EventRate/set, EventRate/get
    -
    -            % AUTHOR: Glenn Thompson
    -
    -            if ischar(fieldname)
    -                mask = strcmp(fieldname, properties(obj));
    -                if any(mask)
    -                    obj = obj.set(fieldname, val);
    -                else
    -                    mask = strcmp(upper(fieldname),obj.misc_fields);
    -                    if any(mask)
    -                        obj = obj.set(fieldname, val);
    -                    else
    -                        obj.misc_fields = [obj.misc_fields, upper(fieldname)];
    -                        obj = obj.set(upper(fieldname), val);
    -                    end
    -                end
    -            else
    -                error('%s:addfield:invalidFieldname','fieldname must be a string', class(catalogObject))
    -            end
    -
    -        end
    -

    SET

            function obj = set(obj, varargin)
    -            %SET Set properties for EventRate object(s)
    -            %   obj = set(obj,'property_name', val, ['property_name2', val2])
    -            %   SET is one of the two gateway functions of an object, such as EventRate.
    -            %   Properties that are changed through SET are typechecked and otherwise
    -            %   scrutinized before being stored within the EventRate object.  This
    -            %   ensures that the other EventRate methods are all retrieving valid data,
    -            %   thereby increasing the reliability of the code.
    -            %
    -            %   Another strong advantage to using SET and GET to change and retrieve
    -            %   properties, rather than just assigning them to EventRate object directly,
    -            %   is that the underlying data structure can change and grow without
    -            %   harming the code that is written based on the EventRate object.
    -            %
    -            %   For a list of valid property names, type:
    -            %       properties(obj)
    -            %
    -            %   If user-defined fields were added to the EventRate object (ie, through
    -            %   addField), these fieldnames are also available through set.
    -            %
    -            %   Examples:
    -            %       (1) Change the description property
    -            %           obj = obj.set('description','hello world');
    -            %
    -            %       (2) Add new a field called CLOSEST_STATION with
    -            %           % the value 'MBLG'
    -            %           obj = obj.addfield('CLOSEST_STATION','MBLG');
    -            %
    -            %           % change the value of the CLOSEST_STATION field
    -            %           obj = obj.set('CLOSEST_STATION','MBWH');
    -            %
    -            %  See also EventRate/get, EventRate/addfield
    -
    -            Vidx = 1 : numel(varargin);
    -
    -            while numel(Vidx) >= 2
    -                prop_name = upper(varargin{Vidx(1)});
    -                val = varargin{Vidx(2)};
    -                mask = strcmp(upper(prop_name),upper(properties(obj)));
    -                if any(mask)
    -                    mc = metaclass(obj);
    -                    i = find(mask);
    -                    prop_name = mc.PropertyList(i).Name;
    -                    if isempty(mc.PropertyList(i).GetMethod)
    -                        %eval(sprintf('obj.%s=val;',prop_name));
    -                        obj.(prop_name) = val;
    -                    else
    -                        warning('Property %s is a derived property and cannot be set',prop_name);
    -                    end
    -                else
    -                    switch prop_name
    -                        case obj.misc_fields
    -                            mask = strcmp(prop_name,obj.misc_fields);
    -                            obj.misc_values(mask) = {val};
    -                        otherwise
    -                            error('%s:set:unknownProperty',...
    -                                'can''t understand property name : %s', mfilename,prop_name);
    -                    end
    -                end
    -                Vidx(1:2) = []; %done with those parameters, move to the next ones...
    -            end
    -        end
    -

    GET

            function val = get(obj,prop_name)
    -            %GET Get EventRate properties
    -            %   val = get(EventRate_object,'property_name')
    -            %
    -            %   To see valid property names, type:
    -            %       properties(EventRate_object)
    -            %
    -            %       If additional fields were added to EventRate using ADDFIELD, then
    -            %       values from these can be retrieved using the fieldname
    -            %
    -            %   See also EventRate/SET, EventRate/ADDFIELD, Catalog/GET
    -
    -            mask = strcmp(prop_name, properties(obj));
    -            if any(mask)
    -                % eval(sprintf('val=obj.%s;',prop_name));
    -                val = obj.(prop_name);
    -            else
    -                mask = strcmp(upper(prop_name),obj.misc_fields);
    -                if any(mask)
    -                    val = obj.misc_values{mask};
    -                else
    -                    warning('%s:get:unrecognizedProperty',...
    -                        'Unrecognized property name : %s',  class(obj), prop_name);
    -                end
    -            end
    -        end
    -
        end % methods
    -
    -
    -    methods(Static)
    -        cookbook()
    -    end
    -
    end
    -

    PERCENTILES

    function p=percentiles(vals)
    -    lenVals = length(vals);
    -    for i=1:100
    -        p(i) = vals(floor(i/100 * (lenVals-1))+1);
    -    end
    -end
    -

    PLOT_PERCENTILES

    function plot_percentiles(p)
    -    figure(gcf+1, 'Color', [1 1 1])
    -    plot(1:100, p);
    -end
    -
    -function label = metric2label(metric, binsize)
    -    % label = metric2label(metric, binsize)
    -    label=metric;
    -    blabel = Catalog.binning.binsizelabel(binsize);
    -    time_unit = blabel(4:end);
    -    if strcmp(metric, 'counts')
    -        label = sprintf('# Events %s',blabel);
    -    elseif strcmp(metric, 'energy')
    -        label = sprintf('Energy %s',blabel);
    -    elseif strcmp(metric, 'mean_rate')
    -        label = sprintf('Mean # events per hour (binsize %s)', time_unit);
    -    elseif strcmp(metric, 'median_rate')
    -        label = sprintf('Median # events per hour (binsize %s)', time_unit);
    -    elseif strcmp(metric, 'cum_mag')
    -        label = sprintf('Cumulative Magnitude per hour (binsize %s)', time_unit);;
    -    elseif strcmp(metric, 'mean_mag')
    -        label = sprintf('Mean Magnitude per hour (binsize %s)', time_unit);
    -    elseif strcmp(metric, 'median_mag')
    -        label = sprintf('Median Magnitude per hour (binsize %s)', time_unit);
    -    end
    -end
    -
    \ No newline at end of file diff --git a/core/@EventRate/html/cookbook.html b/core/@EventRate/html/cookbook.html deleted file mode 100644 index 42e1ebb..0000000 --- a/core/@EventRate/html/cookbook.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - EventRate Cookbook

    EventRate Cookbook

    The EventRate class is for making plots of:

    • number of events per unit time (often called "counts")
    • energy release rate / cumulative magnitude per unit time

    Contents

    Simple EventRate example

    First we create a Catalog object from the Redoubt dataset

    dbpath = Catalog.demo.demodb('avo');
    -redoubtLon = -152.7431;
    -redoubtLat = 60.4853;
    -maxR = km2deg(20.0);
    -catalogObject = Catalog.retrieve('antelope', 'dbpath', dbpath, ...
    -	'radialcoordinates', [redoubtLat redoubtLon maxR]);
    -
    Loading data from /Users/glennthompson/src/GISMO/core/+Catalog/+demo/css3.0/avodb200903
    -Got 1397 events
    -

    For a quick plot of earthquakes per hour, we create an eventrate object and then plot it. Here our binsize is 1/24 days, i.e. 1 hour.

    eventrateObject = catalogObject.eventrate('binsize', 1/24);
    -eventrateObject.plot()
    -

    Change to a smaller bin size of 20 minutes:

    eventrateObject = catalogObject.eventrate('binsize', 20/1440);
    -plot(eventrateObject);
    -

    Note that

    eventrateObject.plot()
    -

    and

    plot(eventrateObject)
    -

    do exactly the same thing. The first is the object-oriented style OBJECT.METHOD(INPUT PARAMETERS), the second is the functional style FUNCTION(OBJECT, INPUT PARAMETERS). The object oriented style is preferable

    Event rates for overlapping time windows

    Sometimes it is desirable to compute event rate metrics for sliding - i.e. overlapping - time windows. This is easily done with the 'stepsize' parameter. If omitted, stepsize defaults to the binsize - which is the length of the time window. So in the previous example, both binsize and stepsize were 1.0 hours. But we can just as easily compute an eventrate object for the same Events object with a binsize of 1 hour, and stepsize of 1 minute. This effectively converts a Catalog into a set of continuous metrics, measured every minute, directly comparable to 1-minute RSAM.

    eventrateObject = catalogObject.eventrate('binsize', 1/24,  'stepsize', 1/1440);
    -eventrateObject.plot()
    -

    Plots of other event rate metrics

    eventrateObject.plot()
    -

    is equivalent to typing:

    eventrateObject.plot('metric', 'counts');
    -

    The full list of metrics that can be plotted are:

    • counts
    • mean_rate
    • median_rate
    • cum_mag
    • mean_mag
    • median_mag
    • energy

    All of these are properties of an eventrate object except for energy, which is computed from cum_mag on-the-fly. Several can be plotted at once in subplots of the same figure using a cell array:

    eventrateObject.plot('metric', {'mean_rate'; 'median_rate'; 'mean_mag'; 'cum_mag'});
    -

    They can of course be plotted in separate figure windows:

    eventrateObject.plot('metric', 'mean_rate')
    -eventrateObject.plot('metric', 'median_rate')
    -eventrateObject.plot('metric', 'mean_mag')
    -eventrateObject.plot('metric', 'cum_mag')
    -

    These are the same metrics, binsize and stepsize used by the [AVO swarm tracking system] (http://www.aeic.alaska.edu/input/west/papers/2009_srl_thompson_redoubtSwarms.pdf).

    Other plot types

    Two more simple plot types are:

    eventrateObject.helenaplot()
    -

    and:

    eventrateObject.pythonplot()
    -

    End of tutorial

    \ No newline at end of file diff --git a/core/@EventRate/html/cookbook.png b/core/@EventRate/html/cookbook.png deleted file mode 100644 index 5d749f4762d9590844e77c43394f0a572f565991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3649 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 Tk5;3X00000NkvXXu0mjfUbH%v diff --git a/core/@EventRate/html/cookbook_01.png b/core/@EventRate/html/cookbook_01.png deleted file mode 100644 index 7444327d0630f7b59171291a5ea8c95001d22fb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11238 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 Y?iV0ck=Pal4{RY&8KswHFO2;D2UwOUg#Z8m diff --git a/core/@EventRate/html/cookbook_02.png b/core/@EventRate/html/cookbook_02.png deleted file mode 100644 index 6c8b59edd0f902ffb62b2e233a902ea88f089f8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10745 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 bL=IU4avm&=D;~JB2+~s1Q$;?qd-cBnlF>J9 diff --git a/core/@EventRate/html/cookbook_03.png b/core/@EventRate/html/cookbook_03.png deleted file mode 100644 index f2521822261f6ba81d935b3848845a885d8bc02b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9865 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�Jre-^4 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 z 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%0A2oILwXN#4QVh*>6 z_J2=qh~Oz%DTqXaXQCj0I_AZ>{ zAR!O|^5aYUPsM>UWj9;`vJ;t*q@*PCj>vpokX!Ep`LwwLa45Q-6bX1%7V~TEOTFy& z^~M`?x2}%`6&Dpf-kfQ(9A?zg!Oa3Hys(gvGaHz)Bww)Z0Ru|zXAC(JgkYD$Olz540OnPP*ealCwlRx zWf>WtCYI44^({*N0*;_iv%PTmmX(CUmypVZrUK@1E zlon2uW~}J1bd;7^D_)~Ct)}wk7O}}k3|${|D&~y%jTf{2qqLK$b1g5zQQ}$06aiX~ zUP1-wHk+~a5mXjJN-Ucv*d9@eJZ}h&uh>Zo>zN57K-9-J+e*^J`_g` zjrHO46iJPu^_pv7%xI2OKtAc=<^i!x?fG4}fr3w3)3t~3l`QVwQ}ZsJm#eyd?87|# z86qJ0@aL!{Lso(>zLZFii~{N?lhj*6hNzFK0G#u=*iGoG%R!}s!|-6bSZ~( z?0lJyK_FSvQsC~|jtL7sN=f{nAtC0X7ocgSN8z-!5@ngp%M}J*04Fu6*EIi{lIh#C zmq%0x7_TeYndoK&HAXzKb(YSwFsr`!A$LCCb09r=<7T zhYwy#Y3D0gi=%wBp~%T{uzA`ocf}{bG!6HL12Yt?hs{q7*}#2?$NsAu$oxx6{Bv@5 zx3yIA`$fYmzx0~XpPc77IJ!~%^#AqcMkUHdw{;5f2HQyUyG3^oKu%ChOJY6Wcwb3N zN_f}*h$ufb<=MNVS!($A!FQPN-WQvCufxqvW{B%AtyK0@3@D+er*-20*nT@ao@{b0 z^^AU&4}-Qrx#Cq&^BHG_Xu^rf%ki!|Zb$luk8ylt>ZT<>Fkq#3s;UCjq#xv3(dfqR z*sov#uZ2>-j=Z;Qpt>C*kMGpedmO&gDQtaeetn7x8W4Uh@Tpfg&t&W!%BK4$)S?e^ zdLQ?wn7Eh4brgEfKgTlY{pUoH=1$e|5t{_#kyDxEJxl|2Hr9EMw&oJLS8WtU%3Jhz z>sNo0Rt8z≦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 diff --git a/core/@EventRate/html/cookbook_10.png b/core/@EventRate/html/cookbook_10.png deleted file mode 100644 index 88a9da496b901e2ed21942e833df51acc812e4f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17035 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 PuPG?Vs7Mz`8U_A8*0 & ~all(isinf(data)) & ~all(isnan(data)) + % replace -Inf values as they mess up plots + ydata = data; % ydata is the data we will plot, but we keep data for cumulative energy etc. + if smoothbins > 1 + ydata = smooth(ydata, smoothbins); + end +% ydata(isinf(data))=NaN; +% mindata = nanmin(ydata); +% ydata(isnan(ydata))=mindata; % we replace NaNs and Infs in data with nanmin(data) in ydata + if (obj(c).binsize == obj(c).stepsize) & ( strcmp(metric{cc}, 'counts') | strcmp(metric{cc}, 'energy') | strcmp(metric{cc}, 'cum_mag') ) + if strfind(metric{cc}, 'mag') + cumdata = magnitude.eng2mag(cumsum(magnitude.mag2eng(data))); + subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, ydata, obj(c).time, cumdata, @stairs, @plot ); + set(h1, 'Color', colors{1}); + else + subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, data, obj(c).time + obj(c).binsize/2, cumsum(data), @bar, @stairs ); + %subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(obj(c).time, ydata, obj(c).time, cumsum(data), @stairs, @plot ); + set(h1, 'FaceColor', colors{1}, 'EdgeColor', colors{1}) + set(h1, 'BarWidth', 1); + set(h1, 'LineWidth', 0.1); + end + datetick(ax(1), 'x','keeplimits'); + ylabel(ax(1), metric2label(metric{cc}, obj(c).binsize), 'Color', colors{1}) + datetick(ax(2), 'x','keeplimits'); + ylabel(ax(2),'Cumulative', 'Color', colors{2}) + %set(h1, 'Color', colors{1}); + %set(h2, 'Color', colors{2}, 'LineWidth', 2); + ylims = get(ax(1), 'YLim'); + set(ax(1), 'YColor', colors{1}, 'YLim', [0 ylims(2)]); + ylims = get(ax(2), 'YLim'); + set(ax(2), 'YColor', colors{2}, 'YLim', [0 ylims(2)]); + linkaxes(ax, 'x'); + else + + if strfind(metric{cc}, 'mag') + subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1}); + else + subplot(numsubplots,1,cc), bar(obj(c).time, data, 1, 'FaceColor', colors{1}, 'EdgeColor', colors{1}, 'BarWidth', 1, 'LineWidth', 0.1); + %subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1}); + end + datetick('x','keeplimits'); + ylabel(metric2label(metric{cc}, obj(c).binsize)) + end + end +% axis tight; +% a=axis; +% axis([a(1) a(2) 0 a(4)]) + end + end + + %% FROM HERE ON THE PLOTMODES HAVE NOT BEEN UPDATED + elseif strcmp(plotmode, 'panels') + % Each metric on a separate figure, showing all requested + % subclasses on separate panels + for c = 1 : numel(metric) + %figure(get(gcf,'Number')+c) + figure + numsubplots = numel(obj); + + %for cc = numsubplots: -1: 1 + for cc = 1:numsubplots + ccc = numsubplots-cc+1; + if strcmp(metric{c},'energy') + %data = cumsum(magnitude.mag2eng(obj(cc).cum_mag)); + data = (magnitude.mag2eng(obj(ccc).cum_mag)); + + else + % eval( sprintf('data = obj(cc).%s;',metric{c} ) ); + data = obj(ccc).(metric{c}); + end + if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) + if smoothbins > 1 + data = smooth(data, smoothbins); + end + % where to position the axes + pos(1) = 0.1; + pos(2) = 0.1+(0.95-0.1)*(cc-1)/numsubplots; + pos(3) = 0.8; + pos(4) = (0.8*(0.95-0.1)/numsubplots); + axes('position', pos); + end + + % plot + if numel(data)>0 + bar( obj(ccc).time, data, 1, 'EdgeColor', 'none', 'FaceColor', [0 0 0] ); + % hold on; + % sdata = smooth(data, 30, 'lowess'); + % plot( obj(cc).time, sdata, 'k-', 'linewidth', 2); + + + % range and label + datetick('x','keeplimits'); + set(gca, 'XLim', [obj(ccc).snum obj(ccc).enum]); + ymax = nanmax(catmatrices(1, data)); + % ymax = min([max(sdata)*2 max(data)*1.01]); + set(gca, 'YLim', [0 ymax]); + ylabel(obj(ccc).etype); + end + + + + end + %title(metric{c}); + fprintf('metric for figure %d is %s\n', get(gcf,'Number'), metric{c}); + end + + + elseif strcmp(plotmode, 'single') + % Each metric on a separate figure, showing all requested + % subclasses on the same panel + colour = 'rgbcm'; + for c = 1 : numel(metric) + %figure(get(gcf,'Number')+c) + figure + for cc = 1: length(obj) + if strcmp(metric{c},'energy') + %data = cumsum(magnitude.mag2eng(obj(cc).cum_mag)); + data = (magnitude.mag2eng(obj(cc).cum_mag)); + else + % eval( sprintf('data = obj(cc).%s;',metric{c} ) ); + data = obj(cc).(metric{c}); + end + + if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) + + if smoothbins > 1 + data = smooth(data, smoothbins); + end + + plot( obj(cc).time, data, sprintf('-%c',colour(cc)) ); + hold on; + datetick('x','keeplimits'); + set(gca, 'XLim', [obj(cc).snum obj(cc).enum]); + %ymax = nanmax(catmatrices(1, data)); + %set(gca, 'YLim', [0 ymax]); + %ylabel(obj(cc).etype); + end + end + title(metric{c}); + end + + + elseif strcmp(plotmode, 'stacked') + % Each metric on a separate figure, showing all subclasses + % stacked on the same panel + colour = 'rgbcm'; + for c = 1 : numel(metric) + figure(get(gcf,'Number')+c) + data =[]; + for cc = 1: length(obj) + if strcmp(metric{c},'energy') + data = (magnitude.mag2eng(obj(cc).cum_mag)); + else + %eval( sprintf('data(:,cc) = obj(cc).%s;',metric{c} ) ); + %data(:,cc) = obj(cc).(metric{c}); + data = obj(cc).(metric{c}); + if findstr(metric{c}, 'mag') + disp('Warning: It is meaningless to stack magnitude data'); + data(data<0)=0; + data(isnan(data))=0; + end + end + if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) + if smoothbins > 1 + data = smooth(data, smoothbins); + end + + %bar( obj(cc).time, data, 1, 'stack' ); + area(obj(cc).time, data); + datetick('x','keeplimits'); + set(gca, 'XLim', [obj(cc).snum obj(cc).enum]); + title(metric{c}); + end + end + end + end + end + diff --git a/core/@EventRate/obsolete/set.m b/core/@EventRate/obsolete/set.m new file mode 100644 index 0000000..b6e2edc --- /dev/null +++ b/core/@EventRate/obsolete/set.m @@ -0,0 +1,63 @@ +%% SET +function obj = set(obj, varargin) + %SET Set properties for EventRate object(s) + % obj = set(obj,'property_name', val, ['property_name2', val2]) + % SET is one of the two gateway functions of an object, such as EventRate. + % Properties that are changed through SET are typechecked and otherwise + % scrutinized before being stored within the EventRate object. This + % ensures that the other EventRate methods are all retrieving valid data, + % thereby increasing the reliability of the code. + % + % Another strong advantage to using SET and GET to change and retrieve + % properties, rather than just assigning them to EventRate object directly, + % is that the underlying data structure can change and grow without + % harming the code that is written based on the EventRate object. + % + % For a list of valid property names, type: + % properties(obj) + % + % If user-defined fields were added to the EventRate object (ie, through + % addField), these fieldnames are also available through set. + % + % Examples: + % (1) Change the description property + % obj = obj.set('description','hello world'); + % + % (2) Add new a field called CLOSEST_STATION with + % % the value 'MBLG' + % obj = obj.addfield('CLOSEST_STATION','MBLG'); + % + % % change the value of the CLOSEST_STATION field + % obj = obj.set('CLOSEST_STATION','MBWH'); + % + % See also EventRate/get, EventRate/addfield + + Vidx = 1 : numel(varargin); + + while numel(Vidx) >= 2 + prop_name = upper(varargin{Vidx(1)}); + val = varargin{Vidx(2)}; + mask = strcmp(upper(prop_name),upper(properties(obj))); + if any(mask) + mc = metaclass(obj); + i = find(mask); + prop_name = mc.PropertyList(i).Name; + if isempty(mc.PropertyList(i).GetMethod) + %eval(sprintf('obj.%s=val;',prop_name)); + obj.(prop_name) = val; + else + warning('Property %s is a derived property and cannot be set',prop_name); + end + else + switch prop_name + case obj.misc_fields + mask = strcmp(prop_name,obj.misc_fields); + obj.misc_values(mask) = {val}; + otherwise + error('%s:set:unknownProperty',... + 'can''t understand property name : %s', mfilename,prop_name); + end + end + Vidx(1:2) = []; %done with those parameters, move to the next ones... + end +end \ No newline at end of file diff --git a/core/@EventRate/plot.m b/core/@EventRate/plot.m new file mode 100644 index 0000000..b699a6e --- /dev/null +++ b/core/@EventRate/plot.m @@ -0,0 +1,202 @@ +function plot(obj, varargin) + %EventRate/plot + % Plot metrics of an EventRate object + % + % The following metrics are available: + % + % counts % number of events in each bin + % mean_rate % number of events per hour in each bin + % median_rate % reciprocal of the median time interval between events. Represented as an hourly rate. + % energy % total sum of energy in each bin + % cum_mag % total sum of energy in each bin, represented as a magnitude. + % mean_mag % mean magnitude of events in each bin + % median_mag % median magnitude of events in each bin + % min_mag % smallest magnitude in each bin + % + % erobj.plot() or plot(erobj) will produce a plot of event + % counts per unit time. The time unit is given by erobj.binsize + % days. + % + % erobj.plot('metric', list_of_metrics) will plot each metric + % requested in list_of_metrics in a separate panel. + % list_of_metrics should be a cell array of valid metric + % strings. However, it may be a string if only one metric is + % requested. + % + % erobj.plot('metric', 'counts') is equivalent to + % erobj.plot() and erobj.plot('metric', {'counts'}) + % + % erobj.plot('metric', 'mean_rate') is similar, but the + % mean_rate is always events per hour, regardless of the + % binsize. So if erobj.binsize = 1 (day), counts will be + % exactly 24 * mean_rate. + % + % erobj.plot('metric', {'counts';'cum_mag'}) will plot counts + % in one panel and the cumulative magnitude per bin in + % another panel. + % + % In general any number of metrics can be given in + % list_of_metrics. + % + % If erobj is an array of eventrate structures (e.g. one per + % etype), each is plotted on a separate figure. However the + % plotmode variable overrides this: + % + % plot(eventrate_vector, 'plotmode', 'panels') will plot them + % in separate panels on the same figure + % + % plot(eventrate_vector, 'plotmode', 'single') will plot them + % in a single panel + + p = inputParser; + p.addParameter('metric', {'counts'}, @(c) iscell(c)||isstr(c)); + p.addParameter('plotmode', 'figures', @isstr); + p.addParameter('smooth', 1, @isnumeric); + p.parse(varargin{:}); + metric = p.Results.metric; + plotmode = p.Results.plotmode; + smoothbins = p.Results.smooth; % NOT DOING ANYTHING WITH THIS YET BUT COULD SMOOTH COUNTS OVER SEVERAL BINS + if ~iscell(metric) + metric = {metric}; + end + numMetrics = numel(metric); + colors = {[0 0.8 0] [0 0 0.8]}; + + % plot each etype on a separate figure, each metric as a + % subplot + + fh = []; + for c = 1 : numel(obj) + binsize_str = Catalog.binning.binsizelabel(obj(c).binsize); + numsubplots = numMetrics; + + switch numsubplots + case 1, fontsize = 12; + case 2, fontsize = 8; + otherwise, fontsize = 6; + end + set(0, 'defaultTextFontSize',fontsize); + + fh(c) = figure; + unique_subclasses = unique(char([obj(c).etype{:}])'); + if length(unique_subclasses)==1 + longname = Catalog.subclass2longname(unique_subclasses); + else + longname = Catalog.subclass2longname('*'); + end + set(fh(c),'Color', [1 1 1], 'Name', sprintf('%s activity beginning %s',longname, datestr(obj(c).time(1),29) ) ); + for cc = 1: numsubplots % number of metrics to plot + data = obj(c).(metric{cc}); + if numel(data)>0 & ~all(isinf(data)) & ~all(isnan(data)) + % replace -Inf values as they mess up plots + y = data; % ydata is the data we will plot, but we keep data for cumulative energy etc. + if smoothbins > 1 + y = smooth(y, smoothbins); + end + y(isinf(y))=NaN; + mindata = nanmin(y); + y(isnan(y))=mindata; % we replace NaNs and Infs in data with nanmin(data) in ydata + + labels = metric2label(metric{cc}, obj(c).binsize); + t = [ obj(c).time - obj(c).binsize/2 ]; t = [t t(end)+obj(c).binsize]; + y = [y y(end)]; + clear ax h1 h2 + + % We will only use plotyy to plot 2 axis when we have a metric that can be cumulated + % So the metric must be counts, energy or cumulative magnitude + % and the bins must be non-overlapping + if (obj(c).binsize == obj(c).stepsize) & ( strcmp(metric{cc}, 'counts') | strcmp(metric{cc}, 'energy') | strcmp(metric{cc}, 'cum_mag') ) + + cumy = cumsum(data); cumy = [cumy cumy(end)]; + subplot(numsubplots,1,cc), [ax, h1, h2] = plotyy(t, y, t, cumy, @stairs, @stairs ); + + % with plotyy the right hand label + % was off the page, so fix this + apos=get(ax(1),'Position'); + apos(3)=0.75; + set(ax(1),'Position',apos); + set(ax(2),'Position',apos); + + %% graph 1 + set(h1, 'LineWidth', 3, 'Color', colors{1}); + datetick(ax(1), 'x','keeplimits'); + ylabel(ax(1), labels{1}, 'Color', colors{1}, 'FontSize', fontsize) + ylims = get(ax(1), 'YLim'); + set(ax(1), 'YColor', colors{1}, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); + xticklabels = get(ax(1), 'XTickLabels'); + set(ax(1), 'XTickLabels', xticklabels, 'FontSize', fontsize); + yticklabels = get(ax(1), 'YTickLabels'); + set(ax(1), 'YTickLabels', yticklabels, 'FontSize', fontsize); + + %% graph 2 + set(h2, 'LineWidth', 3, 'Color', colors{2}); + datetick(ax(2), 'x','keeplimits'); + ylabel(ax(2),labels{2}, 'Color', colors{2}, 'FontSize', fontsize) + ylims = get(ax(2), 'YLim'); + set(ax(2), 'YColor', colors{2}, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); + xticklabels = get(ax(2), 'XTickLabels'); + set(ax(2), 'XTickLabels', xticklabels, 'FontSize', fontsize); + yticklabels = get(ax(2), 'YTickLabels'); + set(ax(2), 'YTickLabels', yticklabels, 'FontSize', fontsize); + + linkaxes(ax, 'x'); + + else + + % So here we either have overlapping bins, or a metric + % that is not counts, energy or cum_mag + % In all these cases, we only have 1 graph per subplot + + + %% graph 1 (there is only 1 in this case) + if strfind(metric{cc}, 'mag') + %subplot(numsubplots,1,cc), stairs(obj(c).time, data, 'Color', colors{1}); + subplot(numsubplots,1,cc), ax(1)=stairs(t, y, 'Color', colors{1}); + else + %subplot(numsubplots,1,cc), bar(obj(c).time, data, 1, 'FaceColor', colors{1}, 'EdgeColor', colors{1}, 'BarWidth', 1, 'LineWidth', 0.1); + subplot(numsubplots,1,cc), ax(1)=bar(t, y, 1, 'FaceColor', colors{1}, 'EdgeColor', colors{1}, 'BarWidth', 1, 'LineWidth', 0.1); + %subplot(numsubplots,1,cc), stairs(obj(c).time, ydata, 'Color', colors{1}); + end + + %ylabel(metric2label(metric{cc}, obj(c).binsize)) + datetick('x','keeplimits'); + title(labels{1}, 'FontSize', fontsize) + ylims = get(gca, 'YLim'); + set(gca, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); + xticklabels = get(gca, 'XTickLabels'); + set(gca,'XTickLabels', xticklabels, 'FontSize', fontsize); + yticklabels = get(gca, 'YTickLabels'); + set(gca,'YTickLabels', yticklabels, 'FontSize', fontsize); + end + end + + end + + % fontsize for labels - this does not appear to work + set(findall(gcf,'-property','FontSize'),'FontSize',fontsize) + end +end + +function labels = metric2label(metric, binsize) + % label = metric2label(metric, binsize) + labels={}; + blabel = Catalog.binning.binsizelabel(binsize); + time_unit = blabel(4:end); + if strcmp(metric, 'counts') + labels{1} = sprintf('# Events %s',blabel); + labels{2} = 'Cumulative # events'; + elseif strcmp(metric, 'energy') + labels{1} = sprintf('Energy %s (J)',blabel); + labels{2} = 'Cumulative energy (J)'; + elseif strcmp(metric, 'mean_rate') + labels{1} = sprintf('Mean # events per hour\n(binsize %s)', time_unit); + elseif strcmp(metric, 'median_rate') + labels{1} = sprintf('Median # events per hour\n(binsize %s)', time_unit); + elseif strcmp(metric, 'cum_mag') + labels{1} = sprintf('Cumulative Magnitude per hour\n(binsize %s)', time_unit);; + elseif strcmp(metric, 'mean_mag') + labels{1} = sprintf('Mean Magnitude per hour\n(binsize %s)', time_unit); + elseif strcmp(metric, 'median_mag') + labels{1} = sprintf('Median Magnitude per hour\n(binsize %s)', time_unit); + end +end \ No newline at end of file diff --git a/core/@EventRate/pythonplot.m b/core/@EventRate/pythonplot.m new file mode 100644 index 0000000..3f20c5a --- /dev/null +++ b/core/@EventRate/pythonplot.m @@ -0,0 +1,4 @@ +%% PYTHONPLOT +function pythonplot(obj) + obj.plot('metric', {'counts';'cum_mag'}); +end \ No newline at end of file diff --git a/core/@drumplot/html/cookbook.html b/core/@drumplot/html/cookbook.html deleted file mode 100644 index e24db29..0000000 --- a/core/@drumplot/html/cookbook.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - drumplot cookbook

    drumplot cookbook

    In this example you will learn how to create a waveform object by loading a SAC file, extract 1 hour of data from that waveform object, and make a helical drum recorder plot using the drumplot class.

    Another feature of drumplot is that it allows detected events, from a Catalog object, to be superimposed on the helicorder plot. In the example below this Catalog is generated by running an STA/LTA detection algorithm on the extracted 1-hour waveform object.

    Contents

    Load 1 day of data for REF.EHZ on 2009.03.22

    % here we can either use scnlobject or ChannelTag to describe the
    -% net-sta-loc-chan we want. waveform understands both.
    -ctag = ChannelTag('AV.REF.-.EHZ')
    -
    -% starttime in MATLAB datenum format
    -snum = datenum(2009,3,22);
    -
    -% endtime (1 day after start)
    -enum=snum+1;
    -
    -% create the datasource object - in this case it is a SAC file
    -ds = datasource('sac', 'SACDATA/REF.EHZ.2009-03-22T00:00:00.000000Z.sac');
    -
    -% create the waveform object with this datasource, ChannelTag, starttime
    -% and endtime
    -w=waveform(ds, ctag, snum, enum);
    -
    -ctag = 
    -
    -<a href="matlab:help ChannelTag">ChannelTag</a> with network.station.location.channel:
    -   network: 'AV'
    -   station: 'REF'
    -  location: '-'
    -   channel: 'EHZ'
    -

    fill gaps, detrend, band pass filter

    % in case there are gaps in the time series (marked by NaN) we can interpolate a
    -% meaningful value
    -w = fillgaps(w, 'interp');
    -
    -% detrend the time series - this removes linear drift
    -w = detrend(w);
    -
    -% create a Butterworth bandpass filter from 0.5 to 15 Hz, 2 poles
    -fobj = filterobject('b', [0.5 15], 2);
    -
    -% apply the filter in both directions (acausal) - this is a zero phase
    -% filter which is helpful because it doesn't disperse different frequency
    -% components. the caveat is that it can spread energy so arrivals may appear
    -% slighter earlier than they actually are
    -w = filtfilt(fobj, w);
    -

    plot the waveform object

    figure
    -plot(w)
    -

    extract the first 1 hour of data and plot with 5 minutes per line

    starttime = get(w,'start');
    -w2=extract(w, 'time', starttime, starttime + 1/24 )
    -
    -% make a drumplot object. mpl means minutes per line and is set here to 5.
    -h2 = drumplot(w2, 'mpl', 5);
    -
    -% plot the drumplot object - many events are visible, this is an earthquake
    -% swarm
    -plot(h2)
    -
     
    -w2 =
    - 
    - ChannelTag: AV.REF..EHZ       [network.station.location.channel]
    -      start: 2009-03-22 00:00:00.000
    -             duration(01:00:00.000)
    -       data: 360000 samples
    -       freq: 100.0000   Hz
    -      units: Counts
    -    history: [3 items], last modification: 18-May-2016 15:25:36
    -    With misc fields...
    -    * SCALE: 1
    -    * NZYEAR: 2009
    -    * NZJDAY: 81
    -    * NZHOUR: 0
    -    * NZMIN: 0
    -    * NZSEC: 0
    -    * NZMSEC: 0
    -    * IFTYPE: 1
    -    * IZTYPE: 9
    -    * LPSPOL: 0
    -    * LOVROK: 1
    -    * LCALDA: 1
    -    * KEVNM: -12345  -12345
    -

    Run an STA/LTA detector on the waveform object to detect events

    Compute STA/LTA ratio. In this example, trigger "ON" when STA/LTA exceeds 3, trigger "OFF" when this drops back below 1.5. If the trigger was on for at least 2 seconds, declare it as an event. All the events get saved into a Catalog object.

    % set the STA/LTA detector
    -sta_seconds = 0.7; % STA time window 0.7 seconds
    -lta_seconds = 7.0; % LTA time window 7 seconds
    -thresh_on = 3; % Event triggers "ON" with STA/LTA ratio exceeds 3
    -thresh_off = 1.5; % Event triggers "OFF" when STA/LTA ratio drops below 1.5
    -minimum_event_duration_seconds = 2.0; % Trigger must be on at least 2 secs
    -pre_trigger_seconds = 0; % Do not pad before trigger
    -post_trigger_seconds = 0; % Do not pad after trigger
    -event_detection_params = [sta_seconds lta_seconds thresh_on thresh_off ...
    -    minimum_event_duration_seconds];
    -
    -% run the STA/LTA detector. lta_mode = 'frozen' means the LTA stops
    -% updating when trigger is "ON".
    -[cobj,sta,lta,sta_to_lta] = Detection.sta_lta(w2, 'edp', event_detection_params, ...
    -    'lta_mode', 'frozen');
    -
    -% not sure what this is for
    -set(gca, 'XLim', [44*60 48*60])
    -
    Event 1: 22-Mar-2009 00:00:47 to 22-Mar-2009 00:00:58
    -Event 2: 22-Mar-2009 00:07:05 to 22-Mar-2009 00:07:08
    -Event 3: 22-Mar-2009 00:08:06 to 22-Mar-2009 00:08:08
    -Event 4: 22-Mar-2009 00:08:23 to 22-Mar-2009 00:08:28
    -Event 5: 22-Mar-2009 00:09:11 to 22-Mar-2009 00:09:23
    -Event 6: 22-Mar-2009 00:09:32 to 22-Mar-2009 00:09:38
    -Event 7: 22-Mar-2009 00:09:47 to 22-Mar-2009 00:09:57
    -Event 8: 22-Mar-2009 00:13:46 to 22-Mar-2009 00:13:51
    -Event 9: 22-Mar-2009 00:15:34 to 22-Mar-2009 00:15:44
    -Event 10: 22-Mar-2009 00:17:15 to 22-Mar-2009 00:17:24
    -Got 46 events
    -

    Plot detected events on top of the continuous drumplot

    h3 = drumplot(w2, 'mpl', 5, 'catalog', cobj);
    -plot(h3)
    -
    \ No newline at end of file diff --git a/core/@drumplot/html/cookbook.png b/core/@drumplot/html/cookbook.png deleted file mode 100644 index 12e52eee7b735fa121a987d888914d9a9bec569a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3982 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 diff --git a/core/@drumplot/html/cookbook_01.png b/core/@drumplot/html/cookbook_01.png deleted file mode 100644 index 797d76615162b5128aae59a65eb17b938e2c5813..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17204 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 diff --git a/core/@drumplot/html/cookbook_02.png b/core/@drumplot/html/cookbook_02.png deleted file mode 100644 index cb501b50049b6b95f77996d26490cde39c5ede2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22614 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
      LLZqw<~;_6Azh|Jq7gUop6_ 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 & self.dnum <= enum); - s.dnum = self.dnum(i); - s.data = self.data(i); - s.snum = snum; - s.enum = enum; -end \ No newline at end of file + for c=1:numel(self) + i = find(self(c).dnum>=snum & self(c).dnum <= enum); + s(c).dnum = self(c).dnum(i); + s(c).data = self(c).data(i); + end +end diff --git a/core/@rsam/load.m b/core/@rsam/load.m index db55ec5..a9dd885 100644 --- a/core/@rsam/load.m +++ b/core/@rsam/load.m @@ -1,4 +1,4 @@ -function self = load(self) +function self = load(self, f) % Purpose: % Loads derived data from a binary file in the BOB RSAM format % The pointer position at which to reading from the binary file is determined from f.snum @@ -10,10 +10,7 @@ % Author: % Glenn Thompson, MVO, 2000 - % initialise return variables - - f = self.files; - + % initialise return variables [yyyy, ~]=datevec(f.snum); days=365; if mod(yyyy,4)==0 diff --git a/core/@rsam/makebobfile.m b/core/@rsam/make_bob_file.m similarity index 100% rename from core/@rsam/makebobfile.m rename to core/@rsam/make_bob_file.m diff --git a/core/@rsam/oneMinuteData.m b/core/@rsam/obsolete/oneMinuteData.m similarity index 100% rename from core/@rsam/oneMinuteData.m rename to core/@rsam/obsolete/oneMinuteData.m diff --git a/core/@rsam/plotrsam.m b/core/@rsam/obsolete/plotrsam.m similarity index 100% rename from core/@rsam/plotrsam.m rename to core/@rsam/obsolete/plotrsam.m diff --git a/core/@rsam/plotyy.m b/core/@rsam/obsolete/plotyy.m similarity index 100% rename from core/@rsam/plotyy.m rename to core/@rsam/obsolete/plotyy.m diff --git a/core/@rsam/plot.m b/core/@rsam/plot.m index 0ed5dc1..8556662 100644 --- a/core/@rsam/plot.m +++ b/core/@rsam/plot.m @@ -2,11 +2,11 @@ % RSAM/PLOT plot rsam data % handle = plot(rsam_vector, varargin) % Properties include: - % yaxisType, h, addgrid, addlegend, fillbelow, plotspikes, plottransients, plottremor + % yaxistype, h, addgrid, addlegend, fillbelow, plotspikes, plottransients, plottremor % to change where the legend plots set the global variable legend_ypos % a positive value will be within the axes, a negative value will be below % default is -0.2. For within the axes, log(20) is a reasonable value. - % yaxisType is like 'logarithmic' or 'linear' + % yaxistype is like 'logarithmic' or 'linear' % h is an axes handle (or an array of axes handles) % use h = generatePanelHandles(numgraphs) @@ -18,24 +18,35 @@ % parse variable input arguments p = inputParser; p.addParameter('addgrid',false); - p.addParameter('addlegend', false); + p.addParameter('addlegend', true); p.addParameter('fillbelow', false); - - %apparently unused options - p.addParameter('yaxisType','logarithmic'); % or linear + p.addParameter('yaxistype','linear'); % or log + p.addParameter('symbol','-'); % or log p.addParameter('h', []); - p.parse(varargin{:}); - + addgrid = p.Results.addgrid; + addlegend = p.Results.addlegend; + fillbelow = p.Results.fillbelow; + yaxistype = p.Results.yaxistype; + symbol = p.Results.symbol; + h = p.Results.h; legend_ypos = -0.2; % colours to plot each station lineColour={[0 0 0]; [0 0 1]; [1 0 0]; [0 1 0]; [.4 .4 0]; [0 .4 0 ]; [.4 0 0]; [0 0 .4]; [0.5 0.5 0.5]; [0.25 .25 .25]}; + + % units - so that we put different ones on different figures + units = {rsam_vector.units}; + unique_units = unique(units); + %previousfignum = get(gcf,'Number'); + previousfignum = get_highest_figure_number(); % Plot the data graphs - figure for c = 1:length(rsam_vector) self = rsam_vector(c); + thisfignum = find(ismember(unique_units, self.units)) + previousfignum; + figure(thisfignum); + hold on; t = self.dnum; y = self.data; @@ -43,12 +54,13 @@ debug.print_debug(10,sprintf('Data length: %d',length(y))); %figure %if strcmp(rsam_vector(c).units, 'Hz') - if strcmp('yaxisType','linear') + + if strcmp(yaxistype,'linear') % plot on a linear axis, with station name as a y label % datetick too, add measure as title, fiddle with the YTick's and add max(y) in top left corner if ~p.Results.fillbelow - handlePlot = plot(t, y, '-', 'Color', lineColour{c}); + handlePlot = plot(t, y, symbol, 'Color', lineColour{c}); else handlePlot = fill([min(t) t max(t)], [min([y 0]) y min([y 0])], lineColour{c}); end @@ -64,20 +76,24 @@ % ylim = get(gca, 'YLim'); % set(gca, 'YLim', [0 ylim(2)],'YTick',yt); % %ylabelstr = sprintf('%s.%s %s (%s)', self.sta, self.chan, self.measure, self.units); - ylabelstr = sprintf('%s', self.sta); - ylabel(ylabelstr); +% ylabelstr = sprintf('%s', self.sta); +% ylabel(ylabelstr); + ylabel(sprintf('%s',self.units)) % datetick('x','keeplimits'); a = axis; datetick('x') set(gca,'XLim',[a(1) a(2)]); xlabel('Date/Time'); + if addlegend + legend(); + end else % make a logarithmic plot, with a marker size and add the station name below the x-axis like a legend y = log10(y); % use log plots - handlePlot = plot(t, y, '-', 'Color', lineColour{c},... + handlePlot = plot(t, y, symbol, 'Color', lineColour{c},... 'MarkerSize', 1.0); if strfind(self.measure, 'dr') @@ -101,14 +117,14 @@ end -% if p.Results.addgrid -% grid on; -% end -% if p.Results.addlegend && ~isempty(y) -% xlim = get(gca, 'XLim'); -% legend_ypos = 0.9; -% legend_xpos = c/10; -% end + if p.Results.addgrid + grid on; + end + if p.Results.addlegend && ~isempty(y) + xlim = get(gca, 'XLim'); + legend_ypos = 0.9; + legend_xpos = c/10; + end end end \ No newline at end of file diff --git a/core/@rsam/plot_panels.m b/core/@rsam/plot_panels.m new file mode 100644 index 0000000..a083bf4 --- /dev/null +++ b/core/@rsam/plot_panels.m @@ -0,0 +1,21 @@ +function handlePlot = plot(rsam_vector, varargin) + % RSAM/PLOT plot rsam data + % handle = plot(rsam_vector, varargin) + % Properties include: + % yaxistype, h, addgrid, addlegend, fillbelow, plotspikes, plottransients, plottremor + % to change where the legend plots set the global variable legend_ypos + % a positive value will be within the axes, a negative value will be below + % default is -0.2. For within the axes, log(20) is a reasonable value. + % yaxistype is like 'logarithmic' or 'linear' + % h is an axes handle (or an array of axes handles) + % use h = generatePanelHandles(numgraphs) + + % Glenn Thompson 1998-2009 + % + % % GTHO 2009/10/26 Changed marker size from 5.0 to 1.0 + % % GTHO 2009/10/26 Changed legend position to -0.2 + + w = rsam2waveform(rsam_vector); + plot_panels(w) +end + diff --git a/core/@rsam/read_bob_file.m b/core/@rsam/read_bob_file.m index df34272..1394672 100755 --- a/core/@rsam/read_bob_file.m +++ b/core/@rsam/read_bob_file.m @@ -1,4 +1,4 @@ -function self=read_bob_file(varargin) +function self=read_bob_file(filepattern, varargin) %READ_BOB_FILE Load RSAM-like data from a BOB file into a SAM object. % SAM is a generic term used here to represent any continuous data % sampled at a regular time interval (usually 1 minute). This is a @@ -16,7 +16,7 @@ % % s = read_bob_file('file', file, 'snum', snum, 'enum', enum, 'sta', sta, 'chan', chan, 'measure', measure, 'seismogram_type', seismogram_type, 'units', units) % -% file % the path to the file. Substitutions enabled +% filepattern % the path to the file. Substitutions enabled % 'SSSS' replaced with sta % 'CCC' replaced with chan % 'MMMM' replaced with measure @@ -34,73 +34,76 @@ self = rsam(); % Create a blank sam object - classFields = {'sta','chan','measure','seismogram_type','units','snum','enum', 'dnum', 'data'}; + p = inputParser; - p.addParameter('file', ''); - for n=1:numel(classFields) - p.addParameter(classFields{n}, self.(classFields{n})); - end + p.addParameter('snum', []); + p.addParameter('enum', []); + p.addParameter('sta', ''); + p.addParameter('chan', ''); + p.addParameter('measure', ''); + p.addParameter('units', ''); p.parse(varargin{:}); + % modify class values based on user-provided values - for n = 1:numel(classFields) - self.(classFields{n}) = p.Results.(classFields{n}); - end - file = p.Results.file; - - + self.measure = p.Results.measure; + self.units = p.Results.units; + self.ChannelTag = ChannelTag('',p.Results.sta,'',p.Results.chan); %%%% CREATING SAM OBJECT FROM A BOB FILE % check if filename has a year in it, if it does % make sure snum doesn't start before this year % and enum doesn't end after this year - if ~isempty(file) - dummy = regexp(file, '(\d+)', 'match'); + snum = p.Results.snum; + enum = p.Results.enum; + if ~isempty(filepattern) + dummy = regexp(filepattern, '(\d+)', 'match'); if ~isempty(dummy) yyyy = str2num(dummy{end}); d=datevec(now);yearnow=d(1);clear d if yyyy>=1980 & yyyy<=yearnow - self.snum = max([self.snum datenum(yyyy,1,1)]); - self.enum = min([self.enum datenum(yyyy,12,31,23,59,59)]); + snum = max([p.Results.snum datenum(yyyy,1,1)]); + enum = min([p.Results.enum datenum(yyyy,12,31,23,59,59)]); end end % Generate a list of files - self = findfiles(self, file); + self = findfiles(self, filepattern, snum, enum); % Load the data - for f = self.files + for filenum = 1:numel(self.files) + f = self.files(filenum); if f.found - self = self.load(); + self = self.load(f); end end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function self = findfiles(self, file) +function self = findfiles(self, file, snum, enum) % Generate a list of files corresponding to the file pattern, % snum and enum given. filenum = 0; % substitute for station - file = regexprep(file, 'SSSS', self.sta); + file = regexprep(file, 'SSSS', get(self.ChannelTag,'station')); % substitute for channel - file = regexprep(file, 'CCC', self.chan); + file = regexprep(file, 'CCC', get(self.ChannelTag,'channel')); % substitute for measure file = regexprep(file, 'MMMM', self.measure); % set start year and month, and end year and month - [syyy sm]=datevec(self.snum); - [eyyy em]=datevec(self.enum); + [syyy sm]=datevec(snum); + [eyyy em]=datevec(enum); for yyyy=syyy:eyyy filenum = filenum + 1; - files(filenum) = struct('file', file, 'snum', self.snum, 'enum', self.enum, 'found', false); + files(filenum) = struct('file', file, 'snum', snum, 'enum', enum, 'found', false); % Check year against start year if yyyy~=syyy @@ -127,7 +130,93 @@ end self.files = files; end -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% function self = load(self, f) +% % Purpose: +% % Loads derived data from a binary file in the BOB RSAM format +% % The pointer position at which to reading from the binary file is determined from f.snum +% % Load all the data from f.snum to f.enum. So if timewindow is 12:34:56 to 12:44:56, +% % it is the samples at 12:35, ..., 12:44 - i.e. 10 of them. +% % +% % Input: +% % f - a structure which contains 'file', 'snum', 'enum' and 'found' parameters +% % Author: +% % Glenn Thompson, MVO, 2000 +% +% % initialise return variables +% datafound=false; +% dnum=[]; +% data=[]; +% +% [yyyy mm]=datevec(f.snum); +% days=365; +% if mod(yyyy,4)==0 +% days=366; +% end +% +% datapointsperday = 1440; +% headersamples = 0; +% tz=0; +% if strfind(f.file,'RSAM') +% headersamples=datapointsperday; +% tz=-4; +% end +% startsample = ceil( (f.snum-datenum(yyyy,1,1))*datapointsperday)+headersamples; +% endsample = (f.enum-datenum(yyyy,1,1)) *datapointsperday + headersamples; +% %endsample = floor( max([ datenum(yyyy,12,31,23,59,59) f.enum-datenum(yyyy,1,1) ]) *datapointsperday); +% nsamples = endsample - startsample + 1; +% +% % create dnum & blank data vector +% dnum = ceilminute(f.snum)+(0:nsamples-1)/datapointsperday - tz/24; +% data(1:length(dnum))=NaN; +% +% if f.found +% % file found +% debug.print_debug(sprintf( 'Loading data from %s, position %d to %d of %d', ... +% f.file, startsample,(startsample+nsamples-1),(datapointsperday*days) ),3); +% +% fid=fopen(f.file,'r', 'l'); % big-endian for Sun, little-endian for PC +% +% % Position the pointer +% offset=(startsample)*4; +% fseek(fid,offset,'bof'); +% +% % Read the data +% [data,numlines] = fread(fid, nsamples, 'float32'); +% fclose(fid); +% debug.print_debug(sprintf('mean of data loaded is %e',nanmean(data)),1); +% +% % Transpose to give same dimensions as dnum +% data=data'; +% +% % Test for Nulls +% if length(find(data>0)) > 0 +% datafound=true; +% end +% end +% +% % Now paste together the matrices +% self.dnum = catmatrices(dnum, self.dnum); +% self.data = catmatrices(data, self.data); +% +% if ~datafound +% debug.print_debug(sprintf('%s: No data loaded from file %s',mfilename,f.file),1); +% end +% +% % eliminate any data outside range asked for - MAKE THIS A +% % SEPARATE FN IF AT ALL +% i = find(self.dnum >= self.snum & self.dnum <= self.enum); +% self.dnum = self.dnum(i); +% self.data = self.data(i); +% +% % Fill NULL values with NaN +% i = find(self.data == -998); +% self.data(i) = NaN; +% i = find(self.data == 0); +% self.data(i) = NaN; +% +% end + function self = load(self, f) % Purpose: % Loads derived data from a binary file in the BOB RSAM format @@ -136,16 +225,12 @@ % it is the samples at 12:35, ..., 12:44 - i.e. 10 of them. % % Input: -% f - a structure which contains 'file', 'snum', 'enum' and 'found' parameters +% self.f - a structure which contains 'file', 'snum', 'enum' and 'found' parameters % Author: % Glenn Thompson, MVO, 2000 - % initialise return variables - datafound=false; - dnum=[]; - data=[]; - - [yyyy mm]=datevec(f.snum); + % initialise return variables + [yyyy, ~]=datevec(f.snum); days=365; if mod(yyyy,4)==0 days=366; @@ -154,23 +239,22 @@ datapointsperday = 1440; headersamples = 0; tz=0; - if strfind(f.file,'RSAM') - headersamples=datapointsperday; - tz=-4; + if strfind(f.file,'RSAM') + headersamples=datapointsperday;% for PC-SEIS RSAM data there is a 1 day header + tz=-4;% for Montserrat RSAM data time zone is off by 4 hours end startsample = ceil( (f.snum-datenum(yyyy,1,1))*datapointsperday)+headersamples; endsample = (f.enum-datenum(yyyy,1,1)) *datapointsperday + headersamples; - %endsample = floor( max([ datenum(yyyy,12,31,23,59,59) f.enum-datenum(yyyy,1,1) ]) *datapointsperday); nsamples = endsample - startsample + 1; % create dnum & blank data vector - dnum = ceilminute(f.snum)+(0:nsamples-1)/datapointsperday - tz/24; - data(1:length(dnum))=NaN; + dnum_ = ceilminute(f.snum)+(0:nsamples-1)/datapointsperday - tz/24; + data_ = nan(1,length(dnum_)); if f.found % file found - debug.print_debug(sprintf( 'Loading data from %s, position %d to %d of %d', ... - f.file, startsample,(startsample+nsamples-1),(datapointsperday*days) ),3); + debug.print_debug(0, sprintf( 'Loading data from %s, position %d to %d of %d', ... + f.file, startsample,(startsample+nsamples-1),(datapointsperday*days) )); fid=fopen(f.file,'r', 'l'); % big-endian for Sun, little-endian for PC @@ -179,38 +263,34 @@ fseek(fid,offset,'bof'); % Read the data - [data,numlines] = fread(fid, nsamples, 'float32'); + [data_, ~] = fread(fid, nsamples, 'float32'); fclose(fid); - debug.print_debug(sprintf('mean of data loaded is %e',nanmean(data)),1); + debug.print_debug(0, sprintf('mean of data loaded is %e',nanmean(data_))); % Transpose to give same dimensions as dnum - data=data'; + data_=data_'; % Test for Nulls - if length(find(data>0)) > 0 - datafound=true; - end + datafound = any(data_ > 0); + else + datafound = false; + debug.print_debug(0, sprintf('File %s not found', f.file)); end % Now paste together the matrices - self.dnum = catmatrices(dnum, self.dnum); - self.data = catmatrices(data, self.data); + self.dnum = catmatrices(dnum_, self.dnum); + self.data = catmatrices(data_, self.data); if ~datafound - debug.print_debug(sprintf('%s: No data loaded from file %s',mfilename,f.file),1); + debug.print_debug(0, sprintf('%s: No data loaded from file %s',mfilename,f.file)); end - % eliminate any data outside range asked for - MAKE THIS A - % SEPARATE FN IF AT ALL - i = find(self.dnum >= self.snum & self.dnum <= self.enum); - self.dnum = self.dnum(i); - self.data = self.data(i); + % eliminate any data outside range asked for + myRange = self.dnum >= self.snum & self.dnum <= self.enum; + self.dnum = self.dnum(myRange); + self.data = self.data(myRange); % Fill NULL values with NaN - i = find(self.data == -998); - self.data(i) = NaN; - i = find(self.data == 0); - self.data(i) = NaN; + self.data(self.data == -998 | self.data == 0) = NaN; end - diff --git a/core/@rsam/rsam.m b/core/@rsam/rsam.m index 93dfc49..889353a 100755 --- a/core/@rsam/rsam.m +++ b/core/@rsam/rsam.m @@ -22,8 +22,7 @@ % dnum % the dates/times (as datenum) corresponding to the start % of each time window % data % the value at each dnum -% sta % station -% chan % channel +% ctag % ChannelTag % measure % statistical measure, default is 'mean' % seismogram_type % e.g. 'velocity' or 'displacement', default is 'raw' % units % units to label y-axis, e.g. 'nm/s' or 'nm' or 'cm2', default is 'counts' @@ -83,15 +82,12 @@ dnum = []; data = []; % measure = 'mean'; - seismogram_type = 'raw'; + seismogram_type = ''; %reduced = struct('Q', Inf, 'sourcelat', NaN, 'sourcelon', NaN, 'distance', NaN, 'waveType', '', 'isReduced', false, 'f', NaN, 'waveSpeed', NaN, 'stationlat', NaN, 'stationlon', NaN); units = 'counts'; %use = true; files = ''; - sta = ''; - chan = ''; - snum = -Inf; - enum = Inf; + ChannelTag = ChannelTag(); %spikes = []; % a vector of rsam objects that describe large spikes % in the data. Populated after running 'despike' method. These are % removed simultaneously from the data vector. @@ -102,11 +98,21 @@ % vector, but are instead returned in the continuousData vector. %continuousData = []; % %continuousEvents = []; % a vector of rsam objects that describe tremor - + request = struct(); + end + + properties(Dependent) + snum + enum + sta + chan + sampling_interval + stats end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - methods(Access = public) - + %methods(Access = public) + methods function self=rsam(dnum, data, varargin) if nargin==0 return; @@ -116,7 +122,7 @@ self.dnum = dnum; self.data = data; if nargin>2 - classFields = {'sta','chan','measure','seismogram_type','units','snum','enum'}; + classFields = {'ChannelTag','measure','seismogram_type','units'}; p = inputParser; for n=1:numel(classFields) p.addParameter(classFields{n}, self.(classFields{n})); @@ -138,18 +144,70 @@ % % % result = nanmax(self.dnum); % % % end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + function r = get.snum(self) + r = []; + for c=1:numel(self) + r(c) = nanmin(self(c).dnum); + end + end + + function r = get.enum(self) + r = []; + for c=1:numel(self) + r(c) = nanmax(self(c).dnum); + end + end + + function r = get.sta(self) + r = {}; + for c=1:numel(self) + r{c} = self(c).ChannelTag.station; + end + end + + function r = get.chan(self) + r = {}; + for c=1:numel(self) + r{c} = self(c).ChannelTag.channel; + end + end + + function r = get.sampling_interval(self) + r = []; + for c = 1:length(self) + l = numel(self(c).dnum); + s = self(c).dnum(2:l) - self(c).dnum(1:l-1); + r(c) = (median(s)*86400); + end + end + + function stats = get.stats(self) + for c=1:numel(self) + stats(c) = struct; + stats(c).min = nanmin(self(c).data); + stats(c).max = nanmax(self(c).data); + stats(c).mean = nanmean(self(c).data); + stats(c).median = nanmedian(self(c).data); + stats(c).rms = rms(self(c).data); + stats(c).std = nanstd(self(c).data); + end + end + + % Prototypes - self = findfiles(self, file) - self = load(self) + self = findfiles(self, filepattern) + self = load(self, file) handlePlot = plot(rsam_vector, varargin) - save(self, filepattern) - toTextFile(self, filepath) - [aw,tt1, tt2, tmc, mag_zone]=bvalue(this, mcType, method) - [lambda, r2] = duration_amplitude(self, law, min_amplitude, mag_zone) + save_to_bob_file(self, filepattern) + save_to_text_file(self, filepath) + %[aw,tt1, tt2, tmc, mag_zone]=bvalue(this, mcType, method) + %[lambda, r2] = duration_amplitude(self, law, min_amplitude, mag_zone) s=extract(self, snum, enum) - fs = Fs(self) self = medfilt1(self, nsamples_to_average_over) - w=getwaveform(self, datapath) + %w = getwaveform(self, datapath) + w = rsam2waveform(self); + plot_panels(self); %scrollplot(s) %plotyy(obj1, obj2, varargin) %self = reduce(self, waveType, sourcelat, sourcelon, stationlat, stationlon, varargin) @@ -209,8 +267,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods(Access = public, Static) self = read_bob_file(varargin) - makebobfile(outfile, days) - self = loadbobfile(infile, snum, enum) + make_bob_file(outfile, days) + cookbook() + %self = loadbobfile(infile, snum, enum) %self = loadwfmeastable(sta, chan, snum, enum, measure, dbname) %[data]=remove_calibration_pulses(dnum, data) %[rsamobjects, ah]=plotrsam(sta, chan, snum, enum, DATAPATH) diff --git a/core/@rsam/rsam2waveform.m b/core/@rsam/rsam2waveform.m new file mode 100644 index 0000000..c7106c8 --- /dev/null +++ b/core/@rsam/rsam2waveform.m @@ -0,0 +1,7 @@ +function w= rsam2waveform(s) + w = []; + for c=1:numel(s) + wc = waveform(s(c).ChannelTag, 1.0/s(c).sampling_interval, s(c).snum, s(c).data, s(c).units); + w = [w wc]; + end +end \ No newline at end of file diff --git a/core/@rsam/save.m b/core/@rsam/save_to_bob_file.m similarity index 88% rename from core/@rsam/save.m rename to core/@rsam/save_to_bob_file.m index 799bbb3..4ef304b 100644 --- a/core/@rsam/save.m +++ b/core/@rsam/save_to_bob_file.m @@ -1,11 +1,11 @@ -function save(self, filepattern) - % RSAM/SAVE - save an rsam-like object to an RSAM/BOB binary +function save_to_bob_file(self, filepattern) + % RSAM/SAVE_TO_BOB_FILE - save an rsam-like object to an RSAM/BOB binary % file % % % Examples: % 1. save data to myfile.bob - % r.save('myfile.bob') + % r.save_to_bob_file('myfile.bob') % % 2. save to file like YEAR_STATION_CHANNEL_MEASURE.bob % r.save('YYYY_SSSS_CCC_MMMM.bob') @@ -41,12 +41,13 @@ function save(self, filepattern) % filename % set start year and month, and end year and month + [syyy sm]=datevec(self(c).snum); [eyyy em]=datevec(self(c).enum); - + if syyy~=eyyy if ~strfind(filepattern, 'YYYY') - error('can only save RSAM data to BOB file if all data within 1 year (or you can add YYYY in your file pattern)'); + error('can only save RSAM data to BOB file if all data within 1 year (or you can add YYYY in your file pattern)'); end end @@ -64,7 +65,7 @@ function save(self, filepattern) if ~exist(fname,'file') debug.print_debug(2, ['Creating ',fname]) - rsam.makebobfile(fname, daysperyear); + rsam.make_bob_file(fname, daysperyear); end datapointsperday = 1440; @@ -81,7 +82,7 @@ function save(self, filepattern) i = find(diff > 1.5/1440 | diff < 0.5/1440); disp(sprintf('Saving to %s',fname)); - + if length(i)>0 % slow mode @@ -92,7 +93,7 @@ function save(self, filepattern) offset = startsample*4; fid = fopen(fname,'r+'); fseek(fid,offset,'bof'); - debug.print_debug(2, sprintf('saving data with mean of %e from to file %s, starting at position %d',nanmean(datay),fname,startsample,(datapointsperday*daysperyear))) + debug.print_debug(2, sprintf('saving data with mean of %e from to file %s, starting at position %d',nanmean(datay),fname,startsample,(datapointsperday*daysperyear))); fwrite(fid,datay(c),'float32'); fclose(fid); end @@ -110,4 +111,4 @@ function save(self, filepattern) end end end -end \ No newline at end of file +end diff --git a/core/@rsam/toTextFile.m b/core/@rsam/save_to_text_file.m similarity index 54% rename from core/@rsam/toTextFile.m rename to core/@rsam/save_to_text_file.m index 0892679..db79b07 100644 --- a/core/@rsam/toTextFile.m +++ b/core/@rsam/save_to_text_file.m @@ -1,9 +1,12 @@ - function toTextFile(self, filepath) - % toTextFile(filepath); + function save_to_text_file(self, filepath) + % save_to_text_file(filepath); % + if numel(self)>1 + error('Cannot write multiple rsam objects to the same text file'); + end fout=fopen(filepath, 'w'); for c=1:length(self.dnum) fprintf(fout, '%15.8f\t%s\t%5.3e\n',self.dnum(c),datestr(self.dnum(c),'yyyy-mm-dd HH:MM:SS.FFF'),self.data(c)); end fclose(fout); -end \ No newline at end of file +end diff --git a/core/@rsam/loadbobfile.m b/core/@rsam/trash/loadbobfile.m similarity index 100% rename from core/@rsam/loadbobfile.m rename to core/@rsam/trash/loadbobfile.m diff --git a/core/@rsam/scrollplot_whatisthis.m b/core/@rsam/trash/scrollplot_whatisthis.m similarity index 100% rename from core/@rsam/scrollplot_whatisthis.m rename to core/@rsam/trash/scrollplot_whatisthis.m diff --git a/core/@waveform/addmetrics.m b/core/@waveform/addmetrics.m new file mode 100644 index 0000000..2e83182 --- /dev/null +++ b/core/@waveform/addmetrics.m @@ -0,0 +1,113 @@ +function w = addmetrics(w, maxTimeDiff) +%ADDMETRICS +% addmetrics(w) will compute some amplitude, energy and frequency metrics +% for each waveform in waveform vector w, and add them to the 'metrics' +% structure for that waveform +% +% addmetrics(w, maxTimeDiff) is a slight variation where the max and min +% found will correspond to the maximum peak to peak variation found within +% a maxTimeDiff timewindow. (If not given, the max and min are for the whole +% waveform). Note that maxTimeDiff should be about 1 to a few periods of the +% signal you are interested in. +% +% TO DO: a more efficient 1 period algorithm could use findpeaks, see +% bottom of the m-file + + SECONDS_PER_DAY = 86400; + maxTime = -1; + minTime = -1; + maxAmp = -1; + minAmp = -1; + p2p = -1; + stdev = -1; + energy = -1; + amp = -ones(size(w)); + Nw = numel(w); + + for wavnum=1:Nw + fprintf('.'); + clear metrics + + thisW = detrend(fillgaps(w(wavnum),'interp')); % make sure there is no trend or offset + wstart = get(thisW,'start'); % waveform start time + wend = get(thisW,'end'); % waveform end time + wstd = std(thisW); % waveform standard deviation - for noise estimation + fs = get(thisW,'freq'); + y = get(thisW,'data'); + u = get(thisW,'units'); + + % WHAT TYPE OF MAXIMUM & MINIMUM DO WE WANT? + if exist('maxTimeDiff', 'var') + % compute largest peak to peak amplitude + % (Note a different algorithm could be added here, using + % findpeaks) + metrics.maxTimeDiff = maxTimeDiff; + + % Define time window + numSamples = length(y); + seconds_end_offset = (wend - wstart) * SECONDS_PER_DAY; + sample_to_end_at = min( [round( seconds_end_offset * fs) numSamples]); + + % Loop over subwindows + % find p2p amplitude in each, compare to highest p2p found so far + N = round(fs * maxTimeDiff); + + % COMPUTING AMPLITUDE METRICS + [vamin, vamax] = running_min_max(y, N); + vap2p = vamax-vamin; % biggest peak to peak in each timewindow of length N + [maxap2p, maxap2pindex] = max(vap2p); + amin = vamin(maxap2pindex); + amax = vamax(maxap2pindex); + amaxindex = find(y==amax); + aminindex = find(y==amin); + else + [amax, amaxindex] = max(thisW); + [amin, aminindex] = min(thisW); + end + + maxSecs = amaxindex/fs; + minSecs = aminindex/fs; + maxTime = wstart + maxSecs/SECONDS_PER_DAY; + minTime = wstart + minSecs/SECONDS_PER_DAY; + p2p = amax - amin; + amp(wavnum) = round(nanmax(abs([amax amin])), 4, 'significant'); + stdev = round(wstd, 4, 'significant'); % stdev of whole trace - noise level estimate + energy = round(sum(y.^2)/fs, 4, 'significant'); % round to 4 sigfigs + + % ADD ALL METRICS TO THE WAVEFORM OBJECT + metrics.minTime = minTime; + metrics.maxTime = maxTime; + metrics.minAmp = round(amin, 4, 'significant'); + metrics.maxAmp = round(amax, 4, 'significant'); + metrics.stdev = round(stdev, 4, 'significant'); + metrics.energy = round(energy, 4, 'significant'); + metrics.units = u; + thisW = addfield(thisW, 'metrics', metrics); + w(wavnum) = thisW; + + end + fprintf('\n(Complete)\n'); +end + + +function [amin,amax]=running_min_max(y, N) + startsamp=1; + for endsamp=1:N + amax(endsamp) = max(y(startsamp:endsamp)); + amin(endsamp) = min(y(startsamp:endsamp)); + end + for startsamp=2:length(y)-N+1 + endsamp=startsamp+N-1; + amax(endsamp) = max(y(startsamp:endsamp)); + amin(endsamp) = min(y(startsamp:endsamp)); + end +end + +function [amin, aminindex, amax, amaxindex] = find_biggest_peak2peak(y, N) +% SKELETON: NOT USED +% there are options in findpeaks to ignore small adjacent peaks i should be +% using here but don't + [pos_pks, pos_locs] = findpeaks(y); + [neg_pks, neg_locs] = findpeaks(-y); + % now we just need to look for neg_pks which occur within +end diff --git a/core/@waveform/plot_panels.m b/core/@waveform/plot_panels.m index 30d07bb..cd868a4 100644 --- a/core/@waveform/plot_panels.m +++ b/core/@waveform/plot_panels.m @@ -1,4 +1,4 @@ -function fh=plot_panels(w, alignWaveforms) +function fh=plot_panels(w, alignWaveforms, arrivalobj) %PLOT_PANELS Plot multiple waveform objects as separate linked panels % PLOT_PANELS(w, alignWaveforms) % where: @@ -35,10 +35,11 @@ SECSPERDAY = 60 * 60 * 24; nwaveforms = numel(w); - fh=figure; - trace_height=0.9/nwaveforms; - left=0.1; - width=0.8; + previousfignum = get_highest_figure_number(); + fh=figure(previousfignum+1); + trace_height=0.87/nwaveforms; + left=0.12; + width=0.78; for wavnum = 1:nwaveforms data=get(w(wavnum),'data'); dnum=get(w(wavnum),'timevector'); @@ -49,9 +50,52 @@ sta=''; chan=''; end - offset = nanmean(data); + % if sampling rate > 1 Hz, assume this is raw data, if < 1 Hz + % assume RSAM data + if get(w(wavnum),'freq')>1 + offset = nanmean(data); % raw waveform data, 2 sided + else + offset = 0; % RSAM data, absolute, 1 sided + end y=data-offset; - ax(wavnum)=axes('Position',[left 0.98-wavnum*trace_height width trace_height]); + y(isnan(y))=0; + ax(wavnum)=axes('Position',[left 0.98-wavnum*trace_height width trace_height]); + + + % arrivals + if exist('arrivalobj','var') + %disp('- adding arrivals to panel plot') + hold on + thisctag = strrep(string(get(w(wavnum),'ChannelTag')),'-',''); + Index = find(ismember(arrivalobj.channelinfo, thisctag)); + for arrnum=1:numel(Index) + arrtime = arrivalobj.time(Index(arrnum)); + if alignWaveforms + relarrtime = (arrtime-min(dnum))*SECSPERDAY; + else + relarrtime = (arrtime-snum)*SECSPERDAY; + end + plot([relarrtime relarrtime], [min(y) max(y)],'r', 'LineWidth',3); + end + %hold off + end + + % metrics + try + m = get(w(wavnum),'metrics'); + hold on + if alignWaveforms + relmintime = (m.minTime-min(dnum))*SECSPERDAY; + relmaxtime = (m.maxTime-min(dnum))*SECSPERDAY; + else + relmintime = (m.minTime-snum)*SECSPERDAY; + relmaxtime = (m.maxTime-snum)*SECSPERDAY; + end + plot([relmintime relmaxtime], [m.minAmp m.maxAmp],'g','LineWidth',3); + %hold off + end + + % waveform data if alignWaveforms plot((dnum-min(dnum))*SECSPERDAY, y,'-k'); set(gca, 'XLim', [0 maxduration*SECSPERDAY]); @@ -61,6 +105,13 @@ end % xlim = get(gca, 'XLim'); % set(gca,'XTick', linspace(xlim(1), xlim(2), 11)); + if max(w(wavnum)) >= 0 % added for RSAM data + ylims = get(gca, 'YLim'); + set(gca, 'YLim', [0 ylims(2)]); + end + if length(chan)>3 + chan = chan(1:3); + end ylabel(sprintf('%s\n%s ',sta,chan),'FontSize',10,'Rotation',90); set(gca,'YTick',[],'YTickLabel',['']); if wavnum0 + m = max([figs.Number]); +else + m = 0; +end \ No newline at end of file diff --git a/startup_GISMO.m b/startup_GISMO.m index 1a7a272..0d24d20 100644 --- a/startup_GISMO.m +++ b/startup_GISMO.m @@ -53,6 +53,9 @@ function startup_GISMO(gismopath) % ADD PATH TO TESTS addpath(fullfile(gismopath, 'tests')); +% ADD PATH TO COOKBOOKS +addpath(fullfile(gismopath, 'cookbooks')); + %% function addContributed(gismopath, contribDir) % add each subdirectory within gismopath/contribDir/ to the matlab path From 41842eccd1e9c2d1f618be4624e62e1f67dd654d Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Thu, 23 Mar 2017 16:44:58 -0400 Subject: [PATCH 05/52] cleaned up rsam class --- core/@rsam/extensions/correct.m | 14 +++ core/@rsam/extensions/despike.m | 11 +++ core/@rsam/extensions/reduce.m | 22 +++++ core/@rsam/extensions/remove_calibs.m | 7 ++ core/@rsam/extensions/rsam2energy.m | 5 + core/@rsam/extensions/rsam2waveform.m | 12 +++ core/@rsam/extensions/save2wfmeastable.m | 3 + core/@rsam/extensions/tremorstalta.m | 3 + core/@rsam/rsam.m | 111 ++--------------------- 9 files changed, 83 insertions(+), 105 deletions(-) create mode 100644 core/@rsam/extensions/correct.m create mode 100644 core/@rsam/extensions/remove_calibs.m create mode 100644 core/@rsam/extensions/rsam2energy.m create mode 100644 core/@rsam/extensions/rsam2waveform.m create mode 100644 core/@rsam/extensions/save2wfmeastable.m diff --git a/core/@rsam/extensions/correct.m b/core/@rsam/extensions/correct.m new file mode 100644 index 0000000..aaf903a --- /dev/null +++ b/core/@rsam/extensions/correct.m @@ -0,0 +1,14 @@ +function self = correct(self) + ref = 0.707; % note that median, rms and std all give same value on x=sin(0:pi/1000:2*pi) + for c=1:numel(self) + if strcmp(self(c).measure, 'max') + self(c).data = self(c).data * ref; + end + if strcmp(self(c).measure, '68') + self(c).data = self(c).data/0.8761 * ref; + end + if strcmp(self(c).measure, 'mean') + self(c).data = self(c).data/0.6363 * ref; + end + end +end \ No newline at end of file diff --git a/core/@rsam/extensions/despike.m b/core/@rsam/extensions/despike.m index da9f960..0e5067e 100644 --- a/core/@rsam/extensions/despike.m +++ b/core/@rsam/extensions/despike.m @@ -18,6 +18,17 @@ % Outputs: % s = rsam object with spikes removed + % NOTE: THIS METHOD REQUIRES EXTRA PROPERTIES FOR rsam CLASS + %spikes = []; % a vector of rsam objects that describe large spikes + % in the data. Populated after running 'despike' method. These are + % removed simultaneously from the data vector. + %transientEvents = []; % a vector of rsam objects that describe + % transient events in the data that might correspond to vt, rf, lp + % etc. Populated after running 'despike' method with the + % 'transientEvents' argument. These are not removed from the data + % vector, but are instead returned in the continuousData vector. + + % find spikes lasting 1 sample only y= self.data; spikeNumber = 0; diff --git a/core/@rsam/extensions/reduce.m b/core/@rsam/extensions/reduce.m index 0a6a828..3691c01 100644 --- a/core/@rsam/extensions/reduce.m +++ b/core/@rsam/extensions/reduce.m @@ -3,6 +3,28 @@ % s.distance and waveSpeed assumed to be in metres (m) % (INPUT) s.data assumed to be in nm or Pa % (OUTPUT) s.data in cm^2 or Pa.m + + % REQUIRES EXTRA PARAMETERS FOR RSAM OBJECTS + %reduced = struct('Q', Inf, 'sourcelat', NaN, 'sourcelon', NaN, 'distance', NaN, 'waveType', '', 'isReduced', false, 'f', NaN, 'waveSpeed', NaN, 'stationlat', NaN, 'stationlon', NaN); + %use = true; +% REDUCED: a structure that is set is data are "reduced", i.e. corrected +% for geometric spreading (and possibly attenuation) +% Has 4 fields: +% REDUCED.Q = the value of Q used to reduce the data +% (Inf by default, which indicates no attenuation) +% REDUCED.SOURCELAT = the latitude used for reducing the data +% REDUCED.SOURCELON = the longitude used for reducing the data +% REDUCED.STATIONLAT = the station latitude +% REDUCED.STATIONLON = the station longitude +% REDUCED.DISTANCE = the distance between source and +% station in km +% REDUCED.WAVETYPE = the wave type (body or surface) +% assumed +% REDUCED.F = the frequency used for surface waves +% REDUCED.WAVESPEED = the S wave speed +% REDUCED.ISREDUCED = True if the data are reduced +% UNITS: the units of the data, e.g. nm / sec. +% USE: use this rsam object in plots? p = inputParser; p.addParameter('waveSpeed', 2000); p.addParamter('f', 2.0); diff --git a/core/@rsam/extensions/remove_calibs.m b/core/@rsam/extensions/remove_calibs.m new file mode 100644 index 0000000..5822c94 --- /dev/null +++ b/core/@rsam/extensions/remove_calibs.m @@ -0,0 +1,7 @@ +function self = remove_calibs(self) + for c=1:numel(self) + % run twice since there may be two pulses per day + self(c).data = remove_calibration_pulses(self(c).dnum, self(c).data); + self(c).data = remove_calibration_pulses(self(c).dnum, self(c).data); + end +end \ No newline at end of file diff --git a/core/@rsam/extensions/rsam2energy.m b/core/@rsam/extensions/rsam2energy.m new file mode 100644 index 0000000..8c51bdc --- /dev/null +++ b/core/@rsam/extensions/rsam2energy.m @@ -0,0 +1,5 @@ +function self=rsam2energy(self, r) + % should i detrend first? + e = energy(self.data, r, get(self.scnl, 'channel'), self.Fs(), self.units); + self = set(self, 'energy', e); +end \ No newline at end of file diff --git a/core/@rsam/extensions/rsam2waveform.m b/core/@rsam/extensions/rsam2waveform.m new file mode 100644 index 0000000..ca6a8ba --- /dev/null +++ b/core/@rsam/extensions/rsam2waveform.m @@ -0,0 +1,12 @@ +function w=rsam2waveform(self) + w = waveform; + w = set(w, 'station', self.sta); + w = set(w, 'channel', self.chan); + w = set(w, 'units', self.units); + w = set(w, 'data', self.data); + w = set(w, 'start', self.snum); + %w = set(w, 'end', self.enum); + w = set(w, 'freq', 1/ (86400 * (self.dnum(2) - self.dnum(1)))); + w = addfield(w, 'reduced', self.reduced); + w = addfield(w, 'measure', self.measure); +end \ No newline at end of file diff --git a/core/@rsam/extensions/save2wfmeastable.m b/core/@rsam/extensions/save2wfmeastable.m new file mode 100644 index 0000000..f488b75 --- /dev/null +++ b/core/@rsam/extensions/save2wfmeastable.m @@ -0,0 +1,3 @@ +function save2wfmeastable(self, dbname) + datascopegt.save2wfmeas(self.scnl, self.dnum, self.data, self.measure, self.units, dbname); +end \ No newline at end of file diff --git a/core/@rsam/extensions/tremorstalta.m b/core/@rsam/extensions/tremorstalta.m index 3fe6160..da8231d 100644 --- a/core/@rsam/extensions/tremorstalta.m +++ b/core/@rsam/extensions/tremorstalta.m @@ -32,6 +32,9 @@ % ratio - sta:lta ratio of each timeWindow % rsamobject - the input rsamobject but with the % continuousEvents property populated + % NOTE: REQUIRES EXTRA PROPERTIES FOR RSAM OBJECTS + %continuousData = []; % + %continuousEvents = []; % a vector of rsam objects that describe tremor % Process input variables p = inputParser; diff --git a/core/@rsam/rsam.m b/core/@rsam/rsam.m index 889353a..08fd8cd 100755 --- a/core/@rsam/rsam.m +++ b/core/@rsam/rsam.m @@ -54,24 +54,7 @@ % "energy" % SEISMOGRAM_TYPE: a string describing whether the RSAM data were computed % from "raw" seismogram, "velocity", "displacement" -% REDUCED: a structure that is set is data are "reduced", i.e. corrected -% for geometric spreading (and possibly attenuation) -% Has 4 fields: -% REDUCED.Q = the value of Q used to reduce the data -% (Inf by default, which indicates no attenuation) -% REDUCED.SOURCELAT = the latitude used for reducing the data -% REDUCED.SOURCELON = the longitude used for reducing the data -% REDUCED.STATIONLAT = the station latitude -% REDUCED.STATIONLON = the station longitude -% REDUCED.DISTANCE = the distance between source and -% station in km -% REDUCED.WAVETYPE = the wave type (body or surface) -% assumed -% REDUCED.F = the frequency used for surface waves -% REDUCED.WAVESPEED = the S wave speed -% REDUCED.ISREDUCED = True if the data are reduced % UNITS: the units of the data, e.g. nm / sec. -% USE: use this rsam object in plots? % FILES: structure of files data is loaded from % AUTHOR: Glenn Thompson, Montserrat Volcano Observatory @@ -80,24 +63,12 @@ properties(Access = public) dnum = []; - data = []; % + data = []; measure = 'mean'; seismogram_type = ''; - %reduced = struct('Q', Inf, 'sourcelat', NaN, 'sourcelon', NaN, 'distance', NaN, 'waveType', '', 'isReduced', false, 'f', NaN, 'waveSpeed', NaN, 'stationlat', NaN, 'stationlon', NaN); units = 'counts'; - %use = true; files = ''; ChannelTag = ChannelTag(); - %spikes = []; % a vector of rsam objects that describe large spikes - % in the data. Populated after running 'despike' method. These are - % removed simultaneously from the data vector. - %transientEvents = []; % a vector of rsam objects that describe - % transient events in the data that might correspond to vt, rf, lp - % etc. Populated after running 'despike' method with the - % 'transientEvents' argument. These are not removed from the data - % vector, but are instead returned in the continuousData vector. - %continuousData = []; % - %continuousEvents = []; % a vector of rsam objects that describe tremor request = struct(); end @@ -137,12 +108,7 @@ end end -% % % function result=snum(self) -% % % result = nanmin(self.dnum); -% % % end -% % % function result=enum(self) -% % % result = nanmax(self.dnum); -% % % end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function r = get.snum(self) @@ -198,84 +164,19 @@ % Prototypes self = findfiles(self, filepattern) self = load(self, file) - handlePlot = plot(rsam_vector, varargin) - save_to_bob_file(self, filepattern) - save_to_text_file(self, filepath) - %[aw,tt1, tt2, tmc, mag_zone]=bvalue(this, mcType, method) - %[lambda, r2] = duration_amplitude(self, law, min_amplitude, mag_zone) s=extract(self, snum, enum) self = medfilt1(self, nsamples_to_average_over) - %w = getwaveform(self, datapath) - w = rsam2waveform(self); + handlePlot = plot(rsam_vector, varargin) plot_panels(self); - %scrollplot(s) - %plotyy(obj1, obj2, varargin) - %self = reduce(self, waveType, sourcelat, sourcelon, stationlat, stationlon, varargin) - %[self, timeWindow] = tremorstalta(self, varargin) - %self = resample(self, varargin) - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% function save2wfmeastable(self, dbname) -% datascopegt.save2wfmeas(self.scnl, self.dnum, self.data, self.measure, self.units, dbname); -% end -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% function self = remove_calibs(self) -% for c=1:numel(self) -% % run twice since there may be two pulses per day -% self(c).data = remove_calibration_pulses(self(c).dnum, self(c).data); -% self(c).data = remove_calibration_pulses(self(c).dnum, self(c).data); -% end -% end -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% function self = correct(self) -% ref = 0.707; % note that median, rms and std all give same value on x=sin(0:pi/1000:2*pi) -% for c=1:numel(self) -% if strcmp(self(c).measure, 'max') -% self(c).data = self(c).data * ref; -% end -% if strcmp(self(c).measure, '68') -% self(c).data = self(c).data/0.8761 * ref; -% end -% if strcmp(self(c).measure, 'mean') -% self(c).data = self(c).data/0.6363 * ref; -% end -% end -% end -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% function self=rsam2energy(self, r) -% % should i detrend first? -% e = energy(self.data, r, get(self.scnl, 'channel'), self.Fs(), self.units); -% self = set(self, 'energy', e); -% end -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% function w=rsam2waveform(self) -% w = waveform; -% w = set(w, 'station', self.sta); -% w = set(w, 'channel', self.chan); -% w = set(w, 'units', self.units); -% w = set(w, 'data', self.data); -% w = set(w, 'start', self.snum); -% %w = set(w, 'end', self.enum); -% w = set(w, 'freq', 1/ (86400 * (self.dnum(2) - self.dnum(1)))); -% w = addfield(w, 'reduced', self.reduced); -% w = addfield(w, 'measure', self.measure); -% end - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - + w = rsam2waveform(self); + save_to_bob_file(self, filepattern) + save_to_text_file(self, filepath) end % end of dynamic methods %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods(Access = public, Static) self = read_bob_file(varargin) make_bob_file(outfile, days) - cookbook() - %self = loadbobfile(infile, snum, enum) - %self = loadwfmeastable(sta, chan, snum, enum, measure, dbname) - %[data]=remove_calibration_pulses(dnum, data) - %[rsamobjects, ah]=plotrsam(sta, chan, snum, enum, DATAPATH) - %rsamobj = detectTremorEvents(stationName, chan, DP, snum, enum, ... - % spikeRatio, transientEventRatio, STA_minutes, LTA_minutes, ... - % stepsize, ratio_on, ratio_off, plotResults) end end % classdef From f383132424a0ab00743ea430aa9f996288f3f8cf Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 24 Mar 2017 16:52:57 -0400 Subject: [PATCH 06/52] Adding wrappers for RSAM and IceWeb --- applications/+iceweb/iceweb.m | 12 +- applications/+iceweb/iceweb2017.m | 311 ++++++++++++++++++++++++++ applications/+iceweb/iceweb_wrapper.m | 56 +++++ applications/+iceweb/rsam_wrapper.m | 69 ++++++ core/@waveform/waveform2rsam.m | 16 +- 5 files changed, 450 insertions(+), 14 deletions(-) create mode 100644 applications/+iceweb/iceweb2017.m create mode 100644 applications/+iceweb/iceweb_wrapper.m create mode 100644 applications/+iceweb/rsam_wrapper.m diff --git a/applications/+iceweb/iceweb.m b/applications/+iceweb/iceweb.m index 22c902e..7cc462d 100644 --- a/applications/+iceweb/iceweb.m +++ b/applications/+iceweb/iceweb.m @@ -190,12 +190,12 @@ function iceweb_helper(paths, PARAMS, subnets, tw, ds) % load state statefile = sprintf('iceweb_%s_state.mat',subnet); if exist(statefile, 'file') - load(statefile) - if strcmp(subnet, subnet0) - if snum < snum0 % skip - %continue - end - end + load(statefile) + if strcmp(subnet, subnet0) + if snum < snum0 % skip + %continue + end + end end % save state diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m new file mode 100644 index 0000000..462f1e1 --- /dev/null +++ b/applications/+iceweb/iceweb2017.m @@ -0,0 +1,311 @@ +function iceweb2017(thissubnet, ds, ChannelTagList, ... + snum, enum, nummins, products, PARAMS, paths) + debug.printfunctionstack('>'); + + % load state + statefile = sprintf('iceweb_%s_state.mat',thissubnet); + if exist(statefile, 'file') && ~strcmp(PARAMS.runmode, 'test') + load(statefile) + end + + % end time + if enum==0 + enum = utnow - delaymins/1440; + end + + + % loop one day at a time + for dnum = floor(snum):ceil(enum) + disp(datestr(dnum)) + +% % figure out which channeltags are active for this day? +% ctags_thisday = get_channeltags_thisday(ds, ctags, dnum); % subset to channeltags valid +% if isempty(todaysites) +% continue; +% end + +% % subset to sites for which the files pointed to by the +% % wfdisc table, actually exist +% m = listMiniseedFiles(ds, chantag, dnum, dnum+1); +% ctags_thisday = ctags_thisday([m.exists]==2); + + % get timewindow for this day + timewindows = get_timewindow(min([enum dnum+1]), nummins, max([dnum snum])); + + if ~strcmp(PARAMS.runmode,'test') + % loop over timewindows + for count = 1:length(timewindows.start) + this_timewindow.start = timewindows.start(count); + this_timewindow.stop = timewindows.stop(count); + iceweb_helper(paths, PARAMS, newsubnets, this_timewindow, ds, products); + end + end + end + debug.printfunctionstack('<'); +end + + +function iceweb_helper(paths, PARAMS, subnets, tw, ds, products) + debug.printfunctionstack('>'); + + MILLISECOND_IN_DAYS = (1 / 86400000); + + makeSamFiles = false; + makeSoundFiles = true; + + + snum = tw.start; + enum = tw.stop - MILLISECOND_IN_DAYS; % try to skip last sample + + % load state + statefile = sprintf('iceweb_%s_state.mat',subnet); + if exist(statefile, 'file') + load(statefile) + if snum < snum0 + continue + end + end + + % save state + ds0=ds; sites0=sites; snum0=snum; enum0=enum; subnet0 = subnet; + save(statefile, 'ds0', 'sites0', 'snum0', 'enum0', 'subnet0'); + clear ds0 sites0 snum0 enum0 subnet0 + + % Have we already process this timewindow? + spectrogramFilename = get_spectrogram_filename(paths,subnet,snum); + if exist(spectrogramFilename, 'file') + %fprintf('%s already exists - skipping\n',spectrogramFilename); + %continue + end + + %% Get waveform data + debug.print_debug(0, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnet , datestr(snum), datestr(enum))); + w = waveform_wrapper(ds, [sites.channeltag], snum, enum); + + + %% Save waveform data to 1 hour MAT file + dv = datevec(snum); + yyyy = dv(1); + jjj = floor(snum - datenum(yyyy,1,1) + 1); + hh = dv(4); + matfiletopdir = '/raid/data/matfiles'; + wavmatfile = sprintf('%s/%s/%04d/%03d/%s.%04d.%03d.%02d.mat',matfiletopdir,subnet,yyyy,jjj,subnet,yyyy,jjj,hh); + clear dv yyyy jjj hh + mkdir(fileparts(wavmatfile)); + disp(sprintf('Saving waveform data to %s',wavmatfile)); + save(wavmatfile); + continue + + %% PRE_PROCESS DATA + + % Eliminate empty waveform objects + w = waveform_remove_empty(w); + if numel(w)==0 + debug.print_debug(0, 'No waveform data returned - skipping'); + continue + end + + % Clean the waveforms + w = fillgaps(w, 'interp'); + w = detrend(w); + + % Apply calibs which should be stored within sites structure to + % waveform objects to convert from counts to real physical + % units + w = apply_calib(w, sites); + + % Apply filter to all signals + w = apply_filter(w, PARAMS); + + % Pad all waveforms to same start/end + [wsnum wenum] = gettimerange(w); % assume gaps already filled, signal + w = pad(w, min([snum wsnum]), max([enum wenum]), 0); + + % Save RSAM data + rsamobj = rsam(w); + rsamobj.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.rsam')); + + %% CREATE & SAVE WAVEFORM PLOT + close all + linkedplot(w) + %s = input('continue?'); + [spdir,spbase,spext] = fileparts(spectrogramFilename); + mulpltFilename = fullfile(spdir, sprintf('mulplt_%s%s',spbase,spext)); + orient tall; + saveImageFile(mulpltFilename, 72); + +% %% CREATE & SAVE HELICORDER PLOT +% % SCAFFOLD + try % crashing with +% % Index exceeds matrix dimensions. +% % +% % Error in helicorder/build>pad_w (line 339) +% % dat = [pad1; get(w(n),'data')]; +% % +% % Error in helicorder/build (line 68) +% % h = pad_w(h); % If front of waveform is missing, fill with NaN +% % +% % Error in iceweb>iceweb_helper (line 208) +% % build(heliplot) +% % +% % Error in iceweb (line 93) +% % iceweb_helper(paths, PARAMS, newsubnets, thistw, ds); +% % +% % Error in unrest (line 20) +% % iceweb(ds, 'thissubnet', 'Sakurajima', 'snum', datenum(2015,6,3), 'enum', datenum(2015,6, 7), 'delaymins', 0, 'matfile', 'pf/Sakurajima.mat', +% % 'nummins', mins, 'runmode', 'archive'); + close all + for wi=1:numel(w) + heliplot = helicorder(w(wi),'mpl',3); + build(heliplot) + ct = get(w(wi),'channeltag'); + helicorderFilename = fullfile(spdir, sprintf('heli_%s_%s.%s.%s',spbase,ct.station,ct.channel,spext)); + orient tall; + saveImageFile(helicorderFilename, 72); + clear ct helicorderFilename + end + clear wi + end + + + %% PLOT SPECTROGRAM + close all + debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)) + %specgram_iceweb(PARAMS.spectralobject, w, 0.75, extended_spectralobject_colormap); + %specgram_wrapper(PARAMS.spectralobject, w, 0.75, extended_spectralobject_colormap); +% try + spectrogramFraction = 0.75; + + % restrict spectrogram to Z channels only + w2=[]; + for wi=1:numel(w) + ct=get(w(wi),'channeltag'); + if strfind(ct.channel,'Z') + w2 = [w2 w(wi)]; + end + end + + [sgresult, Tcell, Fcell, Ycell] = spectrogram_iceweb(PARAMS.spectralobject, w2, spectrogramFraction, extended_spectralobject_colormap); + clear w2 wi ct + if sgresult > 0 % sgresult = number of waveforms for which a spectrogram was successfully plotted + %% SAVE SPECTROGRAM PLOT TO IMAGE FILE AND CREATE THUMBNAIL + orient tall; + + if saveImageFile(spectrogramFilename, 72) + + fileinfo = dir(spectrogramFilename); % getting a weird Index exceeds matrix dimensions error here. + debug.print_debug(0, sprintf('%s %s: spectrogram PNG size is %d',mfilename, datestr(utnow), fileinfo.bytes)); + + % make thumbnails + makespectrogramthumbnails(spectrogramFilename, spectrogramFraction); + + end + close all + + %% save spectral data + frequency_index_divider = 5.0; % Hz + for spi = 1:numel(Fcell) + thisY = Ycell{spi}; + thisF = Fcell{spi}; + thisT = Tcell{spi}; + sta = get(w(spi),'station'); + chan = get(w(spi),'channel'); + + % peakF and meanF for each spectrogram window + [Ymax,imax] = max(thisY); + PEAK_F = thisF(imax); + MEAN_F = (thisF' * thisY)./sum(thisY); + + % frequency index for each spectrogram window + fUpperIndices = find(thisF > frequency_index_divider); + fLowerIndices = find(thisF < frequency_index_divider); + fupper = sum(thisY(fUpperIndices,:)); + flower = sum(thisY(fLowerIndices,:)); + F_INDEX = log2(fupper ./ flower); + + % Peak spectral value in each frequency bin - or in + % each minute? + + % Now downsample to 1 sample per minute + dnum = unique(floorminute(thisT)); + for k=1:length(dnum) + p = find(floorminute(thisT) == dnum(k)); + downsampled_peakf(k) = nanmean(PEAK_F(p)); + downsampled_meanf(k) = nanmean(MEAN_F(p)); + downsampled_findex(k) = nanmean(F_INDEX(p)); + suby = thisY(:,p); + if size(suby,2) == 1 + max_in_each_freq_band(:,k) = suby; + else + max_in_each_freq_band(:,k) = max(suby'); + end + end + + % % Plot for verification + % close all + % subplot(2,1,1),plot(dnum,downsampled_peakf,':');datetick('x'); + % hold on + % plot(dnum,downsampled_meanf);datetick('x'); + % subplot(2,1,2),plot(dnum,downsampled_findex);datetick('x'); + % anykey = input('Press any key to continue'); + + % Save data + r1 = rsam(dnum, downsampled_peakf, 'sta', sta, ... + 'chan', chan, 'measure', 'peakf', ... + 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); + r1.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.peakf')) + + r2 = rsam(dnum, downsampled_meanf, 'sta', sta, ... + 'chan', chan, 'measure', 'meanf', ... + 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); + r2.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.meanf')) + + r3 = rsam(dnum, downsampled_findex, 'sta', sta, ... + 'chan', chan, 'measure', 'findex', ... + 'units', 'none', 'snum', min(dnum), 'enum', max(dnum)); + r3.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.findex')) + + specdatafilename = fullfile('spectrograms', subnet, datestr(min(dnum),'yyyy/mm/dd'), sprintf( '%s_%s_%s.mat', datestr(min(dnum),30), sta, chan) ); + specdatadir = fileparts(specdatafilename); % make the directory in case it does not exist + mkdir(specdatadir); % make the directory in case it does not exist + save(specdatafilename, 'dnum', 'max_in_each_freq_band') + clear r1 r2 r3 k p downsampled_peakf downsampled_meanf ... + downsampled_findex fUpperIndices fLowerIndices flower ... + fupper F_INDEX PEAK_F MEAN_F Ymax imax thisY thisF thisT ... + suby max_in_each_freq_band + + end + end + + %% SOUND FILES + if makeSoundFiles + try + % 20120221 Added a "sound file" like 201202211259.sound which simply records order of stachans in waveform object so + % php script can match spectrogram panel with appropriate wav file + % 20121101 GTHO COmment: Could replace use of bnameroot below with strrep, since it is just used to change file extensions + % e.g. strrep(spectrogramFilename, '.png', sprintf('_%s_%s.wav', sta, chan)) + [dname, bnameroot, bnameext] = fileparts(spectrogramFilename); + soundfilelist = fullfile(dname, filesep, [bnameroot,'.sound']); + fsound = fopen(soundfilelist,'a'); + for c=1:length(w) + soundfilename = fullfile(dname, sprintf('%s_%s_%s.wav',bnameroot, get(w(c),'station'), get(w(c), 'channel') ) ); + fprintf(fsound,'%s\n', soundfilename); + debug.print_debug(0, sprintf('Writing to %s',soundfilename)); + data = get(w(c),'data'); + m = max(data); + if m == 0 + m = 1; + end + data = data / m; + wavwrite(data, get(w(c), 'freq') * 120, soundfilename); + end + fclose(fsound); + end + end +% end + end + end + + debug.printfunctionstack('<'); +end + diff --git a/applications/+iceweb/iceweb_wrapper.m b/applications/+iceweb/iceweb_wrapper.m new file mode 100644 index 0000000..e7e492b --- /dev/null +++ b/applications/+iceweb/iceweb_wrapper.m @@ -0,0 +1,56 @@ +function iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, products) +%ICEWEB_WRAPPER Run IceWeb for long time intervals +% iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... +% startTime, endTime, gulpMinutes, products) +% +% iceweb_wrapper(...) is a wrapper designed to move sequentially through +% days/weeks/months of data, load waveform data into waveform objects, +% compute various IceWeb products from those waveform objects +% and save data into binary "BOB" files. +% +% Inputs: +% +% subnetName - (string) usually the name of a volcano +% +% datasourceObject - (datasource) tells waveform where to load data +% from (e.g. IRIS, Earthworm, Antelope, Miniseed). +% See WAVEFORM, DATASOURCE. +% +% ChannelTagList - (ChannelTag.array) tells waveform which +% network-station-location-channel combinations to +% load data for. See CHANNELTAG. +% +% startTime - the date/time to begin at in datenum format. See +% DATENUM. +% +% endTime - the date/time to end at in datenum format. See +% DATENUM. +% +% gulpMinutes - swallow data in chunks of this size. Minimum is 10 +% minutes, maximum is 2 hours. Other good choices are +% 30 minutes and 1 hour. +% +% products - a structure telling IceWeb which products to generate. +% If not explicitly given, it will look like: +% products.rsam.doit = true; +% products.rsam.samplingIntervalSeconds = samplingIntervalSeconds; +% products.rsam.measures = measures; +% products.spectrograms.doit = true; +% products.spectrograms.timeWindowMinutes = [10 120]; +% products.spectral_data.doit = true; +% products.spectral_data.samplingIntervalSeconds = samplingIntervalSeconds; +% products.reduced_displacement.doit = true; +% products.reduced_displacement.samplingIntervalSeconds = samplingIntervalSeconds; +% products.helicorders.doit = true; +% products.helicorders.timeWindowMinutes = [120]; +% products.soundfiles.doit = true; + +%startup_iceweb +matfile = sprintf('%s.mat',subnetName); +PARAMS = struct('max_number_scnls', 8, ... + ' + +paths = struct( +iceweb.iceweb_2017(subnetName, datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, products, PARAMS, paths); \ No newline at end of file diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m new file mode 100644 index 0000000..f27f912 --- /dev/null +++ b/applications/+iceweb/rsam_wrapper.m @@ -0,0 +1,69 @@ +function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, samplingIntervalSeconds, measures) +%RSAM_WRAPPER Compute RSAM data for long time intervals +% rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... +% startTime, endTime, gulpMinutes, samplingIntervalSeconds, measures) +% +% rsam_wrapper(...) is a wrapper designed to move sequentially through +% days/weeks/months of data, load waveform data into waveform objects, +% compute RSAM objects from those waveform objects (using waveform2rsam) +% and then save data from those RSAM objects into binary "BOB" files. +% +% rsam_wrapper is actually a driver for iceweb_wrapper. iceweb_wrapper +% will drive other products such as spectrograms and helicorders if +% asked. But rsam_wrapper asks it only to compute RSAM data. +% +% Inputs: +% +% subnetName - (string) usually the name of a volcano +% +% datasourceObject - (datasource) tells waveform where to load data +% from (e.g. IRIS, Earthworm, Antelope, Miniseed). +% See WAVEFORM, DATASOURCE. +% +% ChannelTagList - (ChannelTag.array) tells waveform which +% network-station-location-channel combinations to +% load data for. See CHANNELTAG. +% +% startTime - the date/time to begin at in datenum format. See +% DATENUM. +% +% endTime - the date/time to end at in datenum format. See +% DATENUM. +% +% gulpMinutes - swallow data in chunks of this size. Minimum is 10 +% minutes, maximum is 2 hours. Other good choices are +% 30 minutes and 1 hour. +% +% samplingIntervalSeconds - compute RSAM with 1 sample from this many +% seconds of waveform data. Usually 60 seconds. +% See also WAVEFORM2RSAM. +% +% measures - each RSAM sample is usually the 'mean' of each 60 second +% timewindow. But other stats are probably better. For +% events, 'max' works better. For tremor, 'median' works +% better. So measures could be {'max';'median'}. +% +% Example: +% datasourceObject = datasource('antelope', '/raid/data/sakurajima/db') +% startTime = datenum(2009, +% rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... +% startTime, endTime, gulpMinutes, ... +% samplingIntervalSeconds, measures) + +% set up products structure for iceweb +products.rsam.doit = true; +products.rsam.samplingIntervalSeconds = samplingIntervalSeconds; +products.rsam.measures = measures; +products.spectrograms.doit = false; +products.spectrograms.timeWindowMinutes = [10 120]; +products.spectral_data.doit = false; +products.spectral_data.samplingIntervalSeconds = samplingIntervalSeconds; +products.reduced_displacement.doit = false; +products.reduced_displacement.samplingIntervalSeconds = samplingIntervalSeconds; +products.helicorders.doit = false; +products.helicorders.timeWindowMinutes = []; +products.soundfiles.doit = false; + +% call iceweb_wrapper +iceweb.iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) \ No newline at end of file diff --git a/core/@waveform/waveform2rsam.m b/core/@waveform/waveform2rsam.m index 949e4f7..0ba08ec 100644 --- a/core/@waveform/waveform2rsam.m +++ b/core/@waveform/waveform2rsam.m @@ -1,11 +1,11 @@ -function s = waveform2rsam(w, measure, samplingPeriod) +function s = waveform2rsam(w, measure, samplingIntervalSeconds) %WAVEFORM2RSAM create an RSAM-like object from a waveform object % RSAM data are typically 1 sample per minute, where each sample is the % average amplitude of that minute of data. They are used extensively used % in volcano monitoring. % % Usage: -% s = rsam(waveform, method, samplingPeriod) +% s = rsam(waveform, method, samplingIntervalSeconds) % % Input Arguments % WAVEFORM: waveform object N-dimensional @@ -18,7 +18,7 @@ % 'median' : mean value % 'rms' : rms value (added 2011/06/01) % -% SAMPLINGPERIOD : the number of seconds between samples (Default: +% samplingIntervalSeconds : the number of seconds between samples (Default: % 60s) % % @@ -38,8 +38,8 @@ if ~exist('measure', 'var') measure = 'mean'; end -if ~exist('samplingPeriod', 'var') - samplingPeriod = 60; +if ~exist('samplingIntervalSeconds', 'var') + samplingIntervalSeconds = 60; end % detrend data after fill gaps to get rid of NaNs marking missing values @@ -47,10 +47,10 @@ w = detrend(w); for i = 1:numel(w) - Wsamplingperiod = 1.0 / get(w(i), 'freq'); - % either set to whatever samplingPeriod seconds of data are, or the + WsamplingIntervalSeconds = 1.0 / get(w(i), 'freq'); + % either set to whatever samplingIntervalSeconds seconds of data are, or the % length of data if less - crunchfactor = min([round(samplingPeriod / Wsamplingperiod) numel(get(w(i),'data'))]); + crunchfactor = min([round(samplingIntervalSeconds / WsamplingIntervalSeconds) numel(get(w(i),'data'))]); wabs = set(w(i), 'data', abs(get(w(i),'data')) ); wresamp = resample(wabs, measure, crunchfactor); s(i) = rsam(get(wresamp,'timevector')', get(wresamp,'data')', ... From f5b8f8617508491f31b1e1dcc72652bb347163fb Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 27 Mar 2017 12:01:57 -0400 Subject: [PATCH 07/52] fixed bug in plot_panels --- applications/+iceweb/apply_filter.m | 3 + applications/+iceweb/iceweb2017.m | 370 +++++++--------------------- applications/+iceweb/rsam_wrapper.m | 16 +- core/@waveform/plot_panels.m | 6 +- 4 files changed, 109 insertions(+), 286 deletions(-) mode change 100644 => 100755 applications/+iceweb/rsam_wrapper.m diff --git a/applications/+iceweb/apply_filter.m b/applications/+iceweb/apply_filter.m index 9091572..089cc0a 100644 --- a/applications/+iceweb/apply_filter.m +++ b/applications/+iceweb/apply_filter.m @@ -1,4 +1,7 @@ function w = apply_filter(w, PARAMS) + if ~exist('PARAMS','var') + PARAMS.filterObj = filterobject('h',0.1,2); + end for c=1:numel(w) try w(c) = filtfilt(PARAMS.filterObj, w(c)); diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 462f1e1..54279f3 100644 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -1,10 +1,10 @@ -function iceweb2017(thissubnet, ds, ChannelTagList, ... - snum, enum, nummins, products, PARAMS, paths) +function iceweb2017(subnetName, ds, ChannelTagList, ... + snum, enum, nummins, products) debug.printfunctionstack('>'); % load state - statefile = sprintf('iceweb_%s_state.mat',thissubnet); - if exist(statefile, 'file') && ~strcmp(PARAMS.runmode, 'test') + statefile = sprintf('iceweb_%s_state.mat',subnetName); + if exist(statefile, 'file') load(statefile) end @@ -13,299 +13,111 @@ function iceweb2017(thissubnet, ds, ChannelTagList, ... enum = utnow - delaymins/1440; end - - % loop one day at a time - for dnum = floor(snum):ceil(enum) - disp(datestr(dnum)) - -% % figure out which channeltags are active for this day? -% ctags_thisday = get_channeltags_thisday(ds, ctags, dnum); % subset to channeltags valid -% if isempty(todaysites) -% continue; -% end - -% % subset to sites for which the files pointed to by the -% % wfdisc table, actually exist -% m = listMiniseedFiles(ds, chantag, dnum, dnum+1); -% ctags_thisday = ctags_thisday([m.exists]==2); - - % get timewindow for this day - timewindows = get_timewindow(min([enum dnum+1]), nummins, max([dnum snum])); - - if ~strcmp(PARAMS.runmode,'test') - % loop over timewindows - for count = 1:length(timewindows.start) - this_timewindow.start = timewindows.start(count); - this_timewindow.stop = timewindows.stop(count); - iceweb_helper(paths, PARAMS, newsubnets, this_timewindow, ds, products); - end - end + % generate list of timewindows + timewindows = iceweb.get_timewindow(enum, nummins, snum); + + % loop over timewindows + for count = 1:length(timewindows.start) + process_timewindow(subnetName, ChannelTagList, timewindows.start(count), timewindows.stop(count), ds, products); end debug.printfunctionstack('<'); end -function iceweb_helper(paths, PARAMS, subnets, tw, ds, products) +function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products) debug.printfunctionstack('>'); MILLISECOND_IN_DAYS = (1 / 86400000); - - makeSamFiles = false; - makeSoundFiles = true; - - - snum = tw.start; - enum = tw.stop - MILLISECOND_IN_DAYS; % try to skip last sample - - % load state - statefile = sprintf('iceweb_%s_state.mat',subnet); - if exist(statefile, 'file') - load(statefile) - if snum < snum0 - continue + enum = enum - MILLISECOND_IN_DAYS; % try to skip last sample + +% % load state +% statefile = sprintf('iceweb_%s_state.mat',subnetName); +% if exist(statefile, 'file') +% load(statefile) +% if snum < snum0 +% return +% end +% end +% +% % save state +% ds0=ds; ChannelTagList0=ChannelTagList; snum0=snum; enum0=enum; subnetName0 = subnetName; +% save(statefile, 'ds0', 'ChannelTagList0', 'snum0', 'enum0', 'subnetName0'); +% clear ds0 ChannelTagList0 snum0 enum0 subnetName0 + + %% Save raw waveform data to MAT file + jjj = datenum2julday(snum); + wavrawmat = fullfile('iceweb', 'waveforms_raw', subnetName, datestr(snum,'yyyy-mm-dd'), datestr(snum,30)); + if ~exist(wavrawmat,'file') + %% Get waveform data + debug.print_debug(0, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnetName , datestr(snum), datestr(enum))); + w = waveform(ds, ChannelTagList, snum, enum); + if isempty(w) + ds + ChannelTagList + datestr(snum) + datestr(enum) + debug.printfunctionstack('<'); + return end + mkdir(fileparts(wavrawmat)); + disp(sprintf('Saving waveform data to %s',wavrawmat)); + save(wavrawmat); end - - % save state - ds0=ds; sites0=sites; snum0=snum; enum0=enum; subnet0 = subnet; - save(statefile, 'ds0', 'sites0', 'snum0', 'enum0', 'subnet0'); - clear ds0 sites0 snum0 enum0 subnet0 - - % Have we already process this timewindow? - spectrogramFilename = get_spectrogram_filename(paths,subnet,snum); - if exist(spectrogramFilename, 'file') - %fprintf('%s already exists - skipping\n',spectrogramFilename); - %continue - end - - %% Get waveform data - debug.print_debug(0, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnet , datestr(snum), datestr(enum))); - w = waveform_wrapper(ds, [sites.channeltag], snum, enum); - - - %% Save waveform data to 1 hour MAT file - dv = datevec(snum); - yyyy = dv(1); - jjj = floor(snum - datenum(yyyy,1,1) + 1); - hh = dv(4); - matfiletopdir = '/raid/data/matfiles'; - wavmatfile = sprintf('%s/%s/%04d/%03d/%s.%04d.%03d.%02d.mat',matfiletopdir,subnet,yyyy,jjj,subnet,yyyy,jjj,hh); - clear dv yyyy jjj hh - mkdir(fileparts(wavmatfile)); - disp(sprintf('Saving waveform data to %s',wavmatfile)); - save(wavmatfile); - continue - - %% PRE_PROCESS DATA - - % Eliminate empty waveform objects - w = waveform_remove_empty(w); - if numel(w)==0 - debug.print_debug(0, 'No waveform data returned - skipping'); - continue - end - - % Clean the waveforms - w = fillgaps(w, 'interp'); - w = detrend(w); - - % Apply calibs which should be stored within sites structure to - % waveform objects to convert from counts to real physical - % units - w = apply_calib(w, sites); - - % Apply filter to all signals - w = apply_filter(w, PARAMS); - - % Pad all waveforms to same start/end - [wsnum wenum] = gettimerange(w); % assume gaps already filled, signal - w = pad(w, min([snum wsnum]), max([enum wenum]), 0); - - % Save RSAM data - rsamobj = rsam(w); - rsamobj.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.rsam')); - - %% CREATE & SAVE WAVEFORM PLOT - close all - linkedplot(w) - %s = input('continue?'); - [spdir,spbase,spext] = fileparts(spectrogramFilename); - mulpltFilename = fullfile(spdir, sprintf('mulplt_%s%s',spbase,spext)); - orient tall; - saveImageFile(mulpltFilename, 72); - -% %% CREATE & SAVE HELICORDER PLOT -% % SCAFFOLD - try % crashing with -% % Index exceeds matrix dimensions. -% % -% % Error in helicorder/build>pad_w (line 339) -% % dat = [pad1; get(w(n),'data')]; -% % -% % Error in helicorder/build (line 68) -% % h = pad_w(h); % If front of waveform is missing, fill with NaN -% % -% % Error in iceweb>iceweb_helper (line 208) -% % build(heliplot) -% % -% % Error in iceweb (line 93) -% % iceweb_helper(paths, PARAMS, newsubnets, thistw, ds); -% % -% % Error in unrest (line 20) -% % iceweb(ds, 'thissubnet', 'Sakurajima', 'snum', datenum(2015,6,3), 'enum', datenum(2015,6, 7), 'delaymins', 0, 'matfile', 'pf/Sakurajima.mat', -% % 'nummins', mins, 'runmode', 'archive'); - close all - for wi=1:numel(w) - heliplot = helicorder(w(wi),'mpl',3); - build(heliplot) - ct = get(w(wi),'channeltag'); - helicorderFilename = fullfile(spdir, sprintf('heli_%s_%s.%s.%s',spbase,ct.station,ct.channel,spext)); - orient tall; - saveImageFile(helicorderFilename, 72); - clear ct helicorderFilename - end - clear wi - end - - - %% PLOT SPECTROGRAM - close all - debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)) - %specgram_iceweb(PARAMS.spectralobject, w, 0.75, extended_spectralobject_colormap); - %specgram_wrapper(PARAMS.spectralobject, w, 0.75, extended_spectralobject_colormap); -% try - spectrogramFraction = 0.75; - - % restrict spectrogram to Z channels only - w2=[]; - for wi=1:numel(w) - ct=get(w(wi),'channeltag'); - if strfind(ct.channel,'Z') - w2 = [w2 w(wi)]; - end - end - - [sgresult, Tcell, Fcell, Ycell] = spectrogram_iceweb(PARAMS.spectralobject, w2, spectrogramFraction, extended_spectralobject_colormap); - clear w2 wi ct - if sgresult > 0 % sgresult = number of waveforms for which a spectrogram was successfully plotted - %% SAVE SPECTROGRAM PLOT TO IMAGE FILE AND CREATE THUMBNAIL - orient tall; - - if saveImageFile(spectrogramFilename, 72) - - fileinfo = dir(spectrogramFilename); % getting a weird Index exceeds matrix dimensions error here. - debug.print_debug(0, sprintf('%s %s: spectrogram PNG size is %d',mfilename, datestr(utnow), fileinfo.bytes)); - - % make thumbnails - makespectrogramthumbnails(spectrogramFilename, spectrogramFraction); - - end - close all - - %% save spectral data - frequency_index_divider = 5.0; % Hz - for spi = 1:numel(Fcell) - thisY = Ycell{spi}; - thisF = Fcell{spi}; - thisT = Tcell{spi}; - sta = get(w(spi),'station'); - chan = get(w(spi),'channel'); - - % peakF and meanF for each spectrogram window - [Ymax,imax] = max(thisY); - PEAK_F = thisF(imax); - MEAN_F = (thisF' * thisY)./sum(thisY); - - % frequency index for each spectrogram window - fUpperIndices = find(thisF > frequency_index_divider); - fLowerIndices = find(thisF < frequency_index_divider); - fupper = sum(thisY(fUpperIndices,:)); - flower = sum(thisY(fLowerIndices,:)); - F_INDEX = log2(fupper ./ flower); - - % Peak spectral value in each frequency bin - or in - % each minute? - - % Now downsample to 1 sample per minute - dnum = unique(floorminute(thisT)); - for k=1:length(dnum) - p = find(floorminute(thisT) == dnum(k)); - downsampled_peakf(k) = nanmean(PEAK_F(p)); - downsampled_meanf(k) = nanmean(MEAN_F(p)); - downsampled_findex(k) = nanmean(F_INDEX(p)); - suby = thisY(:,p); - if size(suby,2) == 1 - max_in_each_freq_band(:,k) = suby; - else - max_in_each_freq_band(:,k) = max(suby'); - end - end + debug.printfunctionstack('<'); - % % Plot for verification - % close all - % subplot(2,1,1),plot(dnum,downsampled_peakf,':');datetick('x'); - % hold on - % plot(dnum,downsampled_meanf);datetick('x'); - % subplot(2,1,2),plot(dnum,downsampled_findex);datetick('x'); - % anykey = input('Press any key to continue'); + % Save the cleaned waveform data to MAT file + wavcleanmat = fullfile('iceweb', 'waveforms_clean', subnetName, datestr(snum,'yyyy-mm-dd'), datestr(snum,30)); + if ~exist(wavcleanmat,'file') - % Save data - r1 = rsam(dnum, downsampled_peakf, 'sta', sta, ... - 'chan', chan, 'measure', 'peakf', ... - 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); - r1.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.peakf')) + % Eliminate empty waveform objects + w = iceweb.waveform_remove_empty(w); + if numel(w)==0 + debug.print_debug(0, 'No waveform data returned - skipping'); + return + end - r2 = rsam(dnum, downsampled_meanf, 'sta', sta, ... - 'chan', chan, 'measure', 'meanf', ... - 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); - r2.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.meanf')) + % Clean the waveforms + w = fillgaps(w, 'interp'); + w = detrend(w); - r3 = rsam(dnum, downsampled_findex, 'sta', sta, ... - 'chan', chan, 'measure', 'findex', ... - 'units', 'none', 'snum', min(dnum), 'enum', max(dnum)); - r3.save(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.findex')) +% % Apply calibs which should be stored within sites structure to +% % waveform objects to convert from counts to real physical +% % units +% w = iceweb.apply_calib(w, sites); - specdatafilename = fullfile('spectrograms', subnet, datestr(min(dnum),'yyyy/mm/dd'), sprintf( '%s_%s_%s.mat', datestr(min(dnum),30), sta, chan) ); - specdatadir = fileparts(specdatafilename); % make the directory in case it does not exist - mkdir(specdatadir); % make the directory in case it does not exist - save(specdatafilename, 'dnum', 'max_in_each_freq_band') - clear r1 r2 r3 k p downsampled_peakf downsampled_meanf ... - downsampled_findex fUpperIndices fLowerIndices flower ... - fupper F_INDEX PEAK_F MEAN_F Ymax imax thisY thisF thisT ... - suby max_in_each_freq_band + % Pad all waveforms to same start/end + [wsnum wenum] = gettimerange(w); % assume gaps already filled, signal + w = pad(w, min([snum wsnum]), max([enum wenum]), 0); - end - end + % Apply filter to all signals + w = iceweb.apply_filter(w); %%%%%%%%%%%%%%%% PARAMS dropped - %% SOUND FILES - if makeSoundFiles - try - % 20120221 Added a "sound file" like 201202211259.sound which simply records order of stachans in waveform object so - % php script can match spectrogram panel with appropriate wav file - % 20121101 GTHO COmment: Could replace use of bnameroot below with strrep, since it is just used to change file extensions - % e.g. strrep(spectrogramFilename, '.png', sprintf('_%s_%s.wav', sta, chan)) - [dname, bnameroot, bnameext] = fileparts(spectrogramFilename); - soundfilelist = fullfile(dname, filesep, [bnameroot,'.sound']); - fsound = fopen(soundfilelist,'a'); - for c=1:length(w) - soundfilename = fullfile(dname, sprintf('%s_%s_%s.wav',bnameroot, get(w(c),'station'), get(w(c), 'channel') ) ); - fprintf(fsound,'%s\n', soundfilename); - debug.print_debug(0, sprintf('Writing to %s',soundfilename)); - data = get(w(c),'data'); - m = max(data); - if m == 0 - m = 1; - end - data = data / m; - wavwrite(data, get(w(c), 'freq') * 120, soundfilename); - end - fclose(fsound); - end - end -% end - end + mkdir(fileparts(wavcleanmat)); + disp(sprintf('Saving waveform data to %s',wavcleanmat)); + save(wavcleanmat); end - + + %% ICEWEB PRODUCTS + + % WAVEFORM PLOT + if products.waveform_plot.doit + close all + plot_panels(w) + input('continue any key','s'); + fname = fullfile('iceweb', 'plots', 'waveforms', subnetName, sprintf('%s.png',datestr(snum,30)) ); + orient tall; + iceweb.saveImageFile(fname, 72); % this should make directory tree too + end + +% % RSAM +% if products.rsam.doit +% for measure = products.rsam.measures +% rsamobj = waveform2rsam(w); +% rsamobj.save_to_bob_file(fullfile('data', 'rsam', subnetName, 'SSSS.CCC.YYYY.MMMM.bob')); +% end +% end + + debug.printfunctionstack('<'); end diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m old mode 100644 new mode 100755 index f27f912..1cc06e7 --- a/applications/+iceweb/rsam_wrapper.m +++ b/applications/+iceweb/rsam_wrapper.m @@ -45,17 +45,25 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... % better. So measures could be {'max';'median'}. % % Example: -% datasourceObject = datasource('antelope', '/raid/data/sakurajima/db') -% startTime = datenum(2009, -% rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... +% datasourceObject = datasource('antelope', '/raid/data/sakurajima/db') +% ChannelTagList(1) = ChannelTag('JP.SAKA.--.BHZ'); +% ChannelTagList(2) = ChannelTag('JP.SAKB.--.BHZ'); +% startTime = datenum(2015,5,28); +% endTime = datenum(2015,6,2); +% gulpMinutes = 10; +% samplingIntervalSeconds = 60; +% measures = {'mean'}; +% rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... % startTime, endTime, gulpMinutes, ... % samplingIntervalSeconds, measures) % set up products structure for iceweb +products.waveform_plot.doit = true; products.rsam.doit = true; products.rsam.samplingIntervalSeconds = samplingIntervalSeconds; products.rsam.measures = measures; products.spectrograms.doit = false; + products.spectrograms.timeWindowMinutes = [10 120]; products.spectral_data.doit = false; products.spectral_data.samplingIntervalSeconds = samplingIntervalSeconds; @@ -66,4 +74,4 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... products.soundfiles.doit = false; % call iceweb_wrapper -iceweb.iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) \ No newline at end of file +iceweb.iceweb2017(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) \ No newline at end of file diff --git a/core/@waveform/plot_panels.m b/core/@waveform/plot_panels.m index 75677b1..fcdc6d6 100644 --- a/core/@waveform/plot_panels.m +++ b/core/@waveform/plot_panels.m @@ -59,8 +59,7 @@ end y=data-offset; y(isnan(y))=0; - ax(wavnum)=axes('Position',[left 0.98-wavnum*trace_height width trace_height]); - + ax(wavnum)=axes('Position',[left 0.98-wavnum*trace_height width trace_height]); % arrivals if exist('arrivalobj','var') @@ -105,7 +104,8 @@ end % xlim = get(gca, 'XLim'); % set(gca,'XTick', linspace(xlim(1), xlim(2), 11)); - if max(w(wavnum)) >= 0 % added for RSAM data + + if all((get(w(wavnum),'data'))>=0) % added for RSAM data ylims = get(gca, 'YLim'); set(gca, 'YLim', [0 ylims(2)]); end From 00520ca6d4b2da9a6315dcd0ee8677eedb5f2a1c Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Mar 2017 14:21:39 -0400 Subject: [PATCH 08/52] improved iceweb, RSAM, waveform with antelope, waveform detrend --- applications/+iceweb/iceweb2017.m | 47 ++- .../+iceweb/iceweb2017_extraproducts.m | 303 ++++++++++++++++++ applications/+iceweb/rsam_wrapper.m | 3 +- core/+antelope/dbtable_present.m | 19 +- core/@rsam/load.m | 48 ++- core/@rsam/make_bob_file.m | 7 +- core/@rsam/obsolete/load.m | 77 +++++ core/@rsam/plot.m | 146 +++++---- core/@rsam/read_bob_file.m | 84 +---- core/@rsam/rsam.m | 5 +- core/@rsam/rsam2waveform.m | 6 +- core/@rsam/save_to_bob_file.m | 18 +- core/@waveform/clean.m | 29 ++ core/@waveform/detrend.m | 43 ++- core/@waveform/fillgaps.m | 13 +- core/@waveform/plot_panels.m | 4 +- core/@waveform/private/load_antelope.m | 19 +- core/@waveform/waveform2rsam.m | 32 +- 18 files changed, 691 insertions(+), 212 deletions(-) create mode 100644 applications/+iceweb/iceweb2017_extraproducts.m create mode 100644 core/@rsam/obsolete/load.m create mode 100644 core/@waveform/clean.m diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 54279f3..17bdbcf 100644 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -50,7 +50,8 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products if ~exist(wavrawmat,'file') %% Get waveform data debug.print_debug(0, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnetName , datestr(snum), datestr(enum))); - w = waveform(ds, ChannelTagList, snum, enum); + %w = waveform(ds, ChannelTagList, snum, enum); + w = iceweb.waveform_wrapper(ds, ChannelTagList, snum, enum); % returns 1 waveform per channeltag, in same order if isempty(w) ds ChannelTagList @@ -103,19 +104,47 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products if products.waveform_plot.doit close all plot_panels(w) - input('continue any key','s'); fname = fullfile('iceweb', 'plots', 'waveforms', subnetName, sprintf('%s.png',datestr(snum,30)) ); orient tall; iceweb.saveImageFile(fname, 72); % this should make directory tree too end -% % RSAM -% if products.rsam.doit -% for measure = products.rsam.measures -% rsamobj = waveform2rsam(w); -% rsamobj.save_to_bob_file(fullfile('data', 'rsam', subnetName, 'SSSS.CCC.YYYY.MMMM.bob')); -% end -% end + % RSAM + if products.rsam.doit + for measureNum = 1:numel(products.rsam.measures) + measure = products.rsam.measures{measureNum}; + rsamobj = waveform2rsam(w, measure, products.rsam.samplingIntervalSeconds); + %rsamobj.plot_panels() + rsamobj.save_to_bob_file(fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob')); + end + end + + + % PLOT SPECTROGRAMS + if products.spectrograms.doit + spectrogramFilename = fullfile('iceweb', 'plots', 'spectrograms', subnetName, sprintf('%s.png',datestr(snum,30)) ); + debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)) + close all + spectrogramFraction = 0.75; + specObj = spectralobject(1024, 924, 10, [60 120]); + [sgresult, Tcell, Fcell, Ycell] = iceweb.spectrogram_iceweb(specObj, w, spectrogramFraction, iceweb.extended_spectralobject_colormap); + + + if sgresult > 0 % sgresult = number of waveforms for which a spectrogram was successfully plotted + % SAVE SPECTROGRAM PLOT TO IMAGE FILE AND CREATE THUMBNAIL + orient tall; + + if iceweb.saveImageFile(spectrogramFilename, 72) + + fileinfo = dir(spectrogramFilename); % getting a weird Index exceeds matrix dimensions error here. + debug.print_debug(0, sprintf('%s %s: spectrogram PNG size is %d',mfilename, datestr(utnow), fileinfo.bytes)); + +% % make thumbnails +% makespectrogramthumbnails(spectrogramFilename, spectrogramFraction); + + end + end + end debug.printfunctionstack('<'); diff --git a/applications/+iceweb/iceweb2017_extraproducts.m b/applications/+iceweb/iceweb2017_extraproducts.m new file mode 100644 index 0000000..437f878 --- /dev/null +++ b/applications/+iceweb/iceweb2017_extraproducts.m @@ -0,0 +1,303 @@ +function iceweb2017(thissubnet, ds, ChannelTagList, ... + snum, enum, nummins, products, PARAMS, paths) + debug.printfunctionstack('>'); + + % load state + statefile = sprintf('iceweb_%s_state.mat',thissubnet); + if exist(statefile, 'file') && ~strcmp(PARAMS.runmode, 'test') + load(statefile) + end + + % end time + if enum==0 + enum = utnow - delaymins/1440; + end + + + % loop one day at a time + for dnum = floor(snum):ceil(enum) + disp(datestr(dnum)) + +% % figure out which channeltags are active for this day? +% ctags_thisday = get_channeltags_thisday(ds, ctags, dnum); % subset to channeltags valid +% if isempty(todaysites) +% continue; +% end + +% % subset to sites for which the files pointed to by the +% % wfdisc table, actually exist +% m = listMiniseedFiles(ds, chantag, dnum, dnum+1); +% ctags_thisday = ctags_thisday([m.exists]==2); + + % get timewindow for this day + timewindows = get_timewindow(min([enum dnum+1]), nummins, max([dnum snum])); + + if ~strcmp(PARAMS.runmode,'test') + % loop over timewindows + for count = 1:length(timewindows.start) + this_timewindow.start = timewindows.start(count); + this_timewindow.stop = timewindows.stop(count); + iceweb_helper(paths, PARAMS, newsubnets, this_timewindow, ds, products); + end + end + end + debug.printfunctionstack('<'); +end + + +function iceweb_helper(paths, PARAMS, subnets, tw, ds, products) + debug.printfunctionstack('>'); + + MILLISECOND_IN_DAYS = (1 / 86400000); + + makeSamFiles = false; + makeSoundFiles = true; + + + snum = tw.start; + enum = tw.stop - MILLISECOND_IN_DAYS; % try to skip last sample + + % load state + statefile = sprintf('iceweb_%s_state.mat',subnet); + if exist(statefile, 'file') + load(statefile) + if snum < snum0 + continue + end + end + + % save state + ds0=ds; sites0=sites; snum0=snum; enum0=enum; subnet0 = subnet; + save(statefile, 'ds0', 'sites0', 'snum0', 'enum0', 'subnet0'); + clear ds0 sites0 snum0 enum0 subnet0 + + + + + %% Save raw waveform data to 1 hour MAT file + dv = datevec(snum); + yyyy = dv(1); + jjj = floor(snum - datenum(yyyy,1,1) + 1); + hh = dv(4); + wavematdir = 'wavemat'; + wavrawmat = sprintf('%s/%s/%04d/%03d/%s.%04d.%03d.%02d.raw.mat',wavematdir,subnet,yyyy,jjj,subnet,yyyy,jjj,hh); + if ~exist(wavrawmat,'file') + %% Get waveform data + debug.print_debug(0, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnet , datestr(snum), datestr(enum))); + w = waveform_wrapper(ds, ChannelTagList, snum, enum); + mkdir(fileparts(wavmatfile)); + disp(sprintf('Saving waveform data to %s',wavrawmat)); + save(wavrawmat); + end + + % continue + + % Save the cleaned waveform data to MAT file + wavcleanmat = sprintf('%s/%s/%04d/%03d/%s.%04d.%03d.%02d.clean.mat',wavematdir,subnet,yyyy,jjj,subnet,yyyy,jjj,hh); + if ~exist(wavcleanmat,'file') + + % Eliminate empty waveform objects + w = waveform_remove_empty(w); + if numel(w)==0 + debug.print_debug(0, 'No waveform data returned - skipping'); + continue + end + + % Clean the waveforms + w = fillgaps(w, 'interp'); + w = detrend(w); + + % Apply calibs which should be stored within sites structure to + % waveform objects to convert from counts to real physical + % units + w = apply_calib(w, sites); + + % Pad all waveforms to same start/end + [wsnum wenum] = gettimerange(w); % assume gaps already filled, signal + w = pad(w, min([snum wsnum]), max([enum wenum]), 0); + + % Apply filter to all signals + w = apply_filter(w, PARAMS); + + mkdir(fileparts(wavmatfile)); + disp(sprintf('Saving waveform data to %s',wavcleanmat)); + save(wavcleanmat); + end + + %% ICEWEB PRODUCTS + + % WAVEFORM PLOT + if products.waveform_plot.doit + close all + plot_panels(w) + [spdir,spbase,spext] = fileparts(spectrogramFilename); + fname = fullfile('plots', 'waveforms', subnet, sprintf('%s.png',datestr(snum,31)) ); + orient tall; + saveImageFile(fname, 72); % this should make directory tree too + end + + % RSAM + if products.rsam.doit + for measure = products.rsam.measures + rsamobj = waveform2rsam(w); + rsamobj.save_to_bob_file(fullfile('data', 'rsam', subnet, 'SSSS.CCC.YYYY.MMMM.bob')); + end + end + + + % CREATE & SAVE HELICORDER PLOT + if products.helicorders.doit + close all + for wi=1:numel(w) + heliplot = helicorder(w(wi),'mpl',3); + build(heliplot) + ct = get(w(wi),'channeltag'); + helicorderFilename = fullfile(spdir, sprintf('heli_%s_%s.%s.%s',spbase,ct.station,ct.channel,spext)); + orient tall; + saveImageFile(helicorderFilename, 72); + clear ct helicorderFilename + end + clear wi + end + + + % PLOT SPECTROGRAMS + if products.spectrograms.doit + debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)) + waveSp = w; + + % restrict spectrogram to Z channels only + w2=[]; + for wi=1:numel(w) + ct=get(w(wi),'channeltag'); + if strfind(ct.channel,'Z') + w2 = [w2 w(wi)]; + end + end + waveSp = w2; + + % split into 10-minute timewindows + for someloopover10mintimewindows + % make 10-minute spectrogram + close all + spectrogramFraction = 0.75; + [sgresult, Tcell, Fcell, Ycell] = spectrogram_iceweb(PARAMS.spectralobject, waveSp, spectrogramFraction, extended_spectralobject_colormap); + clear w2 wi ct + + if sgresult > 0 % sgresult = number of waveforms for which a spectrogram was successfully plotted + % SAVE SPECTROGRAM PLOT TO IMAGE FILE AND CREATE THUMBNAIL + orient tall; + + if saveImageFile(spectrogramFilename, 72) + + fileinfo = dir(spectrogramFilename); % getting a weird Index exceeds matrix dimensions error here. + debug.print_debug(0, sprintf('%s %s: spectrogram PNG size is %d',mfilename, datestr(utnow), fileinfo.bytes)); + + % make thumbnails + makespectrogramthumbnails(spectrogramFilename, spectrogramFraction); + + end + + % save spectral data + if products.spectral_data.doit + frequency_index_divider = 5.0; % Hz + for spi = 1:numel(Fcell) + thisY = Ycell{spi}; + thisF = Fcell{spi}; + thisT = Tcell{spi}; + sta = get(w(spi),'station'); + chan = get(w(spi),'channel'); + + % peakF and meanF for each spectrogram window + [Ymax,imax] = max(thisY); + PEAK_F = thisF(imax); + MEAN_F = (thisF' * thisY)./sum(thisY); + + % frequency index for each spectrogram window + fUpperIndices = find(thisF > frequency_index_divider); + fLowerIndices = find(thisF < frequency_index_divider); + fupper = sum(thisY(fUpperIndices,:)); + flower = sum(thisY(fLowerIndices,:)); + F_INDEX = log2(fupper ./ flower); + + % Peak spectral value in each frequency bin - or in + % each minute? + + % Now downsample to 1 sample per minute + dnum = unique(floorminute(thisT)); + for k=1:length(dnum) + p = find(floorminute(thisT) == dnum(k)); + downsampled_peakf(k) = nanmean(PEAK_F(p)); + downsampled_meanf(k) = nanmean(MEAN_F(p)); + downsampled_findex(k) = nanmean(F_INDEX(p)); + suby = thisY(:,p); + if size(suby,2) == 1 + max_in_each_freq_band(:,k) = suby; + else + max_in_each_freq_band(:,k) = max(suby'); + end + end + + % % Plot for verification + % close all + % subplot(2,1,1),plot(dnum,downsampled_peakf,':');datetick('x'); + % hold on + % plot(dnum,downsampled_meanf);datetick('x'); + % subplot(2,1,2),plot(dnum,downsampled_findex);datetick('x'); + % anykey = input('Press any key to continue'); + + % Save data + r1 = rsam(dnum, downsampled_peakf, 'sta', sta, ... + 'chan', chan, 'measure', 'peakf', ... + 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); + r1.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.peakf')) + + r2 = rsam(dnum, downsampled_meanf, 'sta', sta, ... + 'chan', chan, 'measure', 'meanf', ... + 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); + r2.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.meanf')) + + r3 = rsam(dnum, downsampled_findex, 'sta', sta, ... + 'chan', chan, 'measure', 'findex', ... + 'units', 'none', 'snum', min(dnum), 'enum', max(dnum)); + r3.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.findex')) + + specdatafilename = fullfile('data', 'spectral', subnet, datestr(min(dnum),'yyyy/mm/dd'), sprintf( '%s_%s_%s.mat', datestr(min(dnum),30), sta, chan) ); + specdatadir = fileparts(specdatafilename); % make the directory in case it does not exist + mkdir(specdatadir); % make the directory in case it does not exist + save(specdatafilename, 'dnum', 'max_in_each_freq_band') + clear r1 r2 r3 k p downsampled_peakf downsampled_meanf ... + downsampled_findex fUpperIndices fLowerIndices flower ... + fupper F_INDEX PEAK_F MEAN_F Ymax imax thisY thisF thisT ... + suby max_in_each_freq_band + + end + end + end + end + end + + % SOUND FILES + if products.soundfiles.doit + try + % 20120221 Added a "sound file" like 201202211259.sound which simply records order of stachans in waveform object so + % php script can match spectrogram panel with appropriate wav file + % 20121101 GTHO COmment: Could replace use of bnameroot below with strrep, since it is just used to change file extensions + % e.g. strrep(spectrogramFilename, '.png', sprintf('_%s_%s.wav', sta, chan)) + soundfileroot = fullfile('soundfiles', subnet, datestr(get(w(c),'start'),31), + [dname, bnameroot, bnameext] = fileparts(soundfileroot); + soundfilelist = sprintf('%s.sound',soundfileroot); + fsound = fopen(soundfilelist,'a'); + for c=1:length(w) + soundfilename = fullfile('soundfiles', sprintf('%s_%s_%s.wav',bnameroot, get(w(c),'station'), get(w(c), 'channel') ) ); + fprintf(fsound,'%s\n', soundfilename); + debug.print_debug(0, sprintf('Writing to %s',soundfilename)); + isSuccessful = waveform2sound(w(c), 60, soundfilename) + end + fclose(fsound); + end + end + + debug.printfunctionstack('<'); +end + diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m index 1cc06e7..6cf738a 100755 --- a/applications/+iceweb/rsam_wrapper.m +++ b/applications/+iceweb/rsam_wrapper.m @@ -63,8 +63,7 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... products.rsam.samplingIntervalSeconds = samplingIntervalSeconds; products.rsam.measures = measures; products.spectrograms.doit = false; - -products.spectrograms.timeWindowMinutes = [10 120]; +products.spectrograms.timeWindowMinutes = 10; products.spectral_data.doit = false; products.spectral_data.samplingIntervalSeconds = samplingIntervalSeconds; products.reduced_displacement.doit = false; diff --git a/core/+antelope/dbtable_present.m b/core/+antelope/dbtable_present.m index 46add2c..60fb7c4 100644 --- a/core/+antelope/dbtable_present.m +++ b/core/+antelope/dbtable_present.m @@ -1,14 +1,21 @@ -function present=dbtable_present(dbpath, table) +function present=dbtable_present(dbpath, tablename) % DBTABLE_PRESENT Check if a Datascope database table exists and has more than 0 rows. % -% PRESENT = DBTABLE_PRESENT(DBPATH, TABLE) +% PRESENT = DBTABLE_PRESENT(DBPATH, TABLENAME) % AUTHOR: Glenn Thompson, UAF-GI % $Date$ % $Revision$ present = 0; +if isa(dbpath,'cell') + dbpath = dbpath{1}; +end +if isa(tablename,'cell') + tablename = tablename{1}; +end +tablepath = sprintf('%s.%s',dbpath,tablename); +if exist(dbpath, 'file') || exist(tablepath, 'file') -if exist(dbpath, 'file') || exist(sprintf('%s.%s',dbpath,table), 'file') try db = dbopen(dbpath, 'r'); catch @@ -16,7 +23,7 @@ return; end try - db = dblookup_table(db, table); + db = dblookup_table(db, tablename); numrows = dbquery(db, 'dbRECORD_COUNT'); if numrows > 0 present = numrows; @@ -35,8 +42,8 @@ end catch - debug.print_debug(0, 'Failure: dblookup_table fails for %s.%s',dbpath,table); + debug.print_debug(0, 'Failure: dblookup_table fails for %s',tablepath); end else - debug.print_debug(0,'Failure: cannot find %s or %s.%s on this computer.',dbpath,dbpath,table); + debug.print_debug(0,'Failure: cannot find %s or %s.%s on this computer.',dbpath,tablepath); end diff --git a/core/@rsam/load.m b/core/@rsam/load.m index a9dd885..2e8136d 100644 --- a/core/@rsam/load.m +++ b/core/@rsam/load.m @@ -9,7 +9,7 @@ % self.f - a structure which contains 'file', 'snum', 'enum' and 'found' parameters % Author: % Glenn Thompson, MVO, 2000 - + debug.printfunctionstack('>'); % initialise return variables [yyyy, ~]=datevec(f.snum); days=365; @@ -17,25 +17,56 @@ days=366; end - datapointsperday = 1440; + % work out how many days, and how many samples per day + ddir = dir(f.file); + if numel(ddir)==1 + if (ddir.bytes/365) == round(ddir.bytes/365) + day_recs = 365; + elseif (ddir.bytes/366) == round(ddir.bytes/366) + day_recs = 366; + elseif (ddir.bytes/367) == round(ddir.bytes/367) + day_recs = 367; + else + error('cannot work out how many day records in RSAM file'); % no idea what this file is + end + else + day_recs = NaN; + end + if days == day_recs + % no header day rec + header_rec = false; + elseif days == day_recs - 1 + % no header day rec + header_rec = true; + else + error('cannot work out if there is a header in RSAM file'); + end + + % How many samples per day? + SAMPLES_PER_DAY = (ddir.bytes / day_recs) / 4; + headersamples = 0; tz=0; if strfind(f.file,'RSAM') - headersamples=datapointsperday;% for PC-SEIS RSAM data there is a 1 day header + headersamples=SAMPLES_PER_DAY;% for PC-SEIS RSAM data there is a 1 day header tz=-4;% for Montserrat RSAM data time zone is off by 4 hours end - startsample = ceil( (f.snum-datenum(yyyy,1,1))*datapointsperday)+headersamples; - endsample = (f.enum-datenum(yyyy,1,1)) *datapointsperday + headersamples; + if header_rec + headersamples=SAMPLES_PER_DAY; + end + + startsample = ceil( (f.snum-datenum(yyyy,1,1))*SAMPLES_PER_DAY)+headersamples; + endsample = (f.enum-datenum(yyyy,1,1)) *SAMPLES_PER_DAY + headersamples; nsamples = endsample - startsample + 1; % create dnum & blank data vector - dnum_ = ceilminute(f.snum)+(0:nsamples-1)/datapointsperday - tz/24; + dnum_ = ceilminute(f.snum)+(0:nsamples-1)/SAMPLES_PER_DAY - tz/24; data_ = nan(1,length(dnum_)); if f.found % file found debug.print_debug(0, sprintf( 'Loading data from %s, position %d to %d of %d', ... - f.file, startsample,(startsample+nsamples-1),(datapointsperday*days) )); + f.file, startsample,(startsample+nsamples-1),(SAMPLES_PER_DAY*days) )); fid=fopen(f.file,'r', 'l'); % big-endian for Sun, little-endian for PC @@ -73,5 +104,6 @@ % Fill NULL values with NaN self.data(self.data == -998 | self.data == 0) = NaN; + debug.printfunctionstack('<'); +end -end \ No newline at end of file diff --git a/core/@rsam/make_bob_file.m b/core/@rsam/make_bob_file.m index b57f3b5..c994c55 100644 --- a/core/@rsam/make_bob_file.m +++ b/core/@rsam/make_bob_file.m @@ -1,7 +1,6 @@ -function makebobfile(outfile, days) - % makebobfile(outfile, days); - datapointsperday = 1440; - samplesperyear = days*datapointsperday; +function make_bob_file(outfile, days, SAMPLES_PER_DAY) + % make_bob_file(outfile, days); + samplesperyear = round(days)*round(SAMPLES_PER_DAY); a = zeros(samplesperyear,1); % ensure host directory exists mkdir(fileparts(outfile)); diff --git a/core/@rsam/obsolete/load.m b/core/@rsam/obsolete/load.m new file mode 100644 index 0000000..a9dd885 --- /dev/null +++ b/core/@rsam/obsolete/load.m @@ -0,0 +1,77 @@ +function self = load(self, f) +% Purpose: +% Loads derived data from a binary file in the BOB RSAM format +% The pointer position at which to reading from the binary file is determined from f.snum +% Load all the data from f.snum to f.enum. So if timewindow is 12:34:56 to 12:44:56, +% it is the samples at 12:35, ..., 12:44 - i.e. 10 of them. +% +% Input: +% self.f - a structure which contains 'file', 'snum', 'enum' and 'found' parameters +% Author: +% Glenn Thompson, MVO, 2000 + + % initialise return variables + [yyyy, ~]=datevec(f.snum); + days=365; + if mod(yyyy,4)==0 + days=366; + end + + datapointsperday = 1440; + headersamples = 0; + tz=0; + if strfind(f.file,'RSAM') + headersamples=datapointsperday;% for PC-SEIS RSAM data there is a 1 day header + tz=-4;% for Montserrat RSAM data time zone is off by 4 hours + end + startsample = ceil( (f.snum-datenum(yyyy,1,1))*datapointsperday)+headersamples; + endsample = (f.enum-datenum(yyyy,1,1)) *datapointsperday + headersamples; + nsamples = endsample - startsample + 1; + + % create dnum & blank data vector + dnum_ = ceilminute(f.snum)+(0:nsamples-1)/datapointsperday - tz/24; + data_ = nan(1,length(dnum_)); + + if f.found + % file found + debug.print_debug(0, sprintf( 'Loading data from %s, position %d to %d of %d', ... + f.file, startsample,(startsample+nsamples-1),(datapointsperday*days) )); + + fid=fopen(f.file,'r', 'l'); % big-endian for Sun, little-endian for PC + + % Position the pointer + offset=(startsample)*4; + fseek(fid,offset,'bof'); + + % Read the data + [data_, ~] = fread(fid, nsamples, 'float32'); + fclose(fid); + debug.print_debug(0, sprintf('mean of data loaded is %e',nanmean(data_))); + + % Transpose to give same dimensions as dnum + data_=data_'; + + % Test for Nulls + datafound = any(data_ > 0); + else + datafound = false; + debug.print_debug(0, sprintf('File %s not found', f.file)); + end + + % Now paste together the matrices + self.dnum = catmatrices(dnum_, self.dnum); + self.data = catmatrices(data_, self.data); + + if ~datafound + debug.print_debug(0, sprintf('%s: No data loaded from file %s',mfilename,f.file)); + end + + % eliminate any data outside range asked for + myRange = self.dnum >= self.snum & self.dnum <= self.enum; + self.dnum = self.dnum(myRange); + self.data = self.data(myRange); + + % Fill NULL values with NaN + self.data(self.data == -998 | self.data == 0) = NaN; + +end \ No newline at end of file diff --git a/core/@rsam/plot.m b/core/@rsam/plot.m index 8556662..2c8854c 100644 --- a/core/@rsam/plot.m +++ b/core/@rsam/plot.m @@ -1,4 +1,4 @@ -function handlePlot = plot(rsam_vector, varargin) +function plot(rsam_vector, varargin) % RSAM/PLOT plot rsam data % handle = plot(rsam_vector, varargin) % Properties include: @@ -50,81 +50,93 @@ hold on; t = self.dnum; y = self.data; + + debug.print_debug(10,sprintf('Data length: %d',length(y))); - %figure - %if strcmp(rsam_vector(c).units, 'Hz') - if strcmp(yaxistype,'linear') - - % plot on a linear axis, with station name as a y label - % datetick too, add measure as title, fiddle with the YTick's and add max(y) in top left corner - if ~p.Results.fillbelow - handlePlot = plot(t, y, symbol, 'Color', lineColour{c}); + if length(y)>0 + %figure + %if strcmp(rsam_vector(c).units, 'Hz') + + if strcmp(yaxistype,'linear') + + % plot on a linear axis, with station name as a y label + % datetick too, add measure as title, fiddle with the YTick's and add max(y) in top left corner + if ~p.Results.fillbelow + handlePlot = plot(t, y, symbol, 'Color', lineColour{c}); + else + handlePlot = fill([min(t) t max(t)], [min([y 0]) y min([y 0])], lineColour{c}); + end + + % if c ~= numel(rsam_vector) + % set(gca,'XTickLabel',''); + % end + + % yt=get(gca,'YTick'); + % ytinterval = (yt(2)-yt(1))/2; + % yt = yt(1) + ytinterval: ytinterval: yt(end); + % ytl = yt'; + % ylim = get(gca, 'YLim'); + % set(gca, 'YLim', [0 ylim(2)],'YTick',yt); + % %ylabelstr = sprintf('%s.%s %s (%s)', self.sta, self.chan, self.measure, self.units); + % ylabelstr = sprintf('%s', self.sta); + % ylabel(ylabelstr); + ylabel(sprintf('%s',self.units)) + % datetick('x','keeplimits'); + a = axis; + datetick('x') + set(gca,'XLim',[a(1) a(2)]); + xlabel('Date/Time'); + if addlegend + legend(); + end + else - handlePlot = fill([min(t) t max(t)], [min([y 0]) y min([y 0])], lineColour{c}); + + % make a logarithmic plot, with a marker size and add the station name below the x-axis like a legend + y = log10(y); % use log plots + + handlePlot = plot(t, y, symbol, 'Color', lineColour{c},... + 'MarkerSize', 1.0); + + if strfind(self.measure, 'dr') + %ylabel(sprintf('%s (cm^2)',self(c).measure)); + %ylabel(sprintf('D_R (cm^2)',self(c).measure)); + Yticks = [0.01 0.02 0.05 0.1 0.2 0.5 1 2 5 10 20 50 ]; + Ytickmarks = log10(Yticks); + for count = 1:length(Yticks) + Yticklabels{count}=num2str(Yticks(count),3); + end + set(gca, 'YLim', [min(Ytickmarks) max(Ytickmarks)],... + 'YTick',Ytickmarks,'YTickLabel',Yticklabels); + end + axis tight + a = axis; + datetick('x') + set(gca,'XLim',[a(1) a(2)]); + % + xlabel(sprintf('Date/Time starting at %s',datestr(self.snum))) + ylabel(sprintf('log(%s)',self.units)) + end - % if c ~= numel(rsam_vector) - % set(gca,'XTickLabel',''); - % end - - % yt=get(gca,'YTick'); - % ytinterval = (yt(2)-yt(1))/2; - % yt = yt(1) + ytinterval: ytinterval: yt(end); - % ytl = yt'; - % ylim = get(gca, 'YLim'); - % set(gca, 'YLim', [0 ylim(2)],'YTick',yt); - % %ylabelstr = sprintf('%s.%s %s (%s)', self.sta, self.chan, self.measure, self.units); -% ylabelstr = sprintf('%s', self.sta); -% ylabel(ylabelstr); - ylabel(sprintf('%s',self.units)) -% datetick('x','keeplimits'); - a = axis; - datetick('x') - set(gca,'XLim',[a(1) a(2)]); - xlabel('Date/Time'); - if addlegend - legend(); + if p.Results.addgrid + grid on; end - - else - - % make a logarithmic plot, with a marker size and add the station name below the x-axis like a legend - y = log10(y); % use log plots - - handlePlot = plot(t, y, symbol, 'Color', lineColour{c},... - 'MarkerSize', 1.0); - - if strfind(self.measure, 'dr') - %ylabel(sprintf('%s (cm^2)',self(c).measure)); - %ylabel(sprintf('D_R (cm^2)',self(c).measure)); - Yticks = [0.01 0.02 0.05 0.1 0.2 0.5 1 2 5 10 20 50 ]; - Ytickmarks = log10(Yticks); - for count = 1:length(Yticks) - Yticklabels{count}=num2str(Yticks(count),3); - end - set(gca, 'YLim', [min(Ytickmarks) max(Ytickmarks)],... - 'YTick',Ytickmarks,'YTickLabel',Yticklabels); + if p.Results.addlegend && ~isempty(y) + xlim = get(gca, 'XLim'); + legend_ypos = 0.9; + legend_xpos = c/10; end - axis tight - a = axis; - datetick('x') - set(gca,'XLim',[a(1) a(2)]); -% - xlabel(sprintf('Date/Time starting at %s',datestr(self.snum))) - ylabel(sprintf('log(%s)',self.units)) - - end - if p.Results.addgrid - grid on; - end - if p.Results.addlegend && ~isempty(y) - xlim = get(gca, 'XLim'); - legend_ypos = 0.9; - legend_xpos = c/10; + datetick('x','keeplimits') + if ~strcmp(self.ChannelTag.string(), '...') + tstr = sprintf('%s %s\n%s %.0f s',self.ChannelTag.string(), datestr(t(1)), self.measure, round(self.sampling_interval) ); + else + tstr = sprintf('%s\n%s %.0f s',self.files.file, datestr(a(1)), round(self.sampling_interval) ); + end + title(tstr) end - end end \ No newline at end of file diff --git a/core/@rsam/read_bob_file.m b/core/@rsam/read_bob_file.m index 1394672..a84743f 100755 --- a/core/@rsam/read_bob_file.m +++ b/core/@rsam/read_bob_file.m @@ -14,7 +14,7 @@ % of a 4 byte floating number for each minute of the year, for a % single station-channel. % -% s = read_bob_file('file', file, 'snum', snum, 'enum', enum, 'sta', sta, 'chan', chan, 'measure', measure, 'seismogram_type', seismogram_type, 'units', units) +% s = read_bob_file(filepattern, 'snum', snum, 'enum', enum, 'sta', sta, 'chan', chan, 'measure', measure, 'seismogram_type', seismogram_type, 'units', units) % % filepattern % the path to the file. Substitutions enabled % 'SSSS' replaced with sta @@ -30,8 +30,9 @@ % seismogram_type % e.g. 'velocity' or 'displacement', default is 'raw' % units % units to label y-axis, e.g. 'nm/s' or 'nm' or 'cm2', default is 'counts' % -% See also: sam, oneMinuteData +% See also: sam, oneMinuteData + debug.printfunctionstack('>'); self = rsam(); % Create a blank sam object @@ -78,10 +79,12 @@ end end end + debug.printfunctionstack('<'); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function self = findfiles(self, file, snum, enum) + debug.printfunctionstack('>'); % Generate a list of files corresponding to the file pattern, % snum and enum given. @@ -129,6 +132,7 @@ end end self.files = files; + debug.printfunctionstack('<'); end % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % function self = load(self, f) @@ -217,80 +221,4 @@ % % end -function self = load(self, f) -% Purpose: -% Loads derived data from a binary file in the BOB RSAM format -% The pointer position at which to reading from the binary file is determined from f.snum -% Load all the data from f.snum to f.enum. So if timewindow is 12:34:56 to 12:44:56, -% it is the samples at 12:35, ..., 12:44 - i.e. 10 of them. -% -% Input: -% self.f - a structure which contains 'file', 'snum', 'enum' and 'found' parameters -% Author: -% Glenn Thompson, MVO, 2000 - - % initialise return variables - [yyyy, ~]=datevec(f.snum); - days=365; - if mod(yyyy,4)==0 - days=366; - end - - datapointsperday = 1440; - headersamples = 0; - tz=0; - if strfind(f.file,'RSAM') - headersamples=datapointsperday;% for PC-SEIS RSAM data there is a 1 day header - tz=-4;% for Montserrat RSAM data time zone is off by 4 hours - end - startsample = ceil( (f.snum-datenum(yyyy,1,1))*datapointsperday)+headersamples; - endsample = (f.enum-datenum(yyyy,1,1)) *datapointsperday + headersamples; - nsamples = endsample - startsample + 1; - - % create dnum & blank data vector - dnum_ = ceilminute(f.snum)+(0:nsamples-1)/datapointsperday - tz/24; - data_ = nan(1,length(dnum_)); - - if f.found - % file found - debug.print_debug(0, sprintf( 'Loading data from %s, position %d to %d of %d', ... - f.file, startsample,(startsample+nsamples-1),(datapointsperday*days) )); - - fid=fopen(f.file,'r', 'l'); % big-endian for Sun, little-endian for PC - - % Position the pointer - offset=(startsample)*4; - fseek(fid,offset,'bof'); - % Read the data - [data_, ~] = fread(fid, nsamples, 'float32'); - fclose(fid); - debug.print_debug(0, sprintf('mean of data loaded is %e',nanmean(data_))); - - % Transpose to give same dimensions as dnum - data_=data_'; - - % Test for Nulls - datafound = any(data_ > 0); - else - datafound = false; - debug.print_debug(0, sprintf('File %s not found', f.file)); - end - - % Now paste together the matrices - self.dnum = catmatrices(dnum_, self.dnum); - self.data = catmatrices(data_, self.data); - - if ~datafound - debug.print_debug(0, sprintf('%s: No data loaded from file %s',mfilename,f.file)); - end - - % eliminate any data outside range asked for - myRange = self.dnum >= self.snum & self.dnum <= self.enum; - self.dnum = self.dnum(myRange); - self.data = self.data(myRange); - - % Fill NULL values with NaN - self.data(self.data == -998 | self.data == 0) = NaN; - -end diff --git a/core/@rsam/rsam.m b/core/@rsam/rsam.m index 08fd8cd..bed3f6b 100755 --- a/core/@rsam/rsam.m +++ b/core/@rsam/rsam.m @@ -170,13 +170,14 @@ plot_panels(self); w = rsam2waveform(self); save_to_bob_file(self, filepattern) - save_to_text_file(self, filepath) + save_to_text_file(self, filepath) + result = isempty(self); end % end of dynamic methods %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods(Access = public, Static) self = read_bob_file(varargin) - make_bob_file(outfile, days) + make_bob_file(outfile, days, samples_per_day) end end % classdef diff --git a/core/@rsam/rsam2waveform.m b/core/@rsam/rsam2waveform.m index c7106c8..c3af2b4 100644 --- a/core/@rsam/rsam2waveform.m +++ b/core/@rsam/rsam2waveform.m @@ -1,7 +1,11 @@ function w= rsam2waveform(s) w = []; for c=1:numel(s) - wc = waveform(s(c).ChannelTag, 1.0/s(c).sampling_interval, s(c).snum, s(c).data, s(c).units); + if numel(s(c).data) > 0 + wc = waveform(s(c).ChannelTag, 1.0/s(c).sampling_interval, s(c).snum, s(c).data, s(c).units); + else + wc = waveform(s(c).ChannelTag, 1.0/s(c).sampling_interval, 0, [], s(c).units); + end w = [w wc]; end end \ No newline at end of file diff --git a/core/@rsam/save_to_bob_file.m b/core/@rsam/save_to_bob_file.m index 4ef304b..13bf8b5 100644 --- a/core/@rsam/save_to_bob_file.m +++ b/core/@rsam/save_to_bob_file.m @@ -51,7 +51,11 @@ function save_to_bob_file(self, filepattern) end end + + SECONDS_PER_DAY = 60 * 60 * 24; for yyyy=syyy:eyyy + self(c).sampling_interval + SAMPLES_PER_DAY = SECONDS_PER_DAY / self(c).sampling_interval; % how many days in this year? daysperyear = 365; @@ -65,13 +69,13 @@ function save_to_bob_file(self, filepattern) if ~exist(fname,'file') debug.print_debug(2, ['Creating ',fname]) - rsam.make_bob_file(fname, daysperyear); + rsam.make_bob_file(fname, daysperyear, SAMPLES_PER_DAY); end - datapointsperday = 1440; + SAMPLES_PER_DAY = SECONDS_PER_DAY / self(c).sampling_interval; % round times to minute - dnum = round((dnum-1/86400) * 1440) / 1440; + dnum = round((dnum-1/SECONDS_PER_DAY) * SAMPLES_PER_DAY) / SAMPLES_PER_DAY; % subset for current year dnumy = dnum(dnum < datenum(yyyy + 1, 1, 1)); @@ -79,7 +83,7 @@ function save_to_bob_file(self, filepattern) % find the next contiguous block of data diff=dnumy(2:end) - dnumy(1:end-1); - i = find(diff > 1.5/1440 | diff < 0.5/1440); + i = find(diff > 1.5/SAMPLES_PER_DAY | diff < 0.5/SAMPLES_PER_DAY); disp(sprintf('Saving to %s',fname)); @@ -89,7 +93,7 @@ function save_to_bob_file(self, filepattern) for c=1:length(dnumy) % write the data - startsample = round((dnumy(c) - datenum(yyyy,1,1)) * datapointsperday); + startsample = round((dnumy(c) - datenum(yyyy,1,1)) * SAMPLES_PER_DAY); offset = startsample*4; fid = fopen(fname,'r+'); fseek(fid,offset,'bof'); @@ -101,11 +105,11 @@ function save_to_bob_file(self, filepattern) % fast mode % write the data - startsample = round((dnumy(1) - datenum(yyyy,1,1)) * datapointsperday); + startsample = round((dnumy(1) - datenum(yyyy,1,1)) * SAMPLES_PER_DAY); offset = startsample*4; fid = fopen(fname,'r+','l'); % little-endian. Anything written on a PC is little-endian by default. Sun is big-endian. fseek(fid,offset,'bof'); - debug.print_debug(2, sprintf('saving data with mean of %e from to file %s, starting at position %d/%d',nanmean(datay),fname,startsample,(datapointsperday*daysperyear))) + debug.print_debug(2, sprintf('saving data with mean of %e from to file %s, starting at position %d/%d',nanmean(datay),fname,startsample,(SAMPLES_PER_DAY*daysperyear))); fwrite(fid,datay,'float32'); fclose(fid); end diff --git a/core/@waveform/clean.m b/core/@waveform/clean.m new file mode 100644 index 0000000..4ce3ad7 --- /dev/null +++ b/core/@waveform/clean.m @@ -0,0 +1,29 @@ +function w = clean(w) +% CLEAN Clean up waveform object(s) +% w = clean(w) will detrend waveforms (in a smart way, aware of NaN +% values marking missing values), then use fillgaps to mark bounded NaNs +% with linear-interpolated values, and also mark bounded NaNs with zeroes +% (now okay, since trend has been removed, so no weird startup effects). +% It then removes non-linear trends using a 20-s (0.05 Hz) highpass +% filter. + +% Glenn Thompson March 28, 2017 + + for c=1:numel(w) + + if ~isempty(w(c)) + + % smart detrend + w(c) = detrend(w(c)); + + % % fill gaps to get rid of NaNs marking missing values, so we can filter + w(c) = fillgaps(w(c), 'interp'); + + % highpass data at 20s - to remove non-linear trends + f = filterobject('h',0.05,2); + w(c) = filtfilt(f,w(c)); + + end + end + +end \ No newline at end of file diff --git a/core/@waveform/detrend.m b/core/@waveform/detrend.m index 64a1481..0a93c31 100644 --- a/core/@waveform/detrend.m +++ b/core/@waveform/detrend.m @@ -7,13 +7,21 @@ % WAVEFORM: a waveform object N-DIMENSIONAL % OPTIONS: optional parameters as described in matlab's DETREND % - % WARNING: Detrending a waveform with NAN values will return a waveform - % with nothing but NAN values. Replace NaN values before detrending. - % "demean", however, works fine but only removes constant offsets. + % Missing values in GISMO should be marked with NaN. waveform/detrend + % attempts to handle these smartly. Any leading or trailing NaNs are + % temporarily removed, leaving data from the first real value to the + % last real value. Any NaNs within this sequence are temporarily + % replaced via linear interpolation, then the sequence is detrended. + % Then the removed NaNs are all put back in. + % + % If you wish to handle missing values (NaNs) in a different way, do so + % before calling waveform/detrend. % % See also DETREND for list of options % AUTHOR: Celso Reyes, Geophysical Institute, Univ. of Alaska Fairbanks + % Modified by Glenn Thompson 20170328 to handle missing values (marked + % by NaN) smartly. % $Date$ % $Revision$ @@ -27,13 +35,30 @@ if ~warnedAboutNAN && any(isnan(d)) warnedAboutNAN = true; warning('Waveform:detrend:NaNwarning',... - ['NAN values exist in one or more waveforms.',... - ' Detrend will return values of NAN\n',... - 'One possible way to correct this problem is to use FILLGAPS ',... - 'to replace NAN values prior to detrending\n',... - ' "demean", however, should work fine.']); + ['NaN values exist in one or more waveforms.',... + ' Attempting to deal with these in a smart way']); end - w(I).data = detrend(d,varargin{:}); + % 20170328 New code added by Glenn Thompson to deal with leading or + % trailing NaN. It finds the first & last non-NaN value, and only + % tries to detrend that section of the data. + % Between the first and last non-NaN value, it temporarily fills any + % intervening NaNs via linear interpolation. Then puts them back in + % after detrending. + % The overall result is that NaNs are preserved, but the good data + % should also get detrended. A more sophisticated method might define + % breakpoints for detrending. + good_data_indices = find(~isnan(d)); + first_good_index = good_data_indices(1); + last_good_index = good_data_indices(end); + d2 = d(first_good_index:last_good_index); + still_missing_data_indices = find(isnan(d2)); + d2(isnan(d2)) = interp1(find(~isnan(d2)), d2(~isnan(d2)), find(isnan(d2)),'linear'); + d2 = detrend(d2,varargin{:}); + d2(still_missing_data_indices) = NaN; + d(first_good_index:last_good_index) = d2; + + %w(I).data = detrend(d,varargin{:}); + w(I).data = d; end end diff --git a/core/@waveform/fillgaps.m b/core/@waveform/fillgaps.m index 3e4bfe9..411d430 100644 --- a/core/@waveform/fillgaps.m +++ b/core/@waveform/fillgaps.m @@ -1,7 +1,8 @@ function w = fillgaps(w,value, gapvalue) % FILLGAPS - fill missing data with values of your choice % W = fillgaps(W,number) fills data with the number of your choice - % "number" can also be nan or inf or -inf + % "number" can also be NaN or Inf or -Inf (GISMO is designed to mark + % missing values with NaN). % % W = fillgaps(W,[]) removes missing data from waveform. Warning, the % resulting timing issues are NOT corrected for! @@ -16,7 +17,8 @@ % choice (can also be Inf, -Inf, NaN) % % 'interp' - assuming missing values are marked by NaN, this will use - % cubic interpolation to estimate the missing values + % linear interpolation to estimate the missing values. No values are + % extrapolated. % % FILLGAPS is designed to replace NaN values. However, if if you use % W = fillgaps(W,number, gapvalue), then ALL data points with the value @@ -55,9 +57,14 @@ w(N).data(getgaps(w(N))) = value; end case 'interp' % blame Glenn, inspired by http://www.mathworks.com/matlabcentral/fileexchange/8225-naninterp by E Rodriguez + % 20170328: changed spline interpolation - which blows up because it will extrapolate too - into + % linear interpolation. But with linear interpolation, since it + % does not extrapolate, if there are NaNs from beginning to some + % sample, these will not be replaced. So replace these by zeros. for N = 1:numel(w); X = get(w(N),'data'); - X(isnan(X)) = interp1(find(~isnan(X)), X(~isnan(X)), find(isnan(X)),'spline'); + X(isnan(X)) = interp1(find(~isnan(X)), X(~isnan(X)), find(isnan(X)),'linear'); + X(isnan(X)) = 0; w(N) = set(w(N),'data',X); end otherwise diff --git a/core/@waveform/plot_panels.m b/core/@waveform/plot_panels.m index fcdc6d6..a4e04c8 100644 --- a/core/@waveform/plot_panels.m +++ b/core/@waveform/plot_panels.m @@ -1,4 +1,4 @@ -function fh=plot_panels(w, alignWaveforms, arrivalobj) +function plot_panels(w, alignWaveforms, arrivalobj) %PLOT_PANELS Plot multiple waveform objects as separate linked panels % PLOT_PANELS(w, alignWaveforms) % where: @@ -15,6 +15,8 @@ % Glenn Thompson 2014/11/05, generalized after a function written in 2000 % to operate on Seisan files only + w = iceweb.waveform_remove_empty(w); + if numel(w)==0 || isempty(w) warning('no waveforms to plot') return diff --git a/core/@waveform/private/load_antelope.m b/core/@waveform/private/load_antelope.m index c692f37..4224f3f 100644 --- a/core/@waveform/private/load_antelope.m +++ b/core/@waveform/private/load_antelope.m @@ -40,9 +40,16 @@ if exist('specificDatabase','var') % called with a specific database, not a datasource % but may be a nested call from a datasource using RecursivelyLoadFromEachDatabase() database = specificDatabase; + if isa(database,'cell') + database = database{1}; + end outputWaveforms = emptyWaveform(); % Glenn 2016/05/12 Check if wfdisc table exists + if ~antelope.dbtable_present(database, 'wfdisc') + disp(sprintf('database %s contains no wfdisc table',database)); + return + end % Glenn 2016/05/12 Build expressions here for subsetting database % station or channel may have a wildcard, but not both @@ -492,12 +499,20 @@ function cleanUpFail(varargin) end [trunits, ~] = segtype2units(st(cc).segtype); wt(cc) = waveform(ChannelTag(st(cc).net, st(cc).sta, '',st(cc).chan), st(cc).samprate, epoch2datenum(st(cc).time), y, trunits); - if calib~=0 wt(cc) = addfield(wt(cc),'calib', st(cc).calib); - wt(cc) = set(wt(cc), 'units', trunits); + if ~strcmp(trunits,'null') + wt(cc) = set(wt(cc), 'units', trunits); + else + if st(cc).chan(2) == 'D' + wt(cc) = set(wt(cc), 'units', 'Pa?'); + elseif st(cc).chan(2) == 'H' + wt(cc) = set(wt(cc), 'units', 'nm/sec?'); + end + end wt(cc) = addfield(wt(cc), 'calibration_applied', 'YES'); else + wt(cc) = set(wt(cc), 'units', 'Counts?'); wt(cc) = addfield(wt(cc), 'calibration_applied', 'NO'); end end diff --git a/core/@waveform/waveform2rsam.m b/core/@waveform/waveform2rsam.m index 0ba08ec..460f5ef 100644 --- a/core/@waveform/waveform2rsam.m +++ b/core/@waveform/waveform2rsam.m @@ -42,19 +42,25 @@ samplingIntervalSeconds = 60; end -% detrend data after fill gaps to get rid of NaNs marking missing values -w = fillgaps(w, 'interp'); -w = detrend(w); +% clean waveform objects - to remove linear and non-linear trends +w = clean(w); for i = 1:numel(w) - WsamplingIntervalSeconds = 1.0 / get(w(i), 'freq'); - % either set to whatever samplingIntervalSeconds seconds of data are, or the - % length of data if less - crunchfactor = min([round(samplingIntervalSeconds / WsamplingIntervalSeconds) numel(get(w(i),'data'))]); - wabs = set(w(i), 'data', abs(get(w(i),'data')) ); - wresamp = resample(wabs, measure, crunchfactor); - s(i) = rsam(get(wresamp,'timevector')', get(wresamp,'data')', ... - 'ChannelTag', get(wresamp, 'ChannelTag'), ... - 'measure', measure, ... - 'units', get(wresamp, 'units')); + if ~isempty(w(i)) + WsamplingIntervalSeconds = 1.0 / get(w(i), 'freq'); + % either set to whatever samplingIntervalSeconds seconds of data are, or the + % length of data if less + crunchfactor = min([round(samplingIntervalSeconds / WsamplingIntervalSeconds) numel(get(w(i),'data'))]); + wabs = set(w(i), 'data', abs(get(w(i),'data')) ); + wresamp = resample(wabs, measure, crunchfactor); + s(i) = rsam(get(wresamp,'timevector')', get(wresamp,'data')', ... + 'ChannelTag', get(wresamp, 'ChannelTag'), ... + 'measure', measure, ... + 'units', get(wresamp, 'units')); + else + s(i) = rsam([], [], ... + 'ChannelTag', get(w(i), 'ChannelTag'), ... + 'measure', measure, ... + 'units', get(w(i), 'units')); + end end From 4b45b02d91c8cf3188a8439636394b2d3461d43f Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Mar 2017 14:31:05 -0400 Subject: [PATCH 09/52] rsam wrapper test added --- rsam_wrapper_test.m | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 rsam_wrapper_test.m diff --git a/rsam_wrapper_test.m b/rsam_wrapper_test.m new file mode 100644 index 0000000..367d0cf --- /dev/null +++ b/rsam_wrapper_test.m @@ -0,0 +1,28 @@ +datasourceObject = datasource('antelope', '/home/t/thompsong/Cassandra/sak/dbSAK') +gulpMinutes = 60; +samplingIntervalSeconds = 10; +measures = {'mean';'max';'median'}; + +%% Days with data from SAKA only +ChannelTagList = ChannelTag.array('JP','SAKA','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}); +startTime = datenum(2015,5,21); +endTime = datenum(2015,5,24); +iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, ... + samplingIntervalSeconds, measures); + +%% Days with data from SAKA and SAKB +ChannelTagList = [ChannelTagList ChannelTag.array('JP','SAKB','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}) ]; +startTime = datenum(2015,5,24); +endTime = datenum(2015,6,8); +iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, ... + samplingIntervalSeconds, measures); + +%% Days with data from SAKC too +%ChannelTagList = [ChannelTagList ChannelTag.array('JP','SAKC','',{'BD1';'HHE';'HHN';'HHZ'}) ]; +% startTime = datenum(2015,5,24); +% endTime = datenum(2015,6,8); +% iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... +% startTime, endTime, gulpMinutes, ... +% samplingIntervalSeconds, measures); \ No newline at end of file From 6bdb61bc986a2a628d899a9c35ac2c486af204d5 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Mar 2017 14:33:32 -0400 Subject: [PATCH 10/52] changed permissions for all --- applications/+iceweb/apply_calib.m | 0 applications/+iceweb/apply_filter.m | 0 applications/+iceweb/calculatePanelPositions.m | 0 applications/+iceweb/datenum2julday.m | 0 applications/+iceweb/extended_spectralobject_colormap.m | 0 applications/+iceweb/get_channeltags_active.m | 0 applications/+iceweb/get_spectrogram_filename.m | 0 applications/+iceweb/iceweb.m | 0 applications/+iceweb/iceweb2017.m | 0 applications/+iceweb/iceweb2017_extraproducts.m | 0 applications/+iceweb/iceweb_wrapper.m | 0 applications/+iceweb/makespectrogramthumbnails.m | 0 applications/+iceweb/montserrat_remove_analog_sites.m | 0 applications/+iceweb/setup.m | 0 applications/+iceweb/show_sites.m | 0 applications/+iceweb/spectrogram_iceweb.m | 0 applications/+iceweb/testday.m | 0 applications/+iceweb/unrest.m | 0 applications/+iceweb/waveform_remove_empty.m | 0 applications/+iceweb/waveform_wrapper.m | 0 applications/uispecgram.m | 0 contributed/+obspy/incomplete.m | 0 contributed/+obspy/stream2waveform.m | 0 contributed/+obspy/stream_matfile2waveform.m | 0 contributed/ReadMSEEDFast/ReadMSEEDFast.m | 0 contributed/correlation_derived/corrderived_plot_swarm_history.m | 0 contributed/instrument_response/demo_plutons.m | 0 contributed/instrument_response/response_apply.m | 0 contributed/instrument_response/response_cookbook.m | 0 contributed/instrument_response/response_demo_database.m | 0 contributed/instrument_response/response_demo_waveforms.m | 0 contributed/instrument_response/response_get_from_db.m | 0 contributed/instrument_response/response_get_from_polezero.m | 0 contributed/instrument_response/response_plot.m | 0 contributed/instrument_response/response_polezero_demo.m | 0 contributed/instrument_response/response_structure_description.m | 0 contributed/iris_dmc_tools/+irisdmc/about.m | 0 contributed/iris_dmc_tools/+irisdmc/cookbook.m | 0 contributed/iris_dmc_tools/+irisdmc/station_meta.m | 0 contributed/iris_dmc_tools/+irisdmc/xml2struct.m | 0 contributed/iris_dmc_tools/dmc_cookbook.m | 0 contributed/iris_dmc_tools/dmc_station_meta.m | 0 contributed/iris_dmc_tools/dmc_xml2struct.m | 0 contributed/iris_dmc_tools/irisFetch.m | 0 contributed/master_correlation/+mastercorr/about.m | 0 contributed/master_correlation/+mastercorr/cookbook.m | 0 contributed/master_correlation/+mastercorr/extract.m | 0 contributed/master_correlation/+mastercorr/load_cookbook_data.m | 0 contributed/master_correlation/+mastercorr/plot_stats.m | 0 contributed/master_correlation/+mastercorr/scan.m | 0 contributed/master_correlation/mastercorr_cookbook.m | 0 contributed/master_correlation/mastercorr_extract.m | 0 contributed/master_correlation/mastercorr_plot_stats.m | 0 contributed/master_correlation/mastercorr_scan.m | 0 contributed_antelope/attenuation/hankelq.m | 0 contributed_antelope/db_get/db_get_arrival_info.m | 0 contributed_antelope/db_get/db_get_net_info.m | 0 contributed_antelope/db_get/db_get_origin_info.m | 0 contributed_antelope/db_get/db_get_site_info.m | 0 contributed_antelope/db_get/db_get_sitechan_info.m | 0 contributed_antelope/double_difference/dd_collate.m | 0 contributed_antelope/double_difference/dd_cookbook.m | 0 contributed_antelope/double_difference/dd_make_scp.m | 0 contributed_antelope/double_difference/dd_process_scp.m | 0 contributed_antelope/import_events/arrivals_rearrange.m | 0 contributed_antelope/import_events/ie_readchans.m | 0 contributed_antelope/import_events/import_events.m | 0 contributed_antelope/import_events/waveform2threecomp.m | 0 contributed_antelope/reduced_displacement/Contents.m | 0 contributed_antelope/reduced_displacement/reducedisp_calc.m | 0 contributed_antelope/reduced_displacement/reducedisp_plot.m | 0 contributed_antelope/reduced_displacement/reducedisp_wfmeas.m | 0 .../reduced_displacement/reducedisp_write_wfmeas.m | 0 contributed_antelope/traveltime_and_ray_coverage/+ttimes/about.m | 0 .../traveltime_and_ray_coverage/+ttimes/arrival_histogram.m | 0 contributed_antelope/traveltime_and_ray_coverage/+ttimes/dbload.m | 0 .../traveltime_and_ray_coverage/+ttimes/depth_section.m | 0 contributed_antelope/traveltime_and_ray_coverage/+ttimes/do_all.m | 0 contributed_antelope/traveltime_and_ray_coverage/+ttimes/map.m | 0 .../traveltime_and_ray_coverage/+ttimes/tt_curve.m | 0 .../traveltime_and_ray_coverage/+ttimes/write_lotos.m | 0 cookbooks/Catalog_cookbook.m | 0 cookbooks/EventRate_cookbook.m | 0 cookbooks/correlation_cookbook.m | 0 cookbooks/drumplot_cookbook.m | 0 cookbooks/rsam_cookbook.m | 0 cookbooks/waveform_cookbook.m | 0 core/+Arrival/+read_arrivals/antelope.m | 0 core/+Catalog/+plotEarthquakes/importPlates.m | 0 core/+Catalog/+read_catalog/aef.m | 0 core/+Catalog/+read_catalog/antelope.m | 0 core/+Catalog/+read_catalog/ensure_dateformat.m | 0 core/+Catalog/+read_catalog/iris.m | 0 core/+Catalog/+read_catalog/seisan.m | 0 core/+Catalog/+read_catalog/sru.m | 0 core/+Catalog/+read_catalog/usgsrealtime.m | 0 core/+Catalog/+read_catalog/vdap.m | 0 core/+Catalog/+read_catalog/zmap.m | 0 core/+Catalog/subclass2longname.m | 0 core/+Detection/sta_lta.m | 0 core/+admin/about.m | 0 core/+admin/antelope_exists.m | 0 core/+admin/deprecated.m | 0 core/+admin/getpath.m | 0 core/+admin/refresh.m | 0 core/+admin/remove.m | 0 core/+admin/rmgismo.m | 0 core/+admin/which.m | 0 core/+antelope/antelope2waveform.m | 0 core/+antelope/arrivals2waveforms.m | 0 core/+antelope/candidate/db_lookupunits.m | 0 core/+antelope/dbcp.m | 0 core/+antelope/dbcreate.m | 0 core/+antelope/dbget_closest_sites.m | 0 core/+antelope/dbgetarrivals.m | 0 core/+antelope/dbgetorigins.m | 0 core/+antelope/dbtable_present.m | 0 core/+antelope/listMiniseedFiles.m | 0 core/+debug/get_debug.m | 0 core/+debug/print_debug.m | 0 core/+debug/printfunctionstack.m | 0 core/+debug/set_debug.m | 0 core/+magnitude/ml_richter.m | 0 core/+scnlobject/cookbook.m | 0 core/@Arrival/Arrival.m | 0 core/@Arrival/addmetrics.m | 0 core/@Arrival/addwaveforms.m | 0 core/@Arrival/associate.m | 0 core/@Arrival/readphafile.m | 0 core/@Arrival/setminmax.m | 0 core/@Catalog/Catalog.m | 0 core/@Catalog/addwaveforms.m | 0 core/@Catalog/bvalue.m | 0 core/@Catalog/combine.m | 0 core/@Catalog/cookbook.m | 0 core/@Catalog/disp.m | 0 core/@Catalog/eev.m | 0 core/@Catalog/eventrate.m | 0 core/@Catalog/get_region.m | 0 core/@Catalog/get_symsize.m | 0 core/@Catalog/hist.m | 0 core/@Catalog/list_waveform_metrics.m | 0 core/@Catalog/plot.m | 0 core/@Catalog/plot3.m | 0 core/@Catalog/plot_counts.m | 0 core/@Catalog/plot_time.m | 0 core/@Catalog/plot_waveform_metrics.m | 0 core/@Catalog/plotprmm.m | 0 core/@Catalog/retrieve.m | 0 core/@Catalog/subclassify.m | 0 core/@Catalog/subset.m | 0 core/@Catalog/summary.m | 0 core/@Catalog/webmap.m | 0 core/@Catalog/write.m | 0 core/@Catalog/write_waveform_metrics_to_antelope.m | 0 core/@ChannelTag/ChannelTag.m | 0 core/@ChannelTag/eq.m | 0 core/@EventRate/extensions/import_swarmdb.m | 0 core/@EventRate/extensions/sausageplot.m | 0 core/@EventRate/helenaplot.m | 0 core/@EventRate/obsolete/addfield.m | 0 core/@EventRate/obsolete/get.m | 0 core/@EventRate/obsolete/plotold.m | 0 core/@EventRate/obsolete/set.m | 0 core/@EventRate/plot.m | 0 core/@EventRate/pythonplot.m | 0 core/@Sfile/Sfile.m | 0 core/@correlation/DEP_xcorr.m | 0 core/@correlation/adjusttrig.m | 0 core/@correlation/agc.m | 0 core/@correlation/align.m | 0 core/@correlation/butter.m | 0 core/@correlation/cat.m | 0 core/@correlation/check.m | 0 core/@correlation/cluster.m | 0 core/@correlation/colormap.m | 0 core/@correlation/conv.m | 0 core/@correlation/correlation.m | 0 core/@correlation/crop.m | 0 core/@correlation/deconv.m | 0 core/@correlation/demean.m | 0 core/@correlation/detrend.m | 0 core/@correlation/diff.m | 0 core/@correlation/display.m | 0 core/@correlation/find.m | 0 core/@correlation/get.m | 0 core/@correlation/getclusterstat.m | 0 core/@correlation/getstat.m | 0 core/@correlation/hilbert.m | 0 core/@correlation/integrate.m | 0 core/@correlation/interferogram.m | 0 core/@correlation/linkage.m | 0 core/@correlation/match.m | 0 core/@correlation/minus.m | 0 core/@correlation/norm.m | 0 core/@correlation/plot.m | 0 core/@correlation/private/DEPRICATED_xcorr1xr.m | 0 core/@correlation/private/DEPRICATED_xcorrcxc.m | 0 core/@correlation/private/corrplot.m | 0 core/@correlation/private/dendrogramplot.m | 0 core/@correlation/private/eventplot.m | 0 core/@correlation/private/getval.m | 0 core/@correlation/private/lagplot.m | 0 core/@correlation/private/makesynthwaves.m | 0 core/@correlation/private/occurrenceplot.m | 0 core/@correlation/private/overlayplot.m | 0 core/@correlation/private/sampleplot.m | 0 core/@correlation/private/shadedplot.m | 0 core/@correlation/private/statplot.m | 0 core/@correlation/private/wiggleinterferogram.m | 0 core/@correlation/private/wiggleplot.m | 0 core/@correlation/private/xcorr1x1.m | 0 core/@correlation/private/xcorr1xr.m | 0 core/@correlation/private/xcorr1xr_orig.m | 0 core/@correlation/private/xcorrdec.m | 0 core/@correlation/private/xcorrrow.m | 0 core/@correlation/set.m | 0 core/@correlation/sign.m | 0 core/@correlation/sort.m | 0 core/@correlation/stack.m | 0 core/@correlation/strip.m | 0 core/@correlation/subset.m | 0 core/@correlation/taper.m | 0 core/@correlation/verify.m | 0 core/@correlation/waveform.m | 0 core/@correlation/writedb.m | 0 core/@correlation/xcorr.m | 0 core/@datasource/datasource.m | 0 core/@datasource/disp.m | 0 core/@datasource/display.m | 0 core/@datasource/get.m | 0 core/@datasource/getfilename.m | 0 core/@datasource/isunassigned.m | 0 core/@datasource/load_file.m | 0 core/@datasource/load_objects_from_file.m | 0 core/@datasource/loadobj.m | 0 core/@datasource/private/void_interpreter.m | 0 core/@datasource/query_file.m | 0 core/@datasource/requires_file.m | 0 core/@datasource/setfile.m | 0 core/@datasource/setinterpreter.m | 0 core/@datasource/subdivide_files_by_date.m | 0 core/@drumplot/drumplot.m | 0 core/@drumplot/get.m | 0 core/@drumplot/plot.m | 0 core/@drumplot/set.m | 0 core/@filterobject/disp.m | 0 core/@filterobject/display.m | 0 core/@filterobject/filt.m | 0 core/@filterobject/filterobject.m | 0 core/@filterobject/filtfilt.m | 0 core/@filterobject/get.m | 0 core/@filterobject/set.m | 0 core/@rsam/extensions/bvalue.m | 0 core/@rsam/extensions/correct.m | 0 core/@rsam/extensions/despike.m | 0 core/@rsam/extensions/detectTremorEvents.m | 0 core/@rsam/extensions/duration_amplitude.m | 0 core/@rsam/extensions/getwaveform.m | 0 core/@rsam/extensions/loadwfmeastable.m | 0 core/@rsam/extensions/reduce.m | 0 core/@rsam/extensions/remove_calibration_pulses.m | 0 core/@rsam/extensions/remove_calibs.m | 0 core/@rsam/extensions/resample.m | 0 core/@rsam/extensions/rsam2energy.m | 0 core/@rsam/extensions/rsam2waveform.m | 0 core/@rsam/extensions/save2wfmeastable.m | 0 core/@rsam/extensions/tremorstalta.m | 0 core/@rsam/extract.m | 0 core/@rsam/findfiles.m | 0 core/@rsam/load.m | 0 core/@rsam/make_bob_file.m | 0 core/@rsam/medfilt1.m | 0 core/@rsam/obsolete/load.m | 0 core/@rsam/obsolete/plotrsam.m | 0 core/@rsam/obsolete/plotyy.m | 0 core/@rsam/plot.m | 0 core/@rsam/plot_panels.m | 0 core/@rsam/rsam2waveform.m | 0 core/@rsam/save_to_bob_file.m | 0 core/@rsam/save_to_text_file.m | 0 core/@rsam/trash/loadbobfile.m | 0 core/@rsam/trash/scrollplot_whatisthis.m | 0 core/@sacpz/sacpz.m | 0 core/@scnlobject/ChannelTag.m | 0 core/@scnlobject/disp.m | 0 core/@scnlobject/display.m | 0 core/@scnlobject/eq.m | 0 core/@scnlobject/get.m | 0 core/@scnlobject/intersect.m | 0 core/@scnlobject/ismember.m | 0 core/@scnlobject/scnlobject.m | 0 core/@scnlobject/set.m | 0 core/@scnlobject/unique.m | 0 core/@spectralobject/colorbar_axis.m | 0 core/@spectralobject/disp.m | 0 core/@spectralobject/display.m | 0 core/@spectralobject/fft.m | 0 core/@spectralobject/get.m | 0 core/@spectralobject/getmap.m | 0 core/@spectralobject/ifft.m | 0 core/@spectralobject/loadobj.m | 0 core/@spectralobject/private/parse_xunit.m | 0 core/@spectralobject/private/subdivide_axes.m | 0 core/@spectralobject/pwelch.m | 0 core/@spectralobject/set.m | 0 core/@spectralobject/setmap.m | 0 core/@spectralobject/specgram.m | 0 core/@spectralobject/specgram2.m | 0 core/@spectralobject/spectralobject.m | 0 core/@spectralobject/spwelch.m | 0 core/@threecomp/cookbook_map.m | 0 core/@threecomp/private/create_demo_data.m | 0 core/@threecomp/private/getproperty.m | 0 core/@threecomp/private/parseargs.m | 0 core/@threecomp/private/property2varargin.m | 0 core/@waveform/abs.m | 0 core/@waveform/addfield.m | 0 core/@waveform/addhistory.m | 0 core/@waveform/addmetrics.m | 0 core/@waveform/align.m | 0 core/@waveform/bin_stack.m | 0 core/@waveform/clean.m | 0 core/@waveform/clearhistory.m | 0 core/@waveform/clip.m | 0 core/@waveform/combine.m | 0 core/@waveform/delfield.m | 0 core/@waveform/demean.m | 0 core/@waveform/detrend.m | 0 core/@waveform/diff.m | 0 core/@waveform/disp.m | 0 core/@waveform/display.m | 0 core/@waveform/double.m | 0 core/@waveform/eq.m | 0 core/@waveform/extract.m | 0 core/@waveform/fillgaps.m | 0 core/@waveform/fix_data_length.m | 0 core/@waveform/get.m | 0 core/@waveform/getm.m | 0 core/@waveform/getpeaks.m | 0 core/@waveform/getsamples.m | 0 core/@waveform/gettimerange.m | 0 core/@waveform/hilbert.m | 0 core/@waveform/history.m | 0 core/@waveform/integrate.m | 0 core/@waveform/isempty.m | 0 core/@waveform/isfield.m | 0 core/@waveform/ismember.m | 0 core/@waveform/isvertical.m | 0 core/@waveform/legend.m | 0 core/@waveform/loadobj.m | 0 core/@waveform/loadsac.m | 0 core/@waveform/max.m | 0 core/@waveform/mean.m | 0 core/@waveform/medfilt1.m | 0 core/@waveform/median.m | 0 core/@waveform/min.m | 0 core/@waveform/minus.m | 0 core/@waveform/mrdivide.m | 0 core/@waveform/mtimes.m | 0 core/@waveform/normalize.m | 0 core/@waveform/pad.m | 0 core/@waveform/plot.m | 0 core/@waveform/plot_helicorder.m | 0 core/@waveform/plot_panels.m | 0 core/@waveform/plot_spectrum.m | 0 core/@waveform/plus.m | 0 core/@waveform/power.m | 0 core/@waveform/private/as_channeltag.m | 0 core/@waveform/private/autoscale.m | 0 core/@waveform/private/dep2mep.m | 0 core/@waveform/private/filter_by_time.m | 0 core/@waveform/private/get_load_routine.m | 0 core/@waveform/private/getproperty.m | 0 core/@waveform/private/loadGlobalNamespace.m | 0 core/@waveform/private/load_antelope.m | 0 core/@waveform/private/load_antelope_old.m | 0 core/@waveform/private/load_antelope_workaround.m | 0 core/@waveform/private/load_file.m | 0 core/@waveform/private/load_from_datasource.m | 0 core/@waveform/private/load_from_file.m | 0 core/@waveform/private/load_irisdmcws.m | 0 core/@waveform/private/load_matfile.m | 0 core/@waveform/private/load_miniseed.m | 0 core/@waveform/private/load_obspy.m | 0 core/@waveform/private/load_sac.m | 0 core/@waveform/private/load_seisan.m | 0 core/@waveform/private/load_winston.m | 0 core/@waveform/private/marktimes.m | 0 core/@waveform/private/mep2dep.m | 0 core/@waveform/private/offset2time.m | 0 core/@waveform/private/packDataRequest.m | 0 core/@waveform/private/parse_xunit.m | 0 core/@waveform/private/parseargs.m | 0 core/@waveform/private/peel_option.m | 0 core/@waveform/private/property2varargin.m | 0 core/@waveform/private/readsacfile.m | 0 core/@waveform/private/rqbn.m | 0 core/@waveform/private/rqhd.m | 0 core/@waveform/private/sac2waveform.m | 0 core/@waveform/private/set_sacheader.m | 0 core/@waveform/private/time2offset.m | 0 core/@waveform/private/unpackDataRequest.m | 0 core/@waveform/private/waveform2sacheader.m | 0 core/@waveform/private/winston_access.m | 0 core/@waveform/private/writesac.m | 0 core/@waveform/rdivide.m | 0 core/@waveform/remove_calib.m | 0 core/@waveform/resample.m | 0 core/@waveform/rms.m | 0 core/@waveform/savesac.m | 0 core/@waveform/scroll.m | 0 core/@waveform/set.m | 0 core/@waveform/setsamples.m | 0 core/@waveform/sign.m | 0 core/@waveform/smooth.m | 0 core/@waveform/sortby.m | 0 core/@waveform/spectrogram.m | 0 core/@waveform/stack.m | 0 core/@waveform/std.m | 0 core/@waveform/taper.m | 0 core/@waveform/times.m | 0 core/@waveform/uminus.m | 0 core/@waveform/var.m | 0 core/@waveform/waveform.m | 0 core/@waveform/waveform2rsam.m | 0 core/@waveform/waveform2sound.m | 0 core/@waveform/zero2nan.m | 0 core/dev/+dataretrieval/@antelopesource/antelopesource.m | 0 core/dev/+dataretrieval/@antelopesource/get_antelope_traces.m | 0 core/dev/+dataretrieval/@antelopesource/load_antelope.m | 0 core/dev/+dataretrieval/@antelopesource/segtype2units.m | 0 core/dev/+dataretrieval/@antelopesource/traceToWaveform.m | 0 core/dev/+dataretrieval/iriswebservicesource.m | 0 core/dev/+dataretrieval/matsource.m | 0 core/dev/+dataretrieval/obspysource.m | 0 core/dev/+dataretrieval/sacsource.m | 0 core/dev/+dataretrieval/seisansource.m | 0 core/dev/+dataretrieval/spatiotemporal_database.m | 0 core/dev/+dataretrieval/spatiotemporal_datasource.m | 0 core/dev/+dataretrieval/spatiotemporal_file.m | 0 core/dev/+dataretrieval/winstonsource.m | 0 core/dev/@ChannelDetails/ChannelDetails.m | 0 core/dev/@NewCorrelation/NewCorrelation.m | 0 core/dev/@NewCorrelation/adjusttrig.m | 0 core/dev/@NewCorrelation/agc.m | 0 core/dev/@NewCorrelation/align.m | 0 core/dev/@NewCorrelation/butter.m | 0 core/dev/@NewCorrelation/cat.m | 0 core/dev/@NewCorrelation/check.m | 0 core/dev/@NewCorrelation/cluster.m | 0 core/dev/@NewCorrelation/colormap.m | 0 core/dev/@NewCorrelation/conv.m | 0 core/dev/@NewCorrelation/cookbook.m | 0 core/dev/@NewCorrelation/corrplot.m | 0 core/dev/@NewCorrelation/crop.m | 0 core/dev/@NewCorrelation/deconv.m | 0 core/dev/@NewCorrelation/demean.m | 0 core/dev/@NewCorrelation/dendrogramplot.m | 0 core/dev/@NewCorrelation/detrend.m | 0 core/dev/@NewCorrelation/diff.m | 0 core/dev/@NewCorrelation/disp.m | 0 core/dev/@NewCorrelation/eventplot.m | 0 core/dev/@NewCorrelation/find.m | 0 core/dev/@NewCorrelation/get.m | 0 core/dev/@NewCorrelation/getclusterstat.m | 0 core/dev/@NewCorrelation/getstat.m | 0 core/dev/@NewCorrelation/getval.m | 0 core/dev/@NewCorrelation/hilbert.m | 0 core/dev/@NewCorrelation/integrate.m | 0 core/dev/@NewCorrelation/interferogram.m | 0 core/dev/@NewCorrelation/lagplot.m | 0 core/dev/@NewCorrelation/linkage.m | 0 core/dev/@NewCorrelation/makesynthwaves.m | 0 core/dev/@NewCorrelation/match.m | 0 core/dev/@NewCorrelation/minus.m | 0 core/dev/@NewCorrelation/norm.m | 0 core/dev/@NewCorrelation/occurrenceplot.m | 0 core/dev/@NewCorrelation/overlayplot.m | 0 core/dev/@NewCorrelation/plot.m | 0 core/dev/@NewCorrelation/sampleplot.m | 0 core/dev/@NewCorrelation/set.m | 0 core/dev/@NewCorrelation/shadedplot.m | 0 core/dev/@NewCorrelation/sign.m | 0 core/dev/@NewCorrelation/sort.m | 0 core/dev/@NewCorrelation/stack.m | 0 core/dev/@NewCorrelation/statplot.m | 0 core/dev/@NewCorrelation/strip.m | 0 core/dev/@NewCorrelation/subset.m | 0 core/dev/@NewCorrelation/taper.m | 0 core/dev/@NewCorrelation/unifytracelengths.m | 0 core/dev/@NewCorrelation/waveform.m | 0 core/dev/@NewCorrelation/wiggleinterferogram.m | 0 core/dev/@NewCorrelation/wiggleplot.m | 0 core/dev/@NewCorrelation/writedb.m | 0 core/dev/@NewCorrelation/xcorr.m | 0 core/dev/@NewCorrelation/xcorr1x1.m | 0 core/dev/@NewCorrelation/xcorr1xr.m | 0 core/dev/@NewCorrelation/xcorr1xr_orig.m | 0 core/dev/@NewCorrelation/xcorrdec.m | 0 core/dev/@NewCorrelation/xcorrrow.m | 0 core/dev/@SeismicTrace/SeismicTrace.m | 0 core/dev/@SeismicTrace/disp.m | 0 core/dev/@SeismicTrace/legend.m | 0 core/dev/@SeismicTrace/linkedplot.m | 0 core/dev/@SeismicTrace/plot.m | 0 core/dev/@TraceData/TraceData.m | 0 core/dev/@TraceData/amplitude_spectrum.m | 0 core/dev/@TraceData/autoscale.m | 0 core/dev/@TraceFilter/TraceFilter.m | 0 core/dev/@TraceFilter/cookbook.m | 0 core/dev/@TraceSpectra/TraceSpectra.m | 0 core/dev/@TraceSpectra/cookbook.m | 0 core/dev/@TraceSpectra/parseSpecgramInputs.m | 0 core/dev/@TraceSpectra/specgram.m | 0 core/dev/@TraceSpectra/specgram2.m | 0 deprecated/+waveform_extensions/sacload.m | 0 deprecated/+waveform_extensions/sta_lta.m | 0 deprecated/@helicorder/build.m | 0 deprecated/@helicorder/disp.m | 0 deprecated/@helicorder/display.m | 0 deprecated/@helicorder/get.m | 0 deprecated/@helicorder/helicorder.m | 0 deprecated/@helicorder/private/Event_Conversion/nan2sst.m | 0 deprecated/@helicorder/private/Event_Conversion/nan2wfa.m | 0 deprecated/@helicorder/private/Event_Conversion/ssd2sst.m | 0 deprecated/@helicorder/private/Event_Conversion/sst2nan.m | 0 deprecated/@helicorder/private/Event_Conversion/sst2ssd.m | 0 deprecated/@helicorder/private/Event_Conversion/sst2val.m | 0 deprecated/@helicorder/private/Event_Conversion/sst2wfa.m | 0 deprecated/@helicorder/private/Event_Conversion/wfa2nan.m | 0 deprecated/@helicorder/private/Event_Conversion/wfa2sst.m | 0 deprecated/@helicorder/private/SST/add_sst.m | 0 deprecated/@helicorder/private/SST/chk_t.m | 0 deprecated/@helicorder/private/SST/compare_sst.m | 0 deprecated/@helicorder/private/SST/delete_sst.m | 0 deprecated/@helicorder/private/SST/extract_sst.m | 0 deprecated/@helicorder/private/SST/is_sst.m | 0 deprecated/@helicorder/private/SST/istequal.m | 0 deprecated/@helicorder/private/SST/merge_sst.m | 0 deprecated/@helicorder/private/SST/search_sst.m | 0 deprecated/@helicorder/private/SST/sort_sst.m | 0 deprecated/@helicorder/set.m | 0 deprecated/fft_tools/+wf_fft/about.m | 0 deprecated/fft_tools/+wf_fft/compute.m | 0 deprecated/fft_tools/+wf_fft/freqindex.m | 0 deprecated/fft_tools/+wf_fft/plot.m | 0 deprecated/fft_tools/amplitude_spectrum.m | 0 deprecated/fft_tools/wf_fft.m | 0 deprecated/fft_tools/wf_fftplot.m | 0 deprecated/fft_tools/wf_fi.m | 0 is_testdata_setup.m | 0 libgismo/cleanup.m | 0 libgismo/contiguous.m | 0 libgismo/datenum2epoch.m | 0 libgismo/datenum2julday.m | 0 libgismo/epoch2datenum.m | 0 libgismo/get_highest_figure_number.m | 0 rsam_wrapper_test.m | 0 startup_GISMO.m | 0 tests/amplitude_spectrum_test.m | 0 tests/antelope2waveform_test.m | 0 tests/correlation_diagnostics.m | 0 tests/obsolete/medfilt1_test.m | 0 tests/testChanneltag.m | 0 tests/testScnlobject.m | 0 tests/testWaveform.m | 0 tests/test_ChanDetails.m | 0 tests/test_Correlation.m | 0 tests/test_Trace.m | 0 tests/test_TraceData.m | 0 tests/test_waveform_constructor.m | 0 tests/trloadcss_test.m | 0 tests/waveform_antelope_test.m | 0 tests/waveform_load_test.m | 0 training/gismo_examples.m | 0 training/separating_tremor_and_events.m | 0 uaf_internal/AEIC_AVO/+aeic_catalog/about.m | 0 uaf_internal/AEIC_AVO/+aeic_catalog/get_total.m | 0 uaf_internal/AEIC_AVO/+check/about.m | 0 uaf_internal/AEIC_AVO/+check/crossfeed.m | 0 uaf_internal/AEIC_AVO/aeic_total_catalog.m | 0 uaf_internal/IDEAS_format/ideas2waveform.m | 0 uaf_internal/gismo_management/whichgismo.m | 0 uaf_internal/gismo_management/whichgismo_paths.m | 0 585 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 applications/+iceweb/apply_calib.m mode change 100644 => 100755 applications/+iceweb/apply_filter.m mode change 100644 => 100755 applications/+iceweb/calculatePanelPositions.m mode change 100644 => 100755 applications/+iceweb/datenum2julday.m mode change 100644 => 100755 applications/+iceweb/extended_spectralobject_colormap.m mode change 100644 => 100755 applications/+iceweb/get_channeltags_active.m mode change 100644 => 100755 applications/+iceweb/get_spectrogram_filename.m mode change 100644 => 100755 applications/+iceweb/iceweb.m mode change 100644 => 100755 applications/+iceweb/iceweb2017.m mode change 100644 => 100755 applications/+iceweb/iceweb2017_extraproducts.m mode change 100644 => 100755 applications/+iceweb/iceweb_wrapper.m mode change 100644 => 100755 applications/+iceweb/makespectrogramthumbnails.m mode change 100644 => 100755 applications/+iceweb/montserrat_remove_analog_sites.m mode change 100644 => 100755 applications/+iceweb/setup.m mode change 100644 => 100755 applications/+iceweb/show_sites.m mode change 100644 => 100755 applications/+iceweb/spectrogram_iceweb.m mode change 100644 => 100755 applications/+iceweb/testday.m mode change 100644 => 100755 applications/+iceweb/unrest.m mode change 100644 => 100755 applications/+iceweb/waveform_remove_empty.m mode change 100644 => 100755 applications/+iceweb/waveform_wrapper.m mode change 100644 => 100755 applications/uispecgram.m mode change 100644 => 100755 contributed/+obspy/incomplete.m mode change 100644 => 100755 contributed/+obspy/stream2waveform.m mode change 100644 => 100755 contributed/+obspy/stream_matfile2waveform.m mode change 100644 => 100755 contributed/ReadMSEEDFast/ReadMSEEDFast.m mode change 100644 => 100755 contributed/correlation_derived/corrderived_plot_swarm_history.m mode change 100644 => 100755 contributed/instrument_response/demo_plutons.m mode change 100644 => 100755 contributed/instrument_response/response_apply.m mode change 100644 => 100755 contributed/instrument_response/response_cookbook.m mode change 100644 => 100755 contributed/instrument_response/response_demo_database.m mode change 100644 => 100755 contributed/instrument_response/response_demo_waveforms.m mode change 100644 => 100755 contributed/instrument_response/response_get_from_db.m mode change 100644 => 100755 contributed/instrument_response/response_get_from_polezero.m mode change 100644 => 100755 contributed/instrument_response/response_plot.m mode change 100644 => 100755 contributed/instrument_response/response_polezero_demo.m mode change 100644 => 100755 contributed/instrument_response/response_structure_description.m mode change 100644 => 100755 contributed/iris_dmc_tools/+irisdmc/about.m mode change 100644 => 100755 contributed/iris_dmc_tools/+irisdmc/cookbook.m mode change 100644 => 100755 contributed/iris_dmc_tools/+irisdmc/station_meta.m mode change 100644 => 100755 contributed/iris_dmc_tools/+irisdmc/xml2struct.m mode change 100644 => 100755 contributed/iris_dmc_tools/dmc_cookbook.m mode change 100644 => 100755 contributed/iris_dmc_tools/dmc_station_meta.m mode change 100644 => 100755 contributed/iris_dmc_tools/dmc_xml2struct.m mode change 100644 => 100755 contributed/iris_dmc_tools/irisFetch.m mode change 100644 => 100755 contributed/master_correlation/+mastercorr/about.m mode change 100644 => 100755 contributed/master_correlation/+mastercorr/cookbook.m mode change 100644 => 100755 contributed/master_correlation/+mastercorr/extract.m mode change 100644 => 100755 contributed/master_correlation/+mastercorr/load_cookbook_data.m mode change 100644 => 100755 contributed/master_correlation/+mastercorr/plot_stats.m mode change 100644 => 100755 contributed/master_correlation/+mastercorr/scan.m mode change 100644 => 100755 contributed/master_correlation/mastercorr_cookbook.m mode change 100644 => 100755 contributed/master_correlation/mastercorr_extract.m mode change 100644 => 100755 contributed/master_correlation/mastercorr_plot_stats.m mode change 100644 => 100755 contributed/master_correlation/mastercorr_scan.m mode change 100644 => 100755 contributed_antelope/attenuation/hankelq.m mode change 100644 => 100755 contributed_antelope/db_get/db_get_arrival_info.m mode change 100644 => 100755 contributed_antelope/db_get/db_get_net_info.m mode change 100644 => 100755 contributed_antelope/db_get/db_get_origin_info.m mode change 100644 => 100755 contributed_antelope/db_get/db_get_site_info.m mode change 100644 => 100755 contributed_antelope/db_get/db_get_sitechan_info.m mode change 100644 => 100755 contributed_antelope/double_difference/dd_collate.m mode change 100644 => 100755 contributed_antelope/double_difference/dd_cookbook.m mode change 100644 => 100755 contributed_antelope/double_difference/dd_make_scp.m mode change 100644 => 100755 contributed_antelope/double_difference/dd_process_scp.m mode change 100644 => 100755 contributed_antelope/import_events/arrivals_rearrange.m mode change 100644 => 100755 contributed_antelope/import_events/ie_readchans.m mode change 100644 => 100755 contributed_antelope/import_events/import_events.m mode change 100644 => 100755 contributed_antelope/import_events/waveform2threecomp.m mode change 100644 => 100755 contributed_antelope/reduced_displacement/Contents.m mode change 100644 => 100755 contributed_antelope/reduced_displacement/reducedisp_calc.m mode change 100644 => 100755 contributed_antelope/reduced_displacement/reducedisp_plot.m mode change 100644 => 100755 contributed_antelope/reduced_displacement/reducedisp_wfmeas.m mode change 100644 => 100755 contributed_antelope/reduced_displacement/reducedisp_write_wfmeas.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/about.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/arrival_histogram.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/dbload.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/depth_section.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/do_all.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/map.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/tt_curve.m mode change 100644 => 100755 contributed_antelope/traveltime_and_ray_coverage/+ttimes/write_lotos.m mode change 100644 => 100755 cookbooks/Catalog_cookbook.m mode change 100644 => 100755 cookbooks/EventRate_cookbook.m mode change 100644 => 100755 cookbooks/correlation_cookbook.m mode change 100644 => 100755 cookbooks/drumplot_cookbook.m mode change 100644 => 100755 cookbooks/rsam_cookbook.m mode change 100644 => 100755 cookbooks/waveform_cookbook.m mode change 100644 => 100755 core/+Arrival/+read_arrivals/antelope.m mode change 100644 => 100755 core/+Catalog/+plotEarthquakes/importPlates.m mode change 100644 => 100755 core/+Catalog/+read_catalog/aef.m mode change 100644 => 100755 core/+Catalog/+read_catalog/antelope.m mode change 100644 => 100755 core/+Catalog/+read_catalog/ensure_dateformat.m mode change 100644 => 100755 core/+Catalog/+read_catalog/iris.m mode change 100644 => 100755 core/+Catalog/+read_catalog/seisan.m mode change 100644 => 100755 core/+Catalog/+read_catalog/sru.m mode change 100644 => 100755 core/+Catalog/+read_catalog/usgsrealtime.m mode change 100644 => 100755 core/+Catalog/+read_catalog/vdap.m mode change 100644 => 100755 core/+Catalog/+read_catalog/zmap.m mode change 100644 => 100755 core/+Catalog/subclass2longname.m mode change 100644 => 100755 core/+Detection/sta_lta.m mode change 100644 => 100755 core/+admin/about.m mode change 100644 => 100755 core/+admin/antelope_exists.m mode change 100644 => 100755 core/+admin/deprecated.m mode change 100644 => 100755 core/+admin/getpath.m mode change 100644 => 100755 core/+admin/refresh.m mode change 100644 => 100755 core/+admin/remove.m mode change 100644 => 100755 core/+admin/rmgismo.m mode change 100644 => 100755 core/+admin/which.m mode change 100644 => 100755 core/+antelope/antelope2waveform.m mode change 100644 => 100755 core/+antelope/arrivals2waveforms.m mode change 100644 => 100755 core/+antelope/candidate/db_lookupunits.m mode change 100644 => 100755 core/+antelope/dbcp.m mode change 100644 => 100755 core/+antelope/dbcreate.m mode change 100644 => 100755 core/+antelope/dbget_closest_sites.m mode change 100644 => 100755 core/+antelope/dbgetarrivals.m mode change 100644 => 100755 core/+antelope/dbgetorigins.m mode change 100644 => 100755 core/+antelope/dbtable_present.m mode change 100644 => 100755 core/+antelope/listMiniseedFiles.m mode change 100644 => 100755 core/+debug/get_debug.m mode change 100644 => 100755 core/+debug/print_debug.m mode change 100644 => 100755 core/+debug/printfunctionstack.m mode change 100644 => 100755 core/+debug/set_debug.m mode change 100644 => 100755 core/+magnitude/ml_richter.m mode change 100644 => 100755 core/+scnlobject/cookbook.m mode change 100644 => 100755 core/@Arrival/Arrival.m mode change 100644 => 100755 core/@Arrival/addmetrics.m mode change 100644 => 100755 core/@Arrival/addwaveforms.m mode change 100644 => 100755 core/@Arrival/associate.m mode change 100644 => 100755 core/@Arrival/readphafile.m mode change 100644 => 100755 core/@Arrival/setminmax.m mode change 100644 => 100755 core/@Catalog/Catalog.m mode change 100644 => 100755 core/@Catalog/addwaveforms.m mode change 100644 => 100755 core/@Catalog/bvalue.m mode change 100644 => 100755 core/@Catalog/combine.m mode change 100644 => 100755 core/@Catalog/cookbook.m mode change 100644 => 100755 core/@Catalog/disp.m mode change 100644 => 100755 core/@Catalog/eev.m mode change 100644 => 100755 core/@Catalog/eventrate.m mode change 100644 => 100755 core/@Catalog/get_region.m mode change 100644 => 100755 core/@Catalog/get_symsize.m mode change 100644 => 100755 core/@Catalog/hist.m mode change 100644 => 100755 core/@Catalog/list_waveform_metrics.m mode change 100644 => 100755 core/@Catalog/plot.m mode change 100644 => 100755 core/@Catalog/plot3.m mode change 100644 => 100755 core/@Catalog/plot_counts.m mode change 100644 => 100755 core/@Catalog/plot_time.m mode change 100644 => 100755 core/@Catalog/plot_waveform_metrics.m mode change 100644 => 100755 core/@Catalog/plotprmm.m mode change 100644 => 100755 core/@Catalog/retrieve.m mode change 100644 => 100755 core/@Catalog/subclassify.m mode change 100644 => 100755 core/@Catalog/subset.m mode change 100644 => 100755 core/@Catalog/summary.m mode change 100644 => 100755 core/@Catalog/webmap.m mode change 100644 => 100755 core/@Catalog/write.m mode change 100644 => 100755 core/@Catalog/write_waveform_metrics_to_antelope.m mode change 100644 => 100755 core/@ChannelTag/ChannelTag.m mode change 100644 => 100755 core/@ChannelTag/eq.m mode change 100644 => 100755 core/@EventRate/extensions/import_swarmdb.m mode change 100644 => 100755 core/@EventRate/extensions/sausageplot.m mode change 100644 => 100755 core/@EventRate/helenaplot.m mode change 100644 => 100755 core/@EventRate/obsolete/addfield.m mode change 100644 => 100755 core/@EventRate/obsolete/get.m mode change 100644 => 100755 core/@EventRate/obsolete/plotold.m mode change 100644 => 100755 core/@EventRate/obsolete/set.m mode change 100644 => 100755 core/@EventRate/plot.m mode change 100644 => 100755 core/@EventRate/pythonplot.m mode change 100644 => 100755 core/@Sfile/Sfile.m mode change 100644 => 100755 core/@correlation/DEP_xcorr.m mode change 100644 => 100755 core/@correlation/adjusttrig.m mode change 100644 => 100755 core/@correlation/agc.m mode change 100644 => 100755 core/@correlation/align.m mode change 100644 => 100755 core/@correlation/butter.m mode change 100644 => 100755 core/@correlation/cat.m mode change 100644 => 100755 core/@correlation/check.m mode change 100644 => 100755 core/@correlation/cluster.m mode change 100644 => 100755 core/@correlation/colormap.m mode change 100644 => 100755 core/@correlation/conv.m mode change 100644 => 100755 core/@correlation/correlation.m mode change 100644 => 100755 core/@correlation/crop.m mode change 100644 => 100755 core/@correlation/deconv.m mode change 100644 => 100755 core/@correlation/demean.m mode change 100644 => 100755 core/@correlation/detrend.m mode change 100644 => 100755 core/@correlation/diff.m mode change 100644 => 100755 core/@correlation/display.m mode change 100644 => 100755 core/@correlation/find.m mode change 100644 => 100755 core/@correlation/get.m mode change 100644 => 100755 core/@correlation/getclusterstat.m mode change 100644 => 100755 core/@correlation/getstat.m mode change 100644 => 100755 core/@correlation/hilbert.m mode change 100644 => 100755 core/@correlation/integrate.m mode change 100644 => 100755 core/@correlation/interferogram.m mode change 100644 => 100755 core/@correlation/linkage.m mode change 100644 => 100755 core/@correlation/match.m mode change 100644 => 100755 core/@correlation/minus.m mode change 100644 => 100755 core/@correlation/norm.m mode change 100644 => 100755 core/@correlation/plot.m mode change 100644 => 100755 core/@correlation/private/DEPRICATED_xcorr1xr.m mode change 100644 => 100755 core/@correlation/private/DEPRICATED_xcorrcxc.m mode change 100644 => 100755 core/@correlation/private/corrplot.m mode change 100644 => 100755 core/@correlation/private/dendrogramplot.m mode change 100644 => 100755 core/@correlation/private/eventplot.m mode change 100644 => 100755 core/@correlation/private/getval.m mode change 100644 => 100755 core/@correlation/private/lagplot.m mode change 100644 => 100755 core/@correlation/private/makesynthwaves.m mode change 100644 => 100755 core/@correlation/private/occurrenceplot.m mode change 100644 => 100755 core/@correlation/private/overlayplot.m mode change 100644 => 100755 core/@correlation/private/sampleplot.m mode change 100644 => 100755 core/@correlation/private/shadedplot.m mode change 100644 => 100755 core/@correlation/private/statplot.m mode change 100644 => 100755 core/@correlation/private/wiggleinterferogram.m mode change 100644 => 100755 core/@correlation/private/wiggleplot.m mode change 100644 => 100755 core/@correlation/private/xcorr1x1.m mode change 100644 => 100755 core/@correlation/private/xcorr1xr.m mode change 100644 => 100755 core/@correlation/private/xcorr1xr_orig.m mode change 100644 => 100755 core/@correlation/private/xcorrdec.m mode change 100644 => 100755 core/@correlation/private/xcorrrow.m mode change 100644 => 100755 core/@correlation/set.m mode change 100644 => 100755 core/@correlation/sign.m mode change 100644 => 100755 core/@correlation/sort.m mode change 100644 => 100755 core/@correlation/stack.m mode change 100644 => 100755 core/@correlation/strip.m mode change 100644 => 100755 core/@correlation/subset.m mode change 100644 => 100755 core/@correlation/taper.m mode change 100644 => 100755 core/@correlation/verify.m mode change 100644 => 100755 core/@correlation/waveform.m mode change 100644 => 100755 core/@correlation/writedb.m mode change 100644 => 100755 core/@correlation/xcorr.m mode change 100644 => 100755 core/@datasource/datasource.m mode change 100644 => 100755 core/@datasource/disp.m mode change 100644 => 100755 core/@datasource/display.m mode change 100644 => 100755 core/@datasource/get.m mode change 100644 => 100755 core/@datasource/getfilename.m mode change 100644 => 100755 core/@datasource/isunassigned.m mode change 100644 => 100755 core/@datasource/load_file.m mode change 100644 => 100755 core/@datasource/load_objects_from_file.m mode change 100644 => 100755 core/@datasource/loadobj.m mode change 100644 => 100755 core/@datasource/private/void_interpreter.m mode change 100644 => 100755 core/@datasource/query_file.m mode change 100644 => 100755 core/@datasource/requires_file.m mode change 100644 => 100755 core/@datasource/setfile.m mode change 100644 => 100755 core/@datasource/setinterpreter.m mode change 100644 => 100755 core/@datasource/subdivide_files_by_date.m mode change 100644 => 100755 core/@drumplot/drumplot.m mode change 100644 => 100755 core/@drumplot/get.m mode change 100644 => 100755 core/@drumplot/plot.m mode change 100644 => 100755 core/@drumplot/set.m mode change 100644 => 100755 core/@filterobject/disp.m mode change 100644 => 100755 core/@filterobject/display.m mode change 100644 => 100755 core/@filterobject/filt.m mode change 100644 => 100755 core/@filterobject/filterobject.m mode change 100644 => 100755 core/@filterobject/filtfilt.m mode change 100644 => 100755 core/@filterobject/get.m mode change 100644 => 100755 core/@filterobject/set.m mode change 100644 => 100755 core/@rsam/extensions/bvalue.m mode change 100644 => 100755 core/@rsam/extensions/correct.m mode change 100644 => 100755 core/@rsam/extensions/despike.m mode change 100644 => 100755 core/@rsam/extensions/detectTremorEvents.m mode change 100644 => 100755 core/@rsam/extensions/duration_amplitude.m mode change 100644 => 100755 core/@rsam/extensions/getwaveform.m mode change 100644 => 100755 core/@rsam/extensions/loadwfmeastable.m mode change 100644 => 100755 core/@rsam/extensions/reduce.m mode change 100644 => 100755 core/@rsam/extensions/remove_calibration_pulses.m mode change 100644 => 100755 core/@rsam/extensions/remove_calibs.m mode change 100644 => 100755 core/@rsam/extensions/resample.m mode change 100644 => 100755 core/@rsam/extensions/rsam2energy.m mode change 100644 => 100755 core/@rsam/extensions/rsam2waveform.m mode change 100644 => 100755 core/@rsam/extensions/save2wfmeastable.m mode change 100644 => 100755 core/@rsam/extensions/tremorstalta.m mode change 100644 => 100755 core/@rsam/extract.m mode change 100644 => 100755 core/@rsam/findfiles.m mode change 100644 => 100755 core/@rsam/load.m mode change 100644 => 100755 core/@rsam/make_bob_file.m mode change 100644 => 100755 core/@rsam/medfilt1.m mode change 100644 => 100755 core/@rsam/obsolete/load.m mode change 100644 => 100755 core/@rsam/obsolete/plotrsam.m mode change 100644 => 100755 core/@rsam/obsolete/plotyy.m mode change 100644 => 100755 core/@rsam/plot.m mode change 100644 => 100755 core/@rsam/plot_panels.m mode change 100644 => 100755 core/@rsam/rsam2waveform.m mode change 100644 => 100755 core/@rsam/save_to_bob_file.m mode change 100644 => 100755 core/@rsam/save_to_text_file.m mode change 100644 => 100755 core/@rsam/trash/loadbobfile.m mode change 100644 => 100755 core/@rsam/trash/scrollplot_whatisthis.m mode change 100644 => 100755 core/@sacpz/sacpz.m mode change 100644 => 100755 core/@scnlobject/ChannelTag.m mode change 100644 => 100755 core/@scnlobject/disp.m mode change 100644 => 100755 core/@scnlobject/display.m mode change 100644 => 100755 core/@scnlobject/eq.m mode change 100644 => 100755 core/@scnlobject/get.m mode change 100644 => 100755 core/@scnlobject/intersect.m mode change 100644 => 100755 core/@scnlobject/ismember.m mode change 100644 => 100755 core/@scnlobject/scnlobject.m mode change 100644 => 100755 core/@scnlobject/set.m mode change 100644 => 100755 core/@scnlobject/unique.m mode change 100644 => 100755 core/@spectralobject/colorbar_axis.m mode change 100644 => 100755 core/@spectralobject/disp.m mode change 100644 => 100755 core/@spectralobject/display.m mode change 100644 => 100755 core/@spectralobject/fft.m mode change 100644 => 100755 core/@spectralobject/get.m mode change 100644 => 100755 core/@spectralobject/getmap.m mode change 100644 => 100755 core/@spectralobject/ifft.m mode change 100644 => 100755 core/@spectralobject/loadobj.m mode change 100644 => 100755 core/@spectralobject/private/parse_xunit.m mode change 100644 => 100755 core/@spectralobject/private/subdivide_axes.m mode change 100644 => 100755 core/@spectralobject/pwelch.m mode change 100644 => 100755 core/@spectralobject/set.m mode change 100644 => 100755 core/@spectralobject/setmap.m mode change 100644 => 100755 core/@spectralobject/specgram.m mode change 100644 => 100755 core/@spectralobject/specgram2.m mode change 100644 => 100755 core/@spectralobject/spectralobject.m mode change 100644 => 100755 core/@spectralobject/spwelch.m mode change 100644 => 100755 core/@threecomp/cookbook_map.m mode change 100644 => 100755 core/@threecomp/private/create_demo_data.m mode change 100644 => 100755 core/@threecomp/private/getproperty.m mode change 100644 => 100755 core/@threecomp/private/parseargs.m mode change 100644 => 100755 core/@threecomp/private/property2varargin.m mode change 100644 => 100755 core/@waveform/abs.m mode change 100644 => 100755 core/@waveform/addfield.m mode change 100644 => 100755 core/@waveform/addhistory.m mode change 100644 => 100755 core/@waveform/addmetrics.m mode change 100644 => 100755 core/@waveform/align.m mode change 100644 => 100755 core/@waveform/bin_stack.m mode change 100644 => 100755 core/@waveform/clean.m mode change 100644 => 100755 core/@waveform/clearhistory.m mode change 100644 => 100755 core/@waveform/clip.m mode change 100644 => 100755 core/@waveform/combine.m mode change 100644 => 100755 core/@waveform/delfield.m mode change 100644 => 100755 core/@waveform/demean.m mode change 100644 => 100755 core/@waveform/detrend.m mode change 100644 => 100755 core/@waveform/diff.m mode change 100644 => 100755 core/@waveform/disp.m mode change 100644 => 100755 core/@waveform/display.m mode change 100644 => 100755 core/@waveform/double.m mode change 100644 => 100755 core/@waveform/eq.m mode change 100644 => 100755 core/@waveform/extract.m mode change 100644 => 100755 core/@waveform/fillgaps.m mode change 100644 => 100755 core/@waveform/fix_data_length.m mode change 100644 => 100755 core/@waveform/get.m mode change 100644 => 100755 core/@waveform/getm.m mode change 100644 => 100755 core/@waveform/getpeaks.m mode change 100644 => 100755 core/@waveform/getsamples.m mode change 100644 => 100755 core/@waveform/gettimerange.m mode change 100644 => 100755 core/@waveform/hilbert.m mode change 100644 => 100755 core/@waveform/history.m mode change 100644 => 100755 core/@waveform/integrate.m mode change 100644 => 100755 core/@waveform/isempty.m mode change 100644 => 100755 core/@waveform/isfield.m mode change 100644 => 100755 core/@waveform/ismember.m mode change 100644 => 100755 core/@waveform/isvertical.m mode change 100644 => 100755 core/@waveform/legend.m mode change 100644 => 100755 core/@waveform/loadobj.m mode change 100644 => 100755 core/@waveform/loadsac.m mode change 100644 => 100755 core/@waveform/max.m mode change 100644 => 100755 core/@waveform/mean.m mode change 100644 => 100755 core/@waveform/medfilt1.m mode change 100644 => 100755 core/@waveform/median.m mode change 100644 => 100755 core/@waveform/min.m mode change 100644 => 100755 core/@waveform/minus.m mode change 100644 => 100755 core/@waveform/mrdivide.m mode change 100644 => 100755 core/@waveform/mtimes.m mode change 100644 => 100755 core/@waveform/normalize.m mode change 100644 => 100755 core/@waveform/pad.m mode change 100644 => 100755 core/@waveform/plot.m mode change 100644 => 100755 core/@waveform/plot_helicorder.m mode change 100644 => 100755 core/@waveform/plot_panels.m mode change 100644 => 100755 core/@waveform/plot_spectrum.m mode change 100644 => 100755 core/@waveform/plus.m mode change 100644 => 100755 core/@waveform/power.m mode change 100644 => 100755 core/@waveform/private/as_channeltag.m mode change 100644 => 100755 core/@waveform/private/autoscale.m mode change 100644 => 100755 core/@waveform/private/dep2mep.m mode change 100644 => 100755 core/@waveform/private/filter_by_time.m mode change 100644 => 100755 core/@waveform/private/get_load_routine.m mode change 100644 => 100755 core/@waveform/private/getproperty.m mode change 100644 => 100755 core/@waveform/private/loadGlobalNamespace.m mode change 100644 => 100755 core/@waveform/private/load_antelope.m mode change 100644 => 100755 core/@waveform/private/load_antelope_old.m mode change 100644 => 100755 core/@waveform/private/load_antelope_workaround.m mode change 100644 => 100755 core/@waveform/private/load_file.m mode change 100644 => 100755 core/@waveform/private/load_from_datasource.m mode change 100644 => 100755 core/@waveform/private/load_from_file.m mode change 100644 => 100755 core/@waveform/private/load_irisdmcws.m mode change 100644 => 100755 core/@waveform/private/load_matfile.m mode change 100644 => 100755 core/@waveform/private/load_miniseed.m mode change 100644 => 100755 core/@waveform/private/load_obspy.m mode change 100644 => 100755 core/@waveform/private/load_sac.m mode change 100644 => 100755 core/@waveform/private/load_seisan.m mode change 100644 => 100755 core/@waveform/private/load_winston.m mode change 100644 => 100755 core/@waveform/private/marktimes.m mode change 100644 => 100755 core/@waveform/private/mep2dep.m mode change 100644 => 100755 core/@waveform/private/offset2time.m mode change 100644 => 100755 core/@waveform/private/packDataRequest.m mode change 100644 => 100755 core/@waveform/private/parse_xunit.m mode change 100644 => 100755 core/@waveform/private/parseargs.m mode change 100644 => 100755 core/@waveform/private/peel_option.m mode change 100644 => 100755 core/@waveform/private/property2varargin.m mode change 100644 => 100755 core/@waveform/private/readsacfile.m mode change 100644 => 100755 core/@waveform/private/rqbn.m mode change 100644 => 100755 core/@waveform/private/rqhd.m mode change 100644 => 100755 core/@waveform/private/sac2waveform.m mode change 100644 => 100755 core/@waveform/private/set_sacheader.m mode change 100644 => 100755 core/@waveform/private/time2offset.m mode change 100644 => 100755 core/@waveform/private/unpackDataRequest.m mode change 100644 => 100755 core/@waveform/private/waveform2sacheader.m mode change 100644 => 100755 core/@waveform/private/winston_access.m mode change 100644 => 100755 core/@waveform/private/writesac.m mode change 100644 => 100755 core/@waveform/rdivide.m mode change 100644 => 100755 core/@waveform/remove_calib.m mode change 100644 => 100755 core/@waveform/resample.m mode change 100644 => 100755 core/@waveform/rms.m mode change 100644 => 100755 core/@waveform/savesac.m mode change 100644 => 100755 core/@waveform/scroll.m mode change 100644 => 100755 core/@waveform/set.m mode change 100644 => 100755 core/@waveform/setsamples.m mode change 100644 => 100755 core/@waveform/sign.m mode change 100644 => 100755 core/@waveform/smooth.m mode change 100644 => 100755 core/@waveform/sortby.m mode change 100644 => 100755 core/@waveform/spectrogram.m mode change 100644 => 100755 core/@waveform/stack.m mode change 100644 => 100755 core/@waveform/std.m mode change 100644 => 100755 core/@waveform/taper.m mode change 100644 => 100755 core/@waveform/times.m mode change 100644 => 100755 core/@waveform/uminus.m mode change 100644 => 100755 core/@waveform/var.m mode change 100644 => 100755 core/@waveform/waveform.m mode change 100644 => 100755 core/@waveform/waveform2rsam.m mode change 100644 => 100755 core/@waveform/waveform2sound.m mode change 100644 => 100755 core/@waveform/zero2nan.m mode change 100644 => 100755 core/dev/+dataretrieval/@antelopesource/antelopesource.m mode change 100644 => 100755 core/dev/+dataretrieval/@antelopesource/get_antelope_traces.m mode change 100644 => 100755 core/dev/+dataretrieval/@antelopesource/load_antelope.m mode change 100644 => 100755 core/dev/+dataretrieval/@antelopesource/segtype2units.m mode change 100644 => 100755 core/dev/+dataretrieval/@antelopesource/traceToWaveform.m mode change 100644 => 100755 core/dev/+dataretrieval/iriswebservicesource.m mode change 100644 => 100755 core/dev/+dataretrieval/matsource.m mode change 100644 => 100755 core/dev/+dataretrieval/obspysource.m mode change 100644 => 100755 core/dev/+dataretrieval/sacsource.m mode change 100644 => 100755 core/dev/+dataretrieval/seisansource.m mode change 100644 => 100755 core/dev/+dataretrieval/spatiotemporal_database.m mode change 100644 => 100755 core/dev/+dataretrieval/spatiotemporal_datasource.m mode change 100644 => 100755 core/dev/+dataretrieval/spatiotemporal_file.m mode change 100644 => 100755 core/dev/+dataretrieval/winstonsource.m mode change 100644 => 100755 core/dev/@ChannelDetails/ChannelDetails.m mode change 100644 => 100755 core/dev/@NewCorrelation/NewCorrelation.m mode change 100644 => 100755 core/dev/@NewCorrelation/adjusttrig.m mode change 100644 => 100755 core/dev/@NewCorrelation/agc.m mode change 100644 => 100755 core/dev/@NewCorrelation/align.m mode change 100644 => 100755 core/dev/@NewCorrelation/butter.m mode change 100644 => 100755 core/dev/@NewCorrelation/cat.m mode change 100644 => 100755 core/dev/@NewCorrelation/check.m mode change 100644 => 100755 core/dev/@NewCorrelation/cluster.m mode change 100644 => 100755 core/dev/@NewCorrelation/colormap.m mode change 100644 => 100755 core/dev/@NewCorrelation/conv.m mode change 100644 => 100755 core/dev/@NewCorrelation/cookbook.m mode change 100644 => 100755 core/dev/@NewCorrelation/corrplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/crop.m mode change 100644 => 100755 core/dev/@NewCorrelation/deconv.m mode change 100644 => 100755 core/dev/@NewCorrelation/demean.m mode change 100644 => 100755 core/dev/@NewCorrelation/dendrogramplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/detrend.m mode change 100644 => 100755 core/dev/@NewCorrelation/diff.m mode change 100644 => 100755 core/dev/@NewCorrelation/disp.m mode change 100644 => 100755 core/dev/@NewCorrelation/eventplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/find.m mode change 100644 => 100755 core/dev/@NewCorrelation/get.m mode change 100644 => 100755 core/dev/@NewCorrelation/getclusterstat.m mode change 100644 => 100755 core/dev/@NewCorrelation/getstat.m mode change 100644 => 100755 core/dev/@NewCorrelation/getval.m mode change 100644 => 100755 core/dev/@NewCorrelation/hilbert.m mode change 100644 => 100755 core/dev/@NewCorrelation/integrate.m mode change 100644 => 100755 core/dev/@NewCorrelation/interferogram.m mode change 100644 => 100755 core/dev/@NewCorrelation/lagplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/linkage.m mode change 100644 => 100755 core/dev/@NewCorrelation/makesynthwaves.m mode change 100644 => 100755 core/dev/@NewCorrelation/match.m mode change 100644 => 100755 core/dev/@NewCorrelation/minus.m mode change 100644 => 100755 core/dev/@NewCorrelation/norm.m mode change 100644 => 100755 core/dev/@NewCorrelation/occurrenceplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/overlayplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/plot.m mode change 100644 => 100755 core/dev/@NewCorrelation/sampleplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/set.m mode change 100644 => 100755 core/dev/@NewCorrelation/shadedplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/sign.m mode change 100644 => 100755 core/dev/@NewCorrelation/sort.m mode change 100644 => 100755 core/dev/@NewCorrelation/stack.m mode change 100644 => 100755 core/dev/@NewCorrelation/statplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/strip.m mode change 100644 => 100755 core/dev/@NewCorrelation/subset.m mode change 100644 => 100755 core/dev/@NewCorrelation/taper.m mode change 100644 => 100755 core/dev/@NewCorrelation/unifytracelengths.m mode change 100644 => 100755 core/dev/@NewCorrelation/waveform.m mode change 100644 => 100755 core/dev/@NewCorrelation/wiggleinterferogram.m mode change 100644 => 100755 core/dev/@NewCorrelation/wiggleplot.m mode change 100644 => 100755 core/dev/@NewCorrelation/writedb.m mode change 100644 => 100755 core/dev/@NewCorrelation/xcorr.m mode change 100644 => 100755 core/dev/@NewCorrelation/xcorr1x1.m mode change 100644 => 100755 core/dev/@NewCorrelation/xcorr1xr.m mode change 100644 => 100755 core/dev/@NewCorrelation/xcorr1xr_orig.m mode change 100644 => 100755 core/dev/@NewCorrelation/xcorrdec.m mode change 100644 => 100755 core/dev/@NewCorrelation/xcorrrow.m mode change 100644 => 100755 core/dev/@SeismicTrace/SeismicTrace.m mode change 100644 => 100755 core/dev/@SeismicTrace/disp.m mode change 100644 => 100755 core/dev/@SeismicTrace/legend.m mode change 100644 => 100755 core/dev/@SeismicTrace/linkedplot.m mode change 100644 => 100755 core/dev/@SeismicTrace/plot.m mode change 100644 => 100755 core/dev/@TraceData/TraceData.m mode change 100644 => 100755 core/dev/@TraceData/amplitude_spectrum.m mode change 100644 => 100755 core/dev/@TraceData/autoscale.m mode change 100644 => 100755 core/dev/@TraceFilter/TraceFilter.m mode change 100644 => 100755 core/dev/@TraceFilter/cookbook.m mode change 100644 => 100755 core/dev/@TraceSpectra/TraceSpectra.m mode change 100644 => 100755 core/dev/@TraceSpectra/cookbook.m mode change 100644 => 100755 core/dev/@TraceSpectra/parseSpecgramInputs.m mode change 100644 => 100755 core/dev/@TraceSpectra/specgram.m mode change 100644 => 100755 core/dev/@TraceSpectra/specgram2.m mode change 100644 => 100755 deprecated/+waveform_extensions/sacload.m mode change 100644 => 100755 deprecated/+waveform_extensions/sta_lta.m mode change 100644 => 100755 deprecated/@helicorder/build.m mode change 100644 => 100755 deprecated/@helicorder/disp.m mode change 100644 => 100755 deprecated/@helicorder/display.m mode change 100644 => 100755 deprecated/@helicorder/get.m mode change 100644 => 100755 deprecated/@helicorder/helicorder.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/nan2sst.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/nan2wfa.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/ssd2sst.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/sst2nan.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/sst2ssd.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/sst2val.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/sst2wfa.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/wfa2nan.m mode change 100644 => 100755 deprecated/@helicorder/private/Event_Conversion/wfa2sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/add_sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/chk_t.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/compare_sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/delete_sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/extract_sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/is_sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/istequal.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/merge_sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/search_sst.m mode change 100644 => 100755 deprecated/@helicorder/private/SST/sort_sst.m mode change 100644 => 100755 deprecated/@helicorder/set.m mode change 100644 => 100755 deprecated/fft_tools/+wf_fft/about.m mode change 100644 => 100755 deprecated/fft_tools/+wf_fft/compute.m mode change 100644 => 100755 deprecated/fft_tools/+wf_fft/freqindex.m mode change 100644 => 100755 deprecated/fft_tools/+wf_fft/plot.m mode change 100644 => 100755 deprecated/fft_tools/amplitude_spectrum.m mode change 100644 => 100755 deprecated/fft_tools/wf_fft.m mode change 100644 => 100755 deprecated/fft_tools/wf_fftplot.m mode change 100644 => 100755 deprecated/fft_tools/wf_fi.m mode change 100644 => 100755 is_testdata_setup.m mode change 100644 => 100755 libgismo/cleanup.m mode change 100644 => 100755 libgismo/contiguous.m mode change 100644 => 100755 libgismo/datenum2epoch.m mode change 100644 => 100755 libgismo/datenum2julday.m mode change 100644 => 100755 libgismo/epoch2datenum.m mode change 100644 => 100755 libgismo/get_highest_figure_number.m mode change 100644 => 100755 rsam_wrapper_test.m mode change 100644 => 100755 startup_GISMO.m mode change 100644 => 100755 tests/amplitude_spectrum_test.m mode change 100644 => 100755 tests/antelope2waveform_test.m mode change 100644 => 100755 tests/correlation_diagnostics.m mode change 100644 => 100755 tests/obsolete/medfilt1_test.m mode change 100644 => 100755 tests/testChanneltag.m mode change 100644 => 100755 tests/testScnlobject.m mode change 100644 => 100755 tests/testWaveform.m mode change 100644 => 100755 tests/test_ChanDetails.m mode change 100644 => 100755 tests/test_Correlation.m mode change 100644 => 100755 tests/test_Trace.m mode change 100644 => 100755 tests/test_TraceData.m mode change 100644 => 100755 tests/test_waveform_constructor.m mode change 100644 => 100755 tests/trloadcss_test.m mode change 100644 => 100755 tests/waveform_antelope_test.m mode change 100644 => 100755 tests/waveform_load_test.m mode change 100644 => 100755 training/gismo_examples.m mode change 100644 => 100755 training/separating_tremor_and_events.m mode change 100644 => 100755 uaf_internal/AEIC_AVO/+aeic_catalog/about.m mode change 100644 => 100755 uaf_internal/AEIC_AVO/+aeic_catalog/get_total.m mode change 100644 => 100755 uaf_internal/AEIC_AVO/+check/about.m mode change 100644 => 100755 uaf_internal/AEIC_AVO/+check/crossfeed.m mode change 100644 => 100755 uaf_internal/AEIC_AVO/aeic_total_catalog.m mode change 100644 => 100755 uaf_internal/IDEAS_format/ideas2waveform.m mode change 100644 => 100755 uaf_internal/gismo_management/whichgismo.m mode change 100644 => 100755 uaf_internal/gismo_management/whichgismo_paths.m diff --git a/applications/+iceweb/apply_calib.m b/applications/+iceweb/apply_calib.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/apply_filter.m b/applications/+iceweb/apply_filter.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/calculatePanelPositions.m b/applications/+iceweb/calculatePanelPositions.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/datenum2julday.m b/applications/+iceweb/datenum2julday.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/extended_spectralobject_colormap.m b/applications/+iceweb/extended_spectralobject_colormap.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/get_channeltags_active.m b/applications/+iceweb/get_channeltags_active.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/get_spectrogram_filename.m b/applications/+iceweb/get_spectrogram_filename.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/iceweb.m b/applications/+iceweb/iceweb.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/iceweb2017_extraproducts.m b/applications/+iceweb/iceweb2017_extraproducts.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/iceweb_wrapper.m b/applications/+iceweb/iceweb_wrapper.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/makespectrogramthumbnails.m b/applications/+iceweb/makespectrogramthumbnails.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/montserrat_remove_analog_sites.m b/applications/+iceweb/montserrat_remove_analog_sites.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/setup.m b/applications/+iceweb/setup.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/show_sites.m b/applications/+iceweb/show_sites.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/spectrogram_iceweb.m b/applications/+iceweb/spectrogram_iceweb.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/testday.m b/applications/+iceweb/testday.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/unrest.m b/applications/+iceweb/unrest.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/waveform_remove_empty.m b/applications/+iceweb/waveform_remove_empty.m old mode 100644 new mode 100755 diff --git a/applications/+iceweb/waveform_wrapper.m b/applications/+iceweb/waveform_wrapper.m old mode 100644 new mode 100755 diff --git a/applications/uispecgram.m b/applications/uispecgram.m old mode 100644 new mode 100755 diff --git a/contributed/+obspy/incomplete.m b/contributed/+obspy/incomplete.m old mode 100644 new mode 100755 diff --git a/contributed/+obspy/stream2waveform.m b/contributed/+obspy/stream2waveform.m old mode 100644 new mode 100755 diff --git a/contributed/+obspy/stream_matfile2waveform.m b/contributed/+obspy/stream_matfile2waveform.m old mode 100644 new mode 100755 diff --git a/contributed/ReadMSEEDFast/ReadMSEEDFast.m b/contributed/ReadMSEEDFast/ReadMSEEDFast.m old mode 100644 new mode 100755 diff --git a/contributed/correlation_derived/corrderived_plot_swarm_history.m b/contributed/correlation_derived/corrderived_plot_swarm_history.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/demo_plutons.m b/contributed/instrument_response/demo_plutons.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_apply.m b/contributed/instrument_response/response_apply.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_cookbook.m b/contributed/instrument_response/response_cookbook.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_demo_database.m b/contributed/instrument_response/response_demo_database.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_demo_waveforms.m b/contributed/instrument_response/response_demo_waveforms.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_get_from_db.m b/contributed/instrument_response/response_get_from_db.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_get_from_polezero.m b/contributed/instrument_response/response_get_from_polezero.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_plot.m b/contributed/instrument_response/response_plot.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_polezero_demo.m b/contributed/instrument_response/response_polezero_demo.m old mode 100644 new mode 100755 diff --git a/contributed/instrument_response/response_structure_description.m b/contributed/instrument_response/response_structure_description.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/+irisdmc/about.m b/contributed/iris_dmc_tools/+irisdmc/about.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/+irisdmc/cookbook.m b/contributed/iris_dmc_tools/+irisdmc/cookbook.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/+irisdmc/station_meta.m b/contributed/iris_dmc_tools/+irisdmc/station_meta.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/+irisdmc/xml2struct.m b/contributed/iris_dmc_tools/+irisdmc/xml2struct.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/dmc_cookbook.m b/contributed/iris_dmc_tools/dmc_cookbook.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/dmc_station_meta.m b/contributed/iris_dmc_tools/dmc_station_meta.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/dmc_xml2struct.m b/contributed/iris_dmc_tools/dmc_xml2struct.m old mode 100644 new mode 100755 diff --git a/contributed/iris_dmc_tools/irisFetch.m b/contributed/iris_dmc_tools/irisFetch.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/+mastercorr/about.m b/contributed/master_correlation/+mastercorr/about.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/+mastercorr/cookbook.m b/contributed/master_correlation/+mastercorr/cookbook.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/+mastercorr/extract.m b/contributed/master_correlation/+mastercorr/extract.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/+mastercorr/load_cookbook_data.m b/contributed/master_correlation/+mastercorr/load_cookbook_data.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/+mastercorr/plot_stats.m b/contributed/master_correlation/+mastercorr/plot_stats.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/+mastercorr/scan.m b/contributed/master_correlation/+mastercorr/scan.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/mastercorr_cookbook.m b/contributed/master_correlation/mastercorr_cookbook.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/mastercorr_extract.m b/contributed/master_correlation/mastercorr_extract.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/mastercorr_plot_stats.m b/contributed/master_correlation/mastercorr_plot_stats.m old mode 100644 new mode 100755 diff --git a/contributed/master_correlation/mastercorr_scan.m b/contributed/master_correlation/mastercorr_scan.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/attenuation/hankelq.m b/contributed_antelope/attenuation/hankelq.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/db_get/db_get_arrival_info.m b/contributed_antelope/db_get/db_get_arrival_info.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/db_get/db_get_net_info.m b/contributed_antelope/db_get/db_get_net_info.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/db_get/db_get_origin_info.m b/contributed_antelope/db_get/db_get_origin_info.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/db_get/db_get_site_info.m b/contributed_antelope/db_get/db_get_site_info.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/db_get/db_get_sitechan_info.m b/contributed_antelope/db_get/db_get_sitechan_info.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/double_difference/dd_collate.m b/contributed_antelope/double_difference/dd_collate.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/double_difference/dd_cookbook.m b/contributed_antelope/double_difference/dd_cookbook.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/double_difference/dd_make_scp.m b/contributed_antelope/double_difference/dd_make_scp.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/double_difference/dd_process_scp.m b/contributed_antelope/double_difference/dd_process_scp.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/import_events/arrivals_rearrange.m b/contributed_antelope/import_events/arrivals_rearrange.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/import_events/ie_readchans.m b/contributed_antelope/import_events/ie_readchans.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/import_events/import_events.m b/contributed_antelope/import_events/import_events.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/import_events/waveform2threecomp.m b/contributed_antelope/import_events/waveform2threecomp.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/reduced_displacement/Contents.m b/contributed_antelope/reduced_displacement/Contents.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/reduced_displacement/reducedisp_calc.m b/contributed_antelope/reduced_displacement/reducedisp_calc.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/reduced_displacement/reducedisp_plot.m b/contributed_antelope/reduced_displacement/reducedisp_plot.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/reduced_displacement/reducedisp_wfmeas.m b/contributed_antelope/reduced_displacement/reducedisp_wfmeas.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/reduced_displacement/reducedisp_write_wfmeas.m b/contributed_antelope/reduced_displacement/reducedisp_write_wfmeas.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/about.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/about.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/arrival_histogram.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/arrival_histogram.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/dbload.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/dbload.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/depth_section.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/depth_section.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/do_all.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/do_all.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/map.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/map.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/tt_curve.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/tt_curve.m old mode 100644 new mode 100755 diff --git a/contributed_antelope/traveltime_and_ray_coverage/+ttimes/write_lotos.m b/contributed_antelope/traveltime_and_ray_coverage/+ttimes/write_lotos.m old mode 100644 new mode 100755 diff --git a/cookbooks/Catalog_cookbook.m b/cookbooks/Catalog_cookbook.m old mode 100644 new mode 100755 diff --git a/cookbooks/EventRate_cookbook.m b/cookbooks/EventRate_cookbook.m old mode 100644 new mode 100755 diff --git a/cookbooks/correlation_cookbook.m b/cookbooks/correlation_cookbook.m old mode 100644 new mode 100755 diff --git a/cookbooks/drumplot_cookbook.m b/cookbooks/drumplot_cookbook.m old mode 100644 new mode 100755 diff --git a/cookbooks/rsam_cookbook.m b/cookbooks/rsam_cookbook.m old mode 100644 new mode 100755 diff --git a/cookbooks/waveform_cookbook.m b/cookbooks/waveform_cookbook.m old mode 100644 new mode 100755 diff --git a/core/+Arrival/+read_arrivals/antelope.m b/core/+Arrival/+read_arrivals/antelope.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+plotEarthquakes/importPlates.m b/core/+Catalog/+plotEarthquakes/importPlates.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/aef.m b/core/+Catalog/+read_catalog/aef.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/antelope.m b/core/+Catalog/+read_catalog/antelope.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/ensure_dateformat.m b/core/+Catalog/+read_catalog/ensure_dateformat.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/iris.m b/core/+Catalog/+read_catalog/iris.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/seisan.m b/core/+Catalog/+read_catalog/seisan.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/sru.m b/core/+Catalog/+read_catalog/sru.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/usgsrealtime.m b/core/+Catalog/+read_catalog/usgsrealtime.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/vdap.m b/core/+Catalog/+read_catalog/vdap.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/+read_catalog/zmap.m b/core/+Catalog/+read_catalog/zmap.m old mode 100644 new mode 100755 diff --git a/core/+Catalog/subclass2longname.m b/core/+Catalog/subclass2longname.m old mode 100644 new mode 100755 diff --git a/core/+Detection/sta_lta.m b/core/+Detection/sta_lta.m old mode 100644 new mode 100755 diff --git a/core/+admin/about.m b/core/+admin/about.m old mode 100644 new mode 100755 diff --git a/core/+admin/antelope_exists.m b/core/+admin/antelope_exists.m old mode 100644 new mode 100755 diff --git a/core/+admin/deprecated.m b/core/+admin/deprecated.m old mode 100644 new mode 100755 diff --git a/core/+admin/getpath.m b/core/+admin/getpath.m old mode 100644 new mode 100755 diff --git a/core/+admin/refresh.m b/core/+admin/refresh.m old mode 100644 new mode 100755 diff --git a/core/+admin/remove.m b/core/+admin/remove.m old mode 100644 new mode 100755 diff --git a/core/+admin/rmgismo.m b/core/+admin/rmgismo.m old mode 100644 new mode 100755 diff --git a/core/+admin/which.m b/core/+admin/which.m old mode 100644 new mode 100755 diff --git a/core/+antelope/antelope2waveform.m b/core/+antelope/antelope2waveform.m old mode 100644 new mode 100755 diff --git a/core/+antelope/arrivals2waveforms.m b/core/+antelope/arrivals2waveforms.m old mode 100644 new mode 100755 diff --git a/core/+antelope/candidate/db_lookupunits.m b/core/+antelope/candidate/db_lookupunits.m old mode 100644 new mode 100755 diff --git a/core/+antelope/dbcp.m b/core/+antelope/dbcp.m old mode 100644 new mode 100755 diff --git a/core/+antelope/dbcreate.m b/core/+antelope/dbcreate.m old mode 100644 new mode 100755 diff --git a/core/+antelope/dbget_closest_sites.m b/core/+antelope/dbget_closest_sites.m old mode 100644 new mode 100755 diff --git a/core/+antelope/dbgetarrivals.m b/core/+antelope/dbgetarrivals.m old mode 100644 new mode 100755 diff --git a/core/+antelope/dbgetorigins.m b/core/+antelope/dbgetorigins.m old mode 100644 new mode 100755 diff --git a/core/+antelope/dbtable_present.m b/core/+antelope/dbtable_present.m old mode 100644 new mode 100755 diff --git a/core/+antelope/listMiniseedFiles.m b/core/+antelope/listMiniseedFiles.m old mode 100644 new mode 100755 diff --git a/core/+debug/get_debug.m b/core/+debug/get_debug.m old mode 100644 new mode 100755 diff --git a/core/+debug/print_debug.m b/core/+debug/print_debug.m old mode 100644 new mode 100755 diff --git a/core/+debug/printfunctionstack.m b/core/+debug/printfunctionstack.m old mode 100644 new mode 100755 diff --git a/core/+debug/set_debug.m b/core/+debug/set_debug.m old mode 100644 new mode 100755 diff --git a/core/+magnitude/ml_richter.m b/core/+magnitude/ml_richter.m old mode 100644 new mode 100755 diff --git a/core/+scnlobject/cookbook.m b/core/+scnlobject/cookbook.m old mode 100644 new mode 100755 diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m old mode 100644 new mode 100755 diff --git a/core/@Arrival/addmetrics.m b/core/@Arrival/addmetrics.m old mode 100644 new mode 100755 diff --git a/core/@Arrival/addwaveforms.m b/core/@Arrival/addwaveforms.m old mode 100644 new mode 100755 diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m old mode 100644 new mode 100755 diff --git a/core/@Arrival/readphafile.m b/core/@Arrival/readphafile.m old mode 100644 new mode 100755 diff --git a/core/@Arrival/setminmax.m b/core/@Arrival/setminmax.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/addwaveforms.m b/core/@Catalog/addwaveforms.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/bvalue.m b/core/@Catalog/bvalue.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/combine.m b/core/@Catalog/combine.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/cookbook.m b/core/@Catalog/cookbook.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/disp.m b/core/@Catalog/disp.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/eev.m b/core/@Catalog/eev.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/eventrate.m b/core/@Catalog/eventrate.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/get_region.m b/core/@Catalog/get_region.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/get_symsize.m b/core/@Catalog/get_symsize.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/hist.m b/core/@Catalog/hist.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/list_waveform_metrics.m b/core/@Catalog/list_waveform_metrics.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/plot.m b/core/@Catalog/plot.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/plot3.m b/core/@Catalog/plot3.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/plot_counts.m b/core/@Catalog/plot_counts.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/plot_time.m b/core/@Catalog/plot_time.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/plot_waveform_metrics.m b/core/@Catalog/plot_waveform_metrics.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/plotprmm.m b/core/@Catalog/plotprmm.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/retrieve.m b/core/@Catalog/retrieve.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/subclassify.m b/core/@Catalog/subclassify.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/subset.m b/core/@Catalog/subset.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/summary.m b/core/@Catalog/summary.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/webmap.m b/core/@Catalog/webmap.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/write.m b/core/@Catalog/write.m old mode 100644 new mode 100755 diff --git a/core/@Catalog/write_waveform_metrics_to_antelope.m b/core/@Catalog/write_waveform_metrics_to_antelope.m old mode 100644 new mode 100755 diff --git a/core/@ChannelTag/ChannelTag.m b/core/@ChannelTag/ChannelTag.m old mode 100644 new mode 100755 diff --git a/core/@ChannelTag/eq.m b/core/@ChannelTag/eq.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/extensions/import_swarmdb.m b/core/@EventRate/extensions/import_swarmdb.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/extensions/sausageplot.m b/core/@EventRate/extensions/sausageplot.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/helenaplot.m b/core/@EventRate/helenaplot.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/obsolete/addfield.m b/core/@EventRate/obsolete/addfield.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/obsolete/get.m b/core/@EventRate/obsolete/get.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/obsolete/plotold.m b/core/@EventRate/obsolete/plotold.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/obsolete/set.m b/core/@EventRate/obsolete/set.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/plot.m b/core/@EventRate/plot.m old mode 100644 new mode 100755 diff --git a/core/@EventRate/pythonplot.m b/core/@EventRate/pythonplot.m old mode 100644 new mode 100755 diff --git a/core/@Sfile/Sfile.m b/core/@Sfile/Sfile.m old mode 100644 new mode 100755 diff --git a/core/@correlation/DEP_xcorr.m b/core/@correlation/DEP_xcorr.m old mode 100644 new mode 100755 diff --git a/core/@correlation/adjusttrig.m b/core/@correlation/adjusttrig.m old mode 100644 new mode 100755 diff --git a/core/@correlation/agc.m b/core/@correlation/agc.m old mode 100644 new mode 100755 diff --git a/core/@correlation/align.m b/core/@correlation/align.m old mode 100644 new mode 100755 diff --git a/core/@correlation/butter.m b/core/@correlation/butter.m old mode 100644 new mode 100755 diff --git a/core/@correlation/cat.m b/core/@correlation/cat.m old mode 100644 new mode 100755 diff --git a/core/@correlation/check.m b/core/@correlation/check.m old mode 100644 new mode 100755 diff --git a/core/@correlation/cluster.m b/core/@correlation/cluster.m old mode 100644 new mode 100755 diff --git a/core/@correlation/colormap.m b/core/@correlation/colormap.m old mode 100644 new mode 100755 diff --git a/core/@correlation/conv.m b/core/@correlation/conv.m old mode 100644 new mode 100755 diff --git a/core/@correlation/correlation.m b/core/@correlation/correlation.m old mode 100644 new mode 100755 diff --git a/core/@correlation/crop.m b/core/@correlation/crop.m old mode 100644 new mode 100755 diff --git a/core/@correlation/deconv.m b/core/@correlation/deconv.m old mode 100644 new mode 100755 diff --git a/core/@correlation/demean.m b/core/@correlation/demean.m old mode 100644 new mode 100755 diff --git a/core/@correlation/detrend.m b/core/@correlation/detrend.m old mode 100644 new mode 100755 diff --git a/core/@correlation/diff.m b/core/@correlation/diff.m old mode 100644 new mode 100755 diff --git a/core/@correlation/display.m b/core/@correlation/display.m old mode 100644 new mode 100755 diff --git a/core/@correlation/find.m b/core/@correlation/find.m old mode 100644 new mode 100755 diff --git a/core/@correlation/get.m b/core/@correlation/get.m old mode 100644 new mode 100755 diff --git a/core/@correlation/getclusterstat.m b/core/@correlation/getclusterstat.m old mode 100644 new mode 100755 diff --git a/core/@correlation/getstat.m b/core/@correlation/getstat.m old mode 100644 new mode 100755 diff --git a/core/@correlation/hilbert.m b/core/@correlation/hilbert.m old mode 100644 new mode 100755 diff --git a/core/@correlation/integrate.m b/core/@correlation/integrate.m old mode 100644 new mode 100755 diff --git a/core/@correlation/interferogram.m b/core/@correlation/interferogram.m old mode 100644 new mode 100755 diff --git a/core/@correlation/linkage.m b/core/@correlation/linkage.m old mode 100644 new mode 100755 diff --git a/core/@correlation/match.m b/core/@correlation/match.m old mode 100644 new mode 100755 diff --git a/core/@correlation/minus.m b/core/@correlation/minus.m old mode 100644 new mode 100755 diff --git a/core/@correlation/norm.m b/core/@correlation/norm.m old mode 100644 new mode 100755 diff --git a/core/@correlation/plot.m b/core/@correlation/plot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/DEPRICATED_xcorr1xr.m b/core/@correlation/private/DEPRICATED_xcorr1xr.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/DEPRICATED_xcorrcxc.m b/core/@correlation/private/DEPRICATED_xcorrcxc.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/corrplot.m b/core/@correlation/private/corrplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/dendrogramplot.m b/core/@correlation/private/dendrogramplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/eventplot.m b/core/@correlation/private/eventplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/getval.m b/core/@correlation/private/getval.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/lagplot.m b/core/@correlation/private/lagplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/makesynthwaves.m b/core/@correlation/private/makesynthwaves.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/occurrenceplot.m b/core/@correlation/private/occurrenceplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/overlayplot.m b/core/@correlation/private/overlayplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/sampleplot.m b/core/@correlation/private/sampleplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/shadedplot.m b/core/@correlation/private/shadedplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/statplot.m b/core/@correlation/private/statplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/wiggleinterferogram.m b/core/@correlation/private/wiggleinterferogram.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/wiggleplot.m b/core/@correlation/private/wiggleplot.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/xcorr1x1.m b/core/@correlation/private/xcorr1x1.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/xcorr1xr.m b/core/@correlation/private/xcorr1xr.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/xcorr1xr_orig.m b/core/@correlation/private/xcorr1xr_orig.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/xcorrdec.m b/core/@correlation/private/xcorrdec.m old mode 100644 new mode 100755 diff --git a/core/@correlation/private/xcorrrow.m b/core/@correlation/private/xcorrrow.m old mode 100644 new mode 100755 diff --git a/core/@correlation/set.m b/core/@correlation/set.m old mode 100644 new mode 100755 diff --git a/core/@correlation/sign.m b/core/@correlation/sign.m old mode 100644 new mode 100755 diff --git a/core/@correlation/sort.m b/core/@correlation/sort.m old mode 100644 new mode 100755 diff --git a/core/@correlation/stack.m b/core/@correlation/stack.m old mode 100644 new mode 100755 diff --git a/core/@correlation/strip.m b/core/@correlation/strip.m old mode 100644 new mode 100755 diff --git a/core/@correlation/subset.m b/core/@correlation/subset.m old mode 100644 new mode 100755 diff --git a/core/@correlation/taper.m b/core/@correlation/taper.m old mode 100644 new mode 100755 diff --git a/core/@correlation/verify.m b/core/@correlation/verify.m old mode 100644 new mode 100755 diff --git a/core/@correlation/waveform.m b/core/@correlation/waveform.m old mode 100644 new mode 100755 diff --git a/core/@correlation/writedb.m b/core/@correlation/writedb.m old mode 100644 new mode 100755 diff --git a/core/@correlation/xcorr.m b/core/@correlation/xcorr.m old mode 100644 new mode 100755 diff --git a/core/@datasource/datasource.m b/core/@datasource/datasource.m old mode 100644 new mode 100755 diff --git a/core/@datasource/disp.m b/core/@datasource/disp.m old mode 100644 new mode 100755 diff --git a/core/@datasource/display.m b/core/@datasource/display.m old mode 100644 new mode 100755 diff --git a/core/@datasource/get.m b/core/@datasource/get.m old mode 100644 new mode 100755 diff --git a/core/@datasource/getfilename.m b/core/@datasource/getfilename.m old mode 100644 new mode 100755 diff --git a/core/@datasource/isunassigned.m b/core/@datasource/isunassigned.m old mode 100644 new mode 100755 diff --git a/core/@datasource/load_file.m b/core/@datasource/load_file.m old mode 100644 new mode 100755 diff --git a/core/@datasource/load_objects_from_file.m b/core/@datasource/load_objects_from_file.m old mode 100644 new mode 100755 diff --git a/core/@datasource/loadobj.m b/core/@datasource/loadobj.m old mode 100644 new mode 100755 diff --git a/core/@datasource/private/void_interpreter.m b/core/@datasource/private/void_interpreter.m old mode 100644 new mode 100755 diff --git a/core/@datasource/query_file.m b/core/@datasource/query_file.m old mode 100644 new mode 100755 diff --git a/core/@datasource/requires_file.m b/core/@datasource/requires_file.m old mode 100644 new mode 100755 diff --git a/core/@datasource/setfile.m b/core/@datasource/setfile.m old mode 100644 new mode 100755 diff --git a/core/@datasource/setinterpreter.m b/core/@datasource/setinterpreter.m old mode 100644 new mode 100755 diff --git a/core/@datasource/subdivide_files_by_date.m b/core/@datasource/subdivide_files_by_date.m old mode 100644 new mode 100755 diff --git a/core/@drumplot/drumplot.m b/core/@drumplot/drumplot.m old mode 100644 new mode 100755 diff --git a/core/@drumplot/get.m b/core/@drumplot/get.m old mode 100644 new mode 100755 diff --git a/core/@drumplot/plot.m b/core/@drumplot/plot.m old mode 100644 new mode 100755 diff --git a/core/@drumplot/set.m b/core/@drumplot/set.m old mode 100644 new mode 100755 diff --git a/core/@filterobject/disp.m b/core/@filterobject/disp.m old mode 100644 new mode 100755 diff --git a/core/@filterobject/display.m b/core/@filterobject/display.m old mode 100644 new mode 100755 diff --git a/core/@filterobject/filt.m b/core/@filterobject/filt.m old mode 100644 new mode 100755 diff --git a/core/@filterobject/filterobject.m b/core/@filterobject/filterobject.m old mode 100644 new mode 100755 diff --git a/core/@filterobject/filtfilt.m b/core/@filterobject/filtfilt.m old mode 100644 new mode 100755 diff --git a/core/@filterobject/get.m b/core/@filterobject/get.m old mode 100644 new mode 100755 diff --git a/core/@filterobject/set.m b/core/@filterobject/set.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/bvalue.m b/core/@rsam/extensions/bvalue.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/correct.m b/core/@rsam/extensions/correct.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/despike.m b/core/@rsam/extensions/despike.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/detectTremorEvents.m b/core/@rsam/extensions/detectTremorEvents.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/duration_amplitude.m b/core/@rsam/extensions/duration_amplitude.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/getwaveform.m b/core/@rsam/extensions/getwaveform.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/loadwfmeastable.m b/core/@rsam/extensions/loadwfmeastable.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/reduce.m b/core/@rsam/extensions/reduce.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/remove_calibration_pulses.m b/core/@rsam/extensions/remove_calibration_pulses.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/remove_calibs.m b/core/@rsam/extensions/remove_calibs.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/resample.m b/core/@rsam/extensions/resample.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/rsam2energy.m b/core/@rsam/extensions/rsam2energy.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/rsam2waveform.m b/core/@rsam/extensions/rsam2waveform.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/save2wfmeastable.m b/core/@rsam/extensions/save2wfmeastable.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extensions/tremorstalta.m b/core/@rsam/extensions/tremorstalta.m old mode 100644 new mode 100755 diff --git a/core/@rsam/extract.m b/core/@rsam/extract.m old mode 100644 new mode 100755 diff --git a/core/@rsam/findfiles.m b/core/@rsam/findfiles.m old mode 100644 new mode 100755 diff --git a/core/@rsam/load.m b/core/@rsam/load.m old mode 100644 new mode 100755 diff --git a/core/@rsam/make_bob_file.m b/core/@rsam/make_bob_file.m old mode 100644 new mode 100755 diff --git a/core/@rsam/medfilt1.m b/core/@rsam/medfilt1.m old mode 100644 new mode 100755 diff --git a/core/@rsam/obsolete/load.m b/core/@rsam/obsolete/load.m old mode 100644 new mode 100755 diff --git a/core/@rsam/obsolete/plotrsam.m b/core/@rsam/obsolete/plotrsam.m old mode 100644 new mode 100755 diff --git a/core/@rsam/obsolete/plotyy.m b/core/@rsam/obsolete/plotyy.m old mode 100644 new mode 100755 diff --git a/core/@rsam/plot.m b/core/@rsam/plot.m old mode 100644 new mode 100755 diff --git a/core/@rsam/plot_panels.m b/core/@rsam/plot_panels.m old mode 100644 new mode 100755 diff --git a/core/@rsam/rsam2waveform.m b/core/@rsam/rsam2waveform.m old mode 100644 new mode 100755 diff --git a/core/@rsam/save_to_bob_file.m b/core/@rsam/save_to_bob_file.m old mode 100644 new mode 100755 diff --git a/core/@rsam/save_to_text_file.m b/core/@rsam/save_to_text_file.m old mode 100644 new mode 100755 diff --git a/core/@rsam/trash/loadbobfile.m b/core/@rsam/trash/loadbobfile.m old mode 100644 new mode 100755 diff --git a/core/@rsam/trash/scrollplot_whatisthis.m b/core/@rsam/trash/scrollplot_whatisthis.m old mode 100644 new mode 100755 diff --git a/core/@sacpz/sacpz.m b/core/@sacpz/sacpz.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/ChannelTag.m b/core/@scnlobject/ChannelTag.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/disp.m b/core/@scnlobject/disp.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/display.m b/core/@scnlobject/display.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/eq.m b/core/@scnlobject/eq.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/get.m b/core/@scnlobject/get.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/intersect.m b/core/@scnlobject/intersect.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/ismember.m b/core/@scnlobject/ismember.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/scnlobject.m b/core/@scnlobject/scnlobject.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/set.m b/core/@scnlobject/set.m old mode 100644 new mode 100755 diff --git a/core/@scnlobject/unique.m b/core/@scnlobject/unique.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/colorbar_axis.m b/core/@spectralobject/colorbar_axis.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/disp.m b/core/@spectralobject/disp.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/display.m b/core/@spectralobject/display.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/fft.m b/core/@spectralobject/fft.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/get.m b/core/@spectralobject/get.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/getmap.m b/core/@spectralobject/getmap.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/ifft.m b/core/@spectralobject/ifft.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/loadobj.m b/core/@spectralobject/loadobj.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/private/parse_xunit.m b/core/@spectralobject/private/parse_xunit.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/private/subdivide_axes.m b/core/@spectralobject/private/subdivide_axes.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/pwelch.m b/core/@spectralobject/pwelch.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/set.m b/core/@spectralobject/set.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/setmap.m b/core/@spectralobject/setmap.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/specgram.m b/core/@spectralobject/specgram.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/specgram2.m b/core/@spectralobject/specgram2.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/spectralobject.m b/core/@spectralobject/spectralobject.m old mode 100644 new mode 100755 diff --git a/core/@spectralobject/spwelch.m b/core/@spectralobject/spwelch.m old mode 100644 new mode 100755 diff --git a/core/@threecomp/cookbook_map.m b/core/@threecomp/cookbook_map.m old mode 100644 new mode 100755 diff --git a/core/@threecomp/private/create_demo_data.m b/core/@threecomp/private/create_demo_data.m old mode 100644 new mode 100755 diff --git a/core/@threecomp/private/getproperty.m b/core/@threecomp/private/getproperty.m old mode 100644 new mode 100755 diff --git a/core/@threecomp/private/parseargs.m b/core/@threecomp/private/parseargs.m old mode 100644 new mode 100755 diff --git a/core/@threecomp/private/property2varargin.m b/core/@threecomp/private/property2varargin.m old mode 100644 new mode 100755 diff --git a/core/@waveform/abs.m b/core/@waveform/abs.m old mode 100644 new mode 100755 diff --git a/core/@waveform/addfield.m b/core/@waveform/addfield.m old mode 100644 new mode 100755 diff --git a/core/@waveform/addhistory.m b/core/@waveform/addhistory.m old mode 100644 new mode 100755 diff --git a/core/@waveform/addmetrics.m b/core/@waveform/addmetrics.m old mode 100644 new mode 100755 diff --git a/core/@waveform/align.m b/core/@waveform/align.m old mode 100644 new mode 100755 diff --git a/core/@waveform/bin_stack.m b/core/@waveform/bin_stack.m old mode 100644 new mode 100755 diff --git a/core/@waveform/clean.m b/core/@waveform/clean.m old mode 100644 new mode 100755 diff --git a/core/@waveform/clearhistory.m b/core/@waveform/clearhistory.m old mode 100644 new mode 100755 diff --git a/core/@waveform/clip.m b/core/@waveform/clip.m old mode 100644 new mode 100755 diff --git a/core/@waveform/combine.m b/core/@waveform/combine.m old mode 100644 new mode 100755 diff --git a/core/@waveform/delfield.m b/core/@waveform/delfield.m old mode 100644 new mode 100755 diff --git a/core/@waveform/demean.m b/core/@waveform/demean.m old mode 100644 new mode 100755 diff --git a/core/@waveform/detrend.m b/core/@waveform/detrend.m old mode 100644 new mode 100755 diff --git a/core/@waveform/diff.m b/core/@waveform/diff.m old mode 100644 new mode 100755 diff --git a/core/@waveform/disp.m b/core/@waveform/disp.m old mode 100644 new mode 100755 diff --git a/core/@waveform/display.m b/core/@waveform/display.m old mode 100644 new mode 100755 diff --git a/core/@waveform/double.m b/core/@waveform/double.m old mode 100644 new mode 100755 diff --git a/core/@waveform/eq.m b/core/@waveform/eq.m old mode 100644 new mode 100755 diff --git a/core/@waveform/extract.m b/core/@waveform/extract.m old mode 100644 new mode 100755 diff --git a/core/@waveform/fillgaps.m b/core/@waveform/fillgaps.m old mode 100644 new mode 100755 diff --git a/core/@waveform/fix_data_length.m b/core/@waveform/fix_data_length.m old mode 100644 new mode 100755 diff --git a/core/@waveform/get.m b/core/@waveform/get.m old mode 100644 new mode 100755 diff --git a/core/@waveform/getm.m b/core/@waveform/getm.m old mode 100644 new mode 100755 diff --git a/core/@waveform/getpeaks.m b/core/@waveform/getpeaks.m old mode 100644 new mode 100755 diff --git a/core/@waveform/getsamples.m b/core/@waveform/getsamples.m old mode 100644 new mode 100755 diff --git a/core/@waveform/gettimerange.m b/core/@waveform/gettimerange.m old mode 100644 new mode 100755 diff --git a/core/@waveform/hilbert.m b/core/@waveform/hilbert.m old mode 100644 new mode 100755 diff --git a/core/@waveform/history.m b/core/@waveform/history.m old mode 100644 new mode 100755 diff --git a/core/@waveform/integrate.m b/core/@waveform/integrate.m old mode 100644 new mode 100755 diff --git a/core/@waveform/isempty.m b/core/@waveform/isempty.m old mode 100644 new mode 100755 diff --git a/core/@waveform/isfield.m b/core/@waveform/isfield.m old mode 100644 new mode 100755 diff --git a/core/@waveform/ismember.m b/core/@waveform/ismember.m old mode 100644 new mode 100755 diff --git a/core/@waveform/isvertical.m b/core/@waveform/isvertical.m old mode 100644 new mode 100755 diff --git a/core/@waveform/legend.m b/core/@waveform/legend.m old mode 100644 new mode 100755 diff --git a/core/@waveform/loadobj.m b/core/@waveform/loadobj.m old mode 100644 new mode 100755 diff --git a/core/@waveform/loadsac.m b/core/@waveform/loadsac.m old mode 100644 new mode 100755 diff --git a/core/@waveform/max.m b/core/@waveform/max.m old mode 100644 new mode 100755 diff --git a/core/@waveform/mean.m b/core/@waveform/mean.m old mode 100644 new mode 100755 diff --git a/core/@waveform/medfilt1.m b/core/@waveform/medfilt1.m old mode 100644 new mode 100755 diff --git a/core/@waveform/median.m b/core/@waveform/median.m old mode 100644 new mode 100755 diff --git a/core/@waveform/min.m b/core/@waveform/min.m old mode 100644 new mode 100755 diff --git a/core/@waveform/minus.m b/core/@waveform/minus.m old mode 100644 new mode 100755 diff --git a/core/@waveform/mrdivide.m b/core/@waveform/mrdivide.m old mode 100644 new mode 100755 diff --git a/core/@waveform/mtimes.m b/core/@waveform/mtimes.m old mode 100644 new mode 100755 diff --git a/core/@waveform/normalize.m b/core/@waveform/normalize.m old mode 100644 new mode 100755 diff --git a/core/@waveform/pad.m b/core/@waveform/pad.m old mode 100644 new mode 100755 diff --git a/core/@waveform/plot.m b/core/@waveform/plot.m old mode 100644 new mode 100755 diff --git a/core/@waveform/plot_helicorder.m b/core/@waveform/plot_helicorder.m old mode 100644 new mode 100755 diff --git a/core/@waveform/plot_panels.m b/core/@waveform/plot_panels.m old mode 100644 new mode 100755 diff --git a/core/@waveform/plot_spectrum.m b/core/@waveform/plot_spectrum.m old mode 100644 new mode 100755 diff --git a/core/@waveform/plus.m b/core/@waveform/plus.m old mode 100644 new mode 100755 diff --git a/core/@waveform/power.m b/core/@waveform/power.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/as_channeltag.m b/core/@waveform/private/as_channeltag.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/autoscale.m b/core/@waveform/private/autoscale.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/dep2mep.m b/core/@waveform/private/dep2mep.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/filter_by_time.m b/core/@waveform/private/filter_by_time.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/get_load_routine.m b/core/@waveform/private/get_load_routine.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/getproperty.m b/core/@waveform/private/getproperty.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/loadGlobalNamespace.m b/core/@waveform/private/loadGlobalNamespace.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_antelope.m b/core/@waveform/private/load_antelope.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_antelope_old.m b/core/@waveform/private/load_antelope_old.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_antelope_workaround.m b/core/@waveform/private/load_antelope_workaround.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_file.m b/core/@waveform/private/load_file.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_from_datasource.m b/core/@waveform/private/load_from_datasource.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_from_file.m b/core/@waveform/private/load_from_file.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_irisdmcws.m b/core/@waveform/private/load_irisdmcws.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_matfile.m b/core/@waveform/private/load_matfile.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_miniseed.m b/core/@waveform/private/load_miniseed.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_obspy.m b/core/@waveform/private/load_obspy.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_sac.m b/core/@waveform/private/load_sac.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_seisan.m b/core/@waveform/private/load_seisan.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/load_winston.m b/core/@waveform/private/load_winston.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/marktimes.m b/core/@waveform/private/marktimes.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/mep2dep.m b/core/@waveform/private/mep2dep.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/offset2time.m b/core/@waveform/private/offset2time.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/packDataRequest.m b/core/@waveform/private/packDataRequest.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/parse_xunit.m b/core/@waveform/private/parse_xunit.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/parseargs.m b/core/@waveform/private/parseargs.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/peel_option.m b/core/@waveform/private/peel_option.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/property2varargin.m b/core/@waveform/private/property2varargin.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/readsacfile.m b/core/@waveform/private/readsacfile.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/rqbn.m b/core/@waveform/private/rqbn.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/rqhd.m b/core/@waveform/private/rqhd.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/sac2waveform.m b/core/@waveform/private/sac2waveform.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/set_sacheader.m b/core/@waveform/private/set_sacheader.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/time2offset.m b/core/@waveform/private/time2offset.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/unpackDataRequest.m b/core/@waveform/private/unpackDataRequest.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/waveform2sacheader.m b/core/@waveform/private/waveform2sacheader.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/winston_access.m b/core/@waveform/private/winston_access.m old mode 100644 new mode 100755 diff --git a/core/@waveform/private/writesac.m b/core/@waveform/private/writesac.m old mode 100644 new mode 100755 diff --git a/core/@waveform/rdivide.m b/core/@waveform/rdivide.m old mode 100644 new mode 100755 diff --git a/core/@waveform/remove_calib.m b/core/@waveform/remove_calib.m old mode 100644 new mode 100755 diff --git a/core/@waveform/resample.m b/core/@waveform/resample.m old mode 100644 new mode 100755 diff --git a/core/@waveform/rms.m b/core/@waveform/rms.m old mode 100644 new mode 100755 diff --git a/core/@waveform/savesac.m b/core/@waveform/savesac.m old mode 100644 new mode 100755 diff --git a/core/@waveform/scroll.m b/core/@waveform/scroll.m old mode 100644 new mode 100755 diff --git a/core/@waveform/set.m b/core/@waveform/set.m old mode 100644 new mode 100755 diff --git a/core/@waveform/setsamples.m b/core/@waveform/setsamples.m old mode 100644 new mode 100755 diff --git a/core/@waveform/sign.m b/core/@waveform/sign.m old mode 100644 new mode 100755 diff --git a/core/@waveform/smooth.m b/core/@waveform/smooth.m old mode 100644 new mode 100755 diff --git a/core/@waveform/sortby.m b/core/@waveform/sortby.m old mode 100644 new mode 100755 diff --git a/core/@waveform/spectrogram.m b/core/@waveform/spectrogram.m old mode 100644 new mode 100755 diff --git a/core/@waveform/stack.m b/core/@waveform/stack.m old mode 100644 new mode 100755 diff --git a/core/@waveform/std.m b/core/@waveform/std.m old mode 100644 new mode 100755 diff --git a/core/@waveform/taper.m b/core/@waveform/taper.m old mode 100644 new mode 100755 diff --git a/core/@waveform/times.m b/core/@waveform/times.m old mode 100644 new mode 100755 diff --git a/core/@waveform/uminus.m b/core/@waveform/uminus.m old mode 100644 new mode 100755 diff --git a/core/@waveform/var.m b/core/@waveform/var.m old mode 100644 new mode 100755 diff --git a/core/@waveform/waveform.m b/core/@waveform/waveform.m old mode 100644 new mode 100755 diff --git a/core/@waveform/waveform2rsam.m b/core/@waveform/waveform2rsam.m old mode 100644 new mode 100755 diff --git a/core/@waveform/waveform2sound.m b/core/@waveform/waveform2sound.m old mode 100644 new mode 100755 diff --git a/core/@waveform/zero2nan.m b/core/@waveform/zero2nan.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/@antelopesource/antelopesource.m b/core/dev/+dataretrieval/@antelopesource/antelopesource.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/@antelopesource/get_antelope_traces.m b/core/dev/+dataretrieval/@antelopesource/get_antelope_traces.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/@antelopesource/load_antelope.m b/core/dev/+dataretrieval/@antelopesource/load_antelope.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/@antelopesource/segtype2units.m b/core/dev/+dataretrieval/@antelopesource/segtype2units.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/@antelopesource/traceToWaveform.m b/core/dev/+dataretrieval/@antelopesource/traceToWaveform.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/iriswebservicesource.m b/core/dev/+dataretrieval/iriswebservicesource.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/matsource.m b/core/dev/+dataretrieval/matsource.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/obspysource.m b/core/dev/+dataretrieval/obspysource.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/sacsource.m b/core/dev/+dataretrieval/sacsource.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/seisansource.m b/core/dev/+dataretrieval/seisansource.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/spatiotemporal_database.m b/core/dev/+dataretrieval/spatiotemporal_database.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/spatiotemporal_datasource.m b/core/dev/+dataretrieval/spatiotemporal_datasource.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/spatiotemporal_file.m b/core/dev/+dataretrieval/spatiotemporal_file.m old mode 100644 new mode 100755 diff --git a/core/dev/+dataretrieval/winstonsource.m b/core/dev/+dataretrieval/winstonsource.m old mode 100644 new mode 100755 diff --git a/core/dev/@ChannelDetails/ChannelDetails.m b/core/dev/@ChannelDetails/ChannelDetails.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/NewCorrelation.m b/core/dev/@NewCorrelation/NewCorrelation.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/adjusttrig.m b/core/dev/@NewCorrelation/adjusttrig.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/agc.m b/core/dev/@NewCorrelation/agc.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/align.m b/core/dev/@NewCorrelation/align.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/butter.m b/core/dev/@NewCorrelation/butter.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/cat.m b/core/dev/@NewCorrelation/cat.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/check.m b/core/dev/@NewCorrelation/check.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/cluster.m b/core/dev/@NewCorrelation/cluster.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/colormap.m b/core/dev/@NewCorrelation/colormap.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/conv.m b/core/dev/@NewCorrelation/conv.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/cookbook.m b/core/dev/@NewCorrelation/cookbook.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/corrplot.m b/core/dev/@NewCorrelation/corrplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/crop.m b/core/dev/@NewCorrelation/crop.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/deconv.m b/core/dev/@NewCorrelation/deconv.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/demean.m b/core/dev/@NewCorrelation/demean.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/dendrogramplot.m b/core/dev/@NewCorrelation/dendrogramplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/detrend.m b/core/dev/@NewCorrelation/detrend.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/diff.m b/core/dev/@NewCorrelation/diff.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/disp.m b/core/dev/@NewCorrelation/disp.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/eventplot.m b/core/dev/@NewCorrelation/eventplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/find.m b/core/dev/@NewCorrelation/find.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/get.m b/core/dev/@NewCorrelation/get.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/getclusterstat.m b/core/dev/@NewCorrelation/getclusterstat.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/getstat.m b/core/dev/@NewCorrelation/getstat.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/getval.m b/core/dev/@NewCorrelation/getval.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/hilbert.m b/core/dev/@NewCorrelation/hilbert.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/integrate.m b/core/dev/@NewCorrelation/integrate.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/interferogram.m b/core/dev/@NewCorrelation/interferogram.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/lagplot.m b/core/dev/@NewCorrelation/lagplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/linkage.m b/core/dev/@NewCorrelation/linkage.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/makesynthwaves.m b/core/dev/@NewCorrelation/makesynthwaves.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/match.m b/core/dev/@NewCorrelation/match.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/minus.m b/core/dev/@NewCorrelation/minus.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/norm.m b/core/dev/@NewCorrelation/norm.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/occurrenceplot.m b/core/dev/@NewCorrelation/occurrenceplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/overlayplot.m b/core/dev/@NewCorrelation/overlayplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/plot.m b/core/dev/@NewCorrelation/plot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/sampleplot.m b/core/dev/@NewCorrelation/sampleplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/set.m b/core/dev/@NewCorrelation/set.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/shadedplot.m b/core/dev/@NewCorrelation/shadedplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/sign.m b/core/dev/@NewCorrelation/sign.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/sort.m b/core/dev/@NewCorrelation/sort.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/stack.m b/core/dev/@NewCorrelation/stack.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/statplot.m b/core/dev/@NewCorrelation/statplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/strip.m b/core/dev/@NewCorrelation/strip.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/subset.m b/core/dev/@NewCorrelation/subset.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/taper.m b/core/dev/@NewCorrelation/taper.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/unifytracelengths.m b/core/dev/@NewCorrelation/unifytracelengths.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/waveform.m b/core/dev/@NewCorrelation/waveform.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/wiggleinterferogram.m b/core/dev/@NewCorrelation/wiggleinterferogram.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/wiggleplot.m b/core/dev/@NewCorrelation/wiggleplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/writedb.m b/core/dev/@NewCorrelation/writedb.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/xcorr.m b/core/dev/@NewCorrelation/xcorr.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/xcorr1x1.m b/core/dev/@NewCorrelation/xcorr1x1.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/xcorr1xr.m b/core/dev/@NewCorrelation/xcorr1xr.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/xcorr1xr_orig.m b/core/dev/@NewCorrelation/xcorr1xr_orig.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/xcorrdec.m b/core/dev/@NewCorrelation/xcorrdec.m old mode 100644 new mode 100755 diff --git a/core/dev/@NewCorrelation/xcorrrow.m b/core/dev/@NewCorrelation/xcorrrow.m old mode 100644 new mode 100755 diff --git a/core/dev/@SeismicTrace/SeismicTrace.m b/core/dev/@SeismicTrace/SeismicTrace.m old mode 100644 new mode 100755 diff --git a/core/dev/@SeismicTrace/disp.m b/core/dev/@SeismicTrace/disp.m old mode 100644 new mode 100755 diff --git a/core/dev/@SeismicTrace/legend.m b/core/dev/@SeismicTrace/legend.m old mode 100644 new mode 100755 diff --git a/core/dev/@SeismicTrace/linkedplot.m b/core/dev/@SeismicTrace/linkedplot.m old mode 100644 new mode 100755 diff --git a/core/dev/@SeismicTrace/plot.m b/core/dev/@SeismicTrace/plot.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceData/TraceData.m b/core/dev/@TraceData/TraceData.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceData/amplitude_spectrum.m b/core/dev/@TraceData/amplitude_spectrum.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceData/autoscale.m b/core/dev/@TraceData/autoscale.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceFilter/TraceFilter.m b/core/dev/@TraceFilter/TraceFilter.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceFilter/cookbook.m b/core/dev/@TraceFilter/cookbook.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceSpectra/TraceSpectra.m b/core/dev/@TraceSpectra/TraceSpectra.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceSpectra/cookbook.m b/core/dev/@TraceSpectra/cookbook.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceSpectra/parseSpecgramInputs.m b/core/dev/@TraceSpectra/parseSpecgramInputs.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceSpectra/specgram.m b/core/dev/@TraceSpectra/specgram.m old mode 100644 new mode 100755 diff --git a/core/dev/@TraceSpectra/specgram2.m b/core/dev/@TraceSpectra/specgram2.m old mode 100644 new mode 100755 diff --git a/deprecated/+waveform_extensions/sacload.m b/deprecated/+waveform_extensions/sacload.m old mode 100644 new mode 100755 diff --git a/deprecated/+waveform_extensions/sta_lta.m b/deprecated/+waveform_extensions/sta_lta.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/build.m b/deprecated/@helicorder/build.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/disp.m b/deprecated/@helicorder/disp.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/display.m b/deprecated/@helicorder/display.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/get.m b/deprecated/@helicorder/get.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/helicorder.m b/deprecated/@helicorder/helicorder.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/nan2sst.m b/deprecated/@helicorder/private/Event_Conversion/nan2sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/nan2wfa.m b/deprecated/@helicorder/private/Event_Conversion/nan2wfa.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/ssd2sst.m b/deprecated/@helicorder/private/Event_Conversion/ssd2sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/sst2nan.m b/deprecated/@helicorder/private/Event_Conversion/sst2nan.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/sst2ssd.m b/deprecated/@helicorder/private/Event_Conversion/sst2ssd.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/sst2val.m b/deprecated/@helicorder/private/Event_Conversion/sst2val.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/sst2wfa.m b/deprecated/@helicorder/private/Event_Conversion/sst2wfa.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/wfa2nan.m b/deprecated/@helicorder/private/Event_Conversion/wfa2nan.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/Event_Conversion/wfa2sst.m b/deprecated/@helicorder/private/Event_Conversion/wfa2sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/add_sst.m b/deprecated/@helicorder/private/SST/add_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/chk_t.m b/deprecated/@helicorder/private/SST/chk_t.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/compare_sst.m b/deprecated/@helicorder/private/SST/compare_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/delete_sst.m b/deprecated/@helicorder/private/SST/delete_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/extract_sst.m b/deprecated/@helicorder/private/SST/extract_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/is_sst.m b/deprecated/@helicorder/private/SST/is_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/istequal.m b/deprecated/@helicorder/private/SST/istequal.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/merge_sst.m b/deprecated/@helicorder/private/SST/merge_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/search_sst.m b/deprecated/@helicorder/private/SST/search_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/private/SST/sort_sst.m b/deprecated/@helicorder/private/SST/sort_sst.m old mode 100644 new mode 100755 diff --git a/deprecated/@helicorder/set.m b/deprecated/@helicorder/set.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/+wf_fft/about.m b/deprecated/fft_tools/+wf_fft/about.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/+wf_fft/compute.m b/deprecated/fft_tools/+wf_fft/compute.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/+wf_fft/freqindex.m b/deprecated/fft_tools/+wf_fft/freqindex.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/+wf_fft/plot.m b/deprecated/fft_tools/+wf_fft/plot.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/amplitude_spectrum.m b/deprecated/fft_tools/amplitude_spectrum.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/wf_fft.m b/deprecated/fft_tools/wf_fft.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/wf_fftplot.m b/deprecated/fft_tools/wf_fftplot.m old mode 100644 new mode 100755 diff --git a/deprecated/fft_tools/wf_fi.m b/deprecated/fft_tools/wf_fi.m old mode 100644 new mode 100755 diff --git a/is_testdata_setup.m b/is_testdata_setup.m old mode 100644 new mode 100755 diff --git a/libgismo/cleanup.m b/libgismo/cleanup.m old mode 100644 new mode 100755 diff --git a/libgismo/contiguous.m b/libgismo/contiguous.m old mode 100644 new mode 100755 diff --git a/libgismo/datenum2epoch.m b/libgismo/datenum2epoch.m old mode 100644 new mode 100755 diff --git a/libgismo/datenum2julday.m b/libgismo/datenum2julday.m old mode 100644 new mode 100755 diff --git a/libgismo/epoch2datenum.m b/libgismo/epoch2datenum.m old mode 100644 new mode 100755 diff --git a/libgismo/get_highest_figure_number.m b/libgismo/get_highest_figure_number.m old mode 100644 new mode 100755 diff --git a/rsam_wrapper_test.m b/rsam_wrapper_test.m old mode 100644 new mode 100755 diff --git a/startup_GISMO.m b/startup_GISMO.m old mode 100644 new mode 100755 diff --git a/tests/amplitude_spectrum_test.m b/tests/amplitude_spectrum_test.m old mode 100644 new mode 100755 diff --git a/tests/antelope2waveform_test.m b/tests/antelope2waveform_test.m old mode 100644 new mode 100755 diff --git a/tests/correlation_diagnostics.m b/tests/correlation_diagnostics.m old mode 100644 new mode 100755 diff --git a/tests/obsolete/medfilt1_test.m b/tests/obsolete/medfilt1_test.m old mode 100644 new mode 100755 diff --git a/tests/testChanneltag.m b/tests/testChanneltag.m old mode 100644 new mode 100755 diff --git a/tests/testScnlobject.m b/tests/testScnlobject.m old mode 100644 new mode 100755 diff --git a/tests/testWaveform.m b/tests/testWaveform.m old mode 100644 new mode 100755 diff --git a/tests/test_ChanDetails.m b/tests/test_ChanDetails.m old mode 100644 new mode 100755 diff --git a/tests/test_Correlation.m b/tests/test_Correlation.m old mode 100644 new mode 100755 diff --git a/tests/test_Trace.m b/tests/test_Trace.m old mode 100644 new mode 100755 diff --git a/tests/test_TraceData.m b/tests/test_TraceData.m old mode 100644 new mode 100755 diff --git a/tests/test_waveform_constructor.m b/tests/test_waveform_constructor.m old mode 100644 new mode 100755 diff --git a/tests/trloadcss_test.m b/tests/trloadcss_test.m old mode 100644 new mode 100755 diff --git a/tests/waveform_antelope_test.m b/tests/waveform_antelope_test.m old mode 100644 new mode 100755 diff --git a/tests/waveform_load_test.m b/tests/waveform_load_test.m old mode 100644 new mode 100755 diff --git a/training/gismo_examples.m b/training/gismo_examples.m old mode 100644 new mode 100755 diff --git a/training/separating_tremor_and_events.m b/training/separating_tremor_and_events.m old mode 100644 new mode 100755 diff --git a/uaf_internal/AEIC_AVO/+aeic_catalog/about.m b/uaf_internal/AEIC_AVO/+aeic_catalog/about.m old mode 100644 new mode 100755 diff --git a/uaf_internal/AEIC_AVO/+aeic_catalog/get_total.m b/uaf_internal/AEIC_AVO/+aeic_catalog/get_total.m old mode 100644 new mode 100755 diff --git a/uaf_internal/AEIC_AVO/+check/about.m b/uaf_internal/AEIC_AVO/+check/about.m old mode 100644 new mode 100755 diff --git a/uaf_internal/AEIC_AVO/+check/crossfeed.m b/uaf_internal/AEIC_AVO/+check/crossfeed.m old mode 100644 new mode 100755 diff --git a/uaf_internal/AEIC_AVO/aeic_total_catalog.m b/uaf_internal/AEIC_AVO/aeic_total_catalog.m old mode 100644 new mode 100755 diff --git a/uaf_internal/IDEAS_format/ideas2waveform.m b/uaf_internal/IDEAS_format/ideas2waveform.m old mode 100644 new mode 100755 diff --git a/uaf_internal/gismo_management/whichgismo.m b/uaf_internal/gismo_management/whichgismo.m old mode 100644 new mode 100755 diff --git a/uaf_internal/gismo_management/whichgismo_paths.m b/uaf_internal/gismo_management/whichgismo_paths.m old mode 100644 new mode 100755 From 1af8e9231ceff5852acfcfdbc4086cbc9f46b511 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Mar 2017 15:26:15 -0400 Subject: [PATCH 11/52] added options to plot panels --- applications/+iceweb/iceweb2017.m | 11 +++++------ applications/+iceweb/rsam_wrapper.m | 4 +++- core/@waveform/plot_panels.m | 20 ++++++++++++++++---- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 17bdbcf..cf5dc6a 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -62,7 +62,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products end mkdir(fileparts(wavrawmat)); disp(sprintf('Saving waveform data to %s',wavrawmat)); - save(wavrawmat); + save(wavrawmat,'w'); end debug.printfunctionstack('<'); @@ -78,8 +78,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products end % Clean the waveforms - w = fillgaps(w, 'interp'); - w = detrend(w); + w = clean(w); % % Apply calibs which should be stored within sites structure to % % waveform objects to convert from counts to real physical @@ -91,11 +90,11 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products w = pad(w, min([snum wsnum]), max([enum wenum]), 0); % Apply filter to all signals - w = iceweb.apply_filter(w); %%%%%%%%%%%%%%%% PARAMS dropped +% w = iceweb.apply_filter(w); %%%%%%%%%%%%%%%% PARAMS dropped mkdir(fileparts(wavcleanmat)); disp(sprintf('Saving waveform data to %s',wavcleanmat)); - save(wavcleanmat); + save(wavcleanmat,'w'); end %% ICEWEB PRODUCTS @@ -103,7 +102,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products % WAVEFORM PLOT if products.waveform_plot.doit close all - plot_panels(w) + plot_panels(w, 'visible', 'off') fname = fullfile('iceweb', 'plots', 'waveforms', subnetName, sprintf('%s.png',datestr(snum,30)) ); orient tall; iceweb.saveImageFile(fname, 72); % this should make directory tree too diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m index 6cf738a..ea47c24 100755 --- a/applications/+iceweb/rsam_wrapper.m +++ b/applications/+iceweb/rsam_wrapper.m @@ -73,4 +73,6 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... products.soundfiles.doit = false; % call iceweb_wrapper -iceweb.iceweb2017(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) \ No newline at end of file +iceweb.iceweb2017(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) + +disp('COMPLETED') \ No newline at end of file diff --git a/core/@waveform/plot_panels.m b/core/@waveform/plot_panels.m index a4e04c8..9b979f6 100755 --- a/core/@waveform/plot_panels.m +++ b/core/@waveform/plot_panels.m @@ -1,11 +1,15 @@ -function plot_panels(w, alignWaveforms, arrivalobj) +function plot_panels(w, varargin) %PLOT_PANELS Plot multiple waveform objects as separate linked panels % PLOT_PANELS(w, alignWaveforms) % where: % w = a vector of waveform objects % alignWaveforms is either true or false (default) % PLOT_PANELS(w) will plot each waveform is plotted against absolute time. -% PLOT_PANELS(w, true) will align the waveforms on their start times. +% PLOT_PANELS(w, 'alignWaveforms', true) will align the waveforms on their start times. +% PLOT_PANELS(w, 'arrivals', ArrivalObject) will superimpose arrival +% times on the waveforms. +% PLOT_PANELS(w, 'visible', 'off') will prevent the plot showing on the +% screen. % % Along the top of each trace are displayed 3 numbers in different colors: % blue - the mean offset of the trace @@ -22,8 +26,15 @@ function plot_panels(w, alignWaveforms, arrivalobj) return end - if ~exist('alignWaveforms', 'var') - alignWaveforms = false; + p = inputParser; + p.addParameter('alignWaveforms', false, @isnumeric); % optional name-param pairs + p.addParameter('visible', 'on', @isstr) + p.addParameter('arrivals', []) + p.parse(varargin{:}); + alignWaveforms = p.Results.alignWaveforms; + visibility = p.Results.visible; + if isa(p.Results.arrivals, 'Arrival') + arrivalobj = p.Results.arrivals; end % get the first start time and last end time @@ -39,6 +50,7 @@ function plot_panels(w, alignWaveforms, arrivalobj) nwaveforms = numel(w); previousfignum = get_highest_figure_number(); fh=figure(previousfignum+1); + set(fh,'visible',visibility); trace_height=0.87/nwaveforms; left=0.12; width=0.78; From 6ad3b658b139c97e0c61b562d1a17409d7b7177a Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Mar 2017 15:45:47 -0400 Subject: [PATCH 12/52] modified startup_GISMO as it was failing on newton --- startup_GISMO.m | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/startup_GISMO.m b/startup_GISMO.m index 0d24d20..03569ad 100755 --- a/startup_GISMO.m +++ b/startup_GISMO.m @@ -44,16 +44,31 @@ function startup_GISMO(gismopath) addpath(genpath(fullfile(gismopath,'applications'))); % ADD A PATH TO JAR FILES -javaaddpath(fullfile(gismopath,'contributed','iris_dmc_tools','IRIS-WS-2.0.15.jar')) -javaaddpath(fullfile(gismopath,'core','swarm.jar')) +f = fullfile(gismopath,'contributed','iris_dmc_tools','IRIS-WS-2.0.15.jar'); +try + javaaddpath(f); + disp(['Adding path: ', f]); +catch + disp(['Failed to add path: ', f]); +end +f = fullfile(gismopath,'core','swarm.jar'); +try + javaaddpath(f); + disp(['Adding path: ', f]); +catch + disp(['Failed to add path: ', f]); +end % ADD PATH TO GISMO LIBRARY FUNCTIONS +disp('Adding path: libgismo') addpath(fullfile(gismopath, 'libgismo')); % ADD PATH TO TESTS +disp('Adding path: tests') addpath(fullfile(gismopath, 'tests')); % ADD PATH TO COOKBOOKS +disp('Adding path: cookbooks') addpath(fullfile(gismopath, 'cookbooks')); %% From c89c5bfe785d62d25647d7524001fe092ccc3254 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Mar 2017 18:09:44 -0400 Subject: [PATCH 13/52] added rsam_wrapper cookbook --- applications/+iceweb/iceweb2017.m | 7 +- applications/+iceweb/rsam_wrapper.m | 20 +++- applications/+iceweb/waveform_wrapper.m | 2 +- cookbooks/rsam_wrapper_cookbook.m | 126 ++++++++++++++++++++++++ core/@rsam/plot.m | 20 ++-- core/@rsam/save_to_bob_file.m | 2 +- libgismo/utnow.m | 2 - rsam_wrapper_test.m | 28 ------ 8 files changed, 165 insertions(+), 42 deletions(-) create mode 100644 cookbooks/rsam_wrapper_cookbook.m delete mode 100755 rsam_wrapper_test.m diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index cf5dc6a..5e29f55 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -112,7 +112,12 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products if products.rsam.doit for measureNum = 1:numel(products.rsam.measures) measure = products.rsam.measures{measureNum}; - rsamobj = waveform2rsam(w, measure, products.rsam.samplingIntervalSeconds); + if numel(products.rsam.samplingIntervalSeconds)>1 + samplingInterval = products.rsam.samplingIntervalSeconds[measureNum]; + else + samplingInterval = products.rsam.samplingIntervalSeconds; + end + rsamobj = waveform2rsam(w, measure, products.rsam.samplingInterval); %rsamobj.plot_panels() rsamobj.save_to_bob_file(fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob')); end diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m index ea47c24..87f5667 100755 --- a/applications/+iceweb/rsam_wrapper.m +++ b/applications/+iceweb/rsam_wrapper.m @@ -9,7 +9,7 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... % compute RSAM objects from those waveform objects (using waveform2rsam) % and then save data from those RSAM objects into binary "BOB" files. % -% rsam_wrapper is actually a driver for iceweb_wrapper. iceweb_wrapper +% rsam_wrapper is actually a driver for iceweb2017. iceweb2017 % will drive other products such as spectrograms and helicorders if % asked. But rsam_wrapper asks it only to compute RSAM data. % @@ -37,12 +37,20 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... % % samplingIntervalSeconds - compute RSAM with 1 sample from this many % seconds of waveform data. Usually 60 seconds. -% See also WAVEFORM2RSAM. +% See also WAVEFORM2RSAM. If multiple measures +% are used (see below) you can give multiple +% sampling intervals, e.g. +% measures = {'mean';'max';'median'} +% samplingIntervalSeconds = [60, 10, 600] +% But if you want them all to be the same, +% you only need pass a scalar. % % measures - each RSAM sample is usually the 'mean' of each 60 second % timewindow. But other stats are probably better. For % events, 'max' works better. For tremor, 'median' works -% better. So measures could be {'max';'median'}. +% better. To compute multiple versions of RSAM using +% different stats, use a cell array, +% e.g. measures = {'max';'median'}. % % Example: % datasourceObject = datasource('antelope', '/raid/data/sakurajima/db') @@ -56,6 +64,12 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... % rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... % startTime, endTime, gulpMinutes, ... % samplingIntervalSeconds, measures) +% +% See also: iceweb.iceweb2017 +return +if ~isa(measures,'cell') + measures = {measures}; +end % set up products structure for iceweb products.waveform_plot.doit = true; diff --git a/applications/+iceweb/waveform_wrapper.m b/applications/+iceweb/waveform_wrapper.m index 170003f..687388f 100755 --- a/applications/+iceweb/waveform_wrapper.m +++ b/applications/+iceweb/waveform_wrapper.m @@ -41,7 +41,7 @@ get(chantag(c),'channel') ); chantag(c) = thischantag; else - class(chantag(c)) + class(chantag(c)); end end diff --git a/cookbooks/rsam_wrapper_cookbook.m b/cookbooks/rsam_wrapper_cookbook.m new file mode 100644 index 0000000..c9c779f --- /dev/null +++ b/cookbooks/rsam_wrapper_cookbook.m @@ -0,0 +1,126 @@ +%% How to compute RSAM data + +%% 1. Introduction +% +% Computing rsam data from waveform objects is easy to do with the +% waveform2rsam method. But waveform objects are generally no more than 1 +% hour long. So what if you want to compute RSAM data for days, weeks or +% months of waveform data? How do we set this up? +% +% This is where we use "IceWeb", an application originally written in 1998 +% to process continuous waveform data into a variety of products for +% volcano observatory web pages, to aid rapid recognition of anomalous +% activity. Since we only want RSAM data in this case, we will drive this +% using iceweb.rsam_wrapper. To get help on this, use: +%% +% +% help iceweb.rsam_wrapper +% + +%% +% RSAM data will be saved to binary "BOB" files in a directory +% "iceweb/rsam_data". So the final step in the tutorial will show how to +% load and plot these data. +% +% The following is a fully worked example using the Sakurajima +% dataset for illustration. + + +%% 2. Setup for the Sakurajima example + +%% +% Define datasource - where to get waveform data from +datasourceObject = datasource('antelope', '/raid/data/sakurajima/db'); + +%% +% We can't process more than 1 day of waveform data at a time, so we have +% to 'gulp it down' in non-overlapping timewindows of size 'gulpMinutes'. +% Experiments suggest 60 minutes is ideal, minimum 10 minutes, maximum 120 +% minutes. +gulpMinutes = 60; + +%% +% RSAM data is traditionally computed with a sampling interval of 60 sec, +% with each RSAM value being the mean absolute value of the waveform data +% in a 60 sec window starting at that time. +% But with GISMO's implementation of RSAM, we can compute multiple RSAM +% datasets from the same waveform data, using different statistical +% measures and sampling intervals. We will compute: +% 1. traditional rsam: mean absolute value of 60-sec time windows +% 2. max absolute values of 10-sec time windows - great for highlighting +% events +% 3. median absolute values of 600-sec time windows - great for +% highlighting tremor +measures = {'mean';'max';'median'}; +samplingIntervalSeconds = [60 10 600]; + +%% 3. Days with data from SAKA only: 21-23 May 2015 + +%% +% Set up the list of network/station/location/channel combinations +% +% SAKA was installed on May 20, 2015, but there are lots bad data that day +% from people walking around and moving the seismometer. So we will start +% to process SAKA from May 21. +ChannelTagList = ChannelTag.array('JP','SAKA','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}); + +%% +% Set the start and end times +startTime = datenum(2015,5,21); +endTime = datenum(2015,5,24); + +%% +% Call the rsam_wrapper +iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, ... + samplingIntervalSeconds, measures); + +%% +% Note: this may take a long time to run, e.g. 3 days of data for 6 +% channels might take about 15 minutes, depending on the speed of your +% computer and whether the data is being read across a network. + +%% 4. Days with data from SAKA and SAKB: 24 May - 7 Jun 2015 +% SAKB was installed on May 23, 2015, but there are lots bad data that day +% from people walking around and moving the seismometer. So we will add +% SAKB from May 24. +ChannelTagList = [ChannelTagList ChannelTag.array('JP','SAKB','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}) ]; +startTime = datenum(2015,5,24); +endTime = datenum(2015,6,8); +iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, ... + samplingIntervalSeconds, measures); + +%% +% Note: this may take a long time to run, e.g. 2 weeks of data for 12 +% channels might take about an hour, depending on the speed of your +% computer and whether the data is being read across a network. + +%% 5. Load RSAM data +% The RSAM data computed have been stored in binary BOB files. To load +% these we use can loop through our channels, loading one file per channel, +% creating an array of RSAM objects. +s = []; +year = 2015; +for c=1:numel(ChannelTagList) + sta = ChannelTagList(c).station(); + chan = ChannelTagList(c).channel(); + filepattern = fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob'); + r = rsam.read_bob_file(filepattern, 'sta', sta, 'chan', chan, ... + 'snum', datenum(2015,5,10), 'enum', datenum(2015,6,8), 'measure', 'median'); + s = [s r]; +end + +%% 6. Plotting RSAM data +% There are two ways to plot RSAM data. The first is to use the plot +% method, which generates one figure per channel: +plot(s); + +%% +% The second is plot_panels, which generates one subplot per channel: +plot_panels(s) + +%% +% This is the end of this tutorial. + + \ No newline at end of file diff --git a/core/@rsam/plot.m b/core/@rsam/plot.m index 2c8854c..ca94309 100755 --- a/core/@rsam/plot.m +++ b/core/@rsam/plot.m @@ -44,8 +44,13 @@ function plot(rsam_vector, varargin) % Plot the data graphs for c = 1:length(rsam_vector) self = rsam_vector(c); - thisfignum = find(ismember(unique_units, self.units)) + previousfignum; - figure(thisfignum); +% thisfignum = find(ismember(unique_units, self.units)) + previousfignum; +% figure(thisfignum); + try + figure(previousfignum + c); + catch + figure; + end hold on; t = self.dnum; @@ -64,9 +69,11 @@ function plot(rsam_vector, varargin) % plot on a linear axis, with station name as a y label % datetick too, add measure as title, fiddle with the YTick's and add max(y) in top left corner if ~p.Results.fillbelow - handlePlot = plot(t, y, symbol, 'Color', lineColour{c}); + %handlePlot = plot(t, y, symbol, 'Color', lineColour{c}); + handlePlot = plot(t, y, symbol, 'Color', lineColour{1}); else - handlePlot = fill([min(t) t max(t)], [min([y 0]) y min([y 0])], lineColour{c}); + %handlePlot = fill([min(t) t max(t)], [min([y 0]) y min([y 0])], lineColour{c}); + handlePlot = fill([min(t) t max(t)], [min([y 0]) y min([y 0])], lineColour{1}); end % if c ~= numel(rsam_vector) @@ -97,9 +104,10 @@ function plot(rsam_vector, varargin) % make a logarithmic plot, with a marker size and add the station name below the x-axis like a legend y = log10(y); % use log plots - handlePlot = plot(t, y, symbol, 'Color', lineColour{c},... + % handlePlot = plot(t, y, symbol, 'Color', lineColour{c},... + % 'MarkerSize', 1.0); + handlePlot = plot(t, y, symbol, 'Color', lineColour{1},... 'MarkerSize', 1.0); - if strfind(self.measure, 'dr') %ylabel(sprintf('%s (cm^2)',self(c).measure)); %ylabel(sprintf('D_R (cm^2)',self(c).measure)); diff --git a/core/@rsam/save_to_bob_file.m b/core/@rsam/save_to_bob_file.m index 13bf8b5..fd28c16 100755 --- a/core/@rsam/save_to_bob_file.m +++ b/core/@rsam/save_to_bob_file.m @@ -54,7 +54,7 @@ function save_to_bob_file(self, filepattern) SECONDS_PER_DAY = 60 * 60 * 24; for yyyy=syyy:eyyy - self(c).sampling_interval + SAMPLES_PER_DAY = SECONDS_PER_DAY / self(c).sampling_interval; % how many days in this year? diff --git a/libgismo/utnow.m b/libgismo/utnow.m index 8fb98d9..f5a07bc 100755 --- a/libgismo/utnow.m +++ b/libgismo/utnow.m @@ -21,8 +21,6 @@ unixnow = datenum(unixnowstr); hour_adjust = round(24 * (unixnow - atomtime)); end - - hour_adjust if isunix [status, unixnowstr] = system('date +"%Y-%m-%d %H:%M:%S"'); diff --git a/rsam_wrapper_test.m b/rsam_wrapper_test.m deleted file mode 100755 index 367d0cf..0000000 --- a/rsam_wrapper_test.m +++ /dev/null @@ -1,28 +0,0 @@ -datasourceObject = datasource('antelope', '/home/t/thompsong/Cassandra/sak/dbSAK') -gulpMinutes = 60; -samplingIntervalSeconds = 10; -measures = {'mean';'max';'median'}; - -%% Days with data from SAKA only -ChannelTagList = ChannelTag.array('JP','SAKA','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}); -startTime = datenum(2015,5,21); -endTime = datenum(2015,5,24); -iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... - startTime, endTime, gulpMinutes, ... - samplingIntervalSeconds, measures); - -%% Days with data from SAKA and SAKB -ChannelTagList = [ChannelTagList ChannelTag.array('JP','SAKB','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}) ]; -startTime = datenum(2015,5,24); -endTime = datenum(2015,6,8); -iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... - startTime, endTime, gulpMinutes, ... - samplingIntervalSeconds, measures); - -%% Days with data from SAKC too -%ChannelTagList = [ChannelTagList ChannelTag.array('JP','SAKC','',{'BD1';'HHE';'HHN';'HHZ'}) ]; -% startTime = datenum(2015,5,24); -% endTime = datenum(2015,6,8); -% iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... -% startTime, endTime, gulpMinutes, ... -% samplingIntervalSeconds, measures); \ No newline at end of file From f4437c2341ae718166da4868f7df0bfb29720cf7 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Mar 2017 19:37:30 -0400 Subject: [PATCH 14/52] added back in state monitoring for iceweb2017 --- applications/+iceweb/iceweb2017.m | 46 +++++++++++++---------------- applications/+iceweb/rsam_wrapper.m | 2 +- core/@waveform/clean.m | 3 ++ 3 files changed, 24 insertions(+), 27 deletions(-) diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 5e29f55..37fa662 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -30,19 +30,19 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products MILLISECOND_IN_DAYS = (1 / 86400000); enum = enum - MILLISECOND_IN_DAYS; % try to skip last sample -% % load state -% statefile = sprintf('iceweb_%s_state.mat',subnetName); -% if exist(statefile, 'file') -% load(statefile) -% if snum < snum0 -% return -% end -% end -% -% % save state -% ds0=ds; ChannelTagList0=ChannelTagList; snum0=snum; enum0=enum; subnetName0 = subnetName; -% save(statefile, 'ds0', 'ChannelTagList0', 'snum0', 'enum0', 'subnetName0'); -% clear ds0 ChannelTagList0 snum0 enum0 subnetName0 + % load state + statefile = sprintf('iceweb_%s_state.mat',subnetName); + if exist(statefile, 'file') + load(statefile) + if snum < snum0 + return + end + end + + % save state + ds0=ds; ChannelTagList0=ChannelTagList; snum0=snum; enum0=enum; subnetName0 = subnetName; + save(statefile, 'ds0', 'ChannelTagList0', 'snum0', 'enum0', 'subnetName0'); + clear ds0 ChannelTagList0 snum0 enum0 subnetName0 %% Save raw waveform data to MAT file jjj = datenum2julday(snum); @@ -80,18 +80,10 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products % Clean the waveforms w = clean(w); -% % Apply calibs which should be stored within sites structure to -% % waveform objects to convert from counts to real physical -% % units -% w = iceweb.apply_calib(w, sites); - % Pad all waveforms to same start/end [wsnum wenum] = gettimerange(w); % assume gaps already filled, signal w = pad(w, min([snum wsnum]), max([enum wenum]), 0); - % Apply filter to all signals -% w = iceweb.apply_filter(w); %%%%%%%%%%%%%%%% PARAMS dropped - mkdir(fileparts(wavcleanmat)); disp(sprintf('Saving waveform data to %s',wavcleanmat)); save(wavcleanmat,'w'); @@ -101,11 +93,13 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products % WAVEFORM PLOT if products.waveform_plot.doit - close all - plot_panels(w, 'visible', 'off') fname = fullfile('iceweb', 'plots', 'waveforms', subnetName, sprintf('%s.png',datestr(snum,30)) ); - orient tall; - iceweb.saveImageFile(fname, 72); % this should make directory tree too + if ~exist(fname,'file') + close all + plot_panels(w, 'visible', 'off') + orient tall; + iceweb.saveImageFile(fname, 72); % this should make directory tree too + end end % RSAM @@ -117,7 +111,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products else samplingInterval = products.rsam.samplingIntervalSeconds; end - rsamobj = waveform2rsam(w, measure, products.rsam.samplingInterval); + rsamobj = waveform2rsam(w, measure, samplingInterval); %rsamobj.plot_panels() rsamobj.save_to_bob_file(fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob')); end diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m index 87f5667..5d2c11d 100755 --- a/applications/+iceweb/rsam_wrapper.m +++ b/applications/+iceweb/rsam_wrapper.m @@ -66,7 +66,7 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... % samplingIntervalSeconds, measures) % % See also: iceweb.iceweb2017 -return + if ~isa(measures,'cell') measures = {measures}; end diff --git a/core/@waveform/clean.m b/core/@waveform/clean.m index 4ce3ad7..1d329ec 100755 --- a/core/@waveform/clean.m +++ b/core/@waveform/clean.m @@ -12,6 +12,9 @@ for c=1:numel(w) if ~isempty(w(c)) + + % remove spikes of length 1 + w(c) = medfilt1(w(c), 3); % smart detrend w(c) = detrend(w(c)); From 2944f128e6f194356ba2b23fcb988a035142f37e Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Wed, 29 Mar 2017 20:18:55 -0400 Subject: [PATCH 15/52] completed sakurajima workflows for events and rsam --- applications/+iceweb/iceweb2017.m | 2 +- cookbooks/rsam_wrapper_cookbook.m | 2 +- core/@Arrival/addwaveforms.m | 9 ++- core/@Arrival/associate.m | 92 ++++----------------------- core/@Catalog/addwaveforms.m | 15 +++-- core/@Catalog/list_waveform_metrics.m | 2 +- core/@waveform/addmetrics.m | 6 +- core/@waveform/plot_panels.m | 2 +- 8 files changed, 39 insertions(+), 91 deletions(-) diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 37fa662..9baaa1a 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -107,7 +107,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products for measureNum = 1:numel(products.rsam.measures) measure = products.rsam.measures{measureNum}; if numel(products.rsam.samplingIntervalSeconds)>1 - samplingInterval = products.rsam.samplingIntervalSeconds[measureNum]; + samplingInterval = products.rsam.samplingIntervalSeconds(measureNum); else samplingInterval = products.rsam.samplingIntervalSeconds; end diff --git a/cookbooks/rsam_wrapper_cookbook.m b/cookbooks/rsam_wrapper_cookbook.m index c9c779f..f0065e6 100644 --- a/cookbooks/rsam_wrapper_cookbook.m +++ b/cookbooks/rsam_wrapper_cookbook.m @@ -107,7 +107,7 @@ chan = ChannelTagList(c).channel(); filepattern = fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob'); r = rsam.read_bob_file(filepattern, 'sta', sta, 'chan', chan, ... - 'snum', datenum(2015,5,10), 'enum', datenum(2015,6,8), 'measure', 'median'); + 'snum', datenum(2015,5,28), 'enum', datenum(2015,6,8), 'measure', 'median'); s = [s r]; end diff --git a/core/@Arrival/addwaveforms.m b/core/@Arrival/addwaveforms.m index 275458e..8e0dd5e 100755 --- a/core/@Arrival/addwaveforms.m +++ b/core/@Arrival/addwaveforms.m @@ -15,10 +15,12 @@ % posttrigsecs = 5; % arrivalobj = arrivalobj.addwaveforms(ds, pretrigsecs, posttrigsecs) % - disp('Adding waveforms to arrival object'); + Na = numel(arrivalobj.time); + disp(sprintf('Adding waveforms to all %d arrivals in Arrival object',Na)); w = []; numsuccess=0; - for c=1:numel(arrivalobj.time) + + for c=1:Na ctag = ChannelTag(arrivalobj.channelinfo(c)); snum = arrivalobj.time(c) - pretrigsecs/86400; enum = arrivalobj.time(c) + posttrigsecs/86400; @@ -30,6 +32,9 @@ w = [w waveform()]; fprintf('x'); end + if mod(c,30) == 0 + fprintf('\nDone %d out of %d\n',c, Na); + end end arrivalobj.waveforms = w'; fprintf('\n(added %d of %d waveforms successfully)\n', numsuccess, numel(arrivalobj.time)); diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m index 0fc4692..217c802 100755 --- a/core/@Arrival/associate.m +++ b/core/@Arrival/associate.m @@ -24,44 +24,6 @@ % arrivalobj = arrivalobj.subset('iphase', 'N'); % catalogobj = arrivalobj.associate(0.1); -%% Associate events - -% eventOn = false; -% firstchaninfo = ''; -% firsttime = 0; -% lasttime = 0; -% eventNumber = 0; -% -% for c=2:numel(arrivals.time) -% if arrivals.time(c-1) + maxTimeDiff/86400 > arrivals.time(c) -% if ~eventOn % start new event -% eventOn = true; -% %eventNumber = eventNumber + 1; -% %infrasoundEvent(eventNumber).FirstArrivalTime = arrivals.time(c-1); -% firsttime = arrivals.time(c-1); -% lasttime = 0; -% firstchaninfo = arrivals.channelinfo(c-1); -% else % event already in progress -% end -% if ~strcmp(firstchaninfo, arrivals.channelinfo(c)) -% %infrasoundEvent(eventNumber).LastArrivalTime = arrivals.time(c); -% lasttime = arrivals.time(c); -% end -% else -% if eventOn % write out event -% eventOn = false; -% if (firsttime>0 && lasttime > 0) -% eventNumber = eventNumber + 1; -% infrasoundEvent(eventNumber).FirstArrivalTime = firsttime; -% infrasoundEvent(eventNumber).LastArrivalTime = lasttime; -% end -% firstchaninfo = ''; -% firsttime = 0; -% lasttime = 0; -% end -% end -% end -% catalogobj = Catalog([infrasoundEvent.FirstArrivalTime], [], [], [], [], {}, {}, 'ontime', [infrasoundEvent.FirstArrivalTime], 'offtime', [infrasoundEvent.LastArrivalTime]); % First we begin with each arrival and find how many arrivals occur in the % maxTimeDiff seconds that follow. This way each arrival is assigned a @@ -78,9 +40,7 @@ % like 6 5 4 3 2 1 with 6 0 0 0 0 0 numarrivals = [numarrivals(1) diff(numarrivals)+1]; numarrivals(numarrivals<=1)=0; -% if numarrivals(1)==1 -% numarrivals(1)=0; -% end + % Now loop over numarrivals and create events fprintf('Making events') @@ -89,53 +49,25 @@ if numarrivals(c) fprintf('.') eventnum = eventnum + 1; -% firstArrivalTime(eventnum) = min(arrtimes(associated_indices{c})); -% lastArrivalTime(eventnum) = max(arrtimes(associated_indices{c})); -% arrivalobj2{eventnum} = arrivalobj.subset(associated_indices{c}); firstArrivalTime(eventnum) = arrtimes(c); lastArrivalTime(eventnum) = arrtimes(c + numarrivals(c) - 1); - + try - arrivalobj2{eventnum} = arrivalobj.subset([c : c + numarrivals(c) - 1]); + arrivalobj2{eventnum} = arrivalobj.subset([c : c + numarrivals(c) - 1]); catch - numarrivals(c) - c+numarrivals(c)-1 - numel(numarrivals) - rethrow(); + numarrivals(c) + c+numarrivals(c)-1 + numel(numarrivals) + rethrow(); end -% figure -% plot(arrivalobj2{eventnum}.time,1,'*');datetick('x') + + + end + if mod(c,30) == 0 + fprintf('\nProcessed %d out of %d\n',c, numel(numarrivals)); end end -% % Now find max number of arrivals -% m = max(numarrivals); -% if m<2 -% return % no associated events -% end -% -% % Loop from m down to 2 (2 means time window contained the arrival time we -% % will looking at + 1 other) -% event_found = zeros(numel(arrtimes),1); -% for na = m:-1:2 -% indices = find(numarrivals==na); % so for example find all arrival times that have 5 arrivals in the time window -% event_found(indices) = true; % flag an event at this index -% for this_index = indices -% numarrivals(associated_indices{this_index}) = 0; % for all arrivals associated to the new event, set the number of associated arrivals for each of those to 0. this will prevent tyhe situation where the same time window is flagged multiple times -% end -% numarrivals -% end -% event_found -% % Now loop over event_found and create events -% eventnum = 0; -% for c=1:numel(event_found) -% if event_found(c) -% eventnum = eventnum + 1; -% firstArrivalTime(eventnum) = min(arrtimes(associated_indices{c})); -% lastArrivalTime(eventnum) = max(arrtimes(associated_indices{c})); -% arrivalobj2{eventnum} = arrivalobj.subset(associated_indices{c}); -% end -% end fprintf('\nCreating Catalog\n') catalogobj = Catalog(firstArrivalTime, [], [], [], [], {}, {}, 'ontime', firstArrivalTime, 'offtime', lastArrivalTime); catalogobj.arrivals = arrivalobj2; diff --git a/core/@Catalog/addwaveforms.m b/core/@Catalog/addwaveforms.m index 45f611f..308de57 100755 --- a/core/@Catalog/addwaveforms.m +++ b/core/@Catalog/addwaveforms.m @@ -10,23 +10,30 @@ % datasource, ChannelTag.array. Each event is defined by its ontime and % offtime, which are recorded in cobj. % - disp('Adding waveforms for each event in Catalog') + disp(sprintf('Adding waveforms for each of %d events in Catalog',cobj.numberOfEvents)) w_events = {}; switch nargin case 2 if isa(varargin{1},'waveform') w_temp = extract(varargin{1}, 'time', cobj.ontime, cobj.offtime); - for count = 1:length(cobj.ontime) + for count = 1:cobj.numberOfEvents fprintf('.'); w_events{count} = w_temp(:,count); + if mod(count,30) == 0 + fprintf('\nDone %d out of %d\n',count, cobj.numberOfEvents); + end end end case 5 if isa(varargin{1},'datasource') - for count = 1:length(cobj.ontime) + for count = 1:cobj.numberOfEvents fprintf('.'); - w_events{count} = waveform(varargin{1}, varargin{2}, cobj.ontime(count)-varargin{3}/86400, cobj.offtime(count)+varargin{4}/86400); + thisw = waveform(varargin{1}, varargin{2}, cobj.ontime(count)-varargin{3}/86400, cobj.offtime(count)+varargin{4}/86400); + w_events{count} = thisw; + if mod(count,30) == 0 + fprintf('\nDone %d out of %d\n',count, cobj.numberOfEvents); + end end end otherwise diff --git a/core/@Catalog/list_waveform_metrics.m b/core/@Catalog/list_waveform_metrics.m index c0b55fa..b0b5f8c 100755 --- a/core/@Catalog/list_waveform_metrics.m +++ b/core/@Catalog/list_waveform_metrics.m @@ -43,7 +43,7 @@ function list_waveform_metrics(cobj) % now go through different metrics of interest, and list for each % event for each channel for eventnum=1:numevents - fprintf('%2d:', eventnum); + fprintf('%5d:', eventnum); w = wcell{eventnum}; wctags = get(w,'ChannelTag'); a = []; diff --git a/core/@waveform/addmetrics.m b/core/@waveform/addmetrics.m index 2e83182..b4ced7b 100755 --- a/core/@waveform/addmetrics.m +++ b/core/@waveform/addmetrics.m @@ -84,9 +84,13 @@ metrics.units = u; thisW = addfield(thisW, 'metrics', metrics); w(wavnum) = thisW; + + if mod(wavnum,30) == 0 + fprintf('\nDone %d out of %d\n',wavnum, Nw); + end end - fprintf('\n(Complete)\n'); + %fprintf('\n(Complete)\n'); end diff --git a/core/@waveform/plot_panels.m b/core/@waveform/plot_panels.m index 9b979f6..cd41cc4 100755 --- a/core/@waveform/plot_panels.m +++ b/core/@waveform/plot_panels.m @@ -1,6 +1,6 @@ function plot_panels(w, varargin) %PLOT_PANELS Plot multiple waveform objects as separate linked panels -% PLOT_PANELS(w, alignWaveforms) +% PLOT_PANELS(w, varargin) % where: % w = a vector of waveform objects % alignWaveforms is either true or false (default) From 613997b1f352eb088d8658aab13722cefeccd3a2 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Thu, 30 Mar 2017 14:22:13 -0400 Subject: [PATCH 16/52] update rsam and sakurajima cookbookx --- applications/+iceweb/iceweb2017.m | 29 +++--- cookbooks/rsam_wrapper_cookbook.m | 85 ++++++++--------- cookbooks/sakurajima_iceweb_cookbook.m | 126 +++++++++++++++++++++++++ core/@rsam/plot_panels.m | 39 +++++++- core/@rsam/save_to_bob_file.m | 6 +- core/@waveform/private/load_antelope.m | 2 +- 6 files changed, 227 insertions(+), 60 deletions(-) create mode 100644 cookbooks/sakurajima_iceweb_cookbook.m diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 9baaa1a..06c7c07 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -18,6 +18,11 @@ function iceweb2017(subnetName, ds, ChannelTagList, ... % loop over timewindows for count = 1:length(timewindows.start) + hh = datestr(timewindows.start(count),'HH'); + if strcmp(hh,'00') || count==1 + fprintf('\n%s ',datestr(timewindows.start(count),26)); + end + fprintf('%s ',hh); process_timewindow(subnetName, ChannelTagList, timewindows.start(count), timewindows.stop(count), ds, products); end debug.printfunctionstack('<'); @@ -49,15 +54,17 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products wavrawmat = fullfile('iceweb', 'waveforms_raw', subnetName, datestr(snum,'yyyy-mm-dd'), datestr(snum,30)); if ~exist(wavrawmat,'file') %% Get waveform data - debug.print_debug(0, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnetName , datestr(snum), datestr(enum))); - %w = waveform(ds, ChannelTagList, snum, enum); - w = iceweb.waveform_wrapper(ds, ChannelTagList, snum, enum); % returns 1 waveform per channeltag, in same order + debug.print_debug(1, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnetName , datestr(snum), datestr(enum))); + w = waveform(ds, ChannelTagList, snum, enum); + %w = iceweb.waveform_wrapper(ds, ChannelTagList, snum, enum); % returns 1 waveform per channeltag, in same order if isempty(w) - ds - ChannelTagList - datestr(snum) - datestr(enum) - debug.printfunctionstack('<'); + if debug.get_debug() > 0 + ds + ChannelTagList + datestr(snum) + datestr(enum) + end + debug.printfunctionstack('<'); return end mkdir(fileparts(wavrawmat)); @@ -73,7 +80,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products % Eliminate empty waveform objects w = iceweb.waveform_remove_empty(w); if numel(w)==0 - debug.print_debug(0, 'No waveform data returned - skipping'); + debug.print_debug(1, 'No waveform data returned - skipping'); return end @@ -85,7 +92,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products w = pad(w, min([snum wsnum]), max([enum wenum]), 0); mkdir(fileparts(wavcleanmat)); - disp(sprintf('Saving waveform data to %s',wavcleanmat)); + debug.print_debug(1,sprintf('Saving waveform data to %s',wavcleanmat)); save(wavcleanmat,'w'); end @@ -135,7 +142,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products if iceweb.saveImageFile(spectrogramFilename, 72) fileinfo = dir(spectrogramFilename); % getting a weird Index exceeds matrix dimensions error here. - debug.print_debug(0, sprintf('%s %s: spectrogram PNG size is %d',mfilename, datestr(utnow), fileinfo.bytes)); + debug.print_debug(1, sprintf('%s %s: spectrogram PNG size is %d',mfilename, datestr(utnow), fileinfo.bytes)); % % make thumbnails % makespectrogramthumbnails(spectrogramFilename, spectrogramFraction); diff --git a/cookbooks/rsam_wrapper_cookbook.m b/cookbooks/rsam_wrapper_cookbook.m index f0065e6..7481312 100644 --- a/cookbooks/rsam_wrapper_cookbook.m +++ b/cookbooks/rsam_wrapper_cookbook.m @@ -26,11 +26,21 @@ % dataset for illustration. -%% 2. Setup for the Sakurajima example +%% 2. Setup for the Redoubt 2009 example %% % Define datasource - where to get waveform data from -datasourceObject = datasource('antelope', '/raid/data/sakurajima/db'); +dbpath = fullfile(TESTDATA, 'css3.0', 'demodb') +datasourceObject = datasource('antelope', dbpath) + +%% +% Define the list of channels to get waveform data for +ChannelTagList = ChannelTag.array('AV',{'REF';'RSO'},'','EHZ') + +%% +% Set the start and end times +startTime = datenum(2009,3,20,2,0,0) +endTime = datenum(2009,3,23,12,0,0) %% % We can't process more than 1 day of waveform data at a time, so we have @@ -54,64 +64,51 @@ measures = {'mean';'max';'median'}; samplingIntervalSeconds = [60 10 600]; -%% 3. Days with data from SAKA only: 21-23 May 2015 - -%% -% Set up the list of network/station/location/channel combinations -% -% SAKA was installed on May 20, 2015, but there are lots bad data that day -% from people walking around and moving the seismometer. So we will start -% to process SAKA from May 21. -ChannelTagList = ChannelTag.array('JP','SAKA','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}); - -%% -% Set the start and end times -startTime = datenum(2015,5,21); -endTime = datenum(2015,5,24); -%% -% Call the rsam_wrapper -iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... +%% 3. Call the rsam_wrapper +iceweb.rsam_wrapper('Redoubt', datasourceObject, ChannelTagList, ... startTime, endTime, gulpMinutes, ... samplingIntervalSeconds, measures); - -%% -% Note: this may take a long time to run, e.g. 3 days of data for 6 -% channels might take about 15 minutes, depending on the speed of your -% computer and whether the data is being read across a network. - -%% 4. Days with data from SAKA and SAKB: 24 May - 7 Jun 2015 -% SAKB was installed on May 23, 2015, but there are lots bad data that day -% from people walking around and moving the seismometer. So we will add -% SAKB from May 24. -ChannelTagList = [ChannelTagList ChannelTag.array('JP','SAKB','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}) ]; -startTime = datenum(2015,5,24); -endTime = datenum(2015,6,8); -iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... - startTime, endTime, gulpMinutes, ... - samplingIntervalSeconds, measures); - + %% -% Note: this may take a long time to run, e.g. 2 weeks of data for 12 -% channels might take about an hour, depending on the speed of your -% computer and whether the data is being read across a network. +% Note: this may take a long time to run, e.g. 1 week of data for 1 +% channel might take about 10 minutes on a desktop computer, reading data +% from a network-mounted drive. -%% 5. Load RSAM data +%% 4. Load RSAM data % The RSAM data computed have been stored in binary BOB files. To load % these we use can loop through our channels, loading one file per channel, % creating an array of RSAM objects. +% +% Loading a single RSAM file is trivial. Here is the path to one of our +% files that iceweb.rsam_wrapper just created: +rsamfile = fullfile('iceweb', 'rsam_data', 'REF.EHZ.2009.mean.bob') + +%% +% To load this we use the 'read_bob_file' method: +s = rsam.read_bob_file(rsamfile) + +%% +% But in a more general way, we can load multiple RSAM files using a +% filepattern. In a filepattern SSSS is a placeholder for station, CCC is a +% placeholder for channel, YYYY for year, and MMMM for measure. IceWeb +% creates RSAM files using the 'SSSS.CCC.YYYY.MMMM.bob' filepattern. +% +% If you don't want to load all data from all the files matching that +% pattern, you can also specify an optional start time (snum) and end time +% (enum). s = []; -year = 2015; for c=1:numel(ChannelTagList) sta = ChannelTagList(c).station(); chan = ChannelTagList(c).channel(); - filepattern = fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob'); + filepattern = fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob') r = rsam.read_bob_file(filepattern, 'sta', sta, 'chan', chan, ... - 'snum', datenum(2015,5,28), 'enum', datenum(2015,6,8), 'measure', 'median'); + 'snum', startTime, 'enum', endTime, 'measure', 'mean'); s = [s r]; end +s -%% 6. Plotting RSAM data +%% 5. Plotting RSAM data % There are two ways to plot RSAM data. The first is to use the plot % method, which generates one figure per channel: plot(s); diff --git a/cookbooks/sakurajima_iceweb_cookbook.m b/cookbooks/sakurajima_iceweb_cookbook.m new file mode 100644 index 0000000..f0065e6 --- /dev/null +++ b/cookbooks/sakurajima_iceweb_cookbook.m @@ -0,0 +1,126 @@ +%% How to compute RSAM data + +%% 1. Introduction +% +% Computing rsam data from waveform objects is easy to do with the +% waveform2rsam method. But waveform objects are generally no more than 1 +% hour long. So what if you want to compute RSAM data for days, weeks or +% months of waveform data? How do we set this up? +% +% This is where we use "IceWeb", an application originally written in 1998 +% to process continuous waveform data into a variety of products for +% volcano observatory web pages, to aid rapid recognition of anomalous +% activity. Since we only want RSAM data in this case, we will drive this +% using iceweb.rsam_wrapper. To get help on this, use: +%% +% +% help iceweb.rsam_wrapper +% + +%% +% RSAM data will be saved to binary "BOB" files in a directory +% "iceweb/rsam_data". So the final step in the tutorial will show how to +% load and plot these data. +% +% The following is a fully worked example using the Sakurajima +% dataset for illustration. + + +%% 2. Setup for the Sakurajima example + +%% +% Define datasource - where to get waveform data from +datasourceObject = datasource('antelope', '/raid/data/sakurajima/db'); + +%% +% We can't process more than 1 day of waveform data at a time, so we have +% to 'gulp it down' in non-overlapping timewindows of size 'gulpMinutes'. +% Experiments suggest 60 minutes is ideal, minimum 10 minutes, maximum 120 +% minutes. +gulpMinutes = 60; + +%% +% RSAM data is traditionally computed with a sampling interval of 60 sec, +% with each RSAM value being the mean absolute value of the waveform data +% in a 60 sec window starting at that time. +% But with GISMO's implementation of RSAM, we can compute multiple RSAM +% datasets from the same waveform data, using different statistical +% measures and sampling intervals. We will compute: +% 1. traditional rsam: mean absolute value of 60-sec time windows +% 2. max absolute values of 10-sec time windows - great for highlighting +% events +% 3. median absolute values of 600-sec time windows - great for +% highlighting tremor +measures = {'mean';'max';'median'}; +samplingIntervalSeconds = [60 10 600]; + +%% 3. Days with data from SAKA only: 21-23 May 2015 + +%% +% Set up the list of network/station/location/channel combinations +% +% SAKA was installed on May 20, 2015, but there are lots bad data that day +% from people walking around and moving the seismometer. So we will start +% to process SAKA from May 21. +ChannelTagList = ChannelTag.array('JP','SAKA','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}); + +%% +% Set the start and end times +startTime = datenum(2015,5,21); +endTime = datenum(2015,5,24); + +%% +% Call the rsam_wrapper +iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, ... + samplingIntervalSeconds, measures); + +%% +% Note: this may take a long time to run, e.g. 3 days of data for 6 +% channels might take about 15 minutes, depending on the speed of your +% computer and whether the data is being read across a network. + +%% 4. Days with data from SAKA and SAKB: 24 May - 7 Jun 2015 +% SAKB was installed on May 23, 2015, but there are lots bad data that day +% from people walking around and moving the seismometer. So we will add +% SAKB from May 24. +ChannelTagList = [ChannelTagList ChannelTag.array('JP','SAKB','',{'BD1';'BD2';'BD3';'HHE';'HHN';'HHZ'}) ]; +startTime = datenum(2015,5,24); +endTime = datenum(2015,6,8); +iceweb.rsam_wrapper('Sakurajima', datasourceObject, ChannelTagList, ... + startTime, endTime, gulpMinutes, ... + samplingIntervalSeconds, measures); + +%% +% Note: this may take a long time to run, e.g. 2 weeks of data for 12 +% channels might take about an hour, depending on the speed of your +% computer and whether the data is being read across a network. + +%% 5. Load RSAM data +% The RSAM data computed have been stored in binary BOB files. To load +% these we use can loop through our channels, loading one file per channel, +% creating an array of RSAM objects. +s = []; +year = 2015; +for c=1:numel(ChannelTagList) + sta = ChannelTagList(c).station(); + chan = ChannelTagList(c).channel(); + filepattern = fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob'); + r = rsam.read_bob_file(filepattern, 'sta', sta, 'chan', chan, ... + 'snum', datenum(2015,5,28), 'enum', datenum(2015,6,8), 'measure', 'median'); + s = [s r]; +end + +%% 6. Plotting RSAM data +% There are two ways to plot RSAM data. The first is to use the plot +% method, which generates one figure per channel: +plot(s); + +%% +% The second is plot_panels, which generates one subplot per channel: +plot_panels(s) + +%% +% This is the end of this tutorial. + + \ No newline at end of file diff --git a/core/@rsam/plot_panels.m b/core/@rsam/plot_panels.m index a083bf4..797a282 100755 --- a/core/@rsam/plot_panels.m +++ b/core/@rsam/plot_panels.m @@ -16,6 +16,43 @@ % % GTHO 2009/10/26 Changed legend position to -0.2 w = rsam2waveform(rsam_vector); - plot_panels(w) + plot_panels(w); + + % xticks currently in seconds + xticks=get(gca,'XTick'); + xlims = get(gca,'XLim'); + hfc = get(gcf,'Children'); + if xlims(2) >= 60 * 10 && xlims(2) < 60 * 100 + % change to minutes + xticks = 0:60:xlims(2); + divisor = 60; + xlabel('Time (minutes)'); + end + if xlims(2) >= 60 * 100 && xlims(2) < 60 * 60 * 100 + % change to hours + xticks = 0:60*15:xlims(2); %15 minute intervals + divisor = 3600; + xlabel('Time (hours)'); + end + if xlims(2) >= 60 * 60 * 100 && xlims(2) < 60 * 60 * 24 * 100 + % change to days + xticks = 0:60*60*6:xlims(2); %6 hour intervals + divisor = 3600 * 24; + xlabel('Time (days)'); + end + if xlims(2) >= 60 * 60 * 24 * 100 + % change to weeks + xticks = 0:60*60*24*3.5:xlims(2); %0.5 week intervals + divisor = 3600 * 24 * 7; + xlabel('Time (weeks)'); + end + r = stepsize(xticks); + xticks = xticks(1:r:end); + xticklabels = xticks/divisor; + set(hfc(2:end),'XTick',xticks,'XTickLabels',xticklabels); end + +function r=stepsize(xticks) + r = ceil(numel(xticks)/14); +end diff --git a/core/@rsam/save_to_bob_file.m b/core/@rsam/save_to_bob_file.m index fd28c16..24e269a 100755 --- a/core/@rsam/save_to_bob_file.m +++ b/core/@rsam/save_to_bob_file.m @@ -29,12 +29,12 @@ function save_to_bob_file(self, filepattern) % should write data based on dnum only if length(dnum)~=length(data) - debug.print_debug(0,sprintf('%s: Cannot save to %s because data and time vectors are different lengths',mfilename,filename)); + debug.print_debug(1,sprintf('%s: Cannot save to %s because data and time vectors are different lengths',mfilename,filename)); return; end if length(data)<1 - debug.print_debug(0,'No data. Aborting'); + debug.print_debug(1,'No data. Aborting'); return; end @@ -85,7 +85,7 @@ function save_to_bob_file(self, filepattern) diff=dnumy(2:end) - dnumy(1:end-1); i = find(diff > 1.5/SAMPLES_PER_DAY | diff < 0.5/SAMPLES_PER_DAY); - disp(sprintf('Saving to %s',fname)); + debug.print_debug(1,sprintf('Saving to %s',fname))); if length(i)>0 % slow mode diff --git a/core/@waveform/private/load_antelope.m b/core/@waveform/private/load_antelope.m index 4224f3f..7ae6b1a 100755 --- a/core/@waveform/private/load_antelope.m +++ b/core/@waveform/private/load_antelope.m @@ -454,7 +454,7 @@ end end else - debug.print_debug(0, 'Time subset failed to find any matching records in wfdisc table') + debug.print_debug(1, 'Time subset failed to find any matching records in wfdisc table') w0=waveform(); end w = combine(w0); From b81231eaace1fb8770755ed374ae857e67ce5ec9 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 31 Mar 2017 14:31:52 -0400 Subject: [PATCH 17/52] added iceweb_wrapper_cookbook --- applications/+iceweb/iceweb2017.m | 118 ++++++++++++++++-- applications/+iceweb/iceweb_wrapper.m | 50 ++++---- .../+iceweb/makespectrogramthumbnails.m | 10 +- applications/+iceweb/rsam_wrapper.m | 6 +- cookbooks/iceweb_wrapper_cookbook.m | 53 ++++++++ core/@rsam/plot_panels.m | 19 +-- core/@rsam/save_to_bob_file.m | 2 +- 7 files changed, 203 insertions(+), 55 deletions(-) create mode 100644 cookbooks/iceweb_wrapper_cookbook.m diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 06c7c07..6899241 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -19,10 +19,13 @@ function iceweb2017(subnetName, ds, ChannelTagList, ... % loop over timewindows for count = 1:length(timewindows.start) hh = datestr(timewindows.start(count),'HH'); - if strcmp(hh,'00') || count==1 + mm = datestr(timewindows.start(count),'MM'); + if strcmp(hh,'00') && strcmp(mm, '00') || count==1 fprintf('\n%s ',datestr(timewindows.start(count),26)); end - fprintf('%s ',hh); + if strcmp(mm,'00') + fprintf('%s ',hh); + end process_timewindow(subnetName, ChannelTagList, timewindows.start(count), timewindows.stop(count), ds, products); end debug.printfunctionstack('<'); @@ -36,7 +39,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products enum = enum - MILLISECOND_IN_DAYS; % try to skip last sample % load state - statefile = sprintf('iceweb_%s_state.mat',subnetName); + statefile = fullfile('iceweb', sprintf('%s_state.mat',subnetName)); if exist(statefile, 'file') load(statefile) if snum < snum0 @@ -46,6 +49,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products % save state ds0=ds; ChannelTagList0=ChannelTagList; snum0=snum; enum0=enum; subnetName0 = subnetName; + mkdir(fileparts(statefile)); save(statefile, 'ds0', 'ChannelTagList0', 'snum0', 'enum0', 'subnetName0'); clear ds0 ChannelTagList0 snum0 enum0 subnetName0 @@ -100,7 +104,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products % WAVEFORM PLOT if products.waveform_plot.doit - fname = fullfile('iceweb', 'plots', 'waveforms', subnetName, sprintf('%s.png',datestr(snum,30)) ); + fname = fullfile('iceweb', 'waveforms_clean_plots', subnetName, sprintf('%s.png',datestr(snum,30)) ); if ~exist(fname,'file') close all plot_panels(w, 'visible', 'off') @@ -127,7 +131,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products % PLOT SPECTROGRAMS if products.spectrograms.doit - spectrogramFilename = fullfile('iceweb', 'plots', 'spectrograms', subnetName, sprintf('%s.png',datestr(snum,30)) ); + spectrogramFilename = fullfile('iceweb', 'spectrograms', subnetName, datestr(snum, 26), sprintf('%s.png',datestr(snum,30)) ); debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)) close all spectrogramFraction = 0.75; @@ -144,14 +148,108 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products fileinfo = dir(spectrogramFilename); % getting a weird Index exceeds matrix dimensions error here. debug.print_debug(1, sprintf('%s %s: spectrogram PNG size is %d',mfilename, datestr(utnow), fileinfo.bytes)); -% % make thumbnails -% makespectrogramthumbnails(spectrogramFilename, spectrogramFraction); - + % make thumbnails + iceweb.makespectrogramthumbnails(spectrogramFilename, spectrogramFraction); + + % save spectral data + if products.spectral_data.doit + frequency_index_divider = 5.0; % Hz + for spi = 1:numel(Fcell) + thisY = Ycell{spi}; + thisF = Fcell{spi}; + thisT = Tcell{spi}; + sta = get(w(spi),'station'); + chan = get(w(spi),'channel'); + + % peakF and meanF for each spectrogram window + [Ymax,imax] = max(thisY); + PEAK_F = thisF(imax); + MEAN_F = (thisF' * thisY)./sum(thisY); + + % frequency index for each spectrogram window + fUpperIndices = find(thisF > frequency_index_divider); + fLowerIndices = find(thisF < frequency_index_divider); + fupper = sum(thisY(fUpperIndices,:)); + flower = sum(thisY(fLowerIndices,:)); + F_INDEX = log2(fupper ./ flower); + + % Peak spectral value in each frequency bin - or in + % each minute? + + % Now downsample to 1 sample per minute + dnum = unique(floorminute(thisT)); + for k=1:length(dnum) + p = find(floorminute(thisT) == dnum(k)); + downsampled_peakf(k) = nanmean(PEAK_F(p)); + downsampled_meanf(k) = nanmean(MEAN_F(p)); + downsampled_findex(k) = nanmean(F_INDEX(p)); + suby = thisY(:,p); + if size(suby,2) == 1 + max_in_each_freq_band(:,k) = suby; + else + max_in_each_freq_band(:,k) = max(suby'); + end + end + + % % Plot for verification + % close all + % subplot(2,1,1),plot(dnum,downsampled_peakf,':');datetick('x'); + % hold on + % plot(dnum,downsampled_meanf);datetick('x'); + % subplot(2,1,2),plot(dnum,downsampled_findex);datetick('x'); + % anykey = input('Press any key to continue'); + + % Save data + r1 = rsam(dnum, downsampled_peakf, 'sta', sta, ... + 'chan', chan, 'measure', 'peakf', ... + 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); + r1.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.peakf')) + + r2 = rsam(dnum, downsampled_meanf, 'sta', sta, ... + 'chan', chan, 'measure', 'meanf', ... + 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); + r2.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.meanf')) + + r3 = rsam(dnum, downsampled_findex, 'sta', sta, ... + 'chan', chan, 'measure', 'findex', ... + 'units', 'none', 'snum', min(dnum), 'enum', max(dnum)); + r3.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.findex')) + + specdatafilename = fullfile('data', 'spectral', subnet, datestr(min(dnum),'yyyy/mm/dd'), sprintf( '%s_%s_%s.mat', datestr(min(dnum),30), sta, chan) ); + specdatadir = fileparts(specdatafilename); % make the directory in case it does not exist + mkdir(specdatadir); % make the directory in case it does not exist + save(specdatafilename, 'dnum', 'max_in_each_freq_band') + clear r1 r2 r3 k p downsampled_peakf downsampled_meanf ... + downsampled_findex fUpperIndices fLowerIndices flower ... + fupper F_INDEX PEAK_F MEAN_F Ymax imax thisY thisF thisT ... + suby max_in_each_freq_band + + end + end end end end - - + + % SOUND FILES + if products.soundfiles.doit + try + % 20120221 Added a "sound file" like 201202211259.sound which simply records order of stachans in waveform object so + % php script can match spectrogram panel with appropriate wav file + % 20121101 GTHO COmment: Could replace use of bnameroot below with strrep, since it is just used to change file extensions + % e.g. strrep(spectrogramFilename, '.png', sprintf('_%s_%s.wav', sta, chan)) + soundfileroot = fullfile('iceweb', 'soundfiles', subnetName, datestr(snum, 26) ); + [dname, bnameroot, bnameext] = fileparts(soundfileroot); + soundfilelist = fullfile(soundfiles, sprintf('%s.sound',datestr(snum,30))); + fsound = fopen(soundfilelist,'a'); + for c=1:length(w) + soundfilename = fullfile(soundfileroot, sprintf('%s_%s_%s.wav',datestr(snum,30), get(w(c),'station'), get(w(c), 'channel') ) ); + fprintf(fsound,'%s\n', soundfilename); + debug.print_debug(0, sprintf('Writing to %s',soundfilename)); + isSuccessful = waveform2sound(w(c), 60, soundfilename) + end + fclose(fsound); + end + end debug.printfunctionstack('<'); end diff --git a/applications/+iceweb/iceweb_wrapper.m b/applications/+iceweb/iceweb_wrapper.m index e7e492b..5859a47 100755 --- a/applications/+iceweb/iceweb_wrapper.m +++ b/applications/+iceweb/iceweb_wrapper.m @@ -1,8 +1,8 @@ function iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... - startTime, endTime, gulpMinutes, products) + startTime, endTime) %ICEWEB_WRAPPER Run IceWeb for long time intervals % iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... -% startTime, endTime, gulpMinutes, products) +% startTime, endTime) % % iceweb_wrapper(...) is a wrapper designed to move sequentially through % days/weeks/months of data, load waveform data into waveform objects, @@ -27,30 +27,26 @@ function iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... % endTime - the date/time to end at in datenum format. See % DATENUM. % -% gulpMinutes - swallow data in chunks of this size. Minimum is 10 -% minutes, maximum is 2 hours. Other good choices are -% 30 minutes and 1 hour. -% -% products - a structure telling IceWeb which products to generate. -% If not explicitly given, it will look like: -% products.rsam.doit = true; -% products.rsam.samplingIntervalSeconds = samplingIntervalSeconds; -% products.rsam.measures = measures; -% products.spectrograms.doit = true; -% products.spectrograms.timeWindowMinutes = [10 120]; -% products.spectral_data.doit = true; -% products.spectral_data.samplingIntervalSeconds = samplingIntervalSeconds; -% products.reduced_displacement.doit = true; -% products.reduced_displacement.samplingIntervalSeconds = samplingIntervalSeconds; -% products.helicorders.doit = true; -% products.helicorders.timeWindowMinutes = [120]; -% products.soundfiles.doit = true; +% See also: iceweb.iceweb2017 + +% set up products structure for iceweb +products.waveform_plot.doit = true; +products.rsam.doit = true; +products.rsam.samplingIntervalSeconds = [60]; +products.rsam.measures = {'mean'}; +products.spectrograms.doit = true; +products.spectrograms.timeWindowMinutes = 10; +products.spectral_data.doit = true; +products.spectral_data.samplingIntervalSeconds = 60; +products.reduced_displacement.doit = false; +products.reduced_displacement.samplingIntervalSeconds = 60; +products.helicorders.doit = true; +products.helicorders.timeWindowMinutes = 10; +products.soundfiles.doit = true; + +gulpMinutes = products.spectrograms.timeWindowMinutes; -%startup_iceweb -matfile = sprintf('%s.mat',subnetName); -PARAMS = struct('max_number_scnls', 8, ... - ' +% call iceweb_wrapper +iceweb.iceweb2017(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) -paths = struct( -iceweb.iceweb_2017(subnetName, datasourceObject, ChannelTagList, ... - startTime, endTime, gulpMinutes, products, PARAMS, paths); \ No newline at end of file +disp('COMPLETED') diff --git a/applications/+iceweb/makespectrogramthumbnails.m b/applications/+iceweb/makespectrogramthumbnails.m index 8974aa4..72548f5 100755 --- a/applications/+iceweb/makespectrogramthumbnails.m +++ b/applications/+iceweb/makespectrogramthumbnails.m @@ -1,7 +1,5 @@ function makespectrogramthumbnails(spectrogramFilename, spectrogramFraction) -import debug.* -printfunctionstack('>'); -%print_debug('> makespectrogramthumbnails', 2); +debug.printfunctionstack('>'); % figure 1 should be a large spectrogram with traces, cropped nicely. Now remove labels and maximise panels. @@ -23,7 +21,7 @@ function makespectrogramthumbnails(spectrogramFilename, spectrogramFraction) % Move panels for channelNum = 1:numchannels - [spectrogramPosition, tracePosition] = calculatePanelPositions(numchannels, numchannels - channelNum + 1, spectrogramFraction, 0.0, 0.0, 1, 1); + [spectrogramPosition, tracePosition] = iceweb.calculatePanelPositions(numchannels, numchannels - channelNum + 1, spectrogramFraction, 0.0, 0.0, 1, 1); set(ax(channelNum*2 - 1), 'position', tracePosition); set(ax(channelNum*2), 'position', spectrogramPosition); end @@ -33,7 +31,7 @@ function makespectrogramthumbnails(spectrogramFilename, spectrogramFraction) tmpfile = sprintf('%s/%s_labelless%s',tmppath,tmpbase,tmpext); % print large labelless PNG -saveImageFile(tmpfile, 72); +iceweb.saveImageFile(tmpfile, 72); % load then delete temporary file I = imread(tmpfile); @@ -52,4 +50,4 @@ function makespectrogramthumbnails(spectrogramFilename, spectrogramFraction) imwrite(X,map,thumbnailfile,'PNG'); close; -printfunctionstack('<'); +debug.printfunctionstack('<'); diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m index 5d2c11d..ecedca2 100755 --- a/applications/+iceweb/rsam_wrapper.m +++ b/applications/+iceweb/rsam_wrapper.m @@ -54,10 +54,10 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... % % Example: % datasourceObject = datasource('antelope', '/raid/data/sakurajima/db') -% ChannelTagList(1) = ChannelTag('JP.SAKA.--.BHZ'); -% ChannelTagList(2) = ChannelTag('JP.SAKB.--.BHZ'); +% ChannelTagList(1) = ChannelTag('JP.SAKA.--.HHZ'); +% ChannelTagList(2) = ChannelTag('JP.SAKB.--.HHZ'); % startTime = datenum(2015,5,28); -% endTime = datenum(2015,6,2); +% endTime = datenum(2015,6,8); % gulpMinutes = 10; % samplingIntervalSeconds = 60; % measures = {'mean'}; diff --git a/cookbooks/iceweb_wrapper_cookbook.m b/cookbooks/iceweb_wrapper_cookbook.m new file mode 100644 index 0000000..fc901e5 --- /dev/null +++ b/cookbooks/iceweb_wrapper_cookbook.m @@ -0,0 +1,53 @@ +%% How to compute RSAM data + +%% 1. Introduction +% +% Computing rsam data from waveform objects is easy to do with the +% waveform2rsam method. But waveform objects are generally no more than 1 +% hour long. So what if you want to compute RSAM data for days, weeks or +% months of waveform data? How do we set this up? +% +% This is where we use "IceWeb", an application originally written in 1998 +% to process continuous waveform data into a variety of products for +% volcano observatory web pages, to aid rapid recognition of anomalous +% activity. Since we only want RSAM data in this case, we will drive this +% using iceweb.rsam_wrapper. To get help on this, use: +%% +% +% help iceweb.iceweb_wrapper +% + +%% +% RSAM data will be saved to binary "BOB" files in a directory +% "iceweb/rsam_data". So the final step in the tutorial will show how to +% load and plot these data. +% +% The following is a fully worked example using the Sakurajima +% dataset for illustration. + + +%% 2. Setup for the Redoubt 2009 example + +%% +% Define datasource - where to get waveform data from +dbpath = fullfile(TESTDATA, 'css3.0', 'demodb') +datasourceObject = datasource('antelope', dbpath) + +%% +% Define the list of channels to get waveform data for +ChannelTagList = ChannelTag.array('AV',{'REF';'RSO'},'','EHZ') + +%% +% Set the start and end times +startTime = datenum(2009,3,20,2,0,0) +endTime = datenum(2009,3,23,12,0,0) + + +%% 3. Call the iceweb_wrapper +iceweb.iceweb_wrapper('Redoubt', datasourceObject, ChannelTagList, ... + startTime, endTime); + +%% +% Note: this may take a long time to run, e.g. 1 week of data for 1 +% channel might take about 10 minutes on a desktop computer, reading data +% from a network-mounted drive. diff --git a/core/@rsam/plot_panels.m b/core/@rsam/plot_panels.m index 797a282..3c23e97 100755 --- a/core/@rsam/plot_panels.m +++ b/core/@rsam/plot_panels.m @@ -19,37 +19,40 @@ plot_panels(w); % xticks currently in seconds + xtick_interval_seconds = 1; xticks=get(gca,'XTick'); xlims = get(gca,'XLim'); hfc = get(gcf,'Children'); if xlims(2) >= 60 * 10 && xlims(2) < 60 * 100 % change to minutes xticks = 0:60:xlims(2); - divisor = 60; + xtick_interval_seconds = 60; xlabel('Time (minutes)'); end if xlims(2) >= 60 * 100 && xlims(2) < 60 * 60 * 100 % change to hours xticks = 0:60*15:xlims(2); %15 minute intervals - divisor = 3600; + xtick_interval_seconds = 3600; xlabel('Time (hours)'); end if xlims(2) >= 60 * 60 * 100 && xlims(2) < 60 * 60 * 24 * 100 % change to days xticks = 0:60*60*6:xlims(2); %6 hour intervals - divisor = 3600 * 24; + xtick_interval_seconds = 3600 * 24; xlabel('Time (days)'); end if xlims(2) >= 60 * 60 * 24 * 100 % change to weeks xticks = 0:60*60*24*3.5:xlims(2); %0.5 week intervals - divisor = 3600 * 24 * 7; + xtick_interval_seconds = 3600 * 24 * 7; xlabel('Time (weeks)'); end - r = stepsize(xticks); - xticks = xticks(1:r:end); - xticklabels = xticks/divisor; - set(hfc(2:end),'XTick',xticks,'XTickLabels',xticklabels); + if xtick_interval_seconds > 1 + r = stepsize(xticks); + xticks = xticks(1:r:end); + xticklabels = xticks/xtick_interval_seconds; + set(hfc(2:end),'XTick',xticks,'XTickLabels',xticklabels); + end end diff --git a/core/@rsam/save_to_bob_file.m b/core/@rsam/save_to_bob_file.m index 24e269a..9172f71 100755 --- a/core/@rsam/save_to_bob_file.m +++ b/core/@rsam/save_to_bob_file.m @@ -85,7 +85,7 @@ function save_to_bob_file(self, filepattern) diff=dnumy(2:end) - dnumy(1:end-1); i = find(diff > 1.5/SAMPLES_PER_DAY | diff < 0.5/SAMPLES_PER_DAY); - debug.print_debug(1,sprintf('Saving to %s',fname))); + debug.print_debug(1,sprintf('Saving to %s',fname)); if length(i)>0 % slow mode From 3064ef7f8d221b14df546b6a6fb9a8671ffe137a Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Thu, 6 Apr 2017 19:18:20 -0400 Subject: [PATCH 18/52] iceweb_wrapper updated --- applications/+iceweb/iceweb2017.m | 191 +++++++++++------- applications/+iceweb/iceweb_wrapper.m | 16 +- .../+iceweb/makespectrogramthumbnails.m | 2 +- applications/+iceweb/rsam_wrapper.m | 4 +- cookbooks/iceweb_wrapper_cookbook.m | 37 +++- cookbooks/rsam_wrapper_cookbook.m | 6 +- core/+debug/get_debug.m | 2 +- core/+debug/print_debug.m | 5 +- core/@ChannelTag/ChannelTag.m | 40 +++- core/@rsam/save_to_bob_file.m | 2 +- 10 files changed, 216 insertions(+), 89 deletions(-) diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 6899241..e77f0a6 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -1,13 +1,20 @@ -function iceweb2017(subnetName, ds, ChannelTagList, ... +function iceweb2017(PRODUCTS_TOP_DIR, subnetName, ds, ChannelTagList, ... snum, enum, nummins, products) debug.printfunctionstack('>'); - - % load state - statefile = sprintf('iceweb_%s_state.mat',subnetName); - if exist(statefile, 'file') - load(statefile) + + % make the directory under which all products will be stored + try + mkdir(PRODUCTS_TOP_DIR); + catch + error(sprintf('Cannot make directory %s',PRODUCTS_TOP_DIR)); end +% % load state +% statefile = fullfile(PRODUCTS_TOP_DIR, sprintf('iceweb_%s_state.mat',subnetName)); +% if exist(statefile, 'file') +% load(statefile) +% end + % end time if enum==0 enum = utnow - delaymins/1440; @@ -16,6 +23,8 @@ function iceweb2017(subnetName, ds, ChannelTagList, ... % generate list of timewindows timewindows = iceweb.get_timewindow(enum, nummins, snum); + networkName = getmostcommon(ChannelTagList); + % loop over timewindows for count = 1:length(timewindows.start) hh = datestr(timewindows.start(count),'HH'); @@ -26,65 +35,69 @@ function iceweb2017(subnetName, ds, ChannelTagList, ... if strcmp(mm,'00') fprintf('%s ',hh); end - process_timewindow(subnetName, ChannelTagList, timewindows.start(count), timewindows.stop(count), ds, products); + process_timewindow(PRODUCTS_TOP_DIR, networkName, subnetName, ChannelTagList, timewindows.start(count), timewindows.stop(count), ds, products); + %anykey = input('Press any key to continue'); end debug.printfunctionstack('<'); end -function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products) +function process_timewindow(PRODUCTS_TOP_DIR, networkName, subnetName, ChannelTagList, snum, enum, ds, products) debug.printfunctionstack('>'); + % changed for compatibility with Pensive, which names files by endtime +% filedate = datestr(snum,'yyyy-mm-dd'); +% filetime = datestr(snum,'yyyymmdd-HHMM'); + filedate = datestr(enum,'yyyy-mm-dd'); + filetime = datestr(enum,'yyyymmdd-HHMM'); MILLISECOND_IN_DAYS = (1 / 86400000); enum = enum - MILLISECOND_IN_DAYS; % try to skip last sample - % load state - statefile = fullfile('iceweb', sprintf('%s_state.mat',subnetName)); - if exist(statefile, 'file') - load(statefile) - if snum < snum0 - return - end - end - - % save state - ds0=ds; ChannelTagList0=ChannelTagList; snum0=snum; enum0=enum; subnetName0 = subnetName; - mkdir(fileparts(statefile)); - save(statefile, 'ds0', 'ChannelTagList0', 'snum0', 'enum0', 'subnetName0'); - clear ds0 ChannelTagList0 snum0 enum0 subnetName0 +% % load state +% statefile = fullfile(PRODUCTS_TOP_DIR, sprintf('%s_state.mat',subnetName)); +% if exist(statefile, 'file') +% load(statefile) +% if snum < snum0 +% return +% end +% end +% +% % save state +% ds0=ds; ChannelTagList0=ChannelTagList; snum0=snum; enum0=enum; subnetName0 = subnetName; +% mkdir(fileparts(statefile)); +% save(statefile, 'ds0', 'ChannelTagList0', 'snum0', 'enum0', 'subnetName0'); +% clear ds0 ChannelTagList0 snum0 enum0 subnetName0 %% Save raw waveform data to MAT file jjj = datenum2julday(snum); - wavrawmat = fullfile('iceweb', 'waveforms_raw', subnetName, datestr(snum,'yyyy-mm-dd'), datestr(snum,30)); + wavrawmat = fullfile(PRODUCTS_TOP_DIR, 'waveforms', subnetName, filedate, sprintf('%s_%s_raw.mat',subnetName,filetime)); if ~exist(wavrawmat,'file') %% Get waveform data debug.print_debug(1, sprintf('%s %s: Getting waveforms for %s from %s to %s at %s',mfilename, datestr(utnow), subnetName , datestr(snum), datestr(enum))); w = waveform(ds, ChannelTagList, snum, enum); %w = iceweb.waveform_wrapper(ds, ChannelTagList, snum, enum); % returns 1 waveform per channeltag, in same order if isempty(w) - if debug.get_debug() > 0 - ds - ChannelTagList - datestr(snum) - datestr(enum) - end + debug.print_debug(1, 'No waveform data returned - here are the waveform() parameters:'); + save failedwaveformcall.mat ds ChannelTagList snum enum debug.printfunctionstack('<'); return end mkdir(fileparts(wavrawmat)); - disp(sprintf('Saving waveform data to %s',wavrawmat)); + debug.print_debug(1,sprintf('Saving waveform data to %s',wavrawmat)); save(wavrawmat,'w'); + else + return end debug.printfunctionstack('<'); % Save the cleaned waveform data to MAT file - wavcleanmat = fullfile('iceweb', 'waveforms_clean', subnetName, datestr(snum,'yyyy-mm-dd'), datestr(snum,30)); + wavcleanmat = fullfile(PRODUCTS_TOP_DIR, 'waveforms', subnetName, filedate, sprintf('%s_%s_clean.mat',subnetName,filetime)); if ~exist(wavcleanmat,'file') % Eliminate empty waveform objects w = iceweb.waveform_remove_empty(w); if numel(w)==0 - debug.print_debug(1, 'No waveform data returned - skipping'); + debug.print_debug(1, 'All waveform objects were empty - skipping this time window'); return end @@ -98,13 +111,15 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products mkdir(fileparts(wavcleanmat)); debug.print_debug(1,sprintf('Saving waveform data to %s',wavcleanmat)); save(wavcleanmat,'w'); + else + return end %% ICEWEB PRODUCTS % WAVEFORM PLOT if products.waveform_plot.doit - fname = fullfile('iceweb', 'waveforms_clean_plots', subnetName, sprintf('%s.png',datestr(snum,30)) ); + fname = fullfile(PRODUCTS_TOP_DIR, 'waveforms', subnetName, filedate, sprintf('%s_%s.png',subnetName,filetime)); if ~exist(fname,'file') close all plot_panels(w, 'visible', 'off') @@ -124,18 +139,30 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products end rsamobj = waveform2rsam(w, measure, samplingInterval); %rsamobj.plot_panels() - rsamobj.save_to_bob_file(fullfile('iceweb', 'rsam_data', 'SSSS.CCC.YYYY.MMMM.bob')); + rsamobj.save_to_bob_file(fullfile(PRODUCTS_TOP_DIR, 'bobfiles', subnetName, 'SSSS.CCC.YYYY.MMMM.bob')); end end % PLOT SPECTROGRAMS if products.spectrograms.doit - spectrogramFilename = fullfile('iceweb', 'spectrograms', subnetName, datestr(snum, 26), sprintf('%s.png',datestr(snum,30)) ); - debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)) + % filepath is compatible with Pensive + spectrogramFilename = fullfile(PRODUCTS_TOP_DIR, 'spectrograms', networkName, subnetName, filedate, sprintf('%s_%s.png',subnetName, filetime) ); + debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)); close all spectrogramFraction = 0.75; specObj = spectralobject(1024, 924, 10, [60 120]); + + % if any channels have units 'Pa', multiple by 1000 so they are + % visible + for wavnum=1:numel(w) + thischan = get(w(wavnum),'channel'); + if strcmp(get(w(wavnum),'units'), 'Pa') || strcmp(thischan(1:2),'BD') + w(wavnum) = w(wavnum) * 1000; + w(wavnum) = set(w(wavnum), 'units', 'mPa'); + end + end + [sgresult, Tcell, Fcell, Ycell] = iceweb.spectrogram_iceweb(specObj, w, spectrogramFraction, iceweb.extended_spectralobject_colormap); @@ -158,8 +185,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products thisY = Ycell{spi}; thisF = Fcell{spi}; thisT = Tcell{spi}; - sta = get(w(spi),'station'); - chan = get(w(spi),'channel'); + thisCtag = get(w(spi),'ChannelTag'); % peakF and meanF for each spectrogram window [Ymax,imax] = max(thisY); @@ -172,6 +198,7 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products fupper = sum(thisY(fUpperIndices,:)); flower = sum(thisY(fLowerIndices,:)); F_INDEX = log2(fupper ./ flower); + F_RATIO = fupper ./ flower; % Peak spectral value in each frequency bin - or in % each minute? @@ -183,46 +210,59 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products downsampled_peakf(k) = nanmean(PEAK_F(p)); downsampled_meanf(k) = nanmean(MEAN_F(p)); downsampled_findex(k) = nanmean(F_INDEX(p)); + downsampled_fratio(k) = nanmean(F_RATIO(p)); suby = thisY(:,p); - if size(suby,2) == 1 - max_in_each_freq_band(:,k) = suby; - else - max_in_each_freq_band(:,k) = max(suby'); - end + max_in_each_freq_band(:,k) = max(suby'); end - % % Plot for verification - % close all - % subplot(2,1,1),plot(dnum,downsampled_peakf,':');datetick('x'); - % hold on - % plot(dnum,downsampled_meanf);datetick('x'); - % subplot(2,1,2),plot(dnum,downsampled_findex);datetick('x'); - % anykey = input('Press any key to continue'); +% % Plot for verification +% close all +% subplot(2,1,1),plot(dnum,downsampled_peakf,'o');datetick('x'); +% hold on +% plot(dnum,downsampled_meanf,'*');datetick('x');legend('peakf','meanf') +% subplot(2,1,2),plot(dnum,downsampled_findex,'+');datetick('x'); +% hold on + + +% plot(dnum,downsampled_fratio,'*');datetick('x');legend('findex','fratio') +% anykey = input('Press any key to continue'); % Save data - r1 = rsam(dnum, downsampled_peakf, 'sta', sta, ... - 'chan', chan, 'measure', 'peakf', ... - 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); - r1.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.peakf')) - - r2 = rsam(dnum, downsampled_meanf, 'sta', sta, ... - 'chan', chan, 'measure', 'meanf', ... - 'units', 'Hz', 'snum', min(dnum), 'enum', max(dnum)); - r2.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.meanf')) - - r3 = rsam(dnum, downsampled_findex, 'sta', sta, ... - 'chan', chan, 'measure', 'findex', ... - 'units', 'none', 'snum', min(dnum), 'enum', max(dnum)); - r3.save_to_bob_file(fullfile('spectrograms', subnet, 'SSSS.CCC.YYYY.findex')) - - specdatafilename = fullfile('data', 'spectral', subnet, datestr(min(dnum),'yyyy/mm/dd'), sprintf( '%s_%s_%s.mat', datestr(min(dnum),30), sta, chan) ); + r1 = rsam(dnum, downsampled_peakf, 'ChannelTag', thisCtag, ... + 'measure', 'peakf', ... + 'units', 'Hz'); + r1.save_to_bob_file(fullfile(PRODUCTS_TOP_DIR, 'bobfiles', subnetName, 'SSSS.CCC.YYYY.peakf.bob')) + + r2 = rsam(dnum, downsampled_meanf, 'ChannelTag', thisCtag, ... + 'measure', 'meanf', ... + 'units', 'Hz'); + r2.save_to_bob_file(fullfile(PRODUCTS_TOP_DIR, 'bobfiles', subnetName, 'SSSS.CCC.YYYY.meanf.bob')) + + r3 = rsam(dnum, downsampled_findex, 'ChannelTag', thisCtag, ... + 'measure', 'findex', ... + 'units', 'none'); + r3.save_to_bob_file(fullfile(PRODUCTS_TOP_DIR, 'bobfiles', subnetName, 'SSSS.CCC.YYYY.findex.bob')) + + r4 = rsam(dnum, downsampled_fratio, 'ChannelTag', thisCtag, ... + 'measure', 'fratio', ... + 'units', 'none'); + r4.save_to_bob_file(fullfile(PRODUCTS_TOP_DIR, 'bobfiles', subnetName, 'SSSS.CCC.YYYY.fratio.bob')) + + + specdatafilename = fullfile(PRODUCTS_TOP_DIR, 'spectrograms', networkName, subnetName, filedate, sprintf('%s_%s.dat',thisCtag.scn(), filedate) ); + specdatadir = fileparts(specdatafilename); % make the directory in case it does not exist mkdir(specdatadir); % make the directory in case it does not exist - save(specdatafilename, 'dnum', 'max_in_each_freq_band') + fspec = fopen(specdatafilename,'a'); + fprintf(fspec, '%13.6f', min(dnum)); + fprintf(fspec, ' %6.2e', max_in_each_freq_band); + fprintf(fspec, '\n', max_in_each_freq_band); + fclose(fspec); + %save(specdatafilename, 'dnum', 'max_in_each_freq_band') clear r1 r2 r3 k p downsampled_peakf downsampled_meanf ... downsampled_findex fUpperIndices fLowerIndices flower ... fupper F_INDEX PEAK_F MEAN_F Ymax imax thisY thisF thisT ... - suby max_in_each_freq_band + thisCtag suby max_in_each_freq_band end end @@ -249,7 +289,22 @@ function process_timewindow(subnetName, ChannelTagList, snum, enum, ds, products end fclose(fsound); end + end debug.printfunctionstack('<'); end +function s = getmostcommon(ctags) + if numel(ctags)==1 + s = get(ctags,'network'); + return + end + x = get(ctags,'network'); + y = unique(x); + n = zeros(length(y), 1); + for iy = 1:length(y) + n(iy) = length(find(strcmp(y{iy}, x))); + end + [~, itemp] = max(n); + s= y{itemp}; +end \ No newline at end of file diff --git a/applications/+iceweb/iceweb_wrapper.m b/applications/+iceweb/iceweb_wrapper.m index 5859a47..149d33d 100755 --- a/applications/+iceweb/iceweb_wrapper.m +++ b/applications/+iceweb/iceweb_wrapper.m @@ -1,4 +1,4 @@ -function iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... +function iceweb_wrapper(PRODUCTS_TOP_DIR, subnetName, datasourceObject, ChannelTagList, ... startTime, endTime) %ICEWEB_WRAPPER Run IceWeb for long time intervals % iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... @@ -47,6 +47,18 @@ function iceweb_wrapper(subnetName, datasourceObject, ChannelTagList, ... gulpMinutes = products.spectrograms.timeWindowMinutes; % call iceweb_wrapper -iceweb.iceweb2017(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) +tic; +iceweb.iceweb2017(PRODUCTS_TOP_DIR, subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) +toc + +% % create 24h spectrograms +% if products.spectral_data.doit +% iceweb.make_24h_spectrograms(subnetName, ChannelTagList, startTime, endTime); +% end +% +% % create 24h helicorders +% if products.helicorders.doit +% iceweb.make_24h_helicorders(subnetName, ChannelTagList, startTime, endTime); +% end disp('COMPLETED') diff --git a/applications/+iceweb/makespectrogramthumbnails.m b/applications/+iceweb/makespectrogramthumbnails.m index 72548f5..c219419 100755 --- a/applications/+iceweb/makespectrogramthumbnails.m +++ b/applications/+iceweb/makespectrogramthumbnails.m @@ -46,7 +46,7 @@ function makespectrogramthumbnails(spectrogramFilename, spectrogramFraction) %thumbnailfile = sprintf('%s/smaller_%s%s',tmppath, tmpbase, tmpext); %imwrite(X,map,thumbnailfile,'PNG'); [X,map] = rgb2ind(imresize(I, [198 151]), 256); -thumbnailfile = sprintf('%s/small_%s%s',tmppath, tmpbase, tmpext); +thumbnailfile = sprintf('%s/%s_thumb%s',tmppath, tmpbase, tmpext); imwrite(X,map,thumbnailfile,'PNG'); close; diff --git a/applications/+iceweb/rsam_wrapper.m b/applications/+iceweb/rsam_wrapper.m index ecedca2..2fc4555 100755 --- a/applications/+iceweb/rsam_wrapper.m +++ b/applications/+iceweb/rsam_wrapper.m @@ -1,4 +1,4 @@ -function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... +function rsam_wrapper(TOP_DIR, subnetName, datasourceObject, ChannelTagList, ... startTime, endTime, gulpMinutes, samplingIntervalSeconds, measures) %RSAM_WRAPPER Compute RSAM data for long time intervals % rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... @@ -87,6 +87,6 @@ function rsam_wrapper(subnetName, datasourceObject, ChannelTagList, ... products.soundfiles.doit = false; % call iceweb_wrapper -iceweb.iceweb2017(subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) +iceweb.iceweb2017(TOP_DIR, subnetName, datasourceObject, ChannelTagList, startTime, endTime, gulpMinutes, products) disp('COMPLETED') \ No newline at end of file diff --git a/cookbooks/iceweb_wrapper_cookbook.m b/cookbooks/iceweb_wrapper_cookbook.m index fc901e5..45713f1 100644 --- a/cookbooks/iceweb_wrapper_cookbook.m +++ b/cookbooks/iceweb_wrapper_cookbook.m @@ -1,11 +1,9 @@ -%% How to compute RSAM data +%% How to run IceWeb on archived data %% 1. Introduction % -% Computing rsam data from waveform objects is easy to do with the -% waveform2rsam method. But waveform objects are generally no more than 1 -% hour long. So what if you want to compute RSAM data for days, weeks or -% months of waveform data? How do we set this up? +% It is useful to generate spectrograms, helicorder plots, RSAM data and +% other products from continuous waveform data. % % This is where we use "IceWeb", an application originally written in 1998 % to process continuous waveform data into a variety of products for @@ -18,12 +16,10 @@ % %% -% RSAM data will be saved to binary "BOB" files in a directory -% "iceweb/rsam_data". So the final step in the tutorial will show how to -% load and plot these data. % -% The following is a fully worked example using the Sakurajima +% The following is a fully worked example using a Redoubt 2009 % dataset for illustration. +PRODUCTS_TOP_DIR = './iceweb'; %% 2. Setup for the Redoubt 2009 example @@ -44,10 +40,31 @@ %% 3. Call the iceweb_wrapper -iceweb.iceweb_wrapper('Redoubt', datasourceObject, ChannelTagList, ... +iceweb.iceweb_wrapper(PRODUCTS_TOP_DIR, 'Redoubt', datasourceObject, ChannelTagList, ... startTime, endTime); %% % Note: this may take a long time to run, e.g. 1 week of data for 1 % channel might take about 10 minutes on a desktop computer, reading data % from a network-mounted drive. + +%% 4. Results +% Running this command creates an iceweb directory. Beneath this are: +% +%% +% * waveforms_raw: raw waveform objects saved into MAT files +% * waveforms_clean: cleaned waveform objects, saved into MAT files +% * waveforms_clean_plots: plots of cleaned waveform objects +% * rsam_data: binary bob files with the mean amplitude, median frequency, peak frequency, frequency ratio and frequency index for each 60-s time window +% * spectrograms: 10-minute spectrogram plots +% * spectral_data: an amplitude spectrum for each 10-minute time window. Will be used to generate 24-hour spectrograms later. +% +% AUTHOR NOTES: To be added to this tutorial: +% +%% +% * Examples of each of the directory structures above. +% * RSAM plots for the whole time series. +% * 24-h spectrograms. +% * 24-h helicorder plots. +% +% These last 2 will be added into iceweb.iceweb_wrapper() \ No newline at end of file diff --git a/cookbooks/rsam_wrapper_cookbook.m b/cookbooks/rsam_wrapper_cookbook.m index 7481312..4026a68 100644 --- a/cookbooks/rsam_wrapper_cookbook.m +++ b/cookbooks/rsam_wrapper_cookbook.m @@ -28,6 +28,10 @@ %% 2. Setup for the Redoubt 2009 example +%% +% Set the directory name under which RSAM files will be stored +TOP_DIR = 'rsam'; + %% % Define datasource - where to get waveform data from dbpath = fullfile(TESTDATA, 'css3.0', 'demodb') @@ -66,7 +70,7 @@ %% 3. Call the rsam_wrapper -iceweb.rsam_wrapper('Redoubt', datasourceObject, ChannelTagList, ... +iceweb.rsam_wrapper(TOP_DIR, 'Redoubt', datasourceObject, ChannelTagList, ... startTime, endTime, gulpMinutes, ... samplingIntervalSeconds, measures); diff --git a/core/+debug/get_debug.m b/core/+debug/get_debug.m index e4834a3..24c3230 100755 --- a/core/+debug/get_debug.m +++ b/core/+debug/get_debug.m @@ -12,4 +12,4 @@ debuglevel = debug.print_debug(); -return +end diff --git a/core/+debug/print_debug.m b/core/+debug/print_debug.m index 204290c..b28958a 100755 --- a/core/+debug/print_debug.m +++ b/core/+debug/print_debug.m @@ -32,8 +32,8 @@ % to read function. % Glenn Thompson 2015: restored order of verboseness (increasing numbers = % more verbose). Implemented workarounds for set_debug and get_debug. -value = []; -persistent Lev + value = []; + persistent Lev if isempty(Lev) % if Lev not already set Lev = 0; @@ -54,4 +54,5 @@ fprintf('\n'); end end + end diff --git a/core/@ChannelTag/ChannelTag.m b/core/@ChannelTag/ChannelTag.m index fcca273..e484e28 100755 --- a/core/@ChannelTag/ChannelTag.m +++ b/core/@ChannelTag/ChannelTag.m @@ -12,6 +12,7 @@ % ChannelTag Methods: % char - Retrieve properties as 'network.station.location.channel' % string - Retrieve properties as 'network.station.location.channel' + % scn - Retrieve properties as 'station_channel_network' % fixedlengthstrings - return strings of a fixed length % eq - == for channeltags, with simple '*' wildcard support % ne - ~= for channeltag (no wilcard support) @@ -345,7 +346,7 @@ function disp(obj) end end - function s = getDelimitedString(obj, delim) + function s = getDelimitedString(obj, delim) %getDelimitedString return a string with delimited fields % getDelimitedString(chtag, delim) returns the fields in % network,station, location, channel order, with the @@ -359,7 +360,44 @@ function disp(obj) % s = [obj.network, delim, obj.station, delim,... obj.location, delim, obj.channel]; + end + end + + function s = scn(obj, delim, option) + %scn returns scn representation of the channelTag(s) + % s = chaTag.scn() will return the string representation + % (1xn char) in the format STA_CHA_NET + % + % s = chaTag.string(DELIM) will use DELIM to separate + % fields. + % ex. chaTag.string('-'); will return NET-STA-LOC-CHA + % + % If chaTag is an array, then results are returned as a + % a cell of strings of same shape as chaTag will be returned. + % + % s = chaTag.string(DELIM,'nocell') to overrides functionality + % to return a padded NxM char array + % if DELIM is empty, then '.' will be used. + if ~exist('delim','var') || isempty(delim) + delim = '_'; end + if numel(obj) == 1 + s = [obj.station, delim, obj.channel, delim, obj.network]; + else + if exist('option','var') && strcmpi(option,'nocell') + s = ''; + for n=1 : numel(obj) + tmp = [obj.station, delim, obj.channel, delim, obj.network]; + s(n,1:numel(tmp)) = tmp; + end + else + s = cell(size(obj)); + for n=1 : numel(obj) + s(n) = {[obj.station, delim, obj.channel, delim, obj.network]}; + end + end + end + end end%methods diff --git a/core/@rsam/save_to_bob_file.m b/core/@rsam/save_to_bob_file.m index 9172f71..487064e 100755 --- a/core/@rsam/save_to_bob_file.m +++ b/core/@rsam/save_to_bob_file.m @@ -68,7 +68,7 @@ function save_to_bob_file(self, filepattern) debug.print_debug(2,sprintf('Looking for file: %s\n',fname)); if ~exist(fname,'file') - debug.print_debug(2, ['Creating ',fname]) + debug.print_debug(2, ['Creating ',fname]); rsam.make_bob_file(fname, daysperyear, SAMPLES_PER_DAY); end From c61dcef776bcd0df899bfa1797de7707b7238717 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Sat, 8 Apr 2017 10:54:35 -0400 Subject: [PATCH 19/52] updates to allow kmdorn to change spectrogram properties --- applications/+iceweb/iceweb2017.m | 5 +++-- applications/+iceweb/iceweb_wrapper.m | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index e77f0a6..1bd1f2e 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -151,8 +151,9 @@ function process_timewindow(PRODUCTS_TOP_DIR, networkName, subnetName, ChannelTa debug.print_debug(1, sprintf('Creating %s',spectrogramFilename)); close all spectrogramFraction = 0.75; - specObj = spectralobject(1024, 924, 10, [60 120]); - + dbLims = [products.spectrograms.dBmin products.spectrograms.dBmax]; + specObj = spectralobject(1024, 924, products.spectrograms.fmax, dbLims); + % if any channels have units 'Pa', multiple by 1000 so they are % visible for wavnum=1:numel(w) diff --git a/applications/+iceweb/iceweb_wrapper.m b/applications/+iceweb/iceweb_wrapper.m index 149d33d..068d51d 100755 --- a/applications/+iceweb/iceweb_wrapper.m +++ b/applications/+iceweb/iceweb_wrapper.m @@ -32,10 +32,14 @@ function iceweb_wrapper(PRODUCTS_TOP_DIR, subnetName, datasourceObject, ChannelT % set up products structure for iceweb products.waveform_plot.doit = true; products.rsam.doit = true; -products.rsam.samplingIntervalSeconds = [60]; -products.rsam.measures = {'mean'}; +products.rsam.samplingIntervalSeconds = [10 60 600]; +products.rsam.measures = {'max';'mean';'median'}; products.spectrograms.doit = true; products.spectrograms.timeWindowMinutes = 10; +%products.spectrograms.fmin = 0.5; +products.spectrograms.fmax = 10; % Hz +products.spectrograms.dBmin = 60; % white level +products.spectrograms.dBmax = 120; % pink level products.spectral_data.doit = true; products.spectral_data.samplingIntervalSeconds = 60; products.reduced_displacement.doit = false; From e499d08f0563c94d40cf1c3b2cea598a55c947db Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Sat, 8 Apr 2017 15:52:36 -0400 Subject: [PATCH 20/52] added antelope writer for arrival table --- core/@Arrival/Arrival.m | 1 + core/@Arrival/write.m | 107 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 core/@Arrival/write.m diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m index e450ce0..a42cf17 100755 --- a/core/@Arrival/Arrival.m +++ b/core/@Arrival/Arrival.m @@ -170,6 +170,7 @@ function summarize_row(self, rownum) %arrivalobj = setminman(self, w, pretrig, posttrig, maxtimediff) arrivalobj = addmetrics(self, maxtimediff) arrivalobj = addwaveforms(self, datasourceobj, pretrigsecs, posttrigsecs); + write(arrivalobj, FORMAT, PATH); end methods(Static) function self = retrieve(dataformat, varargin) diff --git a/core/@Arrival/write.m b/core/@Arrival/write.m new file mode 100644 index 0000000..e48c5f0 --- /dev/null +++ b/core/@Arrival/write.m @@ -0,0 +1,107 @@ +function write(arrivalObject, outformat, outpath, varargin) + %ARRIVAL.WRITE Write an Arrival object to disk + % + % arrivalObject.write('antelope', 'mydb', 'css3.0') writes the + % arrivalObject to a CSS3.0 database called 'mydb' using + % Antelope. Requires Antelope and Antelope Toolbox. Support for + % aefsam0.1 schema will be added later. + % + % Support for other output formats, e.g. Seisan, will be added + % later. + + % Glenn Thompson, 4 February 2015 + + switch outformat + case {'text';'csv';'xls'} % help table.write for more info + write(catalogObject.table, outpath); + + case 'antelope' + + + if admin.antelope_exists + + dbpath = outpath; + + % create new db + if ~exist('schema','var') + schema='css3.0'; + end + antelope.dbcreate(dbpath, schema); + + % remove the following tables if they exist and mode is + % "overwrite" + if nargin==4 & strcmp(varargin{1},'overwrite') + tableNames = {'arrival'}; + for tablenum = 1 : numel(tableNames) + thisTable = sprintf('%s.%s',dbpath,tableNames{tablenum}); + if exist(thisTable, 'file') + if nargin>=4 + if strcmp(varargin{1},'overwrite') + fprintf('Overwrite mode: Removing %s\n',thisTable); + delete(thisTable); + else + % for 'append' mode, nothing to do + fprintf('Append mode: You will append to %s\n',thisTable); + end + else + % nothing specified, so force user to + % choose, as we never want to mess up + % existing tables or delete them without + % user input + choice = input(sprintf('delete %s (y/n)',thisTable),'s'); + if lower(choice(1)=='y') + fprintf('Overwrite mode: Removing %s\n',thisTable); + delete(thisTable); + end + end + end + end + end +% system(sprintf('touch %s.event',dbpath)); +% system(sprintf('touch %s.origin',dbpath)); + + + disp('Writing new rows...'); + + % open db + db = dbopen(dbpath, 'r+'); + dbar = dblookup_table(db,'arrival'); + + thisA = arrivalObject; + N = numel(thisA.time); + + if N>0 + for arrnum = 1:N + ctag = ChannelTag(thisA.channelinfo{arrnum}); + asta = ctag.station; + atime = datenum2epoch(thisA.time(arrnum)); + aarid = dbnextid(dbar,'arid'); + achan = ctag.channel; + aiphase = thisA.iphase{arrnum}; + try + aamp = thisA.amp(arrnum); + %aper = thisA.per(arrnum); + %asnr = thisA.snr(arrnum); + catch + aamp = -1; + end + + % add arrival row + dbar.record = dbaddnull(dbar); + dbputv(dbar, 'sta', asta, ... + 'time', atime, ... + 'arid', aarid, ... + 'chan', achan, ... + 'iphase', aiphase, ... + 'amp', aamp); + %'per', aper, ... + %'snr', asnr, ... + end + end + dbclose(db); + disp('(Complete)'); + end + otherwise, + warning('format not supported yet') + end % end switch +end % function From c2787fde8905a49257761b54c8253da2d5312d7a Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 1 May 2017 12:02:09 -0400 Subject: [PATCH 21/52] Detection added --- core/+antelope/dbget_closest_sites.m | 4 + core/+antelope/dbget_site_locations.m | 114 ++++++++++++ core/@Arrival/Arrival.m | 53 +++++- core/@Arrival/addwaveforms.m | 2 +- core/@Arrival/associate.m | 135 +++++++++----- core/@Catalog/Catalog.m | 129 +++++++------- core/@Catalog/addwaveforms.m | 5 +- core/@Catalog/combine.m | 2 +- core/@Catalog/disp.m | 61 ++++--- core/@Catalog/eventrate.m | 13 ++ core/@Catalog/list_waveform_metrics.m | 65 +++++-- core/@Catalog/subset.m | 42 ++++- core/@Catalog/write.m | 228 ++++++++++++----------- core/@Detection/Detection.m | 248 ++++++++++++++++++++++++++ core/@Detection/Detection.m~ | 238 ++++++++++++++++++++++++ core/@Detection/associate.m | 152 ++++++++++++++++ core/@Detection/associate.m~ | 152 ++++++++++++++++ core/@EventRate/plot.m | 9 + core/@waveform/addmetrics.m | 31 +++- core/compute_travel_times.m | 16 ++ 20 files changed, 1434 insertions(+), 265 deletions(-) create mode 100644 core/+antelope/dbget_site_locations.m mode change 100755 => 100644 core/@Catalog/list_waveform_metrics.m create mode 100644 core/@Detection/Detection.m create mode 100644 core/@Detection/Detection.m~ create mode 100644 core/@Detection/associate.m create mode 100644 core/@Detection/associate.m~ create mode 100644 core/compute_travel_times.m diff --git a/core/+antelope/dbget_closest_sites.m b/core/+antelope/dbget_closest_sites.m index d60b5d7..447ff55 100755 --- a/core/+antelope/dbget_closest_sites.m +++ b/core/+antelope/dbget_closest_sites.m @@ -54,6 +54,10 @@ end nrecs = dbquery(dbptr_site, 'dbRECORD_COUNT'); debug.print_debug(2,sprintf('After time subset: %d records', nrecs)); +if nrecs==0 +sites=struct(); +return +end dbgetv(dbptr_site, 'sta') % Filter the sitechan table diff --git a/core/+antelope/dbget_site_locations.m b/core/+antelope/dbget_site_locations.m new file mode 100644 index 0000000..3ef52f4 --- /dev/null +++ b/core/+antelope/dbget_site_locations.m @@ -0,0 +1,114 @@ +function sites = dbget_site_locations(sitesdb, channeltags, snum, enum) +%DBGET_SITE_LOCATIONS Get sites from an Antelope database +% sites = DBGET_SITE_LOCATIONS(sitesdb, channeltags) +% sites = DBGET_SITE_LOCATIONS(sitesdb, channeltags, snum, enum) + +% AUTHOR: Glenn Thompson +% $Date: $ +% $Revision: -1 $ + debug.printfunctionstack('>') + + % If channeltags given as strings, convert to ChannelTag objects + if isa(channeltags, 'cell') + for c=1:numel(channeltags) + ctag(c) = ChannelTag(channeltags{c}); + end + channeltags = ctag; + end + + debug.print_debug(1,sprintf('sites db is %s',sitesdb)); + dbptr = dbopen(sitesdb, 'r'); + + % Filter the site table + dbptr_site = dblookup_table(dbptr, 'site'); + nrecs = dbquery(dbptr_site, 'dbRECORD_COUNT'); + debug.print_debug(2,sprintf('Site table has %d records', nrecs)); + + + if ~exist('snum', 'var') + % No start time given, so assume we just want sites that exist today. + % Remove any sites that have been decommissioned + debug.print_debug(2,sprintf('offdate == NULL')); + dbptr_site = dbsubset(dbptr_site, sprintf('offdate == NULL')); + else + % Remove any sites that were decommissioned before the start time + debug.print_debug(2,sprintf('offdate == NULL || offdate > ''%d'' ',datenum2julday(snum))); + dbptr_site = dbsubset(dbptr_site, sprintf('offdate == NULL || offdate > ''%d\'' ',datenum2julday(snum))); + end + nrecs = dbquery(dbptr_site, 'dbRECORD_COUNT'); + debug.print_debug(2,sprintf('After startTime subset: %d records', nrecs)); + + % Remove any sites that were installed after the end time (this may remove + % some sites that exist today) + if exist('enum', 'var') + debug.print_debug(2, sprintf('ondate < ''%d'' ',datenum2julday(enum))); + dbptr_site = dbsubset(dbptr_site, sprintf('ondate < ''%d'' ',datenum2julday(enum))); + end + + nrecs = dbquery(dbptr_site, 'dbRECORD_COUNT'); + debug.print_debug(2,sprintf('After endTime subset: %d records', nrecs)); + if nrecs==0 + sites=struct(); + return + end + + sta = dbgetv(dbptr_site, 'sta'); + %chan = dbgetv(dbptr_site, 'chan'); + lat = dbgetv(dbptr_site, 'lat'); + lon = dbgetv(dbptr_site, 'lon'); + elev = dbgetv(dbptr_site, 'elev'); + ondate = dbgetv(dbptr_site, 'ondate'); + offdate = dbgetv(dbptr_site, 'offdate'); + % calib = dbgetv(dbptr_calibration, 'calibration.calib'); + % units = dbgetv(dbptr_calibration, 'calibration.units'); + dbclose(dbptr); + + sites = struct(); + for c=1:numel(channeltags) + ctag = channeltags(c); + thissta = get(ctag,'station'); + i = find(strcmp(sta, thissta)); + if length(i)>0 + sites(c).channeltag = ctag; + sites(c).lat = lat(i); + sites(c).lon = lon(i); + sites(c).elev = elev(i); + else + sites(c).channeltag = ctag; + sites(c).lat = NaN; + sites(c).lon = NaN; + sites(c).elev = NaN; + end + end + + +% % Reformat data into sites return structure +% numsites = numel(lat); +% for c=1:numsites +% yyyy = floor(ondate(c)/1000); +% if yyyy>1900 +% jjj = ondate(c)-yyyy*1000; +% ondnum(c) = datenum(yyyy,1,jjj); +% else +% ondnum(c)=-Inf; +% end +% end +% +% for c=1:numsites +% yyyy = floor(offdate(c)/1000); +% if yyyy>1900 +% jjj = offdate(c)-yyyy*1000; +% offdnum(c) = datenum(yyyy,1,jjj); +% else +% offdnum(c) = Inf; +% end +% end +% +% +% % remove any duplicate sites +% [~,j]=unique({sites.string}); +% sites = sites(j); + + + debug.printfunctionstack('<') +end \ No newline at end of file diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m index a42cf17..063b761 100755 --- a/core/@Arrival/Arrival.m +++ b/core/@Arrival/Arrival.m @@ -22,6 +22,7 @@ signal2noise %qual %auth + traveltime waveforms end methods @@ -48,7 +49,7 @@ obj.amp = p.Results.amp; obj.per = p.Results.per; obj.signal2noise = p.Results.signal2noise; - fprintf('\nGot %d arrivals\n',numel(obj.time)); + debug.print_debug(1,sprintf('\nGot %d arrivals\n',numel(obj.time))); end @@ -159,14 +160,60 @@ function summarize_row(self, rownum) % self2.misc_fields = setfield(self2.misc_fields, fields{fieldnum}, fieldval(indexes)); % end % end + if numel(self.traveltime)==N + self2.traveltime = self.traveltime(indexes); + end if numel(self.waveforms)==N self2.waveforms = self.waveforms(indexes); - end + end end + function plot(obj) + ctaguniq = unique(obj.channelinfo) + N = numel(ctaguniq); + hf1=figure; + suptitle('Cumulative arrivals vs time') + hf2=figure; + suptitle('Percentage of arrivals captured by signal2noise') + disp(sprintf('Arrivals: %d',numel(obj.time))) + for c=1:N + indexes = find(strcmp(obj.channelinfo,ctaguniq{c})==1); +% size(indexes) +% indexes(1:10) + figure(hf1) + %subplot(N,1,c); + hold on + t = obj.time(indexes); + y = cumsum(ones(size(t))); + plot(t,y); + %ylabel(ctaguniq{c}); + ylabel(sprintf('Cumulative #\nArrivals')) + xlabel('Date/Time') + datetick('x') + set(gca,'XLim',[min(obj.time) max(obj.time)]); + disp(sprintf('- %s: %d',ctaguniq{c},length(indexes==1))); + + figure(hf2) + %subplot(N,1,c); + hold on + s = obj.signal2noise(indexes); + s(s>101)=101; + [n x]=hist(s, 1:0.1:100); + plot(x,100-cumsum(n)/sum(n)*100); + xlabel('signal2noise'); + %ylabel(ctaguniq{c}); + ylabel('%age') + set(gca, 'XLim', [2.4 20]); + end + figure(hf1) + legend(ctaguniq) + figure(hf2) + legend(ctaguniq) + end + % prototypes - catalogobj = associate(self, maxTimeDiff) + [catalogobj,arrivalobj] = associate(self, maxTimeDiff, sites, source) %arrivalobj = setminman(self, w, pretrig, posttrig, maxtimediff) arrivalobj = addmetrics(self, maxtimediff) arrivalobj = addwaveforms(self, datasourceobj, pretrigsecs, posttrigsecs); diff --git a/core/@Arrival/addwaveforms.m b/core/@Arrival/addwaveforms.m index 8e0dd5e..b8fbf41 100755 --- a/core/@Arrival/addwaveforms.m +++ b/core/@Arrival/addwaveforms.m @@ -36,7 +36,7 @@ fprintf('\nDone %d out of %d\n',c, Na); end end - arrivalobj.waveforms = w'; + arrivalobj.waveforms = clean(w'); fprintf('\n(added %d of %d waveforms successfully)\n', numsuccess, numel(arrivalobj.time)); end diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m index 217c802..9d1f9d8 100755 --- a/core/@Arrival/associate.m +++ b/core/@Arrival/associate.m @@ -1,14 +1,15 @@ -function catalogobj = associate(arrivalobj, maxTimeDiff) +function [catalogobj, arrivalobj] = associate(arrivalobj, maxTimeDiff, sites, source) %ASSOCIATE Associate arrivals into events -% catalogobj = associate(arrivals, maxTimeDiff) will scan through an -% arrivals object (assumed to be sorted in chronological order) and look -% for times where there are at least 2 arrivals on -% within maxTimeDiff seconds of each other, and declare an event. +% [catalogobj] = associate(arrivals, maxTimeDiff) will scan through an +% arrivals object and look for times where there are at least 2 arrivals on +% within maxTimeDiff seconds of each other, and declare an event. No +% checking is done to see if arrivals are on different channels % -% Notes: -% - no checking is done to see if arrivals are on different channels -% - if loading from Antelope with Arrival.retrieve(), arrivals are already -% sorted +% [catalogobj, arrivalobj] = associate(arrivals, maxTimeDiff, sites) will +% reduce the arrival times by traveltimes in the sites structure. This +% allows a smaller maxTimeDiff to be used (since all airwaves should now +% line up, and all P waves etc.). These traveltimes are in the returned +% arrivalobj. % % Example: Imagine you have an infrasound array and you have marked % infrasound events manually (or automatically) with an "N" phase, picking @@ -24,53 +25,95 @@ % arrivalobj = arrivalobj.subset('iphase', 'N'); % catalogobj = arrivalobj.associate(0.1); +%% REDUCE BY SUBTRACTING TRAVEL TIME +% If sites exist, let's correct the arrival times first +if exist('sites', 'var') + arrivalobj.traveltime = NaN(size(arrivalobj.time)); + for c=1:numel(sites) + thissite = sites(c); + thischanstr = thissite.channeltag.string(); + i = strcmp(arrivalobj.channelinfo, thischanstr)==1; + arrivalobj.traveltime(i) = sites(c).traveltime; + arrivalobj.time(i) = arrivalobj.time(i) - sites(c).traveltime/86400; + end +end +% sort arrivalobj in ascending time order +[arrtimes,indices]=sort(arrivalobj.time); +arrivalobj = arrivalobj.subset(indices); -% First we begin with each arrival and find how many arrivals occur in the +%% ASSOCIATION ALGORITHM +% 1. First we begin with each arrival and find how many arrivals occur in the % maxTimeDiff seconds that follow. This way each arrival is assigned a % weight equal to that number of arrivals. The point of this is to help us % identify the beginning of each event. -arrtimes = arrivalobj.time; -fprintf('\nFinding how many arrivals within %e sec of each arrival\n',maxTimeDiff) -for c=1:numel(arrtimes) - associated_indices{c} = find(arrtimes>=arrtimes(c) & arrtimes<=arrtimes(c)+maxTimeDiff/86400); - numarrivals(c) = numel(associated_indices{c}); -end + fprintf('\nFinding how many arrivals within %e sec of each arrival\n',maxTimeDiff) + for c=1:numel(arrtimes) + associated_indices{c} = find(arrtimes>=arrtimes(c) & arrtimes<=arrtimes(c)+maxTimeDiff/86400); + numarrivals(c) = numel(associated_indices{c}); + end -% remove decrementing series, e.g. replace sequence -% like 6 5 4 3 2 1 with 6 0 0 0 0 0 -numarrivals = [numarrivals(1) diff(numarrivals)+1]; -numarrivals(numarrivals<=1)=0; + % 2. Remove decrementing series, e.g. replace sequence + % like 6 5 4 3 2 1 with 6 0 0 0 0 0 + numarrivals = [numarrivals(1) diff(numarrivals)+1]; + %numarrivals(numarrivals<=1)=0; + % 3. Now loop over numarrivals and create events + fprintf('Making events') + eventnum = 0; + duplicatecount = 0; + for c=1:numel(numarrivals) + if numarrivals(c)>0 + fprintf('.') + eventnum = eventnum + 1; + otime(eventnum) = arrtimes(c); + try + eventarrivalobj = arrivalobj.subset([c : c + numarrivals(c) - 1]); + catch + numarrivals(c) + c+numarrivals(c)-1 + numel(numarrivals) + rethrow(); + end -% Now loop over numarrivals and create events -fprintf('Making events') -eventnum = 0; -for c=1:numel(numarrivals) - if numarrivals(c) - fprintf('.') - eventnum = eventnum + 1; - firstArrivalTime(eventnum) = arrtimes(c); - lastArrivalTime(eventnum) = arrtimes(c + numarrivals(c) - 1); - - try - arrivalobj2{eventnum} = arrivalobj.subset([c : c + numarrivals(c) - 1]); - catch - numarrivals(c) - c+numarrivals(c)-1 - numel(numarrivals) - rethrow(); - end - + % remove the reduced time + if exist('sites','var') + for cc=1:numel(eventarrivalobj.time) + eventarrivalobj.time(cc) = eventarrivalobj.time(cc) + eventarrivalobj.traveltime(cc)/86400; + end + end + + % remove duplicate channels + [uc,ia] = unique(eventarrivalobj.channelinfo, 'stable'); + duplicatecount = duplicatecount + numel(eventarrivalobj.channelinfo) - numel(uc); + eventarrivalobj = eventarrivalobj.subset(ia); + + % set the arrivalobj for this event + arrivalobj2{eventnum} = eventarrivalobj; + firstArrivalTime(eventnum) = min(eventarrivalobj.time); + lastArrivalTime(eventnum) = max(eventarrivalobj.time); + end + if mod(c,30) == 0 + fprintf('\nProcessed %d out of %d\n',c, numel(numarrivals)); + end end - if mod(c,30) == 0 - fprintf('\nProcessed %d out of %d\n',c, numel(numarrivals)); + + % refix arrivalobj - but now it has traveltimes filled out too + if exist('sites', 'var') + arrivalobj.time = arrivalobj.time + arrivalobj.traveltime/86400; end -end -fprintf('\nCreating Catalog\n') -catalogobj = Catalog(firstArrivalTime, [], [], [], [], {}, {}, 'ontime', firstArrivalTime, 'offtime', lastArrivalTime); -catalogobj.arrivals = arrivalobj2; + + %% CREATE CATALOG + fprintf('\nCreating Catalog\n') + olon = source.lon*ones(size(otime)); + olat = source.lat*ones(size(otime)); + catalogobj = Catalog(otime, olon, olat, [], [], {}, {}, 'ontime', firstArrivalTime, 'offtime', lastArrivalTime); + catalogobj.arrivals = arrivalobj2; + fprintf('%d arrivals were determined to be duplicates using a time window of %.1f seconds\n',duplicatecount, maxTimeDiff); + +end % function result = alreadyHaveArrivalFromThisChannel(ctaglist, thisctag) -% result = sum(cellfun(@(s) ~isempty(strfind(thisctag, s)), ctaglist)); \ No newline at end of file +% result = sum(cellfun(@(s) ~isempty(strfind(thisctag, s)), ctaglist)); +%end \ No newline at end of file diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m index c19242e..d22b407 100755 --- a/core/@Catalog/Catalog.m +++ b/core/@Catalog/Catalog.m @@ -3,7 +3,7 @@ % See also EventRate, readEvents, Catalog/Cookbook classdef Catalog - properties(Dependent) % These all come from table, computed on the fly + properties otime = [];% origin time date = {}; time = {}; @@ -16,11 +16,8 @@ ontime = []; offtime = []; - numberOfEvents = 0; - - end - - properties % These are properties of the catalog itself + + request = struct(); % request.dataformat = ''; % request.minimumLongitude = -Inf; @@ -38,12 +35,11 @@ waveforms = {}; % cell array with one vector waveform objects per event end - properties(Hidden) % internal, external code cannot access them - table = table([], [], [],[], [], [], [], {}, {}, [], [], ... - 'VariableNames', ... - {'otime' 'date' 'time' 'lon' 'lat' 'depth' 'mag' 'magtype' 'etype' 'ontime' 'offtime'}); + properties(Dependent) + numberOfEvents; end + methods %function obj = Catalog(otime, lon, lat, depth, mag, magtype, etype, varargin) @@ -56,13 +52,13 @@ return end - % Table constructor - if nargin==1 - if isa(varargin{1},'table') - obj.table = varargin{1}; - end - return - end +% % Table constructor +% if nargin==1 +% if isa(varargin{1},'table') +% obj.table = varargin{1}; +% end +% return +% end % Parse required, optional and param-value pair arguments, % set default values, and add validation conditions @@ -138,63 +134,67 @@ end clear s s1 s2 - dstr = datestr(otime, 'yyyy_mm_dd'); - tstr = datestr(otime, 'HH:MM:SS.fff'); - tstr = tstr(:,1:10); - - obj.table = table(otime, dstr, tstr, ... - lon, lat, depth, mag, magtype, etype, ontime, offtime, ... - 'VariableNames', {'otime' 'yyyy_mm_dd' 'hh_mm_ss' 'lon' 'lat' 'depth' 'mag' 'magtype' 'etype' 'ontime' 'offtime'}); +% dstr = datestr(otime, 'yyyy_mm_dd'); +% tstr = datestr(otime, 'HH:MM:SS.fff'); +% tstr = tstr(:,1:10); + obj.otime = otime; + obj.lat = lat; + obj.lon = lon; + obj.depth = depth; + obj.mag = mag; + obj.magtype = magtype; + obj.etype = etype; + obj.ontime = ontime; + obj.offtime = offtime; - obj.table = sortrows(obj.table, 'otime', 'ascend'); fprintf('Got %d events\n',obj.numberOfEvents); end end - function val = get.otime(obj) - val = obj.table.otime; - end - - function val = get.lon(obj) - val = obj.table.lon; - end - - function val = get.lat(obj) - val = obj.table.lat; - end - - function val = get.depth(obj) - val = obj.table.depth; - end - - function val = get.mag(obj) - val = obj.table.mag; - end - - function val = get.magtype(obj) - val = obj.table.magtype; - end - - function val = get.etype(obj) - val = obj.table.etype; - end - - function val = get.ontime(obj) - val = obj.table.ontime; - end - - function val = get.offtime(obj) - val = obj.table.offtime; - end +% function val = get.otime(obj) +% val = obj.table.otime; +% end +% +% function val = get.lon(obj) +% val = obj.table.lon; +% end +% +% function val = get.lat(obj) +% val = obj.table.lat; +% end +% +% function val = get.depth(obj) +% val = obj.table.depth; +% end +% +% function val = get.mag(obj) +% val = obj.table.mag; +% end +% +% function val = get.magtype(obj) +% val = obj.table.magtype; +% end +% +% function val = get.etype(obj) +% val = obj.table.etype; +% end +% +% function val = get.ontime(obj) +% val = obj.table.ontime; +% end +% +% function val = get.offtime(obj) +% val = obj.table.offtime; +% end function val = get.numberOfEvents(obj) - val = height(obj.table); + val = max([ numel(obj.otime) numel(obj.ontime)]); end function t=gettimerange(obj) - snum = nanmin([obj.table.otime; obj.table.ontime]); - enum = nanmax([obj.table.otime; obj.table.offtime]); + snum = nanmin([obj.otime; obj.ontime]); + enum = nanmax([obj.otime; obj.offtime]); t = [snum enum]; end @@ -216,7 +216,8 @@ plotprmm(catalogObject) summary(catalogObject) webmap(catalogObject) - write(catalogObject, outformat, outpath, schema) + write(catalogObject, outformat, outpath, schema) + arrivals_per_event(catalogObject) end %% --------------------------------------------------- methods (Access=protected, Hidden=true) diff --git a/core/@Catalog/addwaveforms.m b/core/@Catalog/addwaveforms.m index 308de57..1261bc5 100755 --- a/core/@Catalog/addwaveforms.m +++ b/core/@Catalog/addwaveforms.m @@ -15,7 +15,8 @@ switch nargin case 2 if isa(varargin{1},'waveform') - w_temp = extract(varargin{1}, 'time', cobj.ontime, cobj.offtime); + w_cont = clean(varargin{1}); + w_temp = extract(w_cont, 'time', cobj.ontime, cobj.offtime); for count = 1:cobj.numberOfEvents fprintf('.'); w_events{count} = w_temp(:,count); @@ -30,7 +31,7 @@ for count = 1:cobj.numberOfEvents fprintf('.'); thisw = waveform(varargin{1}, varargin{2}, cobj.ontime(count)-varargin{3}/86400, cobj.offtime(count)+varargin{4}/86400); - w_events{count} = thisw; + w_events{count} = clean(thisw); if mod(count,30) == 0 fprintf('\nDone %d out of %d\n',count, cobj.numberOfEvents); end diff --git a/core/@Catalog/combine.m b/core/@Catalog/combine.m index 5c26749..d985980 100755 --- a/core/@Catalog/combine.m +++ b/core/@Catalog/combine.m @@ -11,6 +11,6 @@ catalogObject = catalogObject1; - catalogObject.table = union(catalogObject1.table, catalogObject2.table); + catalogObject.table = union(catalogObject1.table(), catalogObject2.table()); end \ No newline at end of file diff --git a/core/@Catalog/disp.m b/core/@Catalog/disp.m index 57a69b1..64afa79 100755 --- a/core/@Catalog/disp.m +++ b/core/@Catalog/disp.m @@ -4,37 +4,46 @@ function disp(obj, showall) % methods(obj) % obj.table % return -for c=1:numel(obj) -% subclass = '*'; -% if numel(obj)>1 -% subclass = obj(c).table.etype{1}; -% end - try - disp(sprintf('%s object: Event type: %s',class(obj(c)),obj(c).request.subclass)); - catch + for c=1:numel(obj) + % subclass = '*'; + % if numel(obj)>1 + % subclass = obj(c).table.etype{1}; + % end + try + disp(sprintf('%s object: Event type: %s',class(obj(c)),obj(c).request.subclass)); + catch - end - fprintf('Number of events: %d\n',obj(c).numberOfEvents); - if obj(c).numberOfEvents > 0 - [maxmag, maxmagindex] = nanmax(obj(c).mag); - if ~isnan(maxmag) - fprintf('Biggest event: %f at %s\n',maxmag, datestr(obj(c).otime(maxmagindex))); - end - if ~exist('showall','var') - showall = false; end - if numel(obj) == 1 - if height(obj.table) <= 50 || showall - disp(obj.table) - else - disp(obj.table([1:50],:)) + fprintf('Number of events: %d\n',obj(c).numberOfEvents); + if obj(c).numberOfEvents > 0 + [maxmag, maxmagindex] = nanmax(obj(c).mag); + if ~isnan(maxmag) + fprintf('Biggest event: %f at %s\n',maxmag, datestr(obj(c).otime(maxmagindex))); + end + if ~exist('showall','var') + showall = false; + end + if numel(obj) == 1 + disp_title(); + if obj(c).numberOfEvents <= 50 || showall + rows_to_show = obj(c).numberOfEvents; + else + rows_to_show = 50; + disp('* Only showing first 50 rows/events - to see all rows/events use:') + disp('* catalogObject.disp(true)') + end + for eventnum=1:rows_to_show + disp_event(obj(c), eventnum); + end - disp('* Only showing first 50 rows/events - to see all rows/events use:') - disp('* catalogObject.disp(true)') end -% else -% disp(sprintf('Event type: %s',obj(c).table.etype{1})); end end end + +function disp_title() +end + +function disp_event(obj, eventnum) + end diff --git a/core/@Catalog/eventrate.m b/core/@Catalog/eventrate.m index e6dba67..e96911e 100755 --- a/core/@Catalog/eventrate.m +++ b/core/@Catalog/eventrate.m @@ -13,9 +13,22 @@ p = inputParser; p.addParamValue('binsize', 0, @isnumeric); p.addParamValue('stepsize', 0, @isnumeric); + p.addParamValue('snum', 0, @isnumeric); + p.addParamValue('enum', 0, @isnumeric); p.parse(varargin{:}); binsize = p.Results.binsize; stepsize = p.Results.stepsize; + snum = p.Results.snum; + enum = p.Results.enum; + if snum>0 && enum>0 + for c=1:numel(catalogObject) + indices = find(catalogObject(c).otime >= snum & catalogObject(c).otime <= enum); + catalogObject(c) = catalogObject(c).subset(indices); + end + end + + + for i=1:numel(catalogObject) if catalogObject(i).numberOfEvents > 0 diff --git a/core/@Catalog/list_waveform_metrics.m b/core/@Catalog/list_waveform_metrics.m old mode 100755 new mode 100644 index b0b5f8c..02e17e6 --- a/core/@Catalog/list_waveform_metrics.m +++ b/core/@Catalog/list_waveform_metrics.m @@ -1,17 +1,46 @@ -function list_waveform_metrics(cobj) - wcell = cobj.waveforms; - numevents = numel(wcell); - if numevents == 0 - return +function list_waveform_metrics(cobj, list_arrival_metrics_instead) +%LIST_WAVEFORM_METRICS For each event in a Catalog object, list the metrics for each station-channel. +% For this to work, the addwaveforms() and addmetrics() methods must have been run on a Catalog object. +% +% Inputs: +% cobj = a Catalog object to which waveforms, or Arrival waveforms have been added +% list_arrival_metrics_instead = an optional argument. Can be true or false. default: false +% +% list_waveform_metrics(catalogObj) List amplitude for each station-channel for each event. Catalog.addwaveforms() +% and Catalog.addmetrics() must have been run. For example, the metrics for event 1 can be viewed with: +% get(catalogObj.waveforms{1}, 'metrics') +% +% +% list_waveform_metrics(catalogObj, true) List amplitude for each Arrival in each event. Arrival.addwaveforms() +% and Arrival.addmetrics() and Arrival.associate() must have been run. For example, the metrics for event 1 can be viewed with: +% get(catalogObj.arrivals{1}.waveforms, 'metrics') + + + + if list_arrival_metrics_instead + numevents = numel(cobj.arrivals); + if numevents == 0 + disp('No Arrivals found in Catalog. You may need to run Detection.associate() or Arrival.associate()') + end + else + numevents = numel(cobj.waveforms); + if numevents == 0 + disp('No Waveforms found in Catalog. You may need to run Catalog.addwaveforms() and Catalog.addmetrics()') + end end + % get a complete list of channel tags ctags = []; numctags = 0; mintime = Inf; maxtime = -Inf; for eventnum=1:numevents - w = wcell{eventnum}; + if list_arrival_metrics_instead + w = cobj.arrivals{eventnum}.waveforms; + else + w = cobj.waveforms{eventnum}; + end [snum enum]=gettimerange(w); if min(snum)=0 + fprintf('\t%15.1f', a(ctagnum)); + else + fprintf('\t%s', ' '); %change whats here but keept o 15 characters if need change in table + end end fprintf('\n'); - end \ No newline at end of file + end diff --git a/core/@Catalog/subset.m b/core/@Catalog/subset.m index c36b719..6fccd74 100755 --- a/core/@Catalog/subset.m +++ b/core/@Catalog/subset.m @@ -1,5 +1,43 @@ -function catalogObject2 = subset(catalogObject, indices) +function cobj2 = subset(cobj, indices) %CATALOG.SUBSET Create a new catalogObject by subsetting based %on indices. - catalogObject2 = Catalog(catalogObject.table(indices,:)); + cobj2 = cobj; + N = numel(cobj.otime) + cobj2.otime = cobj.otime(indices); + if numel(cobj.lon)==N + cobj2.lon = cobj.lon(indices); + end + if numel(cobj.lat)==N + cobj2.lat = cobj.lat(indices); + end + if numel(cobj.depth)==N + cobj2.depth = cobj.depth(indices); + end + if numel(cobj.mag)==N + cobj2.mag = cobj.mag(indices); + end + if numel(cobj.magtype)==N + try % there is a limit on subsetting cell array + cobj2.magtype = cobj.magtype{indices}; + end + end + if numel(cobj.etype)==N + try + cobj2.etype = cobj.etype{indices}; + end + end + if numel(cobj.arrivals)==N + cobj2.arrivals = cobj.arrivals(indices); + end + if numel(cobj.waveforms)==N + try + cobj2.waveforms = cobj.waveforms{indices}; + end + end + if numel(cobj.ontime)==N + cobj2.ontime = cobj.ontime(indices); + end + if numel(cobj.offtime)==N + cobj2.offtime = cobj.offtime(indices); + end end \ No newline at end of file diff --git a/core/@Catalog/write.m b/core/@Catalog/write.m index dbe97e5..01e4943 100755 --- a/core/@Catalog/write.m +++ b/core/@Catalog/write.m @@ -13,7 +13,7 @@ function write(catalogObject, outformat, outpath, varargin) switch outformat case {'text';'csv';'xls'} % help table.write for more info - write(catalogObject.table, outpath); + write(catalogObject.table(), outpath); % add a table method to Catalog after changing Catalog so it no longer uses a table internally case 'antelope' @@ -83,6 +83,8 @@ function write(catalogObject, outformat, outpath, varargin) origin.lat = catalogObject.lat(eventidx); origin.depth = catalogObject.depth(eventidx); origin.etype = catalogObject.etype{eventidx}; +% if isnan(origin.lat) +% origin.lat = %%% ad dfeault % Antelope etype can only be two characters % Antelope uses 'eq' where IRIS use @@ -106,8 +108,19 @@ function write(catalogObject, outformat, outpath, varargin) 'prefor', origin.orid); % Add new record to origin table & write to - % it dbo.record = dbaddnull(dbo); + if isnan(origin.lat) + origin.lat = -999.0; + end + if isnan(origin.lon) + origin.lon = -999.0; + end + if isnan(origin.depth) + origin.depth = -999.0; + end +% if strcmp(origin.etype,'') +% origin.etype = '-'; +% end dbputv(dbo, 'lat', origin.lat, ... 'lon', origin.lon, ... 'depth', origin.depth, ... @@ -157,9 +170,16 @@ function write(catalogObject, outformat, outpath, varargin) aarid = dbnextid(dbar,'arid'); achan = ctag.channel; aiphase = thisA.iphase{arrnum}; - aamp = thisA.amp(arrnum); - %aper = thisA.per(arrnum); - %asnr = thisA.snr(arrnum); + aamp = -1.0; aper = -1.0; asnr = -1; + try + aamp = thisA.amp(arrnum); + end + try + asnr = thisA.signal2noise(arrnum); + end + try + aper = thisA.per(arrnum); + end % add arrival row dbar.record = dbaddnull(dbar); @@ -168,9 +188,9 @@ function write(catalogObject, outformat, outpath, varargin) 'arid', aarid, ... 'chan', achan, ... 'iphase', aiphase, ... - 'amp', aamp); - %'per', aper, ... - %'snr', asnr, ... + 'amp', aamp, ...); + 'per', aper, ... + 'snr', asnr); % add assoc row dbas.record = dbaddnull(dbas); @@ -206,103 +226,105 @@ function waveform2wfmeas(dbwm, thisW, aarid, asta, achan) wstartepoch = datenum2epoch(wsnum); wendepoch = datenum2epoch(wenum); u = get(thisW,'units'); -% try + try m = get(thisW, 'metrics'); % will error if metrics not defined - - % add minTime maxTime minAmp maxAmp - dbwm.record = dbaddnull(dbwm); - dbputv(dbwm, 'sta', wsta, ... - 'chan', wchan, ... - 'meastype', 'amplitude', ... - 'time', datenum2epoch(m.minTime), ... - 'endtime', datenum2epoch(m.maxTime), ... - 'val1', m.minAmp, ... - 'val2', m.maxAmp, ... - 'units1', u, ... - 'units2', u); - if exist('aarid', 'var') - if strcmp(wsta, asta) & strcmp(wchan, achan) - dbputv(dbwm, 'arid', aarid); - end - end - - % add stdev - dbwm.record = dbaddnull(dbwm); - dbputv(dbwm, 'sta', wsta, ... - 'chan', wchan, ... - 'meastype', 'stdev', ... - 'time', wstartepoch, ... - 'endtime', wendepoch, ... - 'val1', m.stdev, ... - 'units1', u); - if exist('aarid', 'var') - if strcmp(wsta, asta) & strcmp(wchan, achan) - dbputv(dbwm, 'arid', aarid); + if ~isnan(m.maxAmp) + % add minTime maxTime minAmp maxAmp + dbwm.record = dbaddnull(dbwm); + + dbputv(dbwm, 'sta', wsta, ... + 'chan', wchan, ... + 'meastype', 'amplitude', ... + 'time', datenum2epoch(m.minTime), ... + 'endtime', datenum2epoch(m.maxTime), ... + 'val1', m.minAmp, ... + 'val2', m.maxAmp, ... + 'units1', u, ... + 'units2', u); + if exist('aarid', 'var') + if strcmp(wsta, asta) & strcmp(wchan, achan) + dbputv(dbwm, 'arid', aarid); + end + end + + % add stdev + dbwm.record = dbaddnull(dbwm); + dbputv(dbwm, 'sta', wsta, ... + 'chan', wchan, ... + 'meastype', 'stdev', ... + 'time', wstartepoch, ... + 'endtime', wendepoch, ... + 'val1', m.stdev, ... + 'units1', u); + if exist('aarid', 'var') + if strcmp(wsta, asta) & strcmp(wchan, achan) + dbputv(dbwm, 'arid', aarid); + end + end + + % add energy + e = m.energy; + eu = u; + eu(eu==' ') = ''; % remove whitespace + if length(eu)>=4 & strcmp(eu(1:4), 'nm/s') + eu = 'nm^2/s'; end - end - - % add energy - e = m.energy; - eu = u; - eu(eu==' ') = ''; % remove whitespace - if length(eu)>=4 & strcmp(eu(1:4), 'nm/s') - eu = 'nm^2/s'; - end - if strcmp(eu(1:2), 'Pa') - eu = 'Pa^2.s'; - end - if strfind(eu, 'nm') - if e >= 1e12 - e = e / 1e6; - eu = strrep(eu, 'nm', 'um'); + if strcmp(eu(1:2), 'Pa') + eu = 'Pa^2.s'; + end + if strfind(eu, 'nm') + if e >= 1e12 + e = e / 1e6; + eu = strrep(eu, 'nm', 'um'); + end end + dbwm.record = dbaddnull(dbwm); + dbputv(dbwm, 'sta', wsta, ... + 'chan', wchan, ... + 'meastype', 'energy', ... + 'time', wstartepoch, ... + 'endtime', wendepoch, ... + 'val1', e, ... + 'units1', eu); + if exist('aarid', 'var') + if strcmp(wsta, asta) & strcmp(wchan, achan) + dbputv(dbwm, 'arid', aarid); + end + end + + % %names = fieldnames(m); + % names = {'stdev';'energy'}; + % for namecount = 1:numel(names) + % thisname = names{namecount}; + % + % % write a wfmeas row for each metric in + % % this waveform + % dbwm.record = dbaddnull(dbwm); + % val1 = getfield(m, thisname); + % if strfind(thisname, 'Time') + % val1=datenum2epoch(val1); + % end + % + % dbputv(dbwm, 'sta', wsta, ... + % 'chan', wchan, ... + % 'meastype', thisname, ... + % 'time', wstartepoch, ... + % 'endtime', wendepoch, ... + % 'val1', val1 ); + % %'filter', filterdesc, ... + % %'tmeas', atime, ... + % %'twin', atwin, ... + % %'val2', , ... + % %'units1', , ... + % %'units2', , ... + % if exist('aarid', 'var') + % if strcmp(wsta, asta) & strcmp(wchan, achan) + % dbputv(dbwm, 'arid', aarid); + % end + % end + % end end - dbwm.record = dbaddnull(dbwm); - dbputv(dbwm, 'sta', wsta, ... - 'chan', wchan, ... - 'meastype', 'energy', ... - 'time', wstartepoch, ... - 'endtime', wendepoch, ... - 'val1', e, ... - 'units1', eu); - if exist('aarid', 'var') - if strcmp(wsta, asta) & strcmp(wchan, achan) - dbputv(dbwm, 'arid', aarid); - end - end - -% %names = fieldnames(m); -% names = {'stdev';'energy'}; -% for namecount = 1:numel(names) -% thisname = names{namecount}; -% -% % write a wfmeas row for each metric in -% % this waveform -% dbwm.record = dbaddnull(dbwm); -% val1 = getfield(m, thisname); -% if strfind(thisname, 'Time') -% val1=datenum2epoch(val1); -% end -% -% dbputv(dbwm, 'sta', wsta, ... -% 'chan', wchan, ... -% 'meastype', thisname, ... -% 'time', wstartepoch, ... -% 'endtime', wendepoch, ... -% 'val1', val1 ); -% %'filter', filterdesc, ... -% %'tmeas', atime, ... -% %'twin', atwin, ... -% %'val2', , ... -% %'units1', , ... -% %'units2', , ... -% if exist('aarid', 'var') -% if strcmp(wsta, asta) & strcmp(wchan, achan) -% dbputv(dbwm, 'arid', aarid); -% end -% end -% end -% catch -% disp('No metrics for this waveform object') -% end + catch + disp('No metrics for this waveform object') + end end diff --git a/core/@Detection/Detection.m b/core/@Detection/Detection.m new file mode 100644 index 0000000..814c530 --- /dev/null +++ b/core/@Detection/Detection.m @@ -0,0 +1,248 @@ +%Detection the blueprint for Detection objects in GISMO +% An Detection object is a container for sta/lta detection metadata +% See also Arrival, Catalog +classdef Detection + properties + channelinfo + time + state + filterString + signal2noise + traveltime + end + methods + function obj = Detection(sta, chan, time, state, filterString, signal2noise) + % Parse required, optional and param-value pair arguments, + % set default values, and add validation conditions + p = inputParser; + p.addRequired('sta', @iscell); + p.addRequired('chan', @iscell); + %p.addRequired('time', @(t) t>0 & t101)=101; + [n x]=hist(s, 1:0.1:100); +plot(x,100-cumsum(n)/sum(n)*100,'LineWidth',5); + xlabel('signal2noise'); + %ylabel(ctaguniq{c}); + ylabel('%age') + set(gca, 'XLim', [2.4 20]); + end + figure(hf1) + legend(ctaguniq) + figure(hf2) + legend(ctaguniq) + end + + function summary(obj, showall) + % DETECTION.SUMMARY Summarise Detection object + for c=1:numel(obj) + obj(c) + numrows = numel(obj(c).time); + fprintf('Number of detections: %d\n',numrows); + if numrows > 0 + if ~exist('showall','var') + showall = false; + end + if numel(obj) == 1 + if numrows <= 50 || showall + for rownum=1:numrows + summarize_row(obj, rownum); + end + else + for rownum=1:50 + summarize_row(obj, rownum); + end + disp('* Only showing first 50 rows/arrivals - to see all rows/arrivals use:') + disp('* arrivalObject.disp(true)') + end + end + end + end + end + + function summarize_row(self, rownum) + fprintf('%s\t%s\t%s\t%e\n', ... + self.channelinfo(rownum), ... + datestr(self.time(rownum)), ... + self.state(rownum), ... + self.signal2noise(rownum)); + end + + function self2 = subset(self, columnname, findval) + self2 = self; + N = numel(self.time); + indexes = []; + if ~exist('findval','var') + % assume columnname is actually row numbers + indexes = columnname; + else + + for c=1:N + gotval = eval(sprintf('self.%s(c);',columnname)); + if isa(gotval,'cell') + gotval = cell2mat(gotval); + end + if isnumeric(gotval) + if gotval==findval + indexes = [indexes c]; + end + else + if strcmp(gotval,findval) + indexes = [indexes c]; + end + end + end + end +% if isa(self.channelinfo,'cell') +% self2.channelinfo = self.channelinfo{indexes}; +% else + self2.channelinfo = self.channelinfo(indexes); +% end + self2.time = self.time(indexes); + self2.state = self.state(indexes); + if numel(self.filterString)==N + self2.filterString = self.filterString(indexes); + end + if numel(self.signal2noise)==N + self2.signal2noise = self.signal2noise(indexes); + end + + end + + + + % prototypes + catalogobj = associate(self, maxTimeDiff, sites, source) +% write(detectionobj, FORMAT, PATH); + end + methods(Static) + function self = retrieve(dbname, subset_expr) + %DETECTION.RETRIEVE Read detections from an Antelope CSS3.0 table + % + % Usage: + % detectionObj = DETECTION.RETRIEVE(dbname, subset_expr) + + % Author: Glenn Thompson (glennthompson1971@gmail.com) + + + debug.printfunctionstack('>') + self = []; + if ~(antelope.dbtable_present(dbname, 'detection')) + fprintf('No detection table belonging to %s\n',dbname); + return + end + + fprintf('Loading detections from %s\n',dbname); + + % Open database + db = dbopen(dbname,'r'); + disp('- database opened'); + + % Apply subset expression + db = dblookup_table(db,'detection'); + disp('- detection table opened'); + if exist('subset_expr','var') + db = dbsubset(db,subset_expr); + disp('- subsetted database') + end + + nrows = dbnrecs(db); + if nrows > 0 + + % Sort by arrival time + db = dbsort(db,'time'); + disp('- sorted detection table') + + % Get the values + fprintf('- reading %d rows\n',nrows); + [sta,chan,time,state,filterString,signal2noise] = dbgetv(db,'sta','chan','time','state', 'filter','snr'); + + % Close database link + dbclose(db); + disp('- database closed') + + % Create detection object + disp('- creating detection object') + self = Detection(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(state), cellstr(filterString), signal2noise); + + disp('- complete!') + else + fprintf('No detections found matching request\n'); + end + + debug.printfunctionstack('<') + end + + %cookbook() + end +end \ No newline at end of file diff --git a/core/@Detection/Detection.m~ b/core/@Detection/Detection.m~ new file mode 100644 index 0000000..f44adc9 --- /dev/null +++ b/core/@Detection/Detection.m~ @@ -0,0 +1,238 @@ +%Detection the blueprint for Detection objects in GISMO +% An Detection object is a container for sta/lta detection metadata +% See also Arrival, Catalog +classdef Detection + properties + channelinfo + time + state + filterString + signal2noise + traveltime + end + methods + function obj = Detection(sta, chan, time, state, filterString, signal2noise) + % Parse required, optional and param-value pair arguments, + % set default values, and add validation conditions + p = inputParser; + p.addRequired('sta', @iscell); + p.addRequired('chan', @iscell); + %p.addRequired('time', @(t) t>0 & t101)=101; + [n x]=hist(s, 1:0.1:100); + plot(x,100-cumsum(n)/sum(n)*100); + xlabel('signal2noise'); + ylabel(ctaguniq{c}); + set(gca, 'XLim', [2.4 20]); + end + end + + function summary(obj, showall) + % DETECTION.SUMMARY Summarise Detection object + for c=1:numel(obj) + obj(c) + numrows = numel(obj(c).time); + fprintf('Number of detections: %d\n',numrows); + if numrows > 0 + if ~exist('showall','var') + showall = false; + end + if numel(obj) == 1 + if numrows <= 50 || showall + for rownum=1:numrows + summarize_row(obj, rownum); + end + else + for rownum=1:50 + summarize_row(obj, rownum); + end + disp('* Only showing first 50 rows/arrivals - to see all rows/arrivals use:') + disp('* arrivalObject.disp(true)') + end + end + end + end + end + + function summarize_row(self, rownum) + fprintf('%s\t%s\t%s\t%e\n', ... + self.channelinfo(rownum), ... + datestr(self.time(rownum)), ... + self.state(rownum), ... + self.signal2noise(rownum)); + end + + function self2 = subset(self, columnname, findval) + self2 = self; + N = numel(self.time); + indexes = []; + if ~exist('findval','var') + % assume columnname is actually row numbers + indexes = columnname; + else + + for c=1:N + gotval = eval(sprintf('self.%s(c);',columnname)); + if isa(gotval,'cell') + gotval = cell2mat(gotval); + end + if isnumeric(gotval) + if gotval==findval + indexes = [indexes c]; + end + else + if strcmp(gotval,findval) + indexes = [indexes c]; + end + end + end + end +% if isa(self.channelinfo,'cell') +% self2.channelinfo = self.channelinfo{indexes}; +% else + self2.channelinfo = self.channelinfo(indexes); +% end + self2.time = self.time(indexes); + self2.state = self.state(indexes); + if numel(self.filterString)==N + self2.filterString = self.filterString(indexes); + end + if numel(self.signal2noise)==N + self2.signal2noise = self.signal2noise(indexes); + end + + end + + + + % prototypes + catalogobj = associate(self, maxTimeDiff, sites) +% write(detectionobj, FORMAT, PATH); + end + methods(Static) + function self = retrieve(dbname, subset_expr) + %DETECTION.RETRIEVE Read detections from an Antelope CSS3.0 table + % + % Usage: + % detectionObj = DETECTION.RETRIEVE(dbname, subset_expr) + + % Author: Glenn Thompson (glennthompson1971@gmail.com) + + + debug.printfunctionstack('>') + self = []; + if ~(antelope.dbtable_present(dbname, 'detection')) + fprintf('No detection table belonging to %s\n',dbname); + return + end + + fprintf('Loading detections from %s\n',dbname); + + % Open database + db = dbopen(dbname,'r'); + disp('- database opened'); + + % Apply subset expression + db = dblookup_table(db,'detection'); + disp('- detection table opened'); + if exist('subset_expr','var') + db = dbsubset(db,subset_expr); + disp('- subsetted database') + end + + nrows = dbnrecs(db); + if nrows > 0 + + % Sort by arrival time + db = dbsort(db,'time'); + disp('- sorted detection table') + + % Get the values + fprintf('- reading %d rows\n',nrows); + [sta,chan,time,state,filterString,signal2noise] = dbgetv(db,'sta','chan','time','state', 'filter','snr'); + + % Close database link + dbclose(db); + disp('- database closed') + + % Create detection object + disp('- creating detection object') + self = Detection(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(state), cellstr(filterString), signal2noise); + + disp('- complete!') + else + fprintf('No detections found matching request\n'); + end + + debug.printfunctionstack('<') + end + + %cookbook() + end +end \ No newline at end of file diff --git a/core/@Detection/associate.m b/core/@Detection/associate.m new file mode 100644 index 0000000..4d26012 --- /dev/null +++ b/core/@Detection/associate.m @@ -0,0 +1,152 @@ +function catalogobj = associate(obj, maxTimeDiff, sites, source) +%ASSOCIATE Associate detections into events +% catalogobj = associate(detectionObj, maxTimeDiff) will scan through an +% Detection object and look +% for times where there are at least 2 detections on +% within maxTimeDiff seconds of each other, and declare an event. No +% checking is done to see if arrivals are on different channels +% +% catalogobj = associate(arrivals, maxTimeDiff, sites) will +% reduce the detection times by traveltimes in the sites structure. This +% allows a smaller maxTimeDiff to be used (since all airwaves should now +% line up, and all P waves etc.). +% +% Example: Imagine you have run dbdetect. You also notice that the time to cross +% the network is less than 30s. Then the following code will load the detections, subset +% for "D" states, and associate into events wherever 2 channels have an "D" +% detection within 30s. The final line returns a Catalog object - the GISMO +% container for multiple events. +% +% dbpath = '/home/t/thompsong/NEWTON/pavlof2007'; +% detobj = Detection.retrieve(dbpath, 'status=~/D/'); +% catalogobj = detobj.associate(30); +% +% A significant problem is that there may be more than 1 event in a +% 30-second window. So a different approach is to apply a differential +% travel time correction to each detection, to reduce it to a known source +% location. Then a wave might propagate across the reduced network in a +% time of 1-second, for example, allowing multiple events to be detected in +% a 30-seconds time window. +% +% dbpath = '/home/t/thompsong/NEWTON/pavlof2007/db'; +% detobj = Detection.retrieve(dbpath, 'status=~/D/'); +% sites = antelope.dbget_site_locations(dbpath, unique(detobj.channelinfo)) +% source.lat = 55.4203; +% source.lon = -161.8931; +% wavespeed = 330; % m/s +% difftt = calc_traveltime(source, sites, wavespeed); +% source.lat = 55.4173; source.lon = -161.8937; elev = 2.518; +% chantags = ChannelTag(unique(detobj.channelinfo)) +% sites = antelope.dbget_site_locations(dbpath, chantags, startTime, endTime); +% seismicspeed = 330; infrasoundspeed = 330; % m/s +% sites = compute_travel_times(source, sites, seismicspeed, infrasoundspeed); +% association_time_window = 2; % max seconds from seismic to infrasound arrival +% catalogobj = detobj.associate(maxtimediff, sites); + + %% REDUCE BY SUBTRACTING TRAVEL TIME + % If sites exist, let's correct the arrival times first + if exist('sites', 'var') + disp('Reducing travel times') + obj.traveltime = NaN(size(obj.time)); + for c=1:numel(sites) + thissite = sites(c); + thischanstr = thissite.channeltag.string(); + i = strcmp(obj.channelinfo, thischanstr)==1; + obj.traveltime(i) = sites(c).traveltime; + obj.time(i) = obj.time(i) - sites(c).traveltime/86400; + end + end + % sort obj in ascending time order + disp('Sorting') + [detection_time,indices]=sort(obj.time); + obj = obj.subset(indices); + + % First we begin with each detection and find how many detections occur in the + % maxTimeDiff seconds that follow. This way each arrival is assigned a + % weight equal to that number of detections. The point of this is to help us + % identify the beginning of each event. + fprintf('\nFinding how many detections within %e sec of each detection\n',maxTimeDiff) + for c=1:numel(detection_time) + associated_indices{c} = find(detection_time>=detection_time(c) & detection_time<=detection_time(c)+maxTimeDiff/86400); + numdetections(c) = numel(associated_indices{c}); + end + + % remove decrementing series, e.g. replace sequence + % like 6 5 4 3 2 1 with 6 0 0 0 0 0 + disp('Removing decrementing series') + numdetections = [numdetections(1) diff(numdetections)+1]; + %numdetections(numdetections<=1)=0; + + + % Now loop over numdetections and create events + fprintf('Making events') + eventnum = 0; + duplicatecount = 0; + for c=1:numel(numdetections) + fprintf('.') + if numdetections(c)>0 + fprintf('*') + eventnum = eventnum + 1; + otime(eventnum) = detection_time(c); + % lastDetectionTime(eventnum) = detection_time(c + numdetections(c) - 1); + + try + eventdetobj = obj.subset([c : c + numdetections(c) - 1]); + catch + numdetections(c) + c+numdetections(c)-1 + numel(numdetections) + rethrow(); + end + + % remove the reduced time + if exist('sites','var') + for cc=1:numel(eventdetobj.time) + eventdetobj.time(cc) = eventdetobj.time(cc) + eventdetobj.traveltime(cc)/86400; + end + end + + % remove duplicate channels + [uc,ia] = unique(eventdetobj.channelinfo, 'stable'); + duplicatecount = duplicatecount + numel(eventdetobj.channelinfo) - numel(uc); + eventdetobj = eventdetobj.subset(ia); + + + % set the arrivalobj for this event + arrivalobj{eventnum} = detection2arrival(eventdetobj); + firstDetectionTime(eventnum) = min(eventdetobj.time); + lastDetectionTime(eventnum) = max(eventdetobj.time); + + end + + if mod(c,30) == 0 + fprintf('\nProcessed %d out of %d\n',c, numel(numdetections)); + end + end + + %% CREATE CATALOG + fprintf('\nCreating Catalog\n') + olon = source.lon*ones(size(otime)); + olat = source.lat*ones(size(otime)); + catalogobj = Catalog(otime, olon, olat, [], [], {}, {}, 'ontime', firstDetectionTime, 'offtime', lastDetectionTime); + catalogobj.arrivals = arrivalobj; + fprintf('%d detections were determined to be duplicates using a time window of %.1f seconds\n',duplicatecount, maxTimeDiff); + + +end + +function arrivalobj = detection2arrival(detectionobj) + if ~isa(detectionobj.channelinfo,'ChannelTag') + ctag = ChannelTag(detectionobj.channelinfo); + else + ctag = detectionobj.channelinfo; + end + sta = get(ctag, 'station'); + chan = get(ctag, 'channel'); + arrivalobj = Arrival(cellstr(sta), cellstr(chan), detectionobj.time, cellstr(detectionobj.state), 'signal2noise', detectionobj.signal2noise); + +end + +% function result = alreadyHaveArrivalFromThisChannel(ctaglist, thisctag) +% result = sum(cellfun(@(s) ~isempty(strfind(this +% end \ No newline at end of file diff --git a/core/@Detection/associate.m~ b/core/@Detection/associate.m~ new file mode 100644 index 0000000..5a9e504 --- /dev/null +++ b/core/@Detection/associate.m~ @@ -0,0 +1,152 @@ +function catalogobj = associate(obj, maxTimeDiff, sites, source) +%ASSOCIATE Associate detections into events +% catalogobj = associate(detectionObj, maxTimeDiff) will scan through an +% Detection object and look +% for times where there are at least 2 detections on +% within maxTimeDiff seconds of each other, and declare an event. No +% checking is done to see if arrivals are on different channels +% +% catalogobj = associate(arrivals, maxTimeDiff, sites) will +% reduce the detection times by traveltimes in the sites structure. This +% allows a smaller maxTimeDiff to be used (since all airwaves should now +% line up, and all P waves etc.). +% +% Example: Imagine you have run dbdetect. You also notice that the time to cross +% the network is less than 30s. Then the following code will load the detections, subset +% for "D" states, and associate into events wherever 2 channels have an "D" +% detection within 30s. The final line returns a Catalog object - the GISMO +% container for multiple events. +% +% dbpath = '/home/t/thompsong/NEWTON/pavlof2007'; +% detobj = Detection.retrieve(dbpath, 'status=~/D/'); +% catalogobj = detobj.associate(30); +% +% A significant problem is that there may be more than 1 event in a +% 30-second window. So a different approach is to apply a differential +% travel time correction to each detection, to reduce it to a known source +% location. Then a wave might propagate across the reduced network in a +% time of 1-second, for example, allowing multiple events to be detected in +% a 30-seconds time window. +% +% dbpath = '/home/t/thompsong/NEWTON/pavlof2007/db'; +% detobj = Detection.retrieve(dbpath, 'status=~/D/'); +% sites = antelope.dbget_site_locations(dbpath, unique(detobj.channelinfo)) +% source.lat = 55.4203; +% source.lon = -161.8931; +% wavespeed = 330; % m/s +% difftt = calc_traveltime(source, sites, wavespeed); +% source.lat = 55.4173; source.lon = -161.8937; elev = 2.518; +% chantags = ChannelTag(unique(detobj.channelinfo)) +% sites = antelope.dbget_site_locations(dbpath, chantags, startTime, endTime); +% seismicspeed = 330; infrasoundspeed = 330; % m/s +% sites = compute_travel_times(source, sites, seismicspeed, infrasoundspeed); +% association_time_window = 2; % max seconds from seismic to infrasound arrival +% catalogobj = detobj.associate(maxtimediff, sites); + + %% REDUCE BY SUBTRACTING TRAVEL TIME + % If sites exist, let's correct the arrival times first + if exist('sites', 'var') + disp('Reducing travel times') + obj.traveltime = NaN(size(obj.time)); + for c=1:numel(sites) + thissite = sites(c); + thischanstr = thissite.channeltag.string(); + i = strcmp(obj.channelinfo, thischanstr)==1; + obj.traveltime(i) = sites(c).traveltime; + obj.time(i) = obj.time(i) - sites(c).traveltime/86400; + end + end + % sort obj in ascending time order + disp('Sorting') + [detection_time,indices]=sort(obj.time); + obj = obj.subset(indices); + + % First we begin with each detection and find how many detections occur in the + % maxTimeDiff seconds that follow. This way each arrival is assigned a + % weight equal to that number of detections. The point of this is to help us + % identify the beginning of each event. + fprintf('\nFinding how many detections within %e sec of each detection\n',maxTimeDiff) + for c=1:1111;%numel(detection_time) + associated_indices{c} = find(detection_time>=detection_time(c) & detection_time<=detection_time(c)+maxTimeDiff/86400); + numdetections(c) = numel(associated_indices{c}); + end + + % remove decrementing series, e.g. replace sequence + % like 6 5 4 3 2 1 with 6 0 0 0 0 0 + disp('Removing decrementing series') + numdetections = [numdetections(1) diff(numdetections)+1]; + numdetections(numdetections<=1)=0; + + + % Now loop over numdetections and create events + fprintf('Making events') + eventnum = 0; + for c=1:numel(numdetections) + fprintf('.') + if numdetections(c) + fprintf('*') + eventnum = eventnum + 1; + otime(eventnum) = detection_time(c); + % lastDetectionTime(eventnum) = detection_time(c + numdetections(c) - 1); + + try + eventdetobj = obj.subset([c : c + numdetections(c) - 1]); + catch + numdetections(c) + c+numdetections(c)-1 + numel(numdetections) + rethrow(); + end + + % remove the reduced time + if exist('sites','var') + for cc=1:numel(eventdetobj.time) + eventdetobj.time(cc) = eventdetobj.time(cc) + eventdetobj.traveltime(cc)/86400; + end + end + + % remove duplicate channels + [uc,ia] = unique(eventdetobj.channelinfo, 'stable'); + eventdetobj = eventdetobj.subset(ia); + + + % set the arrivalobj for this event + arrivalobj{eventnum} = detection2arrival(eventdetobj); + firstDetectionTime(eventnum) = min(eventdetobj.time); + lastDetectionTime(eventnum) = max(eventdetobj.time); + + end + + + + + if mod(c,100) == 0 + fprintf('\nProcessed %d out of %d\n',c, numel(numdetections)); + end + end + + %% CREATE CATALOG + fprintf('\nCreating Catalog\n') + olon = source.lon*ones(size(otime)); + olat = source.lat*ones(size(otime)); + catalogobj = Catalog(otime, olon, olat, [], [], {}, {}, 'ontime', firstDetectionTime, 'offtime', lastDetectionTime); + catalogobj.arrivals = arrivalobj; + + +end + +function arrivalobj = detection2arrival(detectionobj) + if ~isa(detectionobj.channelinfo,'ChannelTag') + ctag = ChannelTag(detectionobj.channelinfo); + else + ctag = detectionobj.channelinfo; + end + sta = get(ctag, 'station'); + chan = get(ctag, 'channel'); + arrivalobj = Arrival(sta, chan, detectionobj.time, detectionobj.state, 'signal2noise', detectionobj.signal2noise); + +end + +% function result = alreadyHaveArrivalFromThisChannel(ctaglist, thisctag) +% result = sum(cellfun(@(s) ~isempty(strfind(this +% end \ No newline at end of file diff --git a/core/@EventRate/plot.m b/core/@EventRate/plot.m index b699a6e..696f4d4 100755 --- a/core/@EventRate/plot.m +++ b/core/@EventRate/plot.m @@ -174,6 +174,15 @@ function plot(obj, varargin) % fontsize for labels - this does not appear to work set(findall(gcf,'-property','FontSize'),'FontSize',fontsize) + + % fix yticklabels + axish = get(gcf,'Children'); + for axisnum=1:numel(axish) + if strcmp('matlab.graphics.axis.Axes',class(axish(1))) + set(axish(axisnum),'YTickLabel',get(axish(axisnum),'YTick')); + end + end + end end diff --git a/core/@waveform/addmetrics.m b/core/@waveform/addmetrics.m index b4ced7b..dd99e35 100755 --- a/core/@waveform/addmetrics.m +++ b/core/@waveform/addmetrics.m @@ -28,7 +28,8 @@ fprintf('.'); clear metrics - thisW = detrend(fillgaps(w(wavnum),'interp')); % make sure there is no trend or offset + %thisW = detrend(fillgaps(w(wavnum),'interp')); % make sure there is no trend or offset + thisW = clean(w(wavnum)); wstart = get(thisW,'start'); % waveform start time wend = get(thisW,'end'); % waveform end time wstd = std(thisW); % waveform standard deviation - for noise estimation @@ -36,6 +37,28 @@ y = get(thisW,'data'); u = get(thisW,'units'); +% %% THIS IS THE START OF AN ATTEMPT TO FIND THE EVENT START AND END TIME BY RUNNING AN STA/LTA +% close all +% %plot(thisW) +% % set the STA/LTA detector +% sta_seconds = 0.7; % STA time window 0.7 seconds +% lta_seconds = 10.0; % LTA time window 7 seconds +% thresh_on = 2.0; % Event triggers "ON" with STA/LTA ratio exceeds 3 +% thresh_off = 1.0; % Event triggers "OFF" when STA/LTA ratio drops below 1.5 +% minimum_event_duration_seconds = 1.0; % Trigger must be on at least 2 secs +% pre_trigger_seconds = 0; % Do not pad before trigger +% post_trigger_seconds = 0; % Do not pad after trigger +% event_detection_params = [sta_seconds lta_seconds thresh_on thresh_off ... +% minimum_event_duration_seconds]; +% [cobj,sta,lta,sta_to_lta] = Detection.sta_lta(thisW, 'edp', event_detection_params, ... +% 'lta_mode', 'frozen'); +% % h3 = drumplot(thisW, 'mpl', 1, 'catalog', cobj); +% % plot(h3) +% input('any key') +% % Several events may be detected. Need to pick the one at the +% % expected time, considering the travel time + + % WHAT TYPE OF MAXIMUM & MINIMUM DO WE WANT? if exist('maxTimeDiff', 'var') % compute largest peak to peak amplitude @@ -53,6 +76,7 @@ N = round(fs * maxTimeDiff); % COMPUTING AMPLITUDE METRICS + try [vamin, vamax] = running_min_max(y, N); vap2p = vamax-vamin; % biggest peak to peak in each timewindow of length N [maxap2p, maxap2pindex] = max(vap2p); @@ -60,6 +84,11 @@ amax = vamax(maxap2pindex); amaxindex = find(y==amax); aminindex = find(y==amin); + catch + [amax, amaxindex] = max(thisW); + [amin, aminindex] = min(thisW); + end + else [amax, amaxindex] = max(thisW); [amin, aminindex] = min(thisW); diff --git a/core/compute_travel_times.m b/core/compute_travel_times.m new file mode 100644 index 0000000..b8ba368 --- /dev/null +++ b/core/compute_travel_times.m @@ -0,0 +1,16 @@ +function sites = compute_travel_times(source, sites, seismicspeed, infrasoundspeed) +for c=1:numel(sites) + thissite = sites(c); + + + sites(c).distance = distance(source.lat, source.lon, thissite.lat, thissite.lon) * 111000; %m + thischan = get(thissite.channeltag, 'channel'); + if thischan(2)=='D' % infrasound + sites(c).traveltime = sites(c).distance / infrasoundspeed; + elseif thischan(2)=='H' % seismic + sites(c).traveltime = sites(c).distance / seismicspeed; + else + sites(c).traveltime = 0; + end + +end \ No newline at end of file From c960b5179b49283ed6da1c157d66d3b4321559fc Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 1 May 2017 12:02:27 -0400 Subject: [PATCH 22/52] removed .m~ files --- core/@Detection/Detection.m~ | 238 ----------------------------------- core/@Detection/associate.m~ | 152 ---------------------- 2 files changed, 390 deletions(-) delete mode 100644 core/@Detection/Detection.m~ delete mode 100644 core/@Detection/associate.m~ diff --git a/core/@Detection/Detection.m~ b/core/@Detection/Detection.m~ deleted file mode 100644 index f44adc9..0000000 --- a/core/@Detection/Detection.m~ +++ /dev/null @@ -1,238 +0,0 @@ -%Detection the blueprint for Detection objects in GISMO -% An Detection object is a container for sta/lta detection metadata -% See also Arrival, Catalog -classdef Detection - properties - channelinfo - time - state - filterString - signal2noise - traveltime - end - methods - function obj = Detection(sta, chan, time, state, filterString, signal2noise) - % Parse required, optional and param-value pair arguments, - % set default values, and add validation conditions - p = inputParser; - p.addRequired('sta', @iscell); - p.addRequired('chan', @iscell); - %p.addRequired('time', @(t) t>0 & t101)=101; - [n x]=hist(s, 1:0.1:100); - plot(x,100-cumsum(n)/sum(n)*100); - xlabel('signal2noise'); - ylabel(ctaguniq{c}); - set(gca, 'XLim', [2.4 20]); - end - end - - function summary(obj, showall) - % DETECTION.SUMMARY Summarise Detection object - for c=1:numel(obj) - obj(c) - numrows = numel(obj(c).time); - fprintf('Number of detections: %d\n',numrows); - if numrows > 0 - if ~exist('showall','var') - showall = false; - end - if numel(obj) == 1 - if numrows <= 50 || showall - for rownum=1:numrows - summarize_row(obj, rownum); - end - else - for rownum=1:50 - summarize_row(obj, rownum); - end - disp('* Only showing first 50 rows/arrivals - to see all rows/arrivals use:') - disp('* arrivalObject.disp(true)') - end - end - end - end - end - - function summarize_row(self, rownum) - fprintf('%s\t%s\t%s\t%e\n', ... - self.channelinfo(rownum), ... - datestr(self.time(rownum)), ... - self.state(rownum), ... - self.signal2noise(rownum)); - end - - function self2 = subset(self, columnname, findval) - self2 = self; - N = numel(self.time); - indexes = []; - if ~exist('findval','var') - % assume columnname is actually row numbers - indexes = columnname; - else - - for c=1:N - gotval = eval(sprintf('self.%s(c);',columnname)); - if isa(gotval,'cell') - gotval = cell2mat(gotval); - end - if isnumeric(gotval) - if gotval==findval - indexes = [indexes c]; - end - else - if strcmp(gotval,findval) - indexes = [indexes c]; - end - end - end - end -% if isa(self.channelinfo,'cell') -% self2.channelinfo = self.channelinfo{indexes}; -% else - self2.channelinfo = self.channelinfo(indexes); -% end - self2.time = self.time(indexes); - self2.state = self.state(indexes); - if numel(self.filterString)==N - self2.filterString = self.filterString(indexes); - end - if numel(self.signal2noise)==N - self2.signal2noise = self.signal2noise(indexes); - end - - end - - - - % prototypes - catalogobj = associate(self, maxTimeDiff, sites) -% write(detectionobj, FORMAT, PATH); - end - methods(Static) - function self = retrieve(dbname, subset_expr) - %DETECTION.RETRIEVE Read detections from an Antelope CSS3.0 table - % - % Usage: - % detectionObj = DETECTION.RETRIEVE(dbname, subset_expr) - - % Author: Glenn Thompson (glennthompson1971@gmail.com) - - - debug.printfunctionstack('>') - self = []; - if ~(antelope.dbtable_present(dbname, 'detection')) - fprintf('No detection table belonging to %s\n',dbname); - return - end - - fprintf('Loading detections from %s\n',dbname); - - % Open database - db = dbopen(dbname,'r'); - disp('- database opened'); - - % Apply subset expression - db = dblookup_table(db,'detection'); - disp('- detection table opened'); - if exist('subset_expr','var') - db = dbsubset(db,subset_expr); - disp('- subsetted database') - end - - nrows = dbnrecs(db); - if nrows > 0 - - % Sort by arrival time - db = dbsort(db,'time'); - disp('- sorted detection table') - - % Get the values - fprintf('- reading %d rows\n',nrows); - [sta,chan,time,state,filterString,signal2noise] = dbgetv(db,'sta','chan','time','state', 'filter','snr'); - - % Close database link - dbclose(db); - disp('- database closed') - - % Create detection object - disp('- creating detection object') - self = Detection(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(state), cellstr(filterString), signal2noise); - - disp('- complete!') - else - fprintf('No detections found matching request\n'); - end - - debug.printfunctionstack('<') - end - - %cookbook() - end -end \ No newline at end of file diff --git a/core/@Detection/associate.m~ b/core/@Detection/associate.m~ deleted file mode 100644 index 5a9e504..0000000 --- a/core/@Detection/associate.m~ +++ /dev/null @@ -1,152 +0,0 @@ -function catalogobj = associate(obj, maxTimeDiff, sites, source) -%ASSOCIATE Associate detections into events -% catalogobj = associate(detectionObj, maxTimeDiff) will scan through an -% Detection object and look -% for times where there are at least 2 detections on -% within maxTimeDiff seconds of each other, and declare an event. No -% checking is done to see if arrivals are on different channels -% -% catalogobj = associate(arrivals, maxTimeDiff, sites) will -% reduce the detection times by traveltimes in the sites structure. This -% allows a smaller maxTimeDiff to be used (since all airwaves should now -% line up, and all P waves etc.). -% -% Example: Imagine you have run dbdetect. You also notice that the time to cross -% the network is less than 30s. Then the following code will load the detections, subset -% for "D" states, and associate into events wherever 2 channels have an "D" -% detection within 30s. The final line returns a Catalog object - the GISMO -% container for multiple events. -% -% dbpath = '/home/t/thompsong/NEWTON/pavlof2007'; -% detobj = Detection.retrieve(dbpath, 'status=~/D/'); -% catalogobj = detobj.associate(30); -% -% A significant problem is that there may be more than 1 event in a -% 30-second window. So a different approach is to apply a differential -% travel time correction to each detection, to reduce it to a known source -% location. Then a wave might propagate across the reduced network in a -% time of 1-second, for example, allowing multiple events to be detected in -% a 30-seconds time window. -% -% dbpath = '/home/t/thompsong/NEWTON/pavlof2007/db'; -% detobj = Detection.retrieve(dbpath, 'status=~/D/'); -% sites = antelope.dbget_site_locations(dbpath, unique(detobj.channelinfo)) -% source.lat = 55.4203; -% source.lon = -161.8931; -% wavespeed = 330; % m/s -% difftt = calc_traveltime(source, sites, wavespeed); -% source.lat = 55.4173; source.lon = -161.8937; elev = 2.518; -% chantags = ChannelTag(unique(detobj.channelinfo)) -% sites = antelope.dbget_site_locations(dbpath, chantags, startTime, endTime); -% seismicspeed = 330; infrasoundspeed = 330; % m/s -% sites = compute_travel_times(source, sites, seismicspeed, infrasoundspeed); -% association_time_window = 2; % max seconds from seismic to infrasound arrival -% catalogobj = detobj.associate(maxtimediff, sites); - - %% REDUCE BY SUBTRACTING TRAVEL TIME - % If sites exist, let's correct the arrival times first - if exist('sites', 'var') - disp('Reducing travel times') - obj.traveltime = NaN(size(obj.time)); - for c=1:numel(sites) - thissite = sites(c); - thischanstr = thissite.channeltag.string(); - i = strcmp(obj.channelinfo, thischanstr)==1; - obj.traveltime(i) = sites(c).traveltime; - obj.time(i) = obj.time(i) - sites(c).traveltime/86400; - end - end - % sort obj in ascending time order - disp('Sorting') - [detection_time,indices]=sort(obj.time); - obj = obj.subset(indices); - - % First we begin with each detection and find how many detections occur in the - % maxTimeDiff seconds that follow. This way each arrival is assigned a - % weight equal to that number of detections. The point of this is to help us - % identify the beginning of each event. - fprintf('\nFinding how many detections within %e sec of each detection\n',maxTimeDiff) - for c=1:1111;%numel(detection_time) - associated_indices{c} = find(detection_time>=detection_time(c) & detection_time<=detection_time(c)+maxTimeDiff/86400); - numdetections(c) = numel(associated_indices{c}); - end - - % remove decrementing series, e.g. replace sequence - % like 6 5 4 3 2 1 with 6 0 0 0 0 0 - disp('Removing decrementing series') - numdetections = [numdetections(1) diff(numdetections)+1]; - numdetections(numdetections<=1)=0; - - - % Now loop over numdetections and create events - fprintf('Making events') - eventnum = 0; - for c=1:numel(numdetections) - fprintf('.') - if numdetections(c) - fprintf('*') - eventnum = eventnum + 1; - otime(eventnum) = detection_time(c); - % lastDetectionTime(eventnum) = detection_time(c + numdetections(c) - 1); - - try - eventdetobj = obj.subset([c : c + numdetections(c) - 1]); - catch - numdetections(c) - c+numdetections(c)-1 - numel(numdetections) - rethrow(); - end - - % remove the reduced time - if exist('sites','var') - for cc=1:numel(eventdetobj.time) - eventdetobj.time(cc) = eventdetobj.time(cc) + eventdetobj.traveltime(cc)/86400; - end - end - - % remove duplicate channels - [uc,ia] = unique(eventdetobj.channelinfo, 'stable'); - eventdetobj = eventdetobj.subset(ia); - - - % set the arrivalobj for this event - arrivalobj{eventnum} = detection2arrival(eventdetobj); - firstDetectionTime(eventnum) = min(eventdetobj.time); - lastDetectionTime(eventnum) = max(eventdetobj.time); - - end - - - - - if mod(c,100) == 0 - fprintf('\nProcessed %d out of %d\n',c, numel(numdetections)); - end - end - - %% CREATE CATALOG - fprintf('\nCreating Catalog\n') - olon = source.lon*ones(size(otime)); - olat = source.lat*ones(size(otime)); - catalogobj = Catalog(otime, olon, olat, [], [], {}, {}, 'ontime', firstDetectionTime, 'offtime', lastDetectionTime); - catalogobj.arrivals = arrivalobj; - - -end - -function arrivalobj = detection2arrival(detectionobj) - if ~isa(detectionobj.channelinfo,'ChannelTag') - ctag = ChannelTag(detectionobj.channelinfo); - else - ctag = detectionobj.channelinfo; - end - sta = get(ctag, 'station'); - chan = get(ctag, 'channel'); - arrivalobj = Arrival(sta, chan, detectionobj.time, detectionobj.state, 'signal2noise', detectionobj.signal2noise); - -end - -% function result = alreadyHaveArrivalFromThisChannel(ctaglist, thisctag) -% result = sum(cellfun(@(s) ~isempty(strfind(this -% end \ No newline at end of file From ebf215effb3e13ce0c730cbdf5b3fa362e9ad300 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 1 May 2017 12:42:09 -0400 Subject: [PATCH 23/52] added duration field to Catalog class --- core/@Catalog/Catalog.m | 12 ++++--- core/@Catalog/disp.m | 71 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 75 insertions(+), 8 deletions(-) diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m index d22b407..c3023b8 100755 --- a/core/@Catalog/Catalog.m +++ b/core/@Catalog/Catalog.m @@ -5,8 +5,8 @@ properties otime = [];% origin time - date = {}; - time = {}; +% date = {}; +% time = {}; lon = []; lat = []; depth = []; @@ -15,9 +15,6 @@ etype = {}; ontime = []; offtime = []; - - - request = struct(); % request.dataformat = ''; % request.minimumLongitude = -Inf; @@ -37,6 +34,7 @@ properties(Dependent) numberOfEvents; + duration; end @@ -187,6 +185,10 @@ % function val = get.offtime(obj) % val = obj.table.offtime; % end + + function val = get.duration(obj) + val = 86400 * (obj.offtime - obj.ontime); + end function val = get.numberOfEvents(obj) val = max([ numel(obj.otime) numel(obj.ontime)]); diff --git a/core/@Catalog/disp.m b/core/@Catalog/disp.m index 64afa79..7ec9ef3 100755 --- a/core/@Catalog/disp.m +++ b/core/@Catalog/disp.m @@ -24,7 +24,7 @@ function disp(obj, showall) showall = false; end if numel(obj) == 1 - disp_title(); + disp_title(obj); if obj(c).numberOfEvents <= 50 || showall rows_to_show = obj(c).numberOfEvents; else @@ -41,9 +41,74 @@ function disp(obj, showall) end end -function disp_title() +function disp_title(obj) + fprintf('Event'); + %if ~isempty(obj.otime) + if sum(~isnan(obj.otime)) + fprintf('\tOriginTime '); + end + if sum(~isnan(obj.ontime)) + fprintf('\tOnTime '); + end + if sum(~isnan(obj.offtime)) + fprintf('\tOffTime '); + end + if sum(~isnan(obj.offtime)) + fprintf('\tDuration'); + end + if sum(~isnan(obj.lat)) + fprintf('\tLat'); + end + if sum(~isnan(obj.lon)) + fprintf('\tLon'); + end + if sum(~isnan(obj.depth)) + fprintf('\tDepth'); + end + if sum(~isnan(obj.mag)) + fprintf('\tMag'); + end + if sum(~strcmp(obj.magtype,'u')) + fprintf('\tMagType'); + end + if sum(~strcmp(obj.etype,'u')) + fprintf('\tClass'); + end + fprintf('\n'); end function disp_event(obj, eventnum) - + %l = length(num2str(cobj.numberOfEvents)) + 1; + fprintf('%4d',eventnum); + if sum(~isnan(obj.otime)) + fprintf('\t%s',datestr(obj.otime(eventnum), 'yyyy-mm-dd HH:MM.SS.FFF') ); + end + if sum(~isnan(obj.ontime)) + fprintf('\t%s',datestr(obj.ontime(eventnum), 'yyyy-mm-dd HH:MM.SS.FFF') ); + end + if sum(~isnan(obj.offtime)) + fprintf('\t%s',datestr(obj.offtime(eventnum), 'yyyy-mm-dd HH:MM.SS.FFF') ); + end + if sum(~isnan(obj.offtime)) + fprintf('\t%.4f s', obj.duration(eventnum) ); + end + if sum(~isnan(obj.lat)) + fprintf('\t%.4f', obj.lat(eventnum) ); + end + if sum(~isnan(obj.lon)) + fprintf('\t%.4f', obj.lon(eventnum) ); + end + if sum(~isnan(obj.depth)) + fprintf('\t%.2f', obj.depth(eventnum) ); + end + if sum(~isnan(obj.mag)) + fprintf('\t%.1f', obj.mag(eventnum) ); + end + if sum(~strcmp(obj.magtype,'u')) + fprintf('\t%s', obj.magtype{eventnum} ); + end + if sum(~strcmp(obj.etype,'u')) + fprintf('\t%s', obj.etype{eventnum} ); + end + fprintf('\n'); end From 166fec47dca3d83aa560ba8a8bf829e16c53eadf Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Thu, 18 May 2017 15:28:51 -0400 Subject: [PATCH 24/52] fixed correlation cookbook --- applications/+iceweb/iceweb2017.m | 5 +++++ cookbooks/correlation_cookbook.m | 6 +++--- core/@Arrival/associate.m | 9 +++++++-- core/@Catalog/arrivals_per_event.m | 15 +++++++++++++++ core/@correlation/plot.m | 2 +- core/@correlation/private/occurrenceplot.m | 6 +++--- 6 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 core/@Catalog/arrivals_per_event.m diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index 1bd1f2e..d7714e9 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -103,6 +103,11 @@ function process_timewindow(PRODUCTS_TOP_DIR, networkName, subnetName, ChannelTa % Clean the waveforms w = clean(w); + + % Apply filterobject if exists + if ~isempty(products.waveform.filterobject) + w = filtfilt(products.waveform.filterobject, w); + end % Pad all waveforms to same start/end [wsnum wenum] = gettimerange(w); % assume gaps already filled, signal diff --git a/cookbooks/correlation_cookbook.m b/cookbooks/correlation_cookbook.m index 17390e9..4ffb3c7 100755 --- a/cookbooks/correlation_cookbook.m +++ b/cookbooks/correlation_cookbook.m @@ -213,13 +213,13 @@ plot(c1,'int',1,'lag',.01); % plot the lag value interferogram set(gcf,'Position',[50 50 700 400]); - + %% Occurence plot % Display stacked traces for the 10 largest clusters and plot them against % the time history of the events. c = crop(c,-3,10); - plot(c,'occurence',1,1:10); + plot(c,'occurrence',1,1:10); set(gcf,'Position',[50 50 700 400]); @@ -233,7 +233,7 @@ correlationVariables.c1 = c1; correlationVariables.c2 = c2; - correlationVariables.corr = corr; + %correlationVariables.corr = corr; correlationVariables.corr_matrix = corr_matrix; correlationVariables.index = index; correlationVariables.n = n; diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m index 9d1f9d8..9c66a4c 100755 --- a/core/@Arrival/associate.m +++ b/core/@Arrival/associate.m @@ -106,8 +106,13 @@ %% CREATE CATALOG fprintf('\nCreating Catalog\n') - olon = source.lon*ones(size(otime)); - olat = source.lat*ones(size(otime)); + if exist('source','var') + olon = source.lon*ones(size(otime)); + olat = source.lat*ones(size(otime)); + else + olon = NaN(size(otime)); + olat = NaN(size(otime)); + end catalogobj = Catalog(otime, olon, olat, [], [], {}, {}, 'ontime', firstArrivalTime, 'offtime', lastArrivalTime); catalogobj.arrivals = arrivalobj2; fprintf('%d arrivals were determined to be duplicates using a time window of %.1f seconds\n',duplicatecount, maxTimeDiff); diff --git a/core/@Catalog/arrivals_per_event.m b/core/@Catalog/arrivals_per_event.m new file mode 100644 index 0000000..5199283 --- /dev/null +++ b/core/@Catalog/arrivals_per_event.m @@ -0,0 +1,15 @@ +function arrivals_per_event(cobj) + N = numel(cobj.arrivals); + na = []; + if N>1 + for c=1:N + na = [na numel(cobj.arrivals{c}.time)]; + end + m = max(na); + for v=1:m + disp(sprintf('arrivals = %d, count = %d', v, sum(na==v) )); + end + end + +end + \ No newline at end of file diff --git a/core/@correlation/plot.m b/core/@correlation/plot.m index 71dc257..6f7df3b 100755 --- a/core/@correlation/plot.m +++ b/core/@correlation/plot.m @@ -162,7 +162,7 @@ function plot(c,varargin) elseif strncmpi(plottype,'DEN',3) dendrogramplot(c); elseif strncmpi(plottype,'EVE',3) % ord field has been co-opted - admin.deprecated('event plot','occurence plot') + admin.deprecated('event plot','occurrence plot') if length(ord) > 1 ord = 4; end diff --git a/core/@correlation/private/occurrenceplot.m b/core/@correlation/private/occurrenceplot.m index f5758f2..9286034 100755 --- a/core/@correlation/private/occurrenceplot.m +++ b/core/@correlation/private/occurrenceplot.m @@ -117,7 +117,7 @@ function doplotrow(c1,n,nmax,bins,nclust) % DO STACK PLOT -subplot('Position',[.5 .99-.094*n .47 .09]); +thisax = subplot('Position',[.5 .99-.094*n .47 .09]); c1 = subset(c1,include); Ts = 86400*(get(c1.W,'START')-c1.trig); Te = 86400*(get(c1.W,'END')-c1.trig); @@ -126,9 +126,9 @@ function doplotrow(c1,n,nmax,bins,nclust) c1 = crop(c1,mean(Ts),mean(Te)); w = get(c1,'WAVEFORMS'); xlim([0 get(w(end),'DURATION_EPOCH')]); -plot(w,'Color',[.7 .7 .7],'LineWidth',.5); +plot(w,'Color',[.7 .7 .7],'LineWidth',.5,'axeshandle',thisax); hold on; -plot(w(end),'Color','k','LineWidth',1); +plot(w(end),'Color','k','LineWidth',1,'axeshandle',thisax); xlim([0 get(w(end),'DURATION_EPOCH')]); ylabel(' '); set(gca,'YTickLabel',[]); title(''); From e6f4410a601cefddd0df55d77d552c9d1e7feb3d Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Sun, 19 Nov 2017 19:55:13 -0500 Subject: [PATCH 25/52] Removed deprecated from startup --- startup_GISMO.m | 2 +- tests/waveform_antelope_test.m | 26 +++++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/startup_GISMO.m b/startup_GISMO.m index 03569ad..0b0bf18 100755 --- a/startup_GISMO.m +++ b/startup_GISMO.m @@ -27,7 +27,7 @@ function startup_GISMO(gismopath) addpath(fullfile(gismopath,'core')); % ADD PATH TO PREVIOUS CORE -addpath(fullfile(gismopath,'core','deprecated')); +%addpath(fullfile(gismopath,'core','deprecated')); % ADD A PATH TO EACH DIRCTORY IN CONTRIBUTED addContributed(gismopath,'contributed'); diff --git a/tests/waveform_antelope_test.m b/tests/waveform_antelope_test.m index dc6f45f..cad91c2 100755 --- a/tests/waveform_antelope_test.m +++ b/tests/waveform_antelope_test.m @@ -1,23 +1,35 @@ %% Main function to generate tests function tests = waveform_antelope_test() -tests = functiontests(localfunctions); + tests = []; + try + if ~admin.antelope_exists() + disp('ATM not working') + return + end + catch + disp('Probably could not find admin.antelope_exists()') + end + tests = functiontests(localfunctions); end %% Test Functions function w=testFunctionOne(testCase) %% old style + global TESTDATA w=waveform(); gismodir = fileparts(which('startup_GISMO')); - demodbpath = fullfile(gismodir, 'tests', 'test_data', 'demodb'); + demodbpath = fullfile(TESTDATA, 'css3.0', 'demodb') ds = datasource('antelope',demodbpath); scnl = scnlobject('RSO','EHZ'); - flist=antelope.listMiniseedFiles(ds,scnl,datenum(2009,3,20),datenum(2009,3,20,1,0,0)); - if sum(flist.exists)>0 - w=waveform(ds,scnl,datenum(2009,3,20),datenum(2009,3,20,1,0,0)); + snum = datenum(2009,3,20); + enum = datenum(2009,3,20,1,0,0); + flist=antelope.listMiniseedFiles(ds,scnl,snum,enum) + %if sum(flist.exists)>0 + w=waveform(ds,scnl,snum,enum); w=combine(w); - else + %else disp('No waveform files found') - end + %end w %% end From 64c1f8bfc72c457013d5e1ed89a13db0cbab5cd7 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 20 Nov 2017 16:49:26 -0500 Subject: [PATCH 26/52] iblah --- core/@Catalog/list_waveform_metrics.m | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/core/@Catalog/list_waveform_metrics.m b/core/@Catalog/list_waveform_metrics.m index 02e17e6..38f6d73 100644 --- a/core/@Catalog/list_waveform_metrics.m +++ b/core/@Catalog/list_waveform_metrics.m @@ -16,16 +16,19 @@ function list_waveform_metrics(cobj, list_arrival_metrics_instead) % get(catalogObj.arrivals{1}.waveforms, 'metrics') + if ~exist('list_arrival_metrics_instead', 'var') + list_arrival_metrics_instead = false; + end if list_arrival_metrics_instead - numevents = numel(cobj.arrivals); - if numevents == 0 - disp('No Arrivals found in Catalog. You may need to run Detection.associate() or Arrival.associate()') + numevents = numel(cobj.arrivals); + if numevents == 0 + disp('No Arrivals found in Catalog. You may need to run Detection.associate() or Arrival.associate()') end else - numevents = numel(cobj.waveforms); - if numevents == 0 - disp('No Waveforms found in Catalog. You may need to run Catalog.addwaveforms() and Catalog.addmetrics()') + numevents = numel(cobj.waveforms); + if numevents == 0 + disp('No Waveforms found in Catalog. You may need to run Catalog.addwaveforms() and Catalog.addmetrics()') end end @@ -37,17 +40,17 @@ function list_waveform_metrics(cobj, list_arrival_metrics_instead) maxtime = -Inf; for eventnum=1:numevents if list_arrival_metrics_instead - w = cobj.arrivals{eventnum}.waveforms; - else - w = cobj.waveforms{eventnum}; - end + w = cobj.arrivals{eventnum}.waveforms; + else + w = cobj.waveforms{eventnum}; + end [snum enum]=gettimerange(w); if min(snum)maxtime maxtime = max(enum); - end + end ctags = unique([ctags; get(w,'ChannelTag')]); end timediff = maxtime-mintime; From 575d09bcb1db1c41f37cbb37063891e1f07e034d Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 21 Nov 2017 11:02:14 -0500 Subject: [PATCH 27/52] Changes to get hankelq working again. Necessary because some functions moved to Antelope package --- core/+antelope/dbgetarrivals.m | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/core/+antelope/dbgetarrivals.m b/core/+antelope/dbgetarrivals.m index b48b86f..6403e72 100755 --- a/core/+antelope/dbgetarrivals.m +++ b/core/+antelope/dbgetarrivals.m @@ -1,8 +1,8 @@ function a = dbgetarrivals(databasePath, subset_expr) %DBGETARRIVALS Load arrivals from an Antelope CSS3.0 database % - % arrivals = DBGETORIGINS(dbpath) opens the arrival table belonging to - % the database specified by dbpath. The arrival table will be joined to + % arrivals = DBGETORIGINS(databasePath) opens the arrival table belonging to + % the database specified by databasePath. The arrival table will be joined to % the assoc, origin and event tables too, if these are present. If all % of these is present, only arrivals corresponding to preferred origins % will be loaded. If assoc is present, but not event or origin, only @@ -29,7 +29,7 @@ % All these fields are vectors of numbers, or cell arrays of strings. % If you want more fields adding, please email Glenn % - % arrivals = DBGETARRIVALS(dbpath, subset_expression) evaluates the + % arrivals = DBGETARRIVALS(databasePath, subset_expression) evaluates the % subset specified before reading the arrivals. subset_expression must % be a valid expression accepted by dbe/dbeval. @@ -51,16 +51,16 @@ return end debug.print_debug(0, sprintf('Loading data from %s',databasePath)); - ARRIVAL_TABLE_PRESENT = dbtable_present(databasePath, 'arrival'); + ARRIVAL_TABLE_PRESENT = antelope.dbtable_present(databasePath, 'arrival'); if (ARRIVAL_TABLE_PRESENT) % Open the arrival table, subset if expr exists db = dbopen(databasePath, 'r'); db = dblookup_table(db, 'arrival'); numarrivals = dbquery(db,'dbRECORD_COUNT'); - debug.print_debug(1,sprintf('Got %d records from %s.arrival',numarrivals,dbpath)); + debug.print_debug(1,sprintf('Got %d records from %s.arrival',numarrivals,databasePath)); if numarrivals > 0 - ASSOC_TABLE_PRESENT = dbtable_present(dbpath, 'assoc'); - ORIGIN_TABLE_PRESENT = dbtable_present(dbpath, 'origin'); - EVENT_TABLE_PRESENT = dbtable_present(dbpath, 'event'); + ASSOC_TABLE_PRESENT = antelope.dbtable_present(databasePath, 'assoc'); + ORIGIN_TABLE_PRESENT = antelope.dbtable_present(databasePath, 'origin'); + EVENT_TABLE_PRESENT = antelope.dbtable_present(databasePath, 'event'); if (ASSOC_TABLE_PRESENT) % open and join the assoc table @@ -75,8 +75,9 @@ if dbnrecs(db) > 0 & (EVENT_TABLE_PRESENT) % open and join the event table and subset for prefor db4=dblookup_table( db, 'event'); - db= dbjoin(db, db4); - db = dbsubset('origin.orid = event.prefor'); + db= dbjoin(db, db4); + %dbunjoin(db, 'dbview2') + db = dbsubset( db, 'origin.orid == event.prefor'); end end end @@ -84,15 +85,18 @@ db = dbsubset(db, subset_expr); end + if dbnrecs(db)>0 % read (some) fields & close db + dbsave_view(db) [a.sta, a.chan, a.time, a.phase, a.arid, a.amp, a.snr, a.deltim] = dbgetv(db, 'sta', 'chan', 'arrival.time', 'iphase', 'arid', 'amp', 'snr', 'deltim'); if (ASSOC_TABLE_PRESENT) [a.delta, a.seaz, a.esaz, a.timeres] = dbgetv(db, 'assoc.delta', 'assoc.seaz', 'assoc.esaz', 'assoc.timeres'); end if (ORIGIN_TABLE_PRESENT) [a.otime, a.orid, a.evid] = dbgetv(db, 'origin.time', 'origin.orid', 'origin.evid'); + a.otime a.traveltime = a.time - a.otime; end @@ -112,6 +116,7 @@ % Display counts fprintf('\n%d arrivals\n',numel(a.time)); end + end end From 2fc5b9e9e00aba88a0ee1786c8a4fcdfd0ce8396 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 21 Nov 2017 15:36:27 -0500 Subject: [PATCH 28/52] hankelq now uses Arrival --- contributed_antelope/attenuation/hankelq.m | 22 +++++++++++++++------- core/@Catalog/list_waveform_metrics.m | 8 ++++++-- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/contributed_antelope/attenuation/hankelq.m b/contributed_antelope/attenuation/hankelq.m index 2e0885d..a2c89d2 100755 --- a/contributed_antelope/attenuation/hankelq.m +++ b/contributed_antelope/attenuation/hankelq.m @@ -32,8 +32,8 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) % databases, for example. if ~admin.antelope_exists - warning('Antelope not installed on this computer') - return + warning('Antelope not installed on this computer') + return end if ~exist('max_arrivals','var') @@ -42,11 +42,18 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) taper_seconds=pretrigger+posttrigger; - arrivals = antelope.dbgetarrivals(dbpath, expr); - w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); - %w = waveform_clean(w); - [y, t]=plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); + %arrivals = antelope.dbgetarrivals(dbpath, expr); + arrivalobj = Arrival.retrieve('antelope', dbpath) + arrivalobj = arrivalobj.subset([1:10]) + arrivalobj = arrivalobj.addwaveforms(datasource('antelope', dbpath), pretrigger, posttrigger); + + %arrivalobj(1) + return +% w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); + %w = waveform_clean(w); + %[y, t]=plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); + [y, t]=plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); % This is the figure we use to derive q from spectral ratios for % earthquakes of different distances (travel times) % Q comes from the slope @@ -65,7 +72,8 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) title(sprintf('Q = %.0f', q)); end -function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) +%function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) +function [y, t] = plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) FMIN = 1.0; close all diff --git a/core/@Catalog/list_waveform_metrics.m b/core/@Catalog/list_waveform_metrics.m index 38f6d73..501de62 100644 --- a/core/@Catalog/list_waveform_metrics.m +++ b/core/@Catalog/list_waveform_metrics.m @@ -58,8 +58,11 @@ function list_waveform_metrics(cobj, list_arrival_metrics_instead) % titles disp('Maximum Amplitude____________________') fprintf('\nEvent\tdd-mmm-yyyy hh:mm:ss\tJulianDay'); + for ctagnum = 1:numel(ctags) - fprintf('\t%s', ctags(ctagnum).string()); + thischan = get(ctags(ctagnum),'channel'); + %fprintf('\t%s', ctags(ctagnum).string()); + fprintf('\t%s', thischan(1:3)); end fprintf('\n.....\t....................\t.........'); for ctagnum = 1:numel(ctags) @@ -95,7 +98,8 @@ function list_waveform_metrics(cobj, list_arrival_metrics_instead) t = min([m.minTime m.maxTime t]); end end - fprintf('\t%s\t%7d', datestr(t),datenum2julday(t)); + jday = datenum2julday(t); + fprintf('\t%s\t%3d', datestr(t),mod(jday,1000)); for ctagnum = 1:numel(ctags) if a(ctagnum)>=0 fprintf('\t%15.1f', a(ctagnum)); From e3d120781646787bb5c0eaab17dfa4f7a6281da9 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Nov 2017 11:44:59 -0500 Subject: [PATCH 29/52] HankelQ is working again --- contributed_antelope/attenuation/hankelq.m | 88 +++++++++----- core/+Arrival/+read_arrivals/antelope.m | 109 +++++++++++------- core/@Arrival/Arrival.m | 73 +++++++++--- core/@Arrival/addwaveforms.m | 10 +- core/@Arrival/associate.m | 2 +- .../{plot_spectrum.m => amplitude_spectrum.m} | 56 +++++---- core/@waveform/plot.m | 8 ++ 7 files changed, 230 insertions(+), 116 deletions(-) mode change 100755 => 100644 contributed_antelope/attenuation/hankelq.m rename core/@waveform/{plot_spectrum.m => amplitude_spectrum.m} (72%) diff --git a/contributed_antelope/attenuation/hankelq.m b/contributed_antelope/attenuation/hankelq.m old mode 100755 new mode 100644 index 2e0885d..92ed491 --- a/contributed_antelope/attenuation/hankelq.m +++ b/contributed_antelope/attenuation/hankelq.m @@ -1,4 +1,4 @@ -function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) +function arrivalobj = hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) %HANKELQ Compute spectral ratio in two frequency bands % HANKELQ(dbpath, expr, freq_high, freq_low, pretrigger_seconds, posttrigger_seconds, max_arrivals ) % Loads arrivals from an arrival table (after subsetting with expr) @@ -18,7 +18,7 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) % Caribbean", BSSA, 72, 4, 1379-1402. % % Example: -% hankelq('/raid/data/antelope/databases/PLUTONS/dbmerged', 'sta==''PLWB'' && iphase==''P''', 20, 5, 0.3, 1.28, 10); +% % % History: % April 2014: Glenn Thompson @@ -31,9 +31,10 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) % also generic - works with input variables so it can be used on different % databases, for example. + if ~admin.antelope_exists - warning('Antelope not installed on this computer') - return + warning('Antelope not installed on this computer') + return end if ~exist('max_arrivals','var') @@ -42,11 +43,16 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) taper_seconds=pretrigger+posttrigger; - arrivals = antelope.dbgetarrivals(dbpath, expr); - w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); - %w = waveform_clean(w); - [y, t]=plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); + %arrivals = antelope.dbgetarrivals(dbpath, expr); + arrivalobj = Arrival.retrieve('antelope', dbpath); + arrivalobj = arrivalobj.subset(1:min([10 max_arrivals])); %when done, comment this line out, it's just for testing + arrivalobj = arrivalobj.addwaveforms(datasource('antelope', dbpath), pretrigger+taper_seconds, posttrigger+taper_seconds); +% w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); + %w = waveform_clean(w); + close all + %[y, t]=plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); + [y, t]=plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); % This is the figure we use to derive q from spectral ratios for % earthquakes of different distances (travel times) % Q comes from the slope @@ -65,9 +71,11 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) title(sprintf('Q = %.0f', q)); end -function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) +%function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) +function [y, t] = plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) + FMIN = 1.0; - close all + %% open an output file fid=fopen([mfilename,'.txt'],'w'); @@ -75,11 +83,10 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) taper_fraction = (taper_seconds * 2) / (taper_seconds * 2 + pretrigger + posttrigger); % get travel time for p-wave - p_time = arrivals.time-arrivals.otime; - - % time conversion - anum = epoch2datenum(arrivals.time); + p_time = arrivalobj.time - arrivalobj.otime + anum = arrivalobj.time; + w = arrivalobj.waveforms for i=1:min([max_arrivals numel(w)]) signal = get(w(i),'data'); N = length(signal); @@ -96,67 +103,86 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) fobj = filterobject('b', [FMIN fmax], 2); wf = filtfilt(fobj, wf); [snum, enum]=gettimerange(wf); - wf=subtime(wf, snum+taper_seconds/86400, enum-taper_seconds/86400); + + %wf=subtime(wf, snum+taper_seconds/86400, enum-taper_seconds/86400); + wf=extract(wf, 'time', snum+taper_seconds/86400, enum-taper_seconds/86400); % integrate dwf = integrate(wf); % Plot waveform - figure(i) - subplot(3,1,1); - plot(w(i), 'xunit', 'date', 'color', 'r'); %unfiltered signal + + hf(i)=figure; + ax(i,1)=subplot(3,1,1); + plot(w(i), 'xunit', 'date', 'color', 'r', 'axeshandle', ax(i,1)); %unfiltered signal hold on; - plot(wf, 'xunit', 'date', 'color', 'g'); %filtered signal + plot(wf, 'xunit', 'date', 'color', 'g', 'axeshandle', ax(i,1)); %filtered signal xlabel(sprintf('Time with arrival at %s',datestr(anum(i), 'yyyy-mm-dd HH:MM:SS.FFF'))); ylabel('Velocity'); - title(sprintf('%s.%s',arrivals.sta{i},arrivals.chan{i})); + title(sprintf('%s',arrivalobj.channelinfo{i})); % plot arrival time as grey dotted line ylim=get(gca,'YLim'); + hold on plot([anum(i) anum(i)],ylim,'Color',[0.5 0.5 0.5], 'linestyle', '--') hold off - subplot(3,1,2); - plot(dwf, 'xunit', 'date', 'color', 'b'); %filtered & integrated signal + ax(i,2)=subplot(3,1,2); + plot(dwf, 'xunit', 'date', 'color', 'b', 'axeshandle', ax(i,2)); %filtered & integrated signal xlabel(sprintf('Time with arrival at %s',datestr(anum(i), 'yyyy-mm-dd HH:MM:SS.FFF'))); ylabel('Displacement'); - title(sprintf('%s.%s',arrivals.sta{i},arrivals.chan{i})); + title(sprintf('%s',arrivalobj.channelinfo{i})); % plot arrival time as grey dotted line ylim=get(gca,'YLim'); hold on plot([anum(i) anum(i)],ylim,'Color',[0.5 0.5 0.5], 'linestyle', '--') hold off + % compute and plot amplitude spectrum - [A, phi, f] = amplitude_spectrum(dwf); - subplot(3,1,3) + s = amplitude_spectrum(dwf); + A = s.amp; + f = s.f; + phi = s.phi; +% [A, phi, f] = amplitude_spectrum(dwf); + ax(i,3)=subplot(3,1,3); + A=smooth(A); plot(f,A); + size(f) %loglog(f, A) xlabel('Frequency (Hz)') - ylabel('Displacement Amplitude Spectrum') + ylabel('Amplitude') + hold on + % evaluate the spectral ratio A1=mean(A(find(f>=f1*0.9 & f<=f1*1.1))); % for 20 Hz, this is 18-22 Hz A2=mean(A(find(f>=f2*0.8 & f<=f2*1.2 ))); % for 5 Hz this is 4-6 Hz + patch([f1*0.9 f1*1.1 f1*1.1 f1*0.9],[0 0 A1 A1],[0.9 0.9 0.9]) + patch([f2*0.8 f2*1.2 f2*1.2 f2*0.8],[0 0 A2 A2],[0.9 0.9 0.9]) disp(sprintf('A1 = %6.3f, A2 = %6.3f, A1/A2 = %5.2f',A1, A2, A1/A2)); % add title - outstr=sprintf('phase=%s orid=%d seaz=%6.2f delta=%5.3f depth=%5.1f\nA1=%5.3f A2=%5.3f A1/A2=%5.2f\n',arrivals.phase{i}, arrivals.orid(i), arrivals.seaz(i), arrivals.delta(i), arrivals.depth(i), A1, A2, A1/A2); + %outstr=sprintf('phase=%s orid=%d seaz=%6.2f delta=%5.3f depth=%5.1f\nA1=%5.3f A2=%5.3f A1/A2=%5.2f\n',arrivals.phase{i}, arrivals.orid(i), arrivals.seaz(i), arrivals.delta(i), arrivals.depth(i), A1, A2, A1/A2); + outstr=sprintf('phase=%s orid=%d seaz=%6.2f delta=%5.3f depth=%5.1f\nA1=%5.3f A2=%5.3f A1/A2=%5.2f\n',arrivalobj.iphase{i}, arrivalobj.orid(i), arrivalobj.seaz(i), arrivalobj.delta(i), arrivalobj.depth(i), A1, A2, A1/A2); title(outstr) % write out to file & close plot filename=sprintf('%s-%d',mfilename,i); print('-dpng', figure(i),filename) - close + if numel(w)>10 + close + end % compute y=ln A1/A2 & t for formula 2 in Hankel (1982) y(i) = log(A1/A2); - [times, phasenames] = arrtimes(arrivals.delta(i), arrivals.depth(i)); + [times, phasenames] = arrtimes(arrivalobj.delta(i), arrivalobj.depth(i)); phase_index = 1; found = false; while phase_index <= length(times) & ~found thisphase = lower(phasenames{phase_index}); thisphase = thisphase(1); - if strcmp(lower(arrivals.phase{i}), thisphase) + %if strcmp(lower(arrivals.phase{i}), thisphase) + if strcmp(lower(arrivalobj.iphase{i}), thisphase) t(i)=times(phase_index); found=true; end @@ -164,7 +190,7 @@ function hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) end %% write out to file - fprintf(fid,'%14.2f %8.2f %6.3f %5.1f %4.1f %4.1f %e %e\n', p_time(i), t(i), arrivals.delta(i), arrivals.depth(i), f1, f2, A1, A2); + fprintf(fid,'%14.2f %8.2f %6.3f %5.1f %4.1f %4.1f %e %e\n', p_time(i), t(i), arrivalobj.delta(i), arrivalobj.depth(i), f1, f2, A1, A2); end diff --git a/core/+Arrival/+read_arrivals/antelope.m b/core/+Arrival/+read_arrivals/antelope.m index b2385d7..ba05520 100755 --- a/core/+Arrival/+read_arrivals/antelope.m +++ b/core/+Arrival/+read_arrivals/antelope.m @@ -1,46 +1,73 @@ -function arrivalObj = read_antelope(dbname, subset_expr) +function arrivalObj = antelope(dbname, subset_expr) % LOAD_ARRIVALS Load arrivals from a CSS3.0 database - if ~(antelope.dbtable_present(dbname, 'arrival')) - fprintf('No arrival table belonging to %s\n',dbname); - return - end - - fprintf('Loading arrivals from %s\n',dbname); - - % Open database - db = dbopen(dbname,'r'); - disp('- database opened'); - - % Apply subset expression - db = dblookup_table(db,'arrival'); - disp('- arrival table opened'); - if exist('subset_expr','var') - db = dbsubset(db,subset_expr); - disp('- subsetted database') - end +% Modifed by Glenn Thompson 2017-11-28 to include some fields from assoc table +% if present, necessary to support hankelq code +ARRIVAL_TABLE_PRESENT = antelope.dbtable_present(dbname, 'arrival'); +ASSOC_TABLE_PRESENT = antelope.dbtable_present(dbname, 'assoc'); +ORIGIN_TABLE_PRESENT = antelope.dbtable_present(dbname, 'origin'); + if ~ARRIVAL_TABLE_PRESENT + fprintf('No arrival table belonging to %s\n',dbname); + return + end + + fprintf('Loading arrivals from %s\n',dbname); + + % Open database + db = dbopen(dbname,'r'); + disp('- database opened'); + + % Apply subset expression + db = dblookup_table(db,'arrival'); + disp('- arrival table opened'); + if exist('subset_expr','var') + db = dbsubset(db,subset_expr); + disp('- subsetted database') + end + + nrows = dbnrecs(db); + if nrows > 0 + + % Sort by arrival time + db = dbsort(db,'time'); + disp('- sorted arrival table') + + seaz =[]; deltim=[]; delta=[]; orid=[]; evid=[]; timeres=[]; otime=[]; depth=[]; + fprintf('- reading %d rows\n',nrows); + [sta,chan,time,amp,signal2noise,iphase, arid] = dbgetv(db,'sta','chan','time','amp','snr','iphase','arid'); + + % Join with assoc table if present + if ASSOC_TABLE_PRESENT + db2 = dblookup_table( db , 'assoc'); + db = dbjoin(db, db2); + + % Get the values + [sta,chan,time,amp,signal2noise,iphase, arid, seaz, deltim, delta, orid, timeres] = ... + dbgetv(db,'sta','chan','time','amp','snr','iphase','arid', ... + 'seaz', 'deltim', 'delta', 'orid', 'timeres'); - nrows = dbnrecs(db); - if nrows > 0 - - % Sort by arrival time - db = dbsort(db,'time'); - disp('- sorted arrival table') - - % Get the values - fprintf('- reading %d rows\n',nrows); - [sta,chan,time,amp,signal2noise,iphase] = dbgetv(db,'sta','chan','time','amp','snr','iphase'); - - % Close database link - dbclose(db); - disp('- database closed') - - % Create arrival object - disp('- creating arrival object') - arrivalObj = Arrival(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(iphase), 'amp', amp, 'signal2noise', signal2noise); - - disp('- complete!') - else - fprintf('No arrivals found matching request\n'); + % Join with origin table if present + if ORIGIN_TABLE_PRESENT + db3 = dblookup_table( db , 'origin'); + db = dbjoin(db, db3); + [evid,otime,depth] = dbgetv(db,'evid','time','depth'); end + end + + % Create arrival object + disp('- creating arrival object') + arrivalObj = Arrival(cellstr(sta), cellstr(chan), epoch2datenum(time), cellstr(iphase), ... + 'amp', amp, 'signal2noise', signal2noise, 'arid', arid, 'seaz', seaz, ... + 'deltim', deltim, 'delta', delta, 'otime', otime, 'orid', orid, ... + 'evid', evid, 'timeres', timeres, 'depth', depth); + + % Close database link + dbclose(db); + disp('- database closed') + + + disp('- complete!') + else + fprintf('No arrivals found matching request\n'); + end end diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m index 063b761..29acb8e 100755 --- a/core/@Arrival/Arrival.m +++ b/core/@Arrival/Arrival.m @@ -5,10 +5,10 @@ properties channelinfo time - %arid + arid %jdate iphase - %deltim + deltim %azimuth %delaz %slow @@ -22,7 +22,14 @@ signal2noise %qual %auth + seaz + delta + otime + orid + evid + timeres traveltime + depth waveforms end methods @@ -38,6 +45,15 @@ p.addParameter('amp', [], @isnumeric); p.addParameter('per', [], @isnumeric); p.addParameter('signal2noise', [], @isnumeric); + p.addParameter('arid', [], @isnumeric); + p.addParameter('seaz', [], @isnumeric); + p.addParameter('deltim', [], @isnumeric); + p.addParameter('delta', [], @isnumeric); + p.addParameter('otime', [], @isnumeric); + p.addParameter('orid', [], @isnumeric); + p.addParameter('evid', [], @isnumeric); + p.addParameter('timeres', [], @isnumeric); + p.addParameter('depth', [], @isnumeric); % Missed several properties out here just because of laziness. % Add them as needed. @@ -49,6 +65,15 @@ obj.amp = p.Results.amp; obj.per = p.Results.per; obj.signal2noise = p.Results.signal2noise; + obj.arid = p.Results.arid; + obj.seaz = p.Results.seaz; + obj.deltim = p.Results.deltim; + obj.delta = p.Results.delta; + obj.otime = p.Results.otime; + obj.orid = p.Results.orid; + obj.evid = p.Results.evid; + obj.timeres = p.Results.timeres; + obj.depth = p.Results.depth; debug.print_debug(1,sprintf('\nGot %d arrivals\n',numel(obj.time))); end @@ -80,7 +105,6 @@ function summary(obj, showall) % ARRIVAL.SUMMARY Summarise Arrival object for c=1:numel(obj) - obj(c) numrows = numel(obj(c).time); fprintf('Number of arrivals: %d\n',numarrs); if numrows > 0 @@ -151,22 +175,39 @@ function summarize_row(self, rownum) if numel(self.signal2noise)==N self2.signal2noise = self.signal2noise(indexes); end -% % now go into misc_fields and apply same index subset to -% % anything with N elements -% fields = fieldnames(self.misc_fields); -% for fieldnum=1:numel(fields) -% fieldval = getfield(self.misc_fields, fields{fieldnum}); -% if numel(fieldval)==N -% self2.misc_fields = setfield(self2.misc_fields, fields{fieldnum}, fieldval(indexes)); -% end -% end if numel(self.traveltime)==N self2.traveltime = self.traveltime(indexes); end + if numel(self.arid)==N + self2.arid = self.arid(indexes); + end + if numel(self.seaz)==N + self2.seaz = self.seaz(indexes); + end + if numel(self.deltim)==N + self2.deltim = self.deltim(indexes); + end + if numel(self.delta)==N + self2.delta = self.delta(indexes); + end + if numel(self.otime)==N + self2.otime = self.otime(indexes); + end + if numel(self.orid)==N + self2.orid = self.orid(indexes); + end + if numel(self.evid)==N + self2.evid = self.evid(indexes); + end if numel(self.waveforms)==N self2.waveforms = self.waveforms(indexes); + end + if numel(self.timeres)==N + self2.timeres = self.timeres(indexes); + end + if numel(self.depth)==N + self2.depth = self.depth(indexes); end - end function plot(obj) ctaguniq = unique(obj.channelinfo) @@ -252,11 +293,11 @@ function plot(obj) switch lower(dataformat) case {'css3.0','antelope', 'datascope'} if admin.antelope_exists() - try + %try self = Arrival.read_arrivals.antelope(varargin{:}); - catch + %catch % no arrivals - end + %end else warning('Antelope toolbox for MATLAB not found') end diff --git a/core/@Arrival/addwaveforms.m b/core/@Arrival/addwaveforms.m index b8fbf41..1a1a646 100755 --- a/core/@Arrival/addwaveforms.m +++ b/core/@Arrival/addwaveforms.m @@ -24,14 +24,14 @@ ctag = ChannelTag(arrivalobj.channelinfo(c)); snum = arrivalobj.time(c) - pretrigsecs/86400; enum = arrivalobj.time(c) + posttrigsecs/86400; - try +% try w = [w waveform(datasourceobj, ctag, snum, enum)]; fprintf('.'); numsuccess = numsuccess + 1; - catch - w = [w waveform()]; - fprintf('x'); - end +% catch +% w = [w waveform()]; +% fprintf('x'); +% end if mod(c,30) == 0 fprintf('\nDone %d out of %d\n',c, Na); end diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m index 9c66a4c..f5a567d 100755 --- a/core/@Arrival/associate.m +++ b/core/@Arrival/associate.m @@ -1,4 +1,4 @@ -function [catalogobj, arrivalobj] = associate(arrivalobj, maxTimeDiff, sites, source) +edit function [catalogobj, arrivalobj] = associate(arrivalobj, maxTimeDiff, sites, source) %ASSOCIATE Associate arrivals into events % [catalogobj] = associate(arrivals, maxTimeDiff) will scan through an % arrivals object and look for times where there are at least 2 arrivals on diff --git a/core/@waveform/plot_spectrum.m b/core/@waveform/amplitude_spectrum.m similarity index 72% rename from core/@waveform/plot_spectrum.m rename to core/@waveform/amplitude_spectrum.m index 7469525..f9d14ec 100755 --- a/core/@waveform/plot_spectrum.m +++ b/core/@waveform/amplitude_spectrum.m @@ -1,7 +1,7 @@ -function s = plot_spectrum(w) - % add_spectral_data Simple method to compute frequency +function s = amplitude_spectrum(w) + % amplitde_spectrum Simple method to compute amplitude % spectrum for a vector waveform object. Uses the MATLAB fft function. - % w = add_spectral_data(w) + % s = amplitude_spectrum(w) % % Inputs: % w - a waveform object (or vector of waveform objects) @@ -17,13 +17,13 @@ % freqratio - frequency ratio (Rodgers) % % Example 1 (for a single waveform object, w): - % s = add_spectral_values(w) + % s = amplitude_spectrum(w) % semilogx(s.f, s.amp) % xlabel('Frequency (Hz)') % ylabel('Amplitude'); % % Example 2 (for a waveform vector, w) - % s = add_spectral_values(w); + % s = amplitude_spectrum(w) % t = get(w, 'start') % peakf = [s.peakf]; % plot(t, peakf,'o') @@ -37,11 +37,9 @@ return end - colours = 'rgbmcyk'; - figure - ax= []; % axis array for count = 1:numel(w) - colour = colours(mod(count-1, 7) + 1); + + Fsamp= get(w(count), 'freq'); signal=get(w(count), 'data'); Nsignal=length(signal); @@ -49,17 +47,11 @@ Y=fft(signal,NFFT); % X will have same length as signal, and will be complex with a magnitude and phase NumUniquePts = NFFT/2 + 1; % Mike uses ceil((N+1)/2) in wf_fft A=2*abs(Y(1:NumUniquePts))/Nsignal; -A=smooth(A,100); + %A=smooth(A,100); phi = angle(Y(1:NumUniquePts)); f = Fsamp/2*linspace(0,1,NumUniquePts); - %ax(count)=subplot(numel(w), 1, count); - %ax(count) = loglog(f, A, colour); hold on; - ax(count) = plot(f, A, colour); hold on; - axis tight; - ctag = get(w(count),'ChannelTag'); - %title(ctag.string()); - xlabel('f (Hz)') - ylabel('Amplitude') + + % add spectrum vectors to a structure s(count).f = f; % frequencies @@ -83,9 +75,29 @@ s(count).freqratio= log2(Ah/Al); end - ctags = get(w,'ChannelTag'); - legend(ctags.string(),'location', 'south') - try - linkaxes(ax,'x'); + + + if nargout==999 + colours = 'rgbmcyk'; + figure + ax= []; % axis array + for count = 1:numel(w) + colour = colours(mod(count-1, 7) + 1); + %ax(count)=subplot(numel(w), 1, count); + %ax(count) = loglog(f, A, colour); hold on; + ax(count) = plot(f, A, colour); hold on; + axis tight; + ctag = get(w(count),'ChannelTag'); + %title(ctag.string()); + xlabel('f (Hz)') + ylabel('Amplitude') + end + + ctags = get(w,'ChannelTag'); + legend(ctags.string(),'location', 'south') + try + linkaxes(ax,'x'); + end end + end diff --git a/core/@waveform/plot.m b/core/@waveform/plot.m index a6cb0e3..aa09869 100755 --- a/core/@waveform/plot.m +++ b/core/@waveform/plot.m @@ -27,6 +27,14 @@ % % the default XUNIT is seconds % + % plot(waveform, 'axeshandle', axh, ...) plots the waveform in the axes + % defined by axh, rather than starting with a new figure. + % + % plot(waveform, 'starttime', datenum(2000,1,1,1,0,0), 'endtime', datenum(2001,1,1,1,10,0), ...) + % will force the plot to start and end at those times, regardless of + % the time data in the waveform. + % + % % For the following examples: % % W is a waveform, and W2 is a smaller waveform (from within W) % W = waveform('SSLN','SHZ','04/02/2005 01:00:00', '04/02/2005 01:10:00'); From 948907ae0fd40d2f08f38234353dac0def280ec3 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 28 Nov 2017 11:52:42 -0500 Subject: [PATCH 30/52] conflicts merged in hankelq --- contributed_antelope/attenuation/hankelq.m | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/contributed_antelope/attenuation/hankelq.m b/contributed_antelope/attenuation/hankelq.m index affbf4f..18890c2 100644 --- a/contributed_antelope/attenuation/hankelq.m +++ b/contributed_antelope/attenuation/hankelq.m @@ -44,25 +44,14 @@ taper_seconds=pretrigger+posttrigger; %arrivals = antelope.dbgetarrivals(dbpath, expr); -<<<<<<< HEAD arrivalobj = Arrival.retrieve('antelope', dbpath); - arrivalobj = arrivalobj.subset(1:min([10 max_arrivals])); %when done, comment this line out, it's just for testing + %arrivalobj = arrivalobj.subset(1:min([10 max_arrivals])); %when done, comment this line out, it's just for testing arrivalobj = arrivalobj.addwaveforms(datasource('antelope', dbpath), pretrigger+taper_seconds, posttrigger+taper_seconds); % w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); %w = waveform_clean(w); close all -======= - arrivalobj = Arrival.retrieve('antelope', dbpath) - arrivalobj = arrivalobj.subset([1:10]) - arrivalobj = arrivalobj.addwaveforms(datasource('antelope', dbpath), pretrigger, posttrigger); - - %arrivalobj(1) - return - -% w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); - %w = waveform_clean(w); ->>>>>>> 2fc5b9e9e00aba88a0ee1786c8a4fcdfd0ce8396 + %[y, t]=plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); [y, t]=plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); % This is the figure we use to derive q from spectral ratios for @@ -85,13 +74,9 @@ %function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) function [y, t] = plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) -<<<<<<< HEAD -======= ->>>>>>> 2fc5b9e9e00aba88a0ee1786c8a4fcdfd0ce8396 FMIN = 1.0; - - + %% open an output file fid=fopen([mfilename,'.txt'],'w'); From 14f75a0905b24e5ae74e73ad81721a974cf64a86 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 1 Dec 2017 18:47:29 -0500 Subject: [PATCH 31/52] adding in rocket analysis codes --- applications/+iceweb/spectrogram_iceweb.m | 92 ++-- .../ensemble/load_all_rocket_events2.m | 127 +++++ .../ensemble/plot_rocket_launch_stats.m | 55 ++ .../ensemble/preprocess_rocketmaster.m | 108 ++++ .../ensemble/rocket_airwave_event_analysis.m | 473 +++++++++++++++++ .../rockets/ensemble/rocketsimulation1d.m | 41 ++ .../rockets/ensemble/rocketsimulation2d.m | 95 ++++ applications/rockets/explosion/bacthjob.m | 3 + .../explosion/plot_main_explosion_signal.m | 27 + .../rockets/explosion/read_spacex_video.m | 21 + .../explosion/setup_rocket_event_20160901.m | 36 ++ .../rockets/explosion/spaceXplosion.m | 480 ++++++++++++++++++ .../explosion/sync_spacex_videos_usfdata.m | 214 ++++++++ .../explosion/sync_youtube_video_usfdata.m | 186 +++++++ .../rockets/infrasoundgt/.dropbox.attr | 1 + .../rockets/infrasoundgt/addtoplotpanels.m | 28 + .../infrasoundgt/analyze_infrasound_event.m | 247 +++++++++ .../rockets/infrasoundgt/apparentspeed.m | 18 + .../infrasoundgt/auto_measure_amplitudes.m | 18 + .../infrasoundgt/auto_measure_minmax3.m | 83 +++ applications/rockets/infrasoundgt/beamform.m | 94 ++++ applications/rockets/infrasoundgt/beamform2.m | 124 +++++ .../rockets/infrasoundgt/beamform2d.m | 124 +++++ .../rockets/infrasoundgt/butterworthFilter.m | 5 + .../infrasoundgt/computeSpeedOfSound.m | 2 + .../infrasoundgt/compute_infrasound_energy.m | 4 + applications/rockets/infrasoundgt/eventMap.m | 24 + .../rockets/infrasoundgt/fahrenheit2celsius.m | 2 + .../infrasoundgt/infrasoundEvent2catalog.m | 0 .../infrasoundgt/latlon2eastingsNorthings.m | 11 + .../rockets/infrasoundgt/make_master_event.m | 44 ++ applications/rockets/infrasoundgt/plotIS.m | 19 + .../rockets/infrasoundgt/plot_events.m | 11 + .../infrasoundgt/predictedTravelTimes.m | 26 + .../infrasoundgt/predictedTravelTimesNE.m | 28 + .../infrasoundgt/pressure_v_elevation.m | 25 + applications/rockets/infrasoundgt/savedata.m | 2 + .../infrasoundgt/segment_event_waveforms.m | 26 + .../infrasoundgt/speed_versus_pressure.m | 34 ++ .../rockets/infrasoundgt/writeEvents.m | 60 +++ applications/rockets/infrasoundgt/xcorr3C.m | 83 +++ .../rockets/misc/plot_average_frequency.m | 18 + contributed_antelope/attenuation/hankelq.m | 15 +- core/@Arrival/Arrival.m | 13 +- core/@Arrival/associate.m | 4 +- core/@waveform/private/load_antelope.m | 3 +- core/@waveform/spectrogram.m | 45 +- 47 files changed, 3147 insertions(+), 52 deletions(-) create mode 100755 applications/rockets/ensemble/load_all_rocket_events2.m create mode 100644 applications/rockets/ensemble/plot_rocket_launch_stats.m create mode 100755 applications/rockets/ensemble/preprocess_rocketmaster.m create mode 100755 applications/rockets/ensemble/rocket_airwave_event_analysis.m create mode 100644 applications/rockets/ensemble/rocketsimulation1d.m create mode 100644 applications/rockets/ensemble/rocketsimulation2d.m create mode 100644 applications/rockets/explosion/bacthjob.m create mode 100644 applications/rockets/explosion/plot_main_explosion_signal.m create mode 100644 applications/rockets/explosion/read_spacex_video.m create mode 100755 applications/rockets/explosion/setup_rocket_event_20160901.m create mode 100755 applications/rockets/explosion/spaceXplosion.m create mode 100644 applications/rockets/explosion/sync_spacex_videos_usfdata.m create mode 100644 applications/rockets/explosion/sync_youtube_video_usfdata.m create mode 100755 applications/rockets/infrasoundgt/.dropbox.attr create mode 100755 applications/rockets/infrasoundgt/addtoplotpanels.m create mode 100755 applications/rockets/infrasoundgt/analyze_infrasound_event.m create mode 100644 applications/rockets/infrasoundgt/apparentspeed.m create mode 100755 applications/rockets/infrasoundgt/auto_measure_amplitudes.m create mode 100755 applications/rockets/infrasoundgt/auto_measure_minmax3.m create mode 100755 applications/rockets/infrasoundgt/beamform.m create mode 100755 applications/rockets/infrasoundgt/beamform2.m create mode 100755 applications/rockets/infrasoundgt/beamform2d.m create mode 100755 applications/rockets/infrasoundgt/butterworthFilter.m create mode 100755 applications/rockets/infrasoundgt/computeSpeedOfSound.m create mode 100755 applications/rockets/infrasoundgt/compute_infrasound_energy.m create mode 100755 applications/rockets/infrasoundgt/eventMap.m create mode 100755 applications/rockets/infrasoundgt/fahrenheit2celsius.m create mode 100755 applications/rockets/infrasoundgt/infrasoundEvent2catalog.m create mode 100755 applications/rockets/infrasoundgt/latlon2eastingsNorthings.m create mode 100755 applications/rockets/infrasoundgt/make_master_event.m create mode 100755 applications/rockets/infrasoundgt/plotIS.m create mode 100755 applications/rockets/infrasoundgt/plot_events.m create mode 100755 applications/rockets/infrasoundgt/predictedTravelTimes.m create mode 100755 applications/rockets/infrasoundgt/predictedTravelTimesNE.m create mode 100644 applications/rockets/infrasoundgt/pressure_v_elevation.m create mode 100755 applications/rockets/infrasoundgt/savedata.m create mode 100755 applications/rockets/infrasoundgt/segment_event_waveforms.m create mode 100755 applications/rockets/infrasoundgt/speed_versus_pressure.m create mode 100755 applications/rockets/infrasoundgt/writeEvents.m create mode 100755 applications/rockets/infrasoundgt/xcorr3C.m create mode 100644 applications/rockets/misc/plot_average_frequency.m diff --git a/applications/+iceweb/spectrogram_iceweb.m b/applications/+iceweb/spectrogram_iceweb.m index 525c36e..74dee4d 100755 --- a/applications/+iceweb/spectrogram_iceweb.m +++ b/applications/+iceweb/spectrogram_iceweb.m @@ -1,17 +1,21 @@ -function [result,Tcell,Fcell,Ycell] = spectrogram_iceweb(s, w, spectrogramFraction, mycolormap) +function [result,Tcell,Fcell,Ycell,meanF,peakF] = spectrogram_iceweb(s, w, varargin) % SPECTROGRAM_ICEWEB produce an multi-channel spectrogram plot in the style of % AVO web (IceWeb) spectrograms, by wrapping the default MATLAB spectrogram % function % % Usage: -% [result, Tcell, Fcell, Ycell] =spectrogram_iceweb(s, w, spectrogramFraction, mycolormap) +% [result, Tcell, Fcell, Ycell] =spectrogram_iceweb(s, w, 'spectrogramFraction', 0.75, 'colormap', mycolormap, 'plot_metrics', 0) % % Inputs: % w - a vector of waveform objects % s - a spectralobject % spectrogramFraction - fraction of a panel height the spectrogram should take up (default: 0.8). % The waveform trace takes up the remaining fraction. -% mycolormap - (Optional) a user-defined colormap +% +% Name/Value pairs: +% 'mycolormap' - (Optional) a user-defined colormap +% 'plot_metrics' - superimpose a plot of mean & dominant frequency. +% 0 or 1 (default 0) % % Outputs: % (other than a figure on the screen) @@ -26,11 +30,11 @@ debug.printfunctionstack('>'); - +% varargin +% mycolormap result = 0; - % % reverse the order of the waveforms so they plot top to bottom in same % % order as in mulplt and as in waveform vector % w = fliplr(w); don't need this with calculatePanelPositions2 @@ -39,23 +43,40 @@ if numw==0 return; end -if ~exist('s','var') - s = spectralobject(1024, 924, 10, [60 120]); -end -if ~exist('spectrogramFraction','var') - spectrogramFraction = 1; -end -if ~exist('mycolormap', 'var') - mycolormap = jet; % should be using SPECTRAL_MAP here? -end +% if ~exist('s','var') +% s = spectralobject(1024, 924, 10, [60 120]); +% end +% if ~exist('spectrogramFraction','var') +% spectrogramFraction = 1; +% end +nfft = 1024; +overlap = 924; +fmax = 10; +dbLims = [60 120]; + +p = inputParser; +p.addParameter('spectrogramFraction', 0.75, @isnumeric); +p.addParameter('colormap', jet, @isnumeric); +p.addParameter('plot_metrics', 0, @isnumeric); +p.parse(varargin{:}); +spectrogramFraction = p.Results.spectrogramFraction; + + +% if nargin>=4 +% if strcmp( +% if ~exist('mycolormap', 'var') +% mycolormap = jet; % should be using SPECTRAL_MAP here? +% end %save lastspecgramcall.mat s w spectrogramFraction mycolormap debug.print_debug(2, sprintf('%d waveform objects',numel(w))); -% Default colormap is JET. Override that here. -if exist('mycolormap', 'var') - setmap(s, mycolormap); -end +% % Default colormap is JET. Override that here. +% if exist('mycolormap', 'var') +% setmap(s, mycolormap); +% end + +setmap(s, p.Results.colormap); % To get a colorbar, stop the function here and set colorbar option to vert @@ -92,23 +113,30 @@ F = F(1:max(index)); Y = Y(1:max(index),:); S = S(1:max(index),:); + + % mean frequency + numerator = abs(S)' * F; + denominator = sum(abs(S),1); + meanF{c} = numerator./denominator'; + + % peak frequency + [maxvalue,maxindex] = max(abs(S)); + peakF{c} = F(maxindex); + if isempty(dBlims) + % plot spectrogram imagesc(T,F,abs(S)); - % mean frequency - numerator = abs(S)' * F; - denominator = sum(abs(S),1); - meanF = numerator./denominator'; - hold on; plot(T,meanF,'k','LineWidth',3); - % peak frequency - [maxvalue,maxindex] = max(abs(S)); - fmax = F(maxindex); - hold on; plot(T,fmax,'r','LineWidth',3); - else imagesc(T,F,Y,dBlims); end axis xy; - colormap(mycolormap); + colormap(p.Results.colormap); + + % add plot of frequency metrics? + if p.Results.plot_metrics + hold on; plot(T,smooth(meanF{c}),'k','LineWidth',.5); + hold on; plot(T,smooth(peakF{c}),'w','LineWidth',.5); + end % Change Y-Labels to 'sta.chan' thissta = get(w(c), 'station'); @@ -124,7 +152,7 @@ end if spectrogramFraction < 1 - plotTrace(tracePosition, get(w(c),'data'), get(w(c),'freq'), Xtickmarks, wt, mycolormap, s, thissta, thischan); + plotTrace(tracePosition, get(w(c),'data'), get(w(c),'freq'), Xtickmarks, wt, p.Results.colormap, s, thissta, thischan); set(gca,'XLim', [wt.start wt.stop]); % added 20111214 to align trace with spectrogram when data missing (prevent trace being stretched out) % change the trace background color if we want to identify @@ -208,6 +236,10 @@ c = 1; while (numMins / stepMinOptions(c) > 12) c = c + 1; + if c >= numel(stepMinOptions) + c = numel(stepMinOptions); + break; + end end stepMins = stepMinOptions(c); diff --git a/applications/rockets/ensemble/load_all_rocket_events2.m b/applications/rockets/ensemble/load_all_rocket_events2.m new file mode 100755 index 0000000..71a1c99 --- /dev/null +++ b/applications/rockets/ensemble/load_all_rocket_events2.m @@ -0,0 +1,127 @@ +localgismo +cd('~/Dropbox/scratch_matlab') +close all +clear all +clc +mkdir('ensemble2') +cd('ensemble2') + +%% 0. have we run this before and saved the data? +if exist('rocketmaster.mat', 'file') + load rocketmaster.mat +else + + %% 1. Define datasources, channels etc + dbpath = '/raid/data/rockets/rocketmaster2'; + ds = datasource('antelope', dbpath); + + %% 2. Load arrival table into an Arrival object + arrivalobj = Arrival.retrieve('antelope', dbpath); + if isempty(arrivalobj) + error('No arrivals loaded') + end + + %% 3. Add a short waveform for each arrival for arrival waveform metrics + pretrigsecs = 5; posttrigsecs = 90; + arrivalobj = arrivalobj.addwaveforms(ds, pretrigsecs, posttrigsecs); + + %% 4. Compute an amplitude (and other waveform metrics) for each arrival + max_time_diff = 1.0; % max seconds between min and max + arrivalobj = arrivalobj.addmetrics(max_time_diff); + + %% 5. Associate arrivals into events in a Catalog + % 20 seconds seems to be most from BCHH to TANK infrasound + catalogobj = arrivalobj.associate(20); + + %% 6. Add waveforms for each event in the Catalog + pretriggersecs = 30; posttriggersecs = 120; + ctag = ChannelTag({'FL.BCHH.*.*'}); + catalogobj = catalogobj.addwaveforms(ds, ctag, pretriggersecs, posttriggersecs); + + %% 7. Add waveform metrics to event waveforms in Catalog + for eventnum = 1:catalogobj.numberOfEvents + w = [catalogobj.waveforms{eventnum}]; + maxTimeDiff = 2.0; + catalogobj.waveforms{eventnum} = addmetrics(w, maxTimeDiff); + end + + %% 8. save the data + save rocketmaster.mat + + %% 9. write Catalog to Antelope db + [dname, dfile] = fileparts(dbpath); + dbpath2 = sprintf('./%s_new',dfile); + %antelope.dbcp(dbpath, dbpath2); + %% + catalogobj.write('antelope',dbpath2); +end + +%% 10. Make seismograms, spectrograms and sound files +for eventnum = 1:catalogobj.numberOfEvents + % get waveform + w = [catalogobj.waveforms{eventnum}]; + thisA = catalogobj.arrivals{eventnum}; + dstr = sprintf('Event %2d: %s', eventnum, datestr(min(get(w,'start')), 26)); + + % plot seismograms + plot_panels(w(:),'alignWaveforms',1,'arrivals',thisA); + suptitle(dstr); snapnow; close + + % clean data + w=clean(w); + + % plot spectrograms of infrasound channels + figure + spectrogram(w(1:3), 'spectralobject', spectralobject(256,250,100,[30 100]) , 'plot_metrics', 1 ); + suptitle(dstr); + print('-dpng', sprintf('%s_infrasound.png',datestr(get(w(1),'start'))) ); + snapnow; close + + % plot spectrograms of seismic channels + figure + spectrogram(w(4:end), 'spectralobject', spectralobject(256,250,100,[70 140]), 'plot_metrics', 1 ); + suptitle(dstr); + print('-dpng',sprintf('%s_seismic.png',datestr(get(w(1),'start'))) ); + snapnow; close + + % make sound files + infrasoundwavname = sprintf('%s_infrasound.wav',datestr(get(w(1),'start')) ); + waveform2sound(w(3), 30, infrasoundwavname); + seismicwavname = sprintf('%s_seismic.wav',datestr(get(w(4),'start')) ); + waveform2sound(w(end), 30, seismicwavname); + +end + +%% +plot_waveform_metrics(catalogobj) + + +%% make a plot of 1 infrasound & 1 seismic for each event +winfra=[]; +wseismic=[]; +for eventnum = 1:catalogobj.numberOfEvents + % get waveform + w = [catalogobj.waveforms{eventnum}]; + index1 = find(ismember(get(w,'channel'),'HD1_00')); + index2 = find(ismember(get(w,'channel'),'HHZ_00')); + if eventnum>1 + daysdiff = abs(get(winfra(end),'start') - get(w(index1),'start')); + if daysdiff>1 + winfra = [winfra w(index1)]; + wseismic = [wseismic w(index2)]; + end + else + winfra = w(index1); + wseismic = w(index2); + end + +end +plot_panels(winfra,'alignWaveforms',1); +plot_panels(wseismic,'alignWaveforms',1); + + +%% +plot_average_frequency(wseismic) + + + diff --git a/applications/rockets/ensemble/plot_rocket_launch_stats.m b/applications/rockets/ensemble/plot_rocket_launch_stats.m new file mode 100644 index 0000000..4fa1ae4 --- /dev/null +++ b/applications/rockets/ensemble/plot_rocket_launch_stats.m @@ -0,0 +1,55 @@ +%% Import data from spreadsheet +% Script for importing data from the following spreadsheet: +% +% Workbook: /Users/gt/Dropbox/KSC_rocket_launches_2016_onwards_v3.xlsx +% Worksheet: Sheet1 +% +% To extend the code for use with different selected data or a different +% spreadsheet, generate a function instead of a script. + +% Auto-generated by MATLAB on 2017/11/27 16:46:08 + +%% Import the data +[~, ~, raw] = xlsread('/Users/gt/Dropbox/KSC_rocket_launches_2016_onwards_v3.xlsx','Sheet1'); +raw = raw(2:end,:); +raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''}; +stringVectors = string(raw(:,[3,4,5,8,13])); +stringVectors(ismissing(stringVectors)) = ''; +raw = raw(:,[1,2,6,7,10,11,12,13]); + +%% Replace non-numeric cells with NaN +R = cellfun(@(x) ~isnumeric(x) && ~islogical(x),raw); % Find non-numeric cells +raw(R) = {NaN}; % Replace non-numeric cells + +%% Create output variable +data = reshape([raw{:}],size(raw)); + +%% Create table +cols = table; + +%% Allocate imported array to column variable names +cols.DATE = data(:,1); +cols.TIME = data(:,2); +cols.COMPANY = categorical(stringVectors(:,1)); +cols.ROCKETTYPE = categorical(stringVectors(:,2)); +cols.PAYLOAD = stringVectors(:,3); +cols.MASSt = data(:,3); +cols.SLC = data(:,4); +cols.ORBIT = categorical(stringVectors(:,4)); +cols.RECORDED = data(:,5); +cols.SPACEX = data(:,6); +cols.ALL = data(:,7); +cols.OTHER = data(:,8); + + +%% Clear temporary variables +clearvars data raw stringVectors R; + +%% plot +dnum=cols.DATE-1 + datenum(1899,12,31) + cols.TIME; +figure +plot(dnum,cols.ALL,'b^-',dnum,cols.SPACEX,'g^-',dnum,cols.RECORDED,'r^-',dnum,cols.OTHER,'r*-'); +datetick('x','keeplimits') +ylabel('Cumulative number') +xlabel('Date') +legend('Launches - any', 'Launches - SpaceX', 'Launches recorded', 'Other events recorded') \ No newline at end of file diff --git a/applications/rockets/ensemble/preprocess_rocketmaster.m b/applications/rockets/ensemble/preprocess_rocketmaster.m new file mode 100755 index 0000000..281734d --- /dev/null +++ b/applications/rockets/ensemble/preprocess_rocketmaster.m @@ -0,0 +1,108 @@ +if ismac + % Code to run on Mac plaform + cd('~/Dropbox/scratch_matlab') +elseif isunix + % Code to run on Linux plaform + localgismo + cd('~/Dropbox/scratch_matlab') +elseif ispc + % Code to run on Windows platform +else + disp('Platform not supported') +end + +close all +clear all +clc +mkdir('ensemble1') +cd('ensemble1') + + + +%% 1. Define datasources, channels etc +dbpath = '/Volumes/data/rockets/rocketmaster2'; +ds = datasource('antelope', dbpath); + +if exist('rocketmaster.mat','file') + load rocketmaster.mat +else + + %% 2. Load arrival table into an Arrival object + arrivalobj = Arrival.retrieve('antelope', dbpath); + + %% 3. Add a short waveform for each arrival for arrival waveform metrics + pretrigsecs = 2; posttrigsecs = 4; + arrivalobj = arrivalobj.addwaveforms(ds, pretrigsecs, posttrigsecs); + save rocketmaster.mat + + %% 4. Compute an amplitude (and other waveform metrics) for each arrival + max_time_diff = 1.0; % max seconds between min and max + arrivalobj = arrivalobj.addmetrics(max_time_diff); + + %% 5. Associate arrivals into events in a Catalog + % 20 seconds seems to be most from BCHH to TANK infrasound + catalogobj = arrivalobj.associate(20); + + %% 6. Add waveforms for each event in the Catalog + pretriggersecs = 30; posttriggersecs = 120; % before and after first arrival in event + ctag = ChannelTag({'FL.BCHH.*.*'}); + catalogobj = catalogobj.addwaveforms(ds, ctag, pretriggersecs, posttriggersecs); + + %% 7. Add waveform metrics to event waveforms in Catalog + for eventnum = 1:catalogobj.numberOfEvents + w = [catalogobj.waveforms{eventnum}]; + catalogobj.waveforms{eventnum} = addmetrics(w); + end + + %% 8. save the data + save rocketmaster.mat + +end + +%% 9. write Catalog to Antelope db +[dname, dfile] = fileparts(dbpath); +dbpath2 = sprintf('./%s3',dfile); +if ~exist(dbpath2,'file') + antelope.dbcp(dbpath, dbpath2); % we need a copy of the site tables + catalogobj.write('antelope',dbpath2,'overwrite'); % we can overwrite or append to existing tables +end + +%% 10. List waveform metrics +catalogobj.list_waveform_metrics() + +%% 11. Make seismograms, spectrograms and sound files +for eventnum = 1:catalogobj.numberOfEvents + % get waveform + w = [catalogobj.waveforms{eventnum}]; + thisA = catalogobj.arrivals{eventnum}; + dstr = sprintf('Event %2d: %s', eventnum, datestr(min(get(w,'start')), 26)); + + % plot seismograms + plot_panels(w(:),'alignwaveforms',1,'arrivals',thisA); + suptitle(dstr); snapnow; close + + % clean data + w = fillgaps(w, 'interp'); + w = detrend(w); + + % plot spectrograms of infrasound channels + figure + spectrogram(w(1:3), spectralobject(256,250,100,[30 100]) ); + suptitle(dstr); snapnow; close + + % plot spectrograms of seismic channels + figure + spectrogram(w(4:end), spectralobject(256,250,100,[70 140]) ); + suptitle(dstr); snapnow; close + + % make sound files + infrasoundwavname = sprintf('%s_infrasound.wav',datestr(get(w(3),'start')) ); + waveform2sound(w(3), 30, infrasoundwavname); + seismicwavname = sprintf('%s_seismic.wav',datestr(get(w(3),'start')) ); + waveform2sound(w(end), 30, seismicwavname); + +end + +%% +%plot_waveform_metrics(catalogobj) + diff --git a/applications/rockets/ensemble/rocket_airwave_event_analysis.m b/applications/rockets/ensemble/rocket_airwave_event_analysis.m new file mode 100755 index 0000000..51eca84 --- /dev/null +++ b/applications/rockets/ensemble/rocket_airwave_event_analysis.m @@ -0,0 +1,473 @@ +%% setup +if ~admin.antelope_exists() + addpath('/opt/antelope/5.7') + setup +end + +% run setup_rocket_event_YYYYMMDD.m first +[~,figureOutDirectory] = fileparts(dbpath); +figureOutDirectory = sprintf('%s_v8',figureOutDirectory) +matfilename = fullfile(figureOutDirectory, 'eventmatfile.mat'); +mkdir('.',figureOutDirectory); +diary(fullfile(figureOutDirectory, 'diary.txt')); +diary on + +% in NASA data, the bearing the data is coming from is recorded, so need to +% add 180 to get where it is going +wind_direction = mod(wind_direction_from + 180, 360); +% NASA wind speed is in knots, convert into m/s +wind_speed = wind_speed_knots * 0.514444; + +% coords is copied directly out of Excel and is for seismometer, and then +% RWB infrasound. this is how to convert into channel order +lat = [coords(2:4,1); repmat(coords(1,1),3,1) ]; +lon = [coords(2:4,2); repmat(coords(1,2),3,1) ]; + +%% compute speed of sound based on temperature & rel. humidity +temperatureC = fahrenheit2celsius(temperatureF); +speed_of_sound = computeSpeedOfSound(temperatureC, relativeHumidity); +disp(sprintf('speed of sound at %.1f Celsius and %f percent relative humidity is %.1f',temperatureC, relativeHumidity, speed_of_sound)); +savedata + +%% load waveform data +disp('Loading waveform data...') +w=waveform(ds,scnl,snum,enum); +savedata + +%% Filter waveform data to center around zero +wfilt = butterworthFilter(w, 'h', 0.5, 3) +savedata + +%% plot raw waveform data +if make_figures + plot_panels(w); + outfile = sprintf('%s/waveforms_raw.png',figureOutDirectory) + feval('print', '-dpng', outfile); + close +end + +%% plot filtered waveform data +if make_figures + plot_panels(wfilt); + outfile = sprintf('%s/waveforms_filt.png',figureOutDirectory); + feval('print', '-dpng', outfile); + close +end + +%% compute predicted travel times for infrasound waves based on GPS coords & wind +%% also add lat, lon, distance and bacaz fields to waveform objects +predictedTravelTimes; +savedata + +%% compute Eastings & Northings +[easting,northing]=latlon2eastingsNorthings(source.lat, source.lon, lat, lon) +savedata + +% %% SPACEX ONLY 2016/09/01 override Easting & Northing with data from Laura GPS sruevy, which use WGS84 UTM Zone 17N ellipsoid +% % also see online tools +% source.lon = -80.57719; %-80.57718; +% source.lat = 28.56195; %28.562106; +% +% easting = [461.091 473.067 447.133 465.217 465.217 465.217]; +% northing = [1343.9 1306.23 1320.01 1321.26 1321.26 1321.26]; + +%% plot array map & compute eastings and northings +eventMap; +savedata + +%% Load arrivals +disp('Loading arrivals...') +% add check for arrivals table here +if ~(antelope.dbtable_present(dbpath, 'arrival')) + return +end +arrivals=Arrival.retrieve('antelope', dbpath); +savedata + +%% Subset out N-wave arrivals +disp('Subsetting arrivals...') +arrivals = arrivals.subset('iphase', 'N'); +savedata + +%% Associate events +maxTimeDiffForAssoc = 0.1; +[cobj, numEvents] = arrivals.associate(maxTimeDiffForAssoc); +savedata + +%% Segment event waveforms +pretrigger = 0.2; +posttrigger = 0.3; +wevent = segment_event_waveforms(wfilt, cobj, pretrigger, posttrigger); +savedata + +%% Plot infrasound events +if make_figures + plot_events(wevent, 'waveforms_infrasoundEvent', figureOutDirectory); +end + +%% Make automatic measurements +infrasoundEvent = auto_measure_amplitudes(infrasoundEvent, wevent, 'auto_measure_event1', predicted_traveltime_seconds, figureOutDirectory); +save%data + +%% Let's add snr values too +for c=1:numEvents + infrasoundEvent(c).snr = infrasoundEvent(c).p2p./infrasoundEvent(c).rms; +end + +%% correlate +infrasoundEvent = xcorr3C(wevent, infrasoundEvent, make_figures, figureOutDirectory, pretrigger) +save%data + +%% plot normalized correlation values (3x3 matrix for each event) +a=[infrasoundEvent.maxCorr]; +figure +for row=1:3 + for col=1:3 + ind = (row-1) * 3 + col; + subplot(3,3,ind) + plot(a(ind:9:end),'.') + ylabel('r'); + xlabel('event #');% meanSecsDiff - an array of size N*N where N = number of array +% components. Each element represents mean travel +% time difference between the array elements +% represented by that row and column + end +end +suptitle('Normalized correlation values for infrasound component pairs'); + +%% beamform each event, searching for azimuth & speed +disp('Beamforming to estimate backazimuth of source from array & wave speed') +for eventnum = 1:numel(infrasoundEvent) + [bestbackaz,bestsoundspeed,distanceDiff,speedMatrix] = beamform2d(easting(1:3), northing(1:3), infrasoundEvent(eventnum).secsDiff); +% [bestbackaz,bestsoundspeed,distanceDiff,speedMatrix] = beamform2d(easting(1:3), northing(1:3), infrasoundEvent(eventnum).secsDiff, 0, mean(effective_speed)); +% [bestbackaz,bestsoundspeed,distanceDiff,speedMatrix] = beamform2d(easting(1:3), northing(1:3), infrasoundEvent(eventnum).secsDiff, mean(backaz)); + infrasoundEvent(eventnum).bestbackaz = bestbackaz; + infrasoundEvent(eventnum).bestsoundspeed = bestsoundspeed; + infrasoundEvent(eventnum).distanceDiff = distanceDiff; + infrasoundEvent(eventnum).speedMatrix = speedMatrix; +end +savedata + +%% let's choose events only with high correlation values +meanCorrAll=[infrasoundEvent.meanCorr]; +good = find(meanCorrAll>=0.8); +bestsoundspeedAll=[infrasoundEvent(good).bestsoundspeed]; +bestsoundspeed = median(bestsoundspeedAll); +bestbackazAll=[infrasoundEvent(good).bestbackaz]; +bestbackaz = median(bestbackazAll); +disp(sprintf('Based on %d events with a mean xcorr of %.1f or greater, best backaz = %.1f degrees, best sound speed = %.1f m/s',numel(good),0.8,bestbackaz,bestsoundspeed)); +save%data + +%% compute distance from source to array channels +for chanNum = 1:6 + array_distance_in_km(chanNum) = sqrt(easting(chanNum).^2 + northing(chanNum).^2)/1000.0; +end +save%data + +%% compute reduced Pressure +for c=1:numEvents + infrasoundEvent(c).reducedPressure = infrasoundEvent(c).p2p(1:3).*array_distance_in_km(1:3); +end +save%data + +%% compute energies +densityEarth = 2000; % (kg/m3) sandstone is 2000-2650, limestone 2000, wet sand 1950 +%pWaveSpeed = 2000; % (m/s) sandstone 2000-3500, limestone 3500-6000, wet sand 1500-2000 +densityAir = 1.225; % (kg/m3) +pWaveSpeed = 885; % from onset sub-event +for c=1:numEvents + ev = infrasoundEvent(c); + for chanNum = 1:3 + infrasoundEnergy(chanNum) = 2 * pi * (array_distance_in_km(chanNum).^2 * 1e6) * ev.energy(chanNum) / (densityAir * speed_of_sound); + end + seismicEnergy = sum(ev.energy(4:6)) * 2 * pi * (array_distance_in_km(6).^2 * 1e6) * densityEarth * pWaveSpeed *1e-18; + infrasoundEvent(c).infrasoundEnergy = median(infrasoundEnergy); + infrasoundEvent(c).seismicEnergy = seismicEnergy; +end +save%data + +%% get event times +etime=[infrasoundEvent.FirstArrivalTime]; +etime_good = etime(good); + +%% plot meanSecsDiff vs event time - proof of well correlated events +meanSecsDiff = [infrasoundEvent.meanSecsDiff]; +meanSecsDiff_good = [infrasoundEvent(good).meanSecsDiff]; + +figure +semilogy(etime,meanSecsDiff,'r.'); +hold on; +semilogy(etime_good,meanSecsDiff_good,'kx'); +datetick('x'); +axis tight; +ylabel('Mean Secs Diff'); +xlabel('Time'); +feval('print','-dpng',fullfile(figureOutDirectory,'meansecsdiff.png')); + +%% plot amplitudes vs event time - well correlated events have higher amplitudes +p2p = [infrasoundEvent.p2p]; + +p2p_good = [infrasoundEvent(good).p2p]; +figure +for chanNum = 1:3 + subplot(3,1,chanNum ); + semilogy(etime,p2p(chanNum:6:end),'r.'); + hold on; + semilogy(etime_good,p2p_good(chanNum:6:end),'kx'); + datetick('x'); + axis tight; + if chanNum==2 + ylabel('Pressure change Pa'); + end + if chanNum==3 + xlabel('Time'); + end +end +suptitle('N wave peak-trough amplitude') +feval('print','-dpng',fullfile(figureOutDirectory,'amplitude_infrasound.png')); + + +%% +figure +for chanNum = 4:6 + subplot(3,1,chanNum-3); + semilogy(etime,p2p(chanNum:6:end),'r.'); + hold on; + semilogy(etime_good,p2p_good(chanNum:6:end),'kx'); + datetick('x'); + axis tight; + if chanNum==5 + ylabel('Velocity change nm/s'); + end + if chanNum==6 + xlabel('Time'); + end +end +suptitle('N wave peak-trough amplitude') +feval('print','-dpng',fullfile(figureOutDirectory,'amplitude_seismic.png')); + +%% plot amplitudes vs event time - well correlated events have higher amplitudes +p2p = [infrasoundEvent.p2p]; +p2p_good = [infrasoundEvent(good).p2p]; +figure +p2p1 = p2p(1:6:end); +p2p2 = p2p(2:6:end); +p2p3 = p2p(3:6:end); +p2pbest = median([p2p1; p2p2; p2p3],1); +p2pbestgood = p2pbest(good); +subplot(2,1,1); +semilogy(etime,p2pbest,'kx','MarkerSize',4); +hold on; +semilogy(etime_good,p2pbestgood,'ko','MarkerSize',6,'MarkerFaceColor','k'); +datetick('x'); +axis tight; +ylabel(sprintf('Pressure change\n(Pa)')); +xlabel('Time'); +set(gca,'XLim',[datenum(2016,9,1,13,0,0) datenum(2016,9,1,13,36,0)]); +%suptitle('peak to peak amplitude') +% ylims=get(gca,'YLim'); +% set(gca,'YLim',[ylims(1)/2,ylims(2)*2]); +% yticks=logspace(log10(ylims(1)/2),log10(ylims(2)*2),7); +% set(gca,'YTick',round(yticks)); +set(gca,'YLim',[1 2000]); +set(gca,'YTick',[1 10 100 1000]); + +p2p1 = p2p(4:6:end); +p2p2 = p2p(5:6:end); +p2p3 = p2p(6:6:end); +p2pbest = sqrt(p2p1.^2 + p2p2.^2 + p2p3.^2); +p2pbestgood = p2pbest(good); +subplot(2,1,2); +semilogy(etime,p2pbest,'kx','MarkerSize',4); +hold on; +semilogy(etime_good,p2pbestgood,'ko','MarkerSize',6,'MarkerFaceColor','k'); +datetick('x'); +axis tight; +ylabel(sprintf('Ground velocity\n(nm/sec)')); +xlabel('Time'); +%suptitle('N wave peak-trough amplitude') +set(gca,'XLim',[datenum(2016,9,1,13,0,0) datenum(2016,9,1,13,36,0)]); +set(gca,'YLim',[1e4 1e7]); +feval('print','-dpng',fullfile(figureOutDirectory,'N_wave_amplitude.png')); +%% +figure +for chanNum = 4:6 + subplot(3,1,chanNum-3); + semilogy(etime,p2p(chanNum:6:end),'r.'); + hold on; + semilogy(etime_good,p2p_good(chanNum:6:end),'kx'); + datetick('x'); + axis tight; + if chanNum==5 + ylabel('Velocity change nm/s'); + end + if chanNum==6 + xlabel('Time'); + end +end +suptitle('N wave peak-trough amplitude') +feval('print','-dpng',fullfile(figureOutDirectory,'amplitude_seismic.png')); + + +%% plot signal-to-noise vs event time - not all well correlated events have good SNR (especially seismic) +snrall = [infrasoundEvent.snr]; +snr_good = [infrasoundEvent(good).snr]; + +figure +for chanNum = 1:3 + subplot(3,1,chanNum ); + plot(etime,snrall(chanNum:6:end),'r.'); + hold on; + plot(etime_good,snr_good(chanNum:6:end),'kx'); + datetick('x'); + axis tight; + if chanNum==2 + ylabel('SNR - Infrasound'); + end + if chanNum==3 + xlabel('Time'); + end +end +feval('print','-dpng',fullfile(figureOutDirectory,'snr_infrasound.png')); +%% +figure +for chanNum = 4:6 + subplot(3,1,chanNum-3); + plot(etime,snrall(chanNum:6:end),'r.'); + hold on; + plot(etime_good,snr_good(chanNum:6:end),'kx'); + datetick('x'); + axis tight; + if chanNum==5 + ylabel('SNR - Seismic'); + end + if chanNum==6 + xlabel('Time'); + end +end +feval('print','-dpng',fullfile(figureOutDirectory,'snr_seismic.png')); + +%% Make master event +masterEvent = make_master_event(infrasoundEvent(good)) +savedata + +%% beamform master +[Mbestbackaz,Mbestsoundspeed,MdistanceDiff,MspeedMatrix] = beamform2d(easting(1:3), northing(1:3), masterEvent.secsDiff); +MspeedMatrix +savedata + +%% relative calibrations +figure; +ratio1v3 = p2p_good(1:6:end)./p2p_good(3:6:end); +ratio2v3 = p2p_good(2:6:end)./p2p_good(3:6:end); +subplot(2,1,1) +plot(etime_good, ratio1v3,'x' ); +datetick('x') +ylabel('Amplitude BD1 / BD3') +subplot(2,1,2) +plot(etime_good, ratio2v3,'x' ); +ylabel('Amplitude BD2 / BD3') +datetick('x') +suptitle('Calibrations relative to BD3 - based on good events') +disp(sprintf('Amp ratio of BD1 vs BD3: mean %.3f, median %.3f, stdev %.3f',mean(ratio1v3), median(ratio1v3), std(ratio1v3))); +disp(sprintf('Amp ratio of BD2 vs BD3: mean %.3f, median %.3f, stdev %.3f',mean(ratio2v3), median(ratio2v3), std(ratio2v3))); +feval('print','-dpng',fullfile(figureOutDirectory,'calibrations.png')); + +%% Compute best sound speed given actual coordinates of source and array +for row=1:3 + for col=1:3 + distDiff(row,col) = arclen(row) - arclen(col); + end +end +for c=1:numEvents + d=distDiff./infrasoundEvent(c).secsDiff; + infrasoundEvent(c).apparentSpeed = nanmean(nanmean(d(1:end))); + infrasoundEvent(c).apparentSpeedError = nanstd(d(1:end)); +end +save%data + +%% write events to csv file +writeEvents(fullfile(figureOutDirectory, 'catalog.csv'), infrasoundEvent, array_distance_in_km); + +%% particle motion for all good events +for c=1:numEvents + thisw = wevent{c}; + t = threecomp(thisw([6 5 4])',199); + tr = t.rotate() + tr2 = tr.particlemotion(); + tr2.plotpm() + feval('print','-dpng',fullfile(figureOutDirectory,sprintf('pm_event%03d.png',c))); + close +end + +% %% spectrum for all good events +% for c=1:numEvents +% plot_spectrum(wevent{c}); +% feval('print','-dpng',fullfile(figureOutDirectory,sprintf('spectrum_event%03d.png',c))); +% close +% end + +%% time shift traces & produce a stacked infrasound trace, and save them + + +%% look for P arrival by stacking on ground coupled airwaves for good events +% let's plot the Z channel first for all events with a normalized waveform +% plot + +%% + +if 0 + %% plot largest event + wlargestevent = extract(wfilt, 'time', datenum(2016,9,1,13,7,10), datenum(2016,9,1,13,7,45)); + plot_panels(wlargestevent); + %% + plot_spectrum(wlargestevent([2 6])); + legend('Infrasound 2 (Pa/Hz)','Seismic Z (nm/sec/Hz)','location','south') + grid on + %% + t = threecomp(wlargestevent([6 5 4])',199.5); + tr = t.rotate() + tr2 = tr.particlemotion(); + tr2.plotpm() + + %% plot buildup + wbu = extract(wfilt, 'time', datenum(2016,9,1,13,7,21), datenum(2016,9,1,13,7,28)); + plot_panels(wbu); + plot_spectrum(wbu([2 6])); + legend('Infrasound 2 (Pa/Hz)','Seismic Z (nm/sec/Hz)','location','south') + grid on + t = threecomp(wbu([6 5 4])',199.5); + tr = t.rotate() + tr2 = tr.particlemotion(); + tr2.plotpm() + %% + scroll(wbu,16) + + %% Helicorder plots for whole sequence + plot_helicorder(wfilt(2),'scale',20,'mpl',1); + plot_helicorder(wfilt(6),'scale',20,'mpl',1); + %% Plot ZRT seismogram + t = threecomp(wfilt([6 5 4])',199.5); + tr = t.rotate() + tr2 = tr.particlemotion(); + tr2.plotpm() + %% Plot R helicorder + wzrt=get(tr,'waveform'); + %plot_helicorder(wzrt(2),'scale',10,'mpl',1); + %% + mkdir('sacfiles') + savesac(wzrt(1,1), 'sacfiles', 'wz.sac'); + savesac(wzrt(1,2), 'sacfiles', 'wr.sac'); + savesac(wzrt(1,3), 'sacfiles', 'wt.sac'); + %% + for c=1:numel(wzrt) + 0 + wzrt(1,c) + 1 + ct = get(wzrt(c),'ChannelTag') + 2 + savesac(wzrt(c), 'sacfiles', sprintf('%s.sac',ct.string())); + end + %% +end +diary off \ No newline at end of file diff --git a/applications/rockets/ensemble/rocketsimulation1d.m b/applications/rockets/ensemble/rocketsimulation1d.m new file mode 100644 index 0000000..6b0ac6b --- /dev/null +++ b/applications/rockets/ensemble/rocketsimulation1d.m @@ -0,0 +1,41 @@ +clear all +close all +%% Falcon 9 full thrust +thrust = 7.607e6; % N +m_initial = 549054; % kg, mass of fully laden Falcon 9 +burntime = 162; % s +m_1ststage_empty = 22200; % kg +m_2ndstage_full = 115000; % kg +m_payload = 1700; % kg +m_lost = m_initial - m_1ststage_empty - m_2ndstage_full - m_payload; +k = m_lost / burntime; % kg/s +g = 9.8055; %m/s +b = 0.4 * k; % drag constant, kg/s +v(1)=0; +a(1)=0; +d(1)=0; +m(1)=m_initial; +g(1) = 9.8055; % m/s^2 +R=6.371e6; %m +f(1)=60; % Hz +c(1)=340; % speed of sound, m/s +for t=1:burntime + g(t+1) = g(1) * R^2/(d(t) + R)^2; + m(t+1) = m(t) - k; + drag = b * v(t); + a(t+1) = (thrust - drag) / mean([m(t) m(t+1)]) - mean([g(t) g(t+1)]) ; + v(t+1) = v(t) + a(t); + c(t+1) = max([c(1) - d(t)/500 * 2 300]); % based on tables of elevation, pressure, temperature & c + f(t+1) = f(1) - v(t+1) / c(t+1); + d(t+1) = d(t) + mean([v(t) v(t+1)]); +end +figure +t=0:burntime; +subplot(2,2,1),plot(t,a); +xlabel('time (s)'); ylabel('acceleration (m/s^2)') +subplot(2,2,2),plot(t,v/1000); +xlabel('time (s)'); ylabel('velocity (km/s)') +subplot(2,2,3),plot(t,d/1000); +xlabel('time (s)'); ylabel('altitude (km)') +subplot(2,2,4),plot(t,f); +xlabel('time (s)'); ylabel('Doppler-shifted frequency (Hz)') \ No newline at end of file diff --git a/applications/rockets/ensemble/rocketsimulation2d.m b/applications/rockets/ensemble/rocketsimulation2d.m new file mode 100644 index 0000000..29118d7 --- /dev/null +++ b/applications/rockets/ensemble/rocketsimulation2d.m @@ -0,0 +1,95 @@ +clear all +close all +%% Falcon 9 full thrust +thrust = 7.607e6; % N +m_initial = 549054; % kg, mass of fully laden Falcon 9 +burntime = 162; % s +m_1ststage_empty = 22200; % kg +m_2ndstage_full = 115000; % kg +m_payload = 1700; % kg +m_lost = m_initial - m_1ststage_empty - m_2ndstage_full - m_payload; +k = m_lost / burntime; % kg/s +b = 0.001 * k; % drag constant, kg/s +vy(1)=0; +vx(1)=0; +v(1)=0; +ay(1)=0; +ax(1)=0; +a(1)=0; +dy(1)=0; +dx(1)=0; +d(1)=0; +m(1)=m_initial; +g(1) = 9.8055; % m/s^2 +R=6.371e6; %m +f(1)=60; % Hz +c(1)=340; % speed of sound, m/s +theta(1)=0; +for t=1:burntime + theta(t+1)=min([t 80]); % thrust angle gradually increases from 0-80 degrees from the vertical + theta(t+1)=27; + g(t+1) = g(1) * R^2 / (dy(t) + R)^2; + m(t+1) = m(t) - k; + drag = b * v(t) * exp(-dy(t)/8000); + cos(deg2rad(theta(t+1))); + thrust - drag; + mean([m(t:t+1)]); + mean([g(t:t+1)]); + disp(drag) + ay(t+1) = cos(deg2rad(theta(t+1))) * (thrust - drag) / mean([m(t:t+1)]) - mean([g(t:t+1)]) ; + ax(t+1) = sin(deg2rad(theta(t+1))) * (thrust - drag) ; + vy(t+1) = vy(t) + mean([ay(t) ay(t+1)]); + vx(t+1) = vx(t) + mean([ax(t) ax(t+1)]); + dy(t+1) = dy(t) + mean([vy(t) vy(t+1)]); + dx(t+1) = dx(t) + mean([vx(t) vx(t+1)]); + a(t+1) = sqrt(ay(t+1)^2 + ax(t+1)^2); + v(t+1) = sqrt(vy(t+1)^2 + vx(t+1)^2); + d(t+1) = sqrt(dy(t+1)^2 + dx(t+1)^2); + + % now compute doppler shifted frequency - for this need to know velocity along the + % angle from launchpad to rocket + c(t+1) = max([c(1) - d(t)/500 * 2 300]); % based on tables of elevation, pressure, temperature & c + alpha(t+1) = atan(dy(t+1)/dx(t+1)); + phi(t+1) = atan(vy(t+1)/vx(t+1)); + vaway(t+1) = cos(alpha(t+1)-phi(t+1)) * v(t+1); + f(t+1) = f(1) - vaway(t+1) / c(t+1); +end +figure(1) +t=0:burntime; +subplot(2,2,1),plot(t,a); +xlabel('time (s)'); ylabel('acceleration (m/s^2)') +subplot(2,2,2),plot(t,v/1000); +xlabel('time (s)'); ylabel('speed (km/s)') +subplot(2,2,3),plot(t,d/1000); +xlabel('time (s)'); ylabel('distance travelled (km)') +subplot(2,2,4),plot(t,f); +xlabel('time (s)'); ylabel('Doppler-shifted frequency (Hz)') + +figure(2) +subplot(3,2,1),plot(t,ax); +xlabel('time (s)'); ylabel('horizontal acceleration (m/s^2)') +subplot(3,2,2),plot(t,ay); +xlabel('time (s)'); ylabel('vertical acceleration (m/s^2)') +subplot(3,2,3),plot(t,vx); +xlabel('time (s)'); ylabel('horizontal speed (m/s)') +subplot(3,2,4),plot(t,vy); +xlabel('time (s)'); ylabel('vertical speed (m/s)') +subplot(3,2,5),plot(t,dx); +xlabel('time (s)'); ylabel('horizontal distance (m)') +subplot(3,2,6),plot(t,dy); +xlabel('time (s)'); ylabel('vertical distance (m)') + +figure(3) +subplot(3,2,1),plot(t,90-theta); +xlabel('time (s)'); ylabel('thrust angle') +subplot(3,2,2),plot(t,rad2deg(phi)); +xlabel('time (s)'); ylabel('velocity angle') +subplot(3,2,3),plot(t,rad2deg(alpha)); +xlabel('time (s)'); ylabel('position angle') +subplot(3,2,4),plot(dx,dy); +xlabel('Horizontal distance'); ylabel('Height'); axis equal; +subplot(3,2,5),plot(t,c); +xlabel('time (s)'); ylabel('Speed of sound (m/s)') +subplot(3,2,6),plot(t,f); +xlabel('time (s)'); ylabel('Doppler-shifted Frequency (Hz)') + diff --git a/applications/rockets/explosion/bacthjob.m b/applications/rockets/explosion/bacthjob.m new file mode 100644 index 0000000..d2d7ab7 --- /dev/null +++ b/applications/rockets/explosion/bacthjob.m @@ -0,0 +1,3 @@ +addpath('/Users/gt/Dropbox/scratch_matlab/RocketSeismology') +sync_spacex_videos_usfdata +sync_youtube_video_usfdata \ No newline at end of file diff --git a/applications/rockets/explosion/plot_main_explosion_signal.m b/applications/rockets/explosion/plot_main_explosion_signal.m new file mode 100644 index 0000000..ee755c6 --- /dev/null +++ b/applications/rockets/explosion/plot_main_explosion_signal.m @@ -0,0 +1,27 @@ +close all + +dbpath = '/raid/data/rockets/rocketmaster2'; +%dbpath = '/raid/data/rockets/rocketmaster'; +ds = datasource('antelope', dbpath); +snum=datenum(2016,9,1,13,7,0); +enum = snum + 1/1440; +scnl = scnlobject('BCHH', '*', 'FL'); +wf = clean(waveform(ds, scnl, snum, enum)); +%% +plot_panels(wf) +suptitle('1st stage explosion infrasound') +%% +wf2=extract(wf,'time',snum+10/86400,snum+19.4/86400); +plot_panels(wf2); +suptitle('2nd stage explosion infrasound') +%% +wf3=extract(wf,'time',snum+10/86400,snum+15.8/86400); +plot_panels(wf3); +suptitle(sprintf('before 2nd stage explosion infrasound. \nseismic? infrasound precursor?')) +%% +wf4=extract(wf,'time',snum+15.8/86400,snum+16.3/86400); +plot_panels(wf4); +suptitle('2nd stage explosion infrasound zoom') + +%% +load_all_rocket_events2 \ No newline at end of file diff --git a/applications/rockets/explosion/read_spacex_video.m b/applications/rockets/explosion/read_spacex_video.m new file mode 100644 index 0000000..f42982e --- /dev/null +++ b/applications/rockets/explosion/read_spacex_video.m @@ -0,0 +1,21 @@ +vidObj = VideoReader('f9-29_ne_twr.mov'); +save vidfile.mat vidObj +%% +% Specify that reading should start at 0.5 seconds from the +% beginning. +%vidObj.CurrentTime = 0.5; + +% Create an axes +currAxes = axes; +figure +fnum = 1; +while hasFrame(vidObj) + vidFrame = readFrame(vidObj); + %image(vidFrame, 'Parent', currAxes); + fnum + imagesc(vidFrame) + %stop + %currAxes.Visible = 'off'; + pause(2.0/vidObj.FrameRate); + fnum=fnum+1; +end diff --git a/applications/rockets/explosion/setup_rocket_event_20160901.m b/applications/rockets/explosion/setup_rocket_event_20160901.m new file mode 100755 index 0000000..c07cf05 --- /dev/null +++ b/applications/rockets/explosion/setup_rocket_event_20160901.m @@ -0,0 +1,36 @@ +% waveform data parameters +%clear all +close all +%startup +make_figures = true; + +% Geographical coordinates +% coords = ... +% [28.574013, -80.57236; +% 28.574182, -80.57241; +% 28.573894, -80.572352; +% 28.574004, -80.572561]; +coords = ... + [28.5740171611, -80.5723755; + 28.5742216111, -80.5724168556; + 28.5738811889, -80.572295775; + 28.5740064361, -80.57256045]; + + +% SLC40 - SpaceX launch complex +% source.lat = 28.562106; +% source.lon = -80.57718; +source.lon = -80.57719; %-80.57718; +source.lat = 28.56195; %28.562106; + +easting = [461.091 473.067 447.133 465.217 465.217 465.217]; +northing = [1343.9 1306.23 1320.01 1321.26 1321.26 1321.26]; +% Wind tower data - could read this from Excel instead +% get Excel file from +relativeHumidity = 89.5; % percent from NASA weather tower data +temperatureF = 80.65; % 80 Fahrenheit according to weather tower data from NASA +wind_direction_from = 144; % degrees - this is the direction FROM according to NASA, see Lisa Huddleston email of Oct 10th +wind_speed_knots = 5.5; % knots + +% now call +rocket_airwave_event_analysis \ No newline at end of file diff --git a/applications/rockets/explosion/spaceXplosion.m b/applications/rockets/explosion/spaceXplosion.m new file mode 100755 index 0000000..ee83e78 --- /dev/null +++ b/applications/rockets/explosion/spaceXplosion.m @@ -0,0 +1,480 @@ +%% SPACEXPLOSION Analyze the SpaceX explosion that occurred on 1 Sep 2016 +% All supporting functions are in the infrasoundGT directory (or GISMO) +% + +%% setup +clear all +close all +rmpath(genpath('/raid/apps/src/GISMO')) +make_figures = true +addpath('infrasoundGT') +figureOutDirectory = '20160901_SpaceXpolsion2'; +mkdir('.',figureOutDirectory); + +%% constants + + % waveform data parameters + ds = datasource('antelope', '/raid/data/rockets/dbspacexplosion'); + snum=datenum(2016,9,1,13,0,0); + enum = snum + 1/24; + scnl = scnlobject('BCHH', '*', 'FL'); + + % Geographical coordinates + % %%%%%%%%%%%%% SCAFFOLD - could load these from Antelope or Excel + lat = [28.574182 28.573894 28.574004 28.574013 28.574013 28.574013]; + lon = [-80.572410 -80.572352 -80.572561 -80.572360 -80.572360 -80.572360]; + source.lat = 28.562106; % SLC40 - SpaceX launch complex + source.lon = -80.57718; + % Wind tower data - could read this from Excel instead + relativeHumidity = 92; % percent from NASA weather tower data + temperatureF = 80; % 80 Fahrenheit according to weather tower data from NASA + wind_direction_from = 150; % degrees - this is the direction FROM according to NASA, see Lisa Huddleston email of Oct 10th + wind_direction = mod(wind_direction_from + 180, 360); + wind_speed_knots = 10; % knots + wind_speed = wind_speed_knots * 0.514444; % m/s + + +%% compute speed of sound based on temperature & rel. humidity +temperatureC = fahrenheit2celsius(temperatureF); +speed_of_sound = computeSpeedOfSound(temperatureC, relativeHumidity); +disp(sprintf('speed of sound at %.1f Celsius and %f percent relative humidity is %.1f',temperatureC, relativeHumidity, speed_of_sound)); + +save spacexplosion.mat + +%% load waveform data +disp('Loading waveform data...') +w=waveform(ds,scnl,snum,enum); +save spacexplosion.mat + +%% plot raw waveform data +if make_figures + figure + plot_panels(w); + outfile = sprintf('%s/waveforms_raw.png',figureOutDirectory); + feval('print', '-dpng', outfile); + close +end + +%% compute predicted travel times for infrasound waves based on GPS coords & wind +%% also add lat, lon, distance and bacaz fields to waveform objects +disp('Predicting travel times based on GPS coordinates and wind vector...') +fprintf('\n_______________________________________________\n'); +fprintf('PREDICTED TRAVEL TIME BASED ON:\n'); +fprintf(' sound speed %.1fm/s\n', speed_of_sound); +fprintf(' wind speed %.1fm/s\n', wind_speed); +fprintf(' wind direction %.1f degrees\n', wind_direction); +fprintf('------\t--------\t-----------\t----------\n'); +fprintf('Channel\tDistance\tBackAzimuth\tTravelTime\n'); +fprintf('------\t--------\t-----------\t----------\n'); +for c=1:length(lat) + [arclen(c), backaz(c)] = distance(lat(c), lon(c), source.lat, source.lon, 'degrees'); + arclen(c) = deg2km(arclen(c))*1000; + effective_speed = speed_of_sound + wind_speed * cos(deg2rad( (180+backaz(c)) - wind_direction) ); + predicted_traveltime_seconds(c) = arclen(c)/effective_speed; + fprintf('%s\t%.1fm\t\t%.1f degrees\t%.3fs\n',get(w(c),'channel'), arclen(c), backaz(c), predicted_traveltime_seconds(c)); + w(c) = addfield(w(c), 'lat', lat(c)); + w(c) = addfield(w(c), 'lon', lon(c)); + w(c) = addfield(w(c), 'distance', arclen(c)); + w(c) = addfield(w(c), 'backaz', backaz(c)); + +end +fprintf('_______________________________________________\n'); +fprintf('Program name: %s\n',mfilename('fullpath')) +save spacexplosion.mat + + +%% plot array map & compute eastings and northings +if make_figures + disp('Plotting array map') + close all + deg2m = deg2km(1) * 1000; + cols = 'rwbggg'; + for c=1:length(lat) + chan = get(w(c),'channel'); + easting(c) = distance(lat(c), lon(c), lat(c), source.lon) * deg2m; + northing(c) = distance(lat(c), lon(c), source.lat, lon(c)) * deg2m; + plot(easting(c),northing(c),'o','MarkerFaceColor',cols(c),'MarkerSize',10) + hold on + quiver(easting(c),northing(c),-easting(c)/100,-northing(c)/100,0); % /100 just gives arrow length + text(easting(c)+1,northing(c),chan(1:3)); + end + grid on + quiver(440,1325,wind_speed*sin(deg2rad(wind_direction)), wind_speed*cos(deg2rad(wind_direction)) ,0,'k'); + text(440,1325,'wind') + hold off + title('Beach House array position relative to SLC40'); + xlabel('metres east'); + ylabel('metres north'); + axis equal; + outfile = sprintf('%s/arraymap.png',figureOutDirectory); + feval('print', '-dpng', outfile); + close + save spacexplosion.mat +end + +%% Load arrivals +disp('Loading arrivals...') +arrivals=Arrival.retrieve('antelope', '/raid/data/rockets/dbspacexplosion'); +save spacexplosion.mat + +%% Subset out X1 arrivals +disp('Subsetting arrivals...') +arrivals = arrivals.subset('iphase', 'X1'); +save spacexplosion.mat + +%% Associate events +disp('Associating arrivals into events...') +maxTimeDiff = 1; % seconds +eventOn = false; +eventNumber = 0; +for c=2:numel(arrivals.daynumber) + if arrivals.daynumber(c-1) + maxTimeDiff/86400 > arrivals.daynumber(c) + if ~eventOn % start new event + eventOn = true; + eventNumber = eventNumber + 1; + infrasoundEvent(eventNumber).FirstArrivalTime = arrivals.daynumber(c-1); + else % event already in progress + end + infrasoundEvent(eventNumber).LastArrivalTime = arrivals.daynumber(c); + else + if eventOn % write out last event + eventOn = false; + end + end +end +numEvents = numel(infrasoundEvent); +save spacexplosion.mat + + +%% Filter waveform data to center around zero +disp('Filtering waveform data...') +wfilt = detrend(w); +f=filterobject('h',[10],3); +wfilt=filtfilt(f,wfilt); +save spacexplosion.mat + +%% Segment event waveforms +pretrigger = 1; +posttrigger = 1; +wevent = segment_event_waveforms(wfilt, infrasoundEvent, pretrigger, posttrigger); +save spacexplosion.mat + +%% Plot infrasound events +if make_figures + plot_events(wevent, 'waveforms_infrasoundEvent', figureOutDirectory); +end + +%% correlate +% loop through infrasound channels +% take a 0.3-second snippet starting 0.1s before FirstArrivalTime, till 0.2s +% after it +% correlate this against the whole wevent for each infrasound +% trace +% this should result in a correlation matrix +% from this record the time lag matrix for each infrasound channel against each other +% infrasound channel +disp('CORRELATION ...') +disp('_______________') +%infrasoundEvent = xcorr3C(wevent, infrasoundEvent, make_figures, figureOutDirectory, pretrigger); +infrasoundEvent = xcorr3C(wevent, infrasoundEvent, false, figureOutDirectory, pretrigger); + +% for eventNumber=1:numEvents +% fprintf('- processing event %d of %d\n', eventNumber, numEvents); +% haystacks = wevent{eventNumber}; +% infrasoundEvent(eventNumber).maxCorr = eye(3); +% infrasoundEvent(eventNumber).secsDiff = eye(3); +% precorrtime = 0.1; % NEEDLE seconds of data to add before first arrival +% postcorrtime = 0.2; % NEEDLE seconds of data to add after first arrival +% for chanNumber=1:3 +% needle = extract(haystacks(chanNumber), 'time', infrasoundEvent(eventNumber).FirstArrivalTime-precorrtime/86400, infrasoundEvent(eventNumber).FirstArrivalTime+postcorrtime/86400); +% for haystackNum = 1:3 +% fprintf(' - looking for needle %d in haystack %d\n', chanNumber, haystackNum); +% haystack = haystacks(haystackNum); +% [acor,lag] = xcorr(get(needle,'data'),get(haystack,'data')); +% [m,I] = max(abs(acor)); +% infrasoundEvent(eventNumber).maxCorr(chanNumber,haystackNum) = m; +% infrasoundEvent(eventNumber).secsDiff(chanNumber,haystackNum) = lag(I)/get(haystack,'freq') + pretrigger - precorrtime; +% if make_figures +% figure; +% subplot(3,1,1),plot(haystack); +% subplot(3,1,2),plot(needle); +% subplot(3,1,3),plot(lag,acor); +% outfile = sprintf('figs/xcorr_infrasoundEvent%03d_%d_%d.png',eventNumber,chanNumber,haystackNum); +% feval('print', '-dpng', outfile); +% close +% end +% end +% end +% end +save spacexplosion.mat + +%% Construct a master infrasound event, from all the individual ones +disp('Constructing master infrasound event from individual event statistics') +masterEvent.FirstArrivalTime = infrasoundEvent(1).FirstArrivalTime; +masterEvent.LastArrivalTime = infrasoundEvent(1).LastArrivalTime; + +% find the mean xcorr time lag difference for non-identical infrasound components - it should be close to zero if only one event in time window +% e.g. needle 1 and haystack 2 should have same magnitude but opposite sign +% time delay to needle 2 and haystack 1 if there is only one clear N wave +% in the haystacks +disp('- finding events with a mean time lag difference of close to 0 - these are the events we can use') +indexes = find(abs([infrasoundEvent.meanSecsDiff]) < 0.01); % these are events with probably only one event in wevent time window +fprintf('- found %d events we can use\n', numel(indexes)); +disp('- event indexes to use'); +disp(indexes) + +masterEvent.secsDiff = zeros(3,3); +masterEvent.stdSecsDiff = zeros(3,3); +for row=1:3 + for column=1:3 + a = []; + for eventNumber = indexes + thisEvent = infrasoundEvent(eventNumber); + a = [a thisEvent.secsDiff(row, column)]; + end + + % eliminate any events which have a difference from the mean of + % greater than the standard deviation + diffa = abs( (a-mean(a))/std(a) ); + + % now set the mean and std for the master event + masterEvent.secsDiff(row, column) = mean(a(diffa<1.0)); + masterEvent.stdSecsDiff(row, column) = std(a(diffa<1.0)); + end +end +disp(' - mean:'); +disp(masterEvent.secsDiff) +disp(' - std:') +disp(masterEvent.stdSecsDiff) +disp(' - fractional std:') +disp(masterEvent.stdSecsDiff ./ masterEvent.secsDiff) + +%% compute sound speed based on GPS coordinates and master event differential travel times +disp('- Estimating sound speed for each component pair using GPS coordinates') +clear speed +speed = zeros(3,3)*NaN; +for row=1:3 + for column = 1:3 + if row ~= column + radialDistanceDifference = ( get(w(row),'distance') - get(w(column),'distance') ); + timeDifference = masterEvent.secsDiff(row, column); + s = radialDistanceDifference / timeDifference; + disp(sprintf('row %d column %d distance difference %.1f time difference %.4f speed %.1fm/s',row,column,radialDistanceDifference,timeDifference,s)); + speed(row,column) = s; + end + end +end +speed +meanspeed = nanmean(nanmean(abs(speed))); +stdspeed = nanstd(nanstd(abs(speed))); +fprintf('- mean sound speed %.1f, std sound speed %.1f\n', meanspeed, stdspeed); +save spacexplosion.mat + +%% beamforming +disp('Beamforming to estimate backazimuth of source from array') +[bestbackaz,bestsoundspeed,distanceDiff,speedMatrix] = beamform2(easting(1:3), northing(1:3), masterEvent.secsDiff, 199.0, 348.6); +distanceDiff +speedMatrix +sourceDist = get(w(2),'distance'); +[beamformingsourcelat, beamformingsourcelon] = reckon(lat(2), lon(2), km2deg(sourceDist/1000), bestbackaz); +distFromSLC40 = deg2km(distance(beamformingsourcelat, beamformingsourcelon, source.lat, source.lon)) * 1000; +disp(sprintf('- source location estimated to be lat = %.4f lon = %.4f, which is %1.fm from true position',beamformingsourcelat, beamformingsourcelon,distFromSLC40)); + +%% +if make_figures + outfile = sprintf('%s/beamforming.png',figureOutDirectory); + feval('print', '-dpng', outfile); + close +end +save spacexplosion.mat + +%% estimate travel times from cross-correlation derived differential travel times and actual source location, wind speed, and predicted sound speed +[minimumPredictedTravelTime,index] = min(predicted_traveltime_seconds); +for component=1:3 + traveltime_secs(component) = minimumPredictedTravelTime + mean([masterEvent.secsDiff(component,index) -masterEvent.secsDiff(index,component)]); +end +traveltime_secs(4) = minimumPredictedTravelTime + (get(w(4),'distance') - get(w(index),'distance')) / bestsoundspeed; +traveltime_secs(5) = traveltime_secs(4); +traveltime_secs(6) = traveltime_secs(4); +save spacexplosion.mat + +%% Shift waveforms based on travel times +wshift = wfilt; +for c=1:numel(wshift) + starttime = get(w(c), 'start'); + newstarttime = starttime - traveltime_secs(c)/86400; + disp(sprintf('moving channel %d from %s to %s\n', c, datestr(starttime, 'HH:MM:SS.FFF'), datestr(newstarttime, 'HH:MM:SS.FFF'))); + wshift(c)=set(wshift(c),'start', newstarttime); + disp(sprintf('%s\n',datestr(get(wshift(c),'start')))); +end +save spacexplosion.mat + +%% Segment time shifted event waveforms +disp('Segmenting traveltime-corrected event waveforms...') +arrivalTimeCorrection = minimumPredictedTravelTime; +preplot = 0.15; +postplot = 0.15; +weventshift = segment_event_waveforms(wshift, infrasoundEvent, preplot, postplot, arrivalTimeCorrection); +save spacexplosion.mat + + +%% Plot shifted events +if make_figures + plot_events(weventshift, 'waveforms_infrasoundEvent_shifted', figureOutDirectory) +end + + + +%% Pick events +close all +for eventNumber=1:numEvents + + % plot waveforms for this event + w2=weventshift{eventNumber}; + fh=plot_panels(w2); + ah=get(fh,'Children'); + set(fh, 'Position', [0 0 1600 1000]); + infrasoundEvent(eventNumber).maxAmp=zeros(1,6); + infrasoundEvent(eventNumber).minAmp=zeros(1,6); + infrasoundEvent(eventNumber).maxTime=zeros(1,6); + infrasoundEvent(eventNumber).minTime=zeros(1,6); + + for chanNum=1:6 + + % scan over this event on this channel and find the greatest + % max/min difference in 0.1s + y = get(w2(chanNum),'data'); + fs = get(w2(chanNum),'freq'); + numSamples = length(y); + windowSize = round(fs/25); + maxA = 0; + for startSamp = 1:windowSize:round(numSamples*0.7)-windowSize + samples = startSamp:startSamp+windowSize-1; + [maxy, maxindex] = max(y(samples)); + [miny, minindex] = min(y(samples)); + if (maxy-miny) > maxA + maxSecs = ((maxindex+samples(1)-1)/fs); + minSecs = ((minindex+samples(1)-1)/fs); + maxA = maxy-miny; + + infrasoundEvent(eventNumber).maxTime(chanNum) = tstart + maxSecs/86400; + infrasoundEvent(eventNumber).minTime(chanNum) = tstart + minSecs/86400; + infrasoundEvent(eventNumber).maxAmp(chanNum) = maxy; + infrasoundEvent(eventNumber).minAmp(chanNum) = miny; + end + end + + % plot max & min + axisnum = 8 - chanNum; + axes(ah(axisnum)); + hold on + plot(ah(axisnum),maxSecs, infrasoundEvent(eventNumber).maxAmp(chanNum), 'g*'); + plot(ah(axisnum),minSecs, infrasoundEvent(eventNumber).minAmp(chanNum), 'r*'); + + end + feval('print', '-dpng', sprintf('%s/picked_event_%03d',figureOutDirectory, eventNumber) ); + close +end +save spacexplosion.mat + +%% Compute relative calibrations of infrasound sensors +clc +tolerance = 0.02; % times have to be within 2 hundreds of a second +component_pairs = [ [1,3]; [1,2]; [2,3] ]; + +for component_pair_num = 1:length(component_pairs) + chanNum = nan(2,1); + chanNum(1) = component_pairs(component_pair_num, 1); + chanNum(2) = component_pairs(component_pair_num, 2); + maxA = nan(2, numEvents); + minA = nan(2, numEvents); + for eventNum = 1:numEvents + ev = infrasoundEvent(eventNum); + if std(ev.maxTime) < tolerance/86400 & std(ev.minTime) < tolerance/86400 + for c=1:2 + maxA(c, eventNum) = ev.maxAmp(chanNum(c)); + minA(c, eventNum) = ev.minAmp(chanNum(c)); + end + end + end + avA = (maxA - minA)/2; + + % first compute raw ratio, mean and std + ratio = avA(1,:)./avA(2,:); + m=nanmean(ratio); + s=nanstd(ratio); + + % now recompute after throwing out any measurement that has an error larger + % than the standard deviation + ratio2 = ratio(ratio>m-s & ratio endtime + endtime = thistime; + end + save( fullfile(OUTDIR,'matfiles',sprintf('%s.%s.mat',d(c).name,datestr(thistime,'HHMMSS.FFF'))), 'thisframe'); + if mod(k,FPS)==0 + fprintf('%d ',k/FPS); + end + k = k+1; + end +end +%% +clear s c k crap thisframe thistime + +%% Define the figure panel setup +close all +vw = v.Width/2; +vh = v.Height/2; +imacaspectratio=16/9; +figureHeight=1152; % previously figure was 1360 x 1160 +figureWidth=figureHeight*imacaspectratio; % important for iMovie +fh=figure('Units','pixels','Position',[10 10 figureWidth figureHeight]); +spacer = 40; +ax(1)=axes('Units','pixels','Position',[spacer (spacer+vh)*2-spacer/2 vw vh]); +ax(2)=axes('Units','pixels','Position',[spacer*1.5+vw (spacer+vh)*2-spacer/2 vw vh]); +ax(3)=axes('Units','pixels','Position',[spacer (spacer+vh)*1 vw vh]); +ax(4)=axes('Units','pixels','Position',[spacer*1.5+vw (spacer+vh)*1 vw vh]); +for c=1:4 + set(ax(c),'XTick',[],'YTick',[]); +end +ax(5)=axes('Units','pixels','Position',[spacer (spacer+vh)*0.55 vw*2+spacer/2 vh*0.45]); +ax(6)=axes('Units','pixels','Position',[spacer spacer vw*2+spacer/2 vh*0.45]); +% time label +%ax(7) = axes('Units','pixels','Position',[vw-spacer spacer+vh*2 spacer*4 spacer],'Visible','off'); +ax(7) = axes('Units','pixels','Position',[spacer*2 vh spacer*4 spacer],'Visible','off'); + +%% Load the seismic and infrasound data corresponding to the time window of the video files +dbpath = '/Volumes/data/rockets/rocketmaster'; +ds = datasource('antelope', dbpath); +snum=datenum(2016,9,1,13,07,06.167); +enum=datenum(2016,9,1,13,07,31.433); +chantag=ChannelTag('FL.BCHH.*.*') +w=waveform(ds,chantag,snum,enum) +w=clean(w); + +%% plot the seismic and infrasound data in panels 6 and 5 respectively +ph1=plot(ax(5),get(w(1),'timevector'),get(w(1),'data')); +xlim(ax(5),[snum enum]); +datetick(ax(5),'x','keeplimits') +ylabel(ax(5),'Pa') +pylims=get(ax(5),'YLim'); +ph2=plot(ax(6),get(w(6),'timevector'),1e-6*get(w(6),'data')); +xlim(ax(6),[snum enum]); +datetick(ax(6),'x','keeplimits') +ylabel(ax(6),'mm/s'); +sylims=get(ax(6),'YLim'); + + + +%% Now loop over time from first frame to final frame +realstart = min(starttime); +kmax = floor((endtime - realstart) * SECONDS_PER_DAY * FPS) +for k=1:kmax + realtime = realstart + (k-1)/FPS/SECONDS_PER_DAY; + + % draw line to mark where on seismic and infrasound traces the video + % frames being shown right now are + lh1=line(ax(5),[realtime realtime], pylims,'LineWidth',2,'Color','k'); + lh2=line(ax(6),[realtime realtime], sylims,'LineWidth',2,'Color','k'); + infratime = realtime + 4/SECONDS_PER_DAY; + if infratime < endtime + lh3=line(ax(5),[infratime infratime], pylims,'LineWidth',2,'Color','r'); + lh4=line(ax(6),[infratime infratime], sylims,'LineWidth',2,'Color','r'); + end + uistack(ph1); + uistack(ph2); + + % add time + th1=text(ax(7),0,0,datestr(realtime,'HH:MM:SS.FFF'),'FontSize',32); + + % find matfiles (i.e. frames) for this time sample + dstr = datestr(realtime,'HHMMSS.FFF'); + filepattern = fullfile(OUTDIR,'matfiles',sprintf('*%s.mat',dstr)); + df=dir(filepattern); + if numel(df)>0 + for c=1:numel(df) + load(fullfile(df(c).folder,df(c).name)); + fparts = split(df(c).name,'.mov'); + + % decide which panel they belong to based on which video they + % came from + switch fparts{1} + case 'f9-29_ne_twr', posn=2; + case 'f9-29_nw_ptz', posn=1; + case 'f9-29_ucs3', posn=3; + case 'f9-29_west_fixed', posn=4; + otherwise + posn=0; + end + + % plot the frame in the appropriate panel corresponding to posn + % variable + if posn>0 + disp(sprintf('%s %s.%02d %d',dstr,datestr(realtime,'HHMMSS'), round(mod(realtime*SECONDS_PER_DAY,1)*30)+1, df(c).name, posn)); + image(ax(posn),thisframe) + title(ax(posn),fparts{1},'Interpreter','None'); + set(ax(posn),'XTick',[],'YTick',[]); + end + end + + % now all panels are plotted, save the figure window as a new jpeg + % file + jpgfile = fullfile(OUTDIR,'images',sprintf('%s.jpg',dstr)); + disp(jpgfile) + print('-djpeg',jpgfile); + end + + % delete the lines we drew to mark the time on the seismic and + % infrasound panels + delete(lh1) + delete(lh2) + if infratime < endtime + delete(lh3) + delete(lh4) + end + delete(th1) +end + +%% Write video file from the JPG images - no longer need to use ImageJ which never seems to export all the images +d=dir(fullfile(OUTDIR,'images','*.jpg')); +v=VideoWriter(fullfile(OUTDIR,'uncompressed.avi'),'Uncompressed AVI') +open(v) +for c=1:numel(d) + disp(sprintf('Processing frame %d of %d',c,numel(d))) + a=imread(fullfile(d(c).folder,d(c).name)); + writeVideo(v,a); +end +close(v); + +%% create wav audio files for infrasound and seismic traces +fmmod_waveform(w(1),16,fullfile(OUTDIR,'infra.wav')); +fmmod_waveform(w(6),20,fullfile(OUTDIR,'seismic.wav')); + + +%% +% QUICK TIME then be used to compress the 15 GB AV file to a < 1 GB .mov +% file +% iMovie can then be used to combine the .mov and .wav files, and write +% them back out to a new .mov file. + +%% --------------------- FUNCTIONS FOLLOW ----------------------------- %% +function w2=fmmod_waveform(w,n,outfile) + w=interp_waveform(w,n); + for c=1:numel(w) + thisw=w(c); + fs=get(thisw,'freq') + fc=fs*0.4; + thisw=taper(normalize(detrend(thisw)),0.1); + x=get(thisw,'data'); + y=fmmod(x,fc,fs,fc/4); + w2(c)=thisw; + w2(c)=set(w2(c),'data',y); + %sound(y,fs) + audiowrite(outfile,y,fs); + end +end + +function w2=interp_waveform(w,n) + SECONDS_PER_DAY = 86400; + for c=1:numel(w) + x=get(w(c),'data'); + fs=get(w(c),'freq'); + t=get(w(c),'timevector'); + t2=t(1)+(1/SECONDS_PER_DAY)*(0:1/fs/n:(length(t)-1)*1/fs); + x2=interp1(t,x,t2); + w2(c) = w(c); + w2(c)=set(w2(c),'data',x2); + w2(c)=set(w2(c),'freq',fs*n); + end +end + + + diff --git a/applications/rockets/explosion/sync_youtube_video_usfdata.m b/applications/rockets/explosion/sync_youtube_video_usfdata.m new file mode 100644 index 0000000..e3c70f0 --- /dev/null +++ b/applications/rockets/explosion/sync_youtube_video_usfdata.m @@ -0,0 +1,186 @@ +%% This is where all output will go +OUTDIR='/Users/gt/Dropbox/scratch_matlab/RocketSeismology/SpaceXplosion/video'; +mkdir(fullfile(OUTDIR,'ymatfiles')); +mkdir(fullfile(OUTDIR,'yimages')); +SECONDS_PER_DAY = 86400; +FPS = 30; % frames per second + +%% locate the video clips from SpaceX and provide their start times (all different) +fname = fullfile(OUTDIR,'SpaceX - Static Fire Anomaly - AMOS-6 - 09-01-2016.mov'); +FPS=30; % frames per second +starttime = datenum(2016,9,1,13,06,00)+(1-1)/FPS/SECONDS_PER_DAY; + +%% loop over each file, importing each frame and saving it as a mat-file +endtime = 0; + +v=VideoReader( fname ); +s = struct('cdata',zeros(v.Height,v.Width,3,'uint8'),... + 'colormap',[]); +k = 1; +while hasFrame(v) + s(k).cdata = readFrame(v); + thisframe = s(k).cdata; + thistime = starttime + (k-1)/FPS/SECONDS_PER_DAY; + if thistime > endtime + endtime = thistime; + end + save( fullfile(OUTDIR,'ymatfiles',sprintf('%s.mat',datestr(thistime,'HHMMSS.FFF'))), 'thisframe'); + if mod(k,FPS)==0 + fprintf('%d ',k/FPS); + end + k = k+1; +end + +%% +clear s c k crap thisframe thistime + +%% Define the figure panel setup +close all +vw = v.Width; +vh = v.Height; +spacer = 40; +imacaspectratio=16/9; +traceHeight = 200; +figureHeight = vh + 2 * traceHeight + 4 * spacer; +figureWidth = figureHeight * imacaspectratio; +fh=figure('Units','pixels','Position',[10 10 figureWidth figureHeight]); + +ax(1)=axes('Units','pixels','Position',[spacer spacer*3+traceHeight*2 vw vh]); +set(ax(1),'XTick',[],'YTick',[]); +ax(2)=axes('Units','pixels','Position',[spacer spacer*2+traceHeight vw traceHeight]); +ax(3)=axes('Units','pixels','Position',[spacer spacer vw traceHeight]); +% time label +ax(4) = axes('Units','pixels','Position',[vw/2-spacer spacer*2+traceHeight*2 spacer*4 spacer],'Visible','off'); + +%% Load the seismic and infrasound data corresponding to the time window of the video files +dbpath = '/Volumes/data/rockets/rocketmaster'; +ds = datasource('antelope', dbpath); +chantag=ChannelTag('FL.BCHH.*.*') +w=waveform(ds,chantag,starttime,endtime) +w=clean(w); + +%% plot the seismic and infrasound data in panels 3 & 2 respectively +ph1=plot(ax(2),get(w(1),'timevector'),get(w(1),'data')); +xlim(ax(2),[starttime endtime]); +datetick(ax(2),'x','keeplimits') +ylabel(ax(2),'Pa') +pylims=get(ax(2),'YLim'); +ph2=plot(ax(3),get(w(6),'timevector'),1e-6*get(w(6),'data')); +xlim(ax(3),[starttime endtime]); +datetick(ax(3),'x','keeplimits') +ylabel(ax(3),'mm/s'); +sylims=get(ax(3),'YLim'); + + + +%% Now loop over time from first frame to final frame +realstart = min(starttime); +kmax = floor((endtime - realstart) * SECONDS_PER_DAY * FPS) +for k=1:kmax + realtime = realstart + (k-1)/FPS/SECONDS_PER_DAY; + + % draw line to mark where on seismic and infrasound traces the video + % frames being shown right now are + lh1=line(ax(2),[realtime realtime], pylims,'LineWidth',2,'Color','k'); + lh2=line(ax(3),[realtime realtime], sylims,'LineWidth',2,'Color','k'); + infratime = realtime + 4/SECONDS_PER_DAY; + if infratime < endtime + lh3=line(ax(2),[infratime infratime], pylims,'LineWidth',2,'Color','r'); + lh4=line(ax(3),[infratime infratime], sylims,'LineWidth',2,'Color','r'); + end + uistack(ph1); + uistack(ph2); + + % add time + th1=text(ax(4),0,0,datestr(realtime,'HH:MM:SS.FFF'),'FontSize',32); + + % find matfiles (i.e. frames) for this time sample + dstr = datestr(realtime,'HHMMSS.FFF'); + filepattern = fullfile(OUTDIR,'ymatfiles',sprintf('*%s.mat',dstr)); + df=dir(filepattern); + if numel(df)>0 + load(fullfile(df(1).folder,df(1).name)); + + + % plot the frame in the appropriate panel corresponding to posn + % variable + if posn>0 + disp(sprintf('%s %s.%02d %d',dstr,datestr(realtime,'HHMMSS'), round(mod(realtime*SECONDS_PER_DAY,1)*30)+1, df(1).name, posn)); + image(ax(1),thisframe) + set(ax(1),'XTick',[],'YTick',[]); + end + + + % now all panels are plotted, save the figure window as a new jpeg + % file + jpgfile = fullfile(OUTDIR,'yimages',sprintf('%s.jpg',dstr)); + disp(jpgfile) + print('-djpeg',jpgfile); + end + + % delete the lines we drew to mark the time on the seismic and + % infrasound panels + delete(lh1) + delete(lh2) + if infratime < endtime + delete(lh3) + delete(lh4) + end + delete(th1) +end + +%% Write video file from the JPG images - no longer need to use ImageJ which never seems to export all the images +d=dir(fullfile(OUTDIR,'yimages','*.jpg')); +v=VideoWriter(fullfile(OUTDIR,'yuncompressed.avi'),'Uncompressed AVI') +open(v) +for c=1:numel(d) + disp(sprintf('Processing frame %d of %d',c,numel(d))) + a=imread(fullfile(d(c).folder,d(c).name)); + writeVideo(v,a); +end +close(v); + +%% create wav audio files for infrasound and seismic traces +fmmod_waveform(w(1),16,fullfile(OUTDIR,'yinfra.wav')); +fmmod_waveform(w(6),20,fullfile(OUTDIR,'yseismic.wav')); + + +%% +% QUICK TIME then be used to compress the 15 GB AV file to a < 1 GB .mov +% file +% iMovie can then be used to combine the .mov and .wav files, and write +% them back out to a new .mov file. + +%% --------------------- FUNCTIONS FOLLOW ----------------------------- %% +function w2=fmmod_waveform(w,n,outfile) + w=interp_waveform(w,n); + for c=1:numel(w) + thisw=w(c); + fs=get(thisw,'freq') + fc=fs*0.4; + thisw=taper(normalize(detrend(thisw)),0.1); + x=get(thisw,'data'); + y=fmmod(x,fc,fs,fc/4); + w2(c)=thisw; + w2(c)=set(w2(c),'data',y); + %sound(y,fs) + audiowrite(outfile,y,fs); + end +end + +function w2=interp_waveform(w,n) + SECONDS_PER_DAY = 86400; + for c=1:numel(w) + x=get(w(c),'data'); + fs=get(w(c),'freq'); + t=get(w(c),'timevector'); + t2=t(1)+(1/SECONDS_PER_DAY)*(0:1/fs/n:(length(t)-1)*1/fs); + x2=interp1(t,x,t2); + w2(c) = w(c); + w2(c)=set(w2(c),'data',x2); + w2(c)=set(w2(c),'freq',fs*n); + end +end + + + diff --git a/applications/rockets/infrasoundgt/.dropbox.attr b/applications/rockets/infrasoundgt/.dropbox.attr new file mode 100755 index 0000000..9e26dfe --- /dev/null +++ b/applications/rockets/infrasoundgt/.dropbox.attr @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/addtoplotpanels.m b/applications/rockets/infrasoundgt/addtoplotpanels.m new file mode 100755 index 0000000..6b4e33f --- /dev/null +++ b/applications/rockets/infrasoundgt/addtoplotpanels.m @@ -0,0 +1,28 @@ +% THIS CODE IS FOR PLOTTING METRICS ON WAVEFORM +% THIS COULD BE ABSORBED INTO PLOT PANELS +% for arrivalnum=1:numel(arrivalobj.amp) +% fprintf('.'); +% thisA = arrivalobj.subset(arrivalnum); +% thisW = detrend(fillgaps(w(arrivalnum),'interp')); % make sure there is no trend or offset +% +% % plot waveform for arrival +% fh=plot_panels(thisW, false, thisA); +% ah=get(fh,'Children'); +% set(fh, 'Position', [0 0 1600 1000]); +% hold on +% plot(maxSecs, misc_fields.maxAmp(arrivalnum), 'g*'); +% plot(minSecs, misc_fields.minAmp(arrivalnum), 'r*'); +% teststr = sprintf('maxTime = %s, minTime = %s, timeDiff = %.3f s\namp = %.2e, maxAmp = %.2e, minAmp = %.2e\n rms = %.2e, energy = %.2e', ... +% datestr(maxTime,'HH:MM:SS.FFF'), ... +% datestr(minTime,'HH:MM:SS.FFF'), ... +% 86400*(maxTime-minTime), ... +% amp, ... +% maxAmp, ... +% minAmp, ... +% stdev, ... +% energy); +% text(0.1, 0.1, teststr, 'units', 'normalized') +% dummy=input('Any key to continue'); +% close +% +% end \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/analyze_infrasound_event.m b/applications/rockets/infrasoundgt/analyze_infrasound_event.m new file mode 100755 index 0000000..5c8e93e --- /dev/null +++ b/applications/rockets/infrasoundgt/analyze_infrasound_event.m @@ -0,0 +1,247 @@ +function infrasoundEvent = analyze_infrasound_event(dbpath, infrasoundEvent) +%analyze_infrasound_event Perfrom a suite of analyses on a single +%infrasound event recorded on an infrasound array (or network of arrays) +% +% results = analyze_infrasound_event(dbpath, infrasoundEvent) given a CSS3.0 +% database path containing a wfdisc table, attempt to load waveform data +% for the event and perform additional analyses. + + %% load waveform data from an infrasound array + disp('Loading waveform data...') + ds = datasource('antelope', dbpath); + pretrigger = 10; % seconds before first arrival time + posttrigger = 10; % seconds after last arrival time + snum = infrasoundEvent.firstArrivalTime - pretrigger/86400; + enum = infrasoundEvent.lastArrivalTime + posttrigger/86400; + ctag = unique([arrivals.channelinfo]); + event_waveform_vector = waveform(ds,ctag,snum,enum); + numInfrasoundChannels = numel(w); + + %% high-pass filter + event_waveform_vector = butterworthFilter(event_waveform_vector, 'h', 0.5, 3); % highpass at 0.5 Hz + infrasoundEvent.waveform_vector = detrend(event_waveform_vector); + clear event_waveform_vector + + %% cross-correlate to find best time delays + infrasoundEvent = xcorr_all_components(w, infrasoundEvent, pretrigger); + + %% solve for best fitting direction & sound speed given time delays and coordinates + infrasoundEvent = solve_for_direction(infrasoundEvent, easting(1:numInfrasoundChannels), northing(1:numInfrasoundChannels)); + +% %% solve for best distance and elevation in best fitting direction +% infrasoundEvent = solve_for_location(infrasoundEvent, easting(1:numInfrasoundChannels), northing(1:numInfrasoundChannels)); + + %% compute amplitude, energy, frequency waveform parameters + % compute distance from source to array channels + for chanNum = 1:numInfrasoundChannels + array_distance_in_km(chanNum) = sqrt(easting(chanNum).^2 + northing(chanNum).^2)/1000.0; + end + %infrasoundEvent = auto_measure_amplitudes(infrasoundEvent, wevent, 'auto_measure_event1', predicted_traveltime_seconds, figureOutDirectory); + infrasoundEvent.reducedPressure = infrasoundEvent.p2p(1:numInfrasoundChannels).*array_distance_in_km(1:numInfrasoundChannels); + infrasoundEvent = compute_energy(infrasoundEvent, array_distance_in_km) +end + +%% +function infrasoundEvent = xcorr_all_components(w, infrasoundEvent, pretrigger) +%xcorr_all_components Cross-correlate an event recorded on n infrasound components +% infrasoundEvent = xcorr_all_components(infrasoundEvent) +% Input: +% wevent - a cell array where each component is a vector of n +% waveform objects, 1 per infrasound channel +% infrasoundEvent is a structure containing two elements: +% FirstArrivalTime +% LastArrivalTime +% make_figures - if true, a figure is generated for each xcorr pair +% +% Output: +% infrasoundEvent with some additional elements added +% maxCorr - a nxn array of the maximum cross correlation values +% secsDiff - a nxn array of the time lags corresponding to +% maxCorr +% meanSecsDiff - the mean of secsDiff for non-diagonal components +% +% each component is cross correlated with each component, hence nxn + + disp('CORRELATION ...') + disp('_______________') + haystacks = w; + numchannels = numel(w); + infrasoundEvent.maxCorr = eye(3); + infrasoundEvent.secsDiff = eye(3); + precorrtime = 0.1; % NEEDLE seconds of data to add before first arrival + postcorrtime = 0.2; % NEEDLE seconds of data to add after first arrival + for chanNumber=1:numchannels + % needle has length precorrtime + postcorrtime, starting at + % FirstArrivalTime - precorrtime + needle = extract(haystacks(chanNumber), 'time', infrasoundEvent.FirstArrivalTime-precorrtime/86400, infrasoundEvent.FirstArrivalTime+postcorrtime/86400); + needle_data = detrend(get(needle, 'data')); + for haystackNum = 1:numchannels + fprintf(' - looking for needle %d in haystack %d\n', chanNumber, haystackNum); + % haystack is a whole waveform + haystack = haystacks(haystackNum); + haystack_data = get(haystack,'data'); + [acor,lag] = xcorr(needle_data, haystack_data); + cxx0 = sum(abs(needle_data).^2); + cyy0 = sum(abs(haystack_data).^2); + scale = sqrt(cxx0*cyy0); + acor = acor./scale; + [m,I] = max(abs(acor)); + infrasoundEvent.maxCorr(chanNumber,haystackNum) = m; + infrasoundEvent.secsDiff(chanNumber,haystackNum) = lag(I)/get(haystack,'freq') + pretrigger - precorrtime; + end + end + infrasoundEvent.meanCorr = mean(infrasoundEvent.maxCorr(:)); + infrasoundEvent.stdCorr = std(infrasoundEvent.maxCorr(:)); + infrasoundEvent.meanSecsDiff = mean(infrasoundEvent.secsDiff(:)); + infrasoundEvent.stdSecsDiff = std(infrasoundEvent.secsDiff(:)); +end + + +%% +function infrasoundEvent = solve_for_direction(infrasoundEvent, easting, northing, fixbackaz, fixspeed) +%SOLVE_FOR_DIRECTION compute back azimuth of source from travel time differences +%between each component. Plane waves are assumed (i.e. source at infinite +%distance). 2D assumes flat topography, does not search over a vertical +%incident angle. +% +% infrasoundEvent = solve_for_direction(infrasoundEvent, easting, northing) +% For each possible back azimuth, compute the distances between array +% components resolved in that direction. +% Based on differential travel times (meanSecsDiff), compute +% speedMatrix. Take average and stdev of speedMatrix, and compute +% fractional deviation. +% Choose the best back azimuth (bestbackaz) as the back azimuth for which the fractional +% deviation is least. Return this and the mean speed (bestspeed). +% +% Inputs: +% infrasoundEvent - a structure for this infrasound event, which +% contains secsDiff matrix (delay times between +% components) +% easting, northing - GPS coordinates of array components +% +% Outputs: +% bestbackaz - back azimuth of the source that best fits inputs +% bestspeed - pressure wave speed across array that best fits inputs +% +% infrasoundEvent = solve_for_direction(infrasoundEvent, easting, northing, fixbackaz) +% fixbackaz - fix the back azimuth to this value +% Only iterate from fixbackaz-1 to fixbackaz+1, rather than from +% 0.1 to 360. +% +% +% infrasoundEvent = solve_for_direction(infrasoundEvent, easting, northing, 0, fixspeed) +% fixspeed - return the back azimuth that best fits this speed. + + meanSecsDiff = infrasoundEvent.secsDiff; + bestbackaz = NaN; + bestspeed = NaN; + + % First we use travel time ratios to find back azimuthal angle of the beam + % this means we do not need to know speed + N=numel(easting); + if numel(northing)~=N + error('length of easting and northing must be same') + end + if (size(meanSecsDiff) ~= [N N]) + size(easting) + size(northing) + size(meanSecsDiff) + error('wrong dimensions for meanSecsDiff') + end + + if exist('fixspeed','var') + clear fixbackaz + warning('You can only set fixbackaz or fixspeed, not both. Ignoring fixbackaz') + end + + if exist('fixbackaz', 'var') + backaz = fixbackaz - 1.0: 0.1: fixbackaz + 1.0; + else + backaz = 0.1:0.1:360; + end + unit_vector_easting = -sin(deg2rad(backaz)); + unit_vector_northing = -cos(deg2rad(backaz)); + + for row=1:N + for column=1:N + eastingDiff(row, column) = easting(row) - easting(column); + northingDiff(row, column) = northing(row) - northing(column); + end + end + + %for thisaz = backaz + for c=1:length(backaz) + thisaz = backaz(c); + for row=1:N + for column=1:N + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(c) unit_vector_northing(c)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; + a =[]; + for row=1:N + for column=1:N + if row~=column + a = [a speedMatrix(row, column)]; + end + end + end + %meanspeed(thisaz) = mean(a); + %stdspeed(thisaz) = std(a); + meanspeed(c) = mean(a); + stdspeed(c) = std(a); + + end + fractional_error = stdspeed ./ meanspeed; +% figure +% subplot(2,1,1),bar(backaz, meanspeed); +% xlabel('Back azimuth (degrees)') +% ylabel('Sound speed (m/s)'); +% subplot(2,1,2),semilogy(backaz, abs(fractional_error)); +% xlabel('Back azimuth (degrees)') +% ylabel('Sound speed fractional error'); + + + % return variables + fractional_error(meanspeed<0) = Inf; % eliminate -ve speeds as solutions + if exist('fixspeed','var') + [~,index] = min(abs(meanspeed-fixspeed)); + fractional_error(index) = 0; % force this speed to be used + end + [~,bestindex] = min(abs(fractional_error)); + bestbackaz = backaz(bestindex); + bestspeed = meanspeed(bestindex); + + fprintf('Source is at back azimuth %.1f and wave travels at speed of %.1fm/s\n',bestbackaz,bestspeed); + for row=1:N + for column=1:N + %distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestbackaz) unit_vector_northing(bestbackaz)] ); + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestindex) unit_vector_northing(bestindex)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; + + % add these to the infrasoundEvent structure + infrasoundEvent.bestbackaz = bestbackaz; + infrasoundEvent.bestsoundspeed = bestsoundspeed; + infrasoundEvent.distanceDiff = distanceDiff; + infrasoundEvent.speedMatrix = speedMatrix; +end + +%% +function infrasoundEvent = compute_energy(infrasoundEvent, array_distance_in_km) +%COMPUTE_ENERGY +% infrasoundEvent = compute_energy(infrasoundEvent, array_distance_in_km) + densityEarth = 2000; % (kg/m3) sandstone is 2000-2650, limestone 2000, wet sand 1950 + %pWaveSpeed = 2000; % (m/s) sandstone 2000-3500, limestone 3500-6000, wet sand 1500-2000 + densityAir = 1.225; % (kg/m3) + pWaveSpeed = 885; % from onset sub-event + for chanNum = 1:numInfrasoundChannels + infrasoundEnergy(chanNum) = 2 * pi * (array_distance_in_km(chanNum).^2 * 1e6) * infrasoundEvent.energy(chanNum) / (densityAir * speed_of_sound); + end + seismicEnergy = sum(ev.energy(4:6)) * 2 * pi * (array_distance_in_km(6).^2 * 1e6) * densityEarth * pWaveSpeed *1e-18; + + % add to infrasoundEvent structure + infrasoundEvent.infrasoundEnergy = median(infrasoundEnergy); + infrasoundEvent.seismicEnergy = seismicEnergy; +end \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/apparentspeed.m b/applications/rockets/infrasoundgt/apparentspeed.m new file mode 100644 index 0000000..0367f4d --- /dev/null +++ b/applications/rockets/infrasoundgt/apparentspeed.m @@ -0,0 +1,18 @@ +hdistance1 = 1393.5; +hdistance2 = 1425.2; +sourceheight=0:500; +soundspeed=350.4; +pathlength1 = sqrt(hdistance1^2 + sourceheight.^2); +traveltime1 = pathlength1 ./ soundspeed; +pathlength2 = sqrt(hdistance2^2 + sourceheight.^2); +traveltime2 = pathlength2 ./ soundspeed; +apparentC = (hdistance2 - hdistance1)./(traveltime2-traveltime1); +plot(sourceheight, apparentC) +xlabel('Source Height (m)'); +ylabel('Apparent sound speed (m/sec)') + +figure +theta = 180 * atan(sourceheight./hdistance1) / pi; +plot(theta, apparentC) +xlabel('Incidence angle (degrees)'); +ylabel('Apparent sound speed (m/sec)') \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/auto_measure_amplitudes.m b/applications/rockets/infrasoundgt/auto_measure_amplitudes.m new file mode 100755 index 0000000..f995eac --- /dev/null +++ b/applications/rockets/infrasoundgt/auto_measure_amplitudes.m @@ -0,0 +1,18 @@ +function infrasoundEventOut = auto_measure_amplitudes(infrasoundEvent, wevent, titleStr, predicted_traveltime_seconds, figureOutDirectory) +numEvents = numel(infrasoundEvent); +close all +min_traveltime = min(predicted_traveltime_seconds); +relative_traveltimes = predicted_traveltime_seconds - min_traveltime; +infrasoundEventOut = []; +for eventNumber=1:numEvents + thisEvent = infrasoundEvent(eventNumber); + thisW=wevent{eventNumber}; + + thisEvent = auto_measure_minmax3(thisW, thisEvent, relative_traveltimes) + ah=get(gcf,'Children'); + title(ah(7),sprintf('Event %d',eventNumber)); + + feval('print', '-dpng', sprintf('%s/%s_%03d',figureOutDirectory, titleStr, eventNumber) ); + close + infrasoundEventOut = [infrasoundEventOut thisEvent]; +end \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/auto_measure_minmax3.m b/applications/rockets/infrasoundgt/auto_measure_minmax3.m new file mode 100755 index 0000000..0bfaf29 --- /dev/null +++ b/applications/rockets/infrasoundgt/auto_measure_minmax3.m @@ -0,0 +1,83 @@ +function thisEvent = auto_measure_minmax(thisW, thisEvent, relative_traveltimes) +% for each channel find the minimum and maximum value that lie within +% MAX_TIME_DIFF seconds of each other + +MAX_TIME_DIFF = 0.03; % max time diff between min & max amp is MAX_TIME_DIFF seconds +SECONDS_PER_DAY = 86400; +SECONDS_BEFORE_FIRST_ARRIVAL_FOR_TIMEWINDOW_START = 0.05; +SECONDS_AFTER_FIRST_ARRIVAL_FOR_TIMEWINDOW_END = 0.15; + +thisW = detrend(thisW); % make sure there is no trend or offset +wstart = get(thisW,'start'); % vector of waveform start times +wstd = std(thisW); % vector of waveform standard deviations - for noise estimation + +% plot waveforms for this event +fh=plot_panels(thisW); +ah=get(fh,'Children'); +set(fh, 'Position', [0 0 1600 1000]); +thisEvent.maxAmp=zeros(1,6); +thisEvent.minAmp=zeros(1,6); +thisEvent.maxTime=zeros(1,6); +thisEvent.minTime=zeros(1,6); + +for chanNum=1:6 + + % GET THE DATA + y = get(thisW(chanNum),'data'); +% ydiff = [0; diff(y)]; + + % DEFINE THE MAIN TIME WINDOW TO SEARCH OVER + time_to_begin_at = thisEvent.FirstArrivalTime + relative_traveltimes(chanNum)/SECONDS_PER_DAY - SECONDS_BEFORE_FIRST_ARRIVAL_FOR_TIMEWINDOW_START/SECONDS_PER_DAY; + time_to_end_at = time_to_begin_at + SECONDS_AFTER_FIRST_ARRIVAL_FOR_TIMEWINDOW_END/SECONDS_PER_DAY; + fs = get(thisW(chanNum),'freq'); + numSamples = length(y); + seconds_begin_offset = (time_to_begin_at - wstart(chanNum)) * SECONDS_PER_DAY; + seconds_end_offset = (time_to_end_at - wstart(chanNum)) * SECONDS_PER_DAY; + sample_to_begin_at = max( [round( seconds_begin_offset * fs) 1]); + sample_to_end_at = min( [round( seconds_end_offset * fs) numSamples]); + + % LOOP OVER SUBWINDOWS + % find p2p amplitude in each, compare to highest p2p found so far + subWindowSize = round(fs * MAX_TIME_DIFF); + maxA = 0; + for startSamp = sample_to_begin_at:1:sample_to_end_at - subWindowSize + samples = startSamp:startSamp + subWindowSize-1; + [maxy, maxindex] = max(y(samples)); + [miny, minindex] = min(y(samples)); + if (maxy-miny) > maxA % THE BIGGEST PEAK2PEAK SO FAR - SO UPDATE THE INFRASOUND OBJECT + maxSecs = ((maxindex+samples(1)-1)/fs); + minSecs = ((minindex+samples(1)-1)/fs); + maxA = maxy-miny; + + % SAVE THE MIN AND MAX VALUES & CORRESPONDING TIMES + thisEvent.maxTime(chanNum) = wstart(chanNum) + maxSecs/SECONDS_PER_DAY; + thisEvent.minTime(chanNum) = wstart(chanNum) + minSecs/SECONDS_PER_DAY; + thisEvent.maxAmp(chanNum) = maxy; + thisEvent.minAmp(chanNum) = miny; + thisEvent.p2p(chanNum) = maxy - miny; + end + + end + +% % second algorithm - find the greatest number of consecutive points +% % with a positive gradient, and with a negative gradient +% a = (ydiff>0); +% [pos, neg] = longest_sequence(a(sample_to_begin_at:sample_to_end_at)); +% pos.Start = pos.Start - 1 + sample_to_begin_at; +% pos.End = pos.End - 1 + sample_to_begin_at; +% neg.Start = neg.Start - 1 + sample_to_begin_at; +% neg.End = neg.End - 1 + sample_to_begin_at; + + % ADD OTHER METRICS TO THE INFRASOUND OBJECT + thisEvent.rms(chanNum) = wstd(chanNum); % stdev of whole trace - noise level estimate + thisEvent.energy(chanNum) = sum(y(sample_to_begin_at:sample_to_end_at).^2)/fs; + + % MARK THE MIN AND MAX TIMES ON THE WAVEFORM PANEL PLOT + axisnum = 8 - chanNum; + axes(ah(axisnum)); + hold on + plot(ah(axisnum),maxSecs, thisEvent.maxAmp(chanNum), 'g*'); + plot(ah(axisnum),minSecs, thisEvent.minAmp(chanNum), 'r*'); +% plot(ah(axisnum),[pos.Start/fs pos.End/fs], [0 0], 'b-'); +% plot(ah(axisnum),[neg.Start/fs neg.End/fs], [0 0], 'k-'); +end \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/beamform.m b/applications/rockets/infrasoundgt/beamform.m new file mode 100755 index 0000000..13f4f98 --- /dev/null +++ b/applications/rockets/infrasoundgt/beamform.m @@ -0,0 +1,94 @@ +function [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform(easting, northing, meanSecsDiff); +% tmp=easting(2); +% easting(2)=easting(3); +% easting(3)=tmp; +% tmp=northing(2); +% northing(2)=northing(3); +% northing(3)=tmp; +%BEAMFORM compute back azimuth of source from travel time differences +%between each component. Plane waves are assumed (i.e. source at infinite +%distance). +% +% sourcebackaz = beamform(easting, northing, meanSecsDiff) +% +% Inputs: +% easting, northing - GPS coordinates of array components +% meanSecsDiff - an array of size N*N where N = number of array +% components. Each element represents mean travel +% time difference between the array elements +% represented by that row and column +% +% Outputs: +% sourcebackaz - back azimuth of the source +% +% + bestbackaz = NaN; + bestspeed = NaN; + + % First we use travel time ratios to find back azimuthal angle of the beam + % this means we do not need to know speed + N=numel(easting); + if numel(northing)~=N + error('length of easting and northing must be same') + end + if (size(meanSecsDiff) ~= [N N]) + size(easting) + size(northing) + size(meanSecsDiff) + error('wrong dimensions for meanSecsDiff') + end + + backaz = 1:360; + unit_vector_easting = -sin(deg2rad(backaz)); + unit_vector_northing = -cos(deg2rad(backaz)); + + for row=1:N + for column=1:N + eastingDiff(row, column) = easting(row) - easting(column); + northingDiff(row, column) = northing(row) - northing(column); + end + end + + for thisaz = backaz + for row=1:N + for column=1:N + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(thisaz) unit_vector_northing(thisaz)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; + a =[]; + for row=1:N + for column=1:N + if row~=column + a = [a speedMatrix(row, column)]; + end + end + end + meanspeed(thisaz) = mean(a); + stdspeed(thisaz) = std(a); + + end + fractional_error = stdspeed ./ meanspeed; + figure + subplot(2,1,1),bar(backaz, meanspeed); + xlabel('Back azimuth (degrees)') + ylabel('Sound speed (m/s)'); + subplot(2,1,2),semilogy(backaz, abs(fractional_error)); + xlabel('Back azimuth (degrees)') + ylabel('Sound speed fractional error'); + + + % return variables + fractional_error(meanspeed<0) = Inf; % eliminate -ve speeds as solutions + [~,bestbackaz] = min(abs(fractional_error)); + bestspeed = meanspeed(bestbackaz); + + fprintf('Source is at back azimuth %.1f and wave travels at speed of %.1fm/s\n',bestbackaz,bestspeed); + for row=1:N + for column=1:N + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestbackaz) unit_vector_northing(bestbackaz)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; +end + diff --git a/applications/rockets/infrasoundgt/beamform2.m b/applications/rockets/infrasoundgt/beamform2.m new file mode 100755 index 0000000..172ac92 --- /dev/null +++ b/applications/rockets/infrasoundgt/beamform2.m @@ -0,0 +1,124 @@ +function [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff, fixbackaz, fixspeed); +%BEAMFORM2D compute back azimuth of source from travel time differences +%between each component. Plane waves are assumed (i.e. source at infinite +%distance). 2D assumes flat topography, does not search over a vertical +%incident angle. +% +% [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff) +% For each possible back azimuth, compute the distances between array +% components resolved in that direction. +% Based on differential travel times (meanSecsDiff), compute +% speedMatrix. Take average and stdev of speedMatrix, and compute +% fractional deviation. +% Choose the best back azimuth (bestbackaz) as the back azimuth for which the fractional +% deviation is least. Return this and the mean speed (bestspeed). +% +% Inputs: +% easting, northing - GPS coordinates of array components +% meanSecsDiff - an array of size N*N where N = number of array +% components. Each element represents mean travel +% time difference between the array elements +% represented by that row and column +% +% Outputs: +% bestbackaz - back azimuth of the source that best fits inputs +% bestspeed - pressure wave speed across array that best fits inputs +% +% [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff,fixbackaz) +% fixbackaz - fix the back azimuth to this value +% Only iterate from fixbackaz-1 to fixbackaz+1, rather than from +% 0.1 to 360. +% +% +% [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff,0,fixspeed) +% fixspeed - return the back azimuth that best fits this speed. + + bestbackaz = NaN; + bestspeed = NaN; + + % First we use travel time ratios to find back azimuthal angle of the beam + % this means we do not need to know speed + N=numel(easting); + if numel(northing)~=N + error('length of easting and northing must be same') + end + if (size(meanSecsDiff) ~= [N N]) + size(easting) + size(northing) + size(meanSecsDiff) + error('wrong dimensions for meanSecsDiff') + end + + if exist('fixspeed','var') + clear fixbackaz + warning('You can only set fixbackaz or fixspeed, not both. Ignoring fixbackaz') + end + + if exist('fixbackaz', 'var') + backaz = fixbackaz - 1.0: 0.1: fixbackaz + 1.0; + else + backaz = 0.1:0.1:360; + end + unit_vector_easting = -sin(deg2rad(backaz)); + unit_vector_northing = -cos(deg2rad(backaz)); + + for row=1:N + for column=1:N + eastingDiff(row, column) = easting(row) - easting(column); + northingDiff(row, column) = northing(row) - northing(column); + end + end + + %for thisaz = backaz + for c=1:length(backaz) + thisaz = backaz(c); + for row=1:N + for column=1:N + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(c) unit_vector_northing(c)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; + a =[]; + for row=1:N + for column=1:N + if row~=column + a = [a speedMatrix(row, column)]; + end + end + end + %meanspeed(thisaz) = mean(a); + %stdspeed(thisaz) = std(a); + meanspeed(c) = mean(a); + stdspeed(c) = std(a); + + end + fractional_error = stdspeed ./ meanspeed; + figure + subplot(2,1,1),bar(backaz, meanspeed); + xlabel('Back azimuth (degrees)') + ylabel('Sound speed (m/s)'); + subplot(2,1,2),semilogy(backaz, abs(fractional_error)); + xlabel('Back azimuth (degrees)') + ylabel('Sound speed fractional error'); + + + % return variables + fractional_error(meanspeed<0) = Inf; % eliminate -ve speeds as solutions + if exist('fixspeed','var') + [~,index] = min(abs(meanspeed-fixspeed)); + fractional_error(index) = 0; % force this speed to be used + end + [~,bestindex] = min(abs(fractional_error)); + bestbackaz = backaz(bestindex); + bestspeed = meanspeed(bestindex); + + fprintf('Source is at back azimuth %.1f and wave travels at speed of %.1fm/s\n',bestbackaz,bestspeed); + for row=1:N + for column=1:N + %distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestbackaz) unit_vector_northing(bestbackaz)] ); + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestindex) unit_vector_northing(bestindex)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; +end + diff --git a/applications/rockets/infrasoundgt/beamform2d.m b/applications/rockets/infrasoundgt/beamform2d.m new file mode 100755 index 0000000..5ea629e --- /dev/null +++ b/applications/rockets/infrasoundgt/beamform2d.m @@ -0,0 +1,124 @@ +function [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff, fixbackaz, fixspeed) +%BEAMFORM2D compute back azimuth of source from travel time differences +%between each component. Plane waves are assumed (i.e. source at infinite +%distance). 2D assumes flat topography, does not search over a vertical +%incident angle. +% +% [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff) +% For each possible back azimuth, compute the distances between array +% components resolved in that direction. +% Based on differential travel times (meanSecsDiff), compute +% speedMatrix. Take average and stdev of speedMatrix, and compute +% fractional deviation. +% Choose the best back azimuth (bestbackaz) as the back azimuth for which the fractional +% deviation is least. Return this and the mean speed (bestspeed). +% +% Inputs: +% easting, northing - GPS coordinates of array components +% meanSecsDiff - an array of size N*N where N = number of array +% components. Each element represents mean travel +% time difference between the array elements +% represented by that row and column +% +% Outputs: +% bestbackaz - back azimuth of the source that best fits inputs +% bestspeed - pressure wave speed across array that best fits inputs +% +% [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff,fixbackaz) +% fixbackaz - fix the back azimuth to this value +% Only iterate from fixbackaz-1 to fixbackaz+1, rather than from +% 0.1 to 360. +% +% +% [bestbackaz, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff,0,fixspeed) +% fixspeed - return the back azimuth that best fits this speed. + + bestbackaz = NaN; + bestspeed = NaN; + + % First we use travel time ratios to find back azimuthal angle of the beam + % this means we do not need to know speed + N=numel(easting); + if numel(northing)~=N + error('length of easting and northing must be same') + end + if (size(meanSecsDiff) ~= [N N]) + size(easting) + size(northing) + size(meanSecsDiff) + error('wrong dimensions for meanSecsDiff') + end + + if exist('fixspeed','var') + clear fixbackaz + warning('You can only set fixbackaz or fixspeed, not both. Ignoring fixbackaz') + end + + if exist('fixbackaz', 'var') + backaz = fixbackaz - 1.0: 0.1: fixbackaz + 1.0; + else + backaz = 0.1:0.1:360; + end + unit_vector_easting = -sin(deg2rad(backaz)); + unit_vector_northing = -cos(deg2rad(backaz)); + + for row=1:N + for column=1:N + eastingDiff(row, column) = easting(row) - easting(column); + northingDiff(row, column) = northing(row) - northing(column); + end + end + + %for thisaz = backaz + for c=1:length(backaz) + thisaz = backaz(c); + for row=1:N + for column=1:N + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(c) unit_vector_northing(c)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; + a =[]; + for row=1:N + for column=1:N + if row~=column + a = [a speedMatrix(row, column)]; + end + end + end + %meanspeed(thisaz) = mean(a); + %stdspeed(thisaz) = std(a); + meanspeed(c) = mean(a); + stdspeed(c) = std(a); + + end + fractional_error = stdspeed ./ meanspeed; +% figure +% subplot(2,1,1),bar(backaz, meanspeed); +% xlabel('Back azimuth (degrees)') +% ylabel('Sound speed (m/s)'); +% subplot(2,1,2),semilogy(backaz, abs(fractional_error)); +% xlabel('Back azimuth (degrees)') +% ylabel('Sound speed fractional error'); + + + % return variables + fractional_error(meanspeed<0) = Inf; % eliminate -ve speeds as solutions + if exist('fixspeed','var') + [~,index] = min(abs(meanspeed-fixspeed)); + fractional_error(index) = 0; % force this speed to be used + end + [~,bestindex] = min(abs(fractional_error)); + bestbackaz = backaz(bestindex); + bestspeed = meanspeed(bestindex); + + fprintf('Source is at back azimuth %.1f and wave travels at speed of %.1fm/s\n',bestbackaz,bestspeed); + for row=1:N + for column=1:N + %distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestbackaz) unit_vector_northing(bestbackaz)] ); + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestindex) unit_vector_northing(bestindex)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; +end + diff --git a/applications/rockets/infrasoundgt/butterworthFilter.m b/applications/rockets/infrasoundgt/butterworthFilter.m new file mode 100755 index 0000000..3df8ce1 --- /dev/null +++ b/applications/rockets/infrasoundgt/butterworthFilter.m @@ -0,0 +1,5 @@ +function wfilt = butterworthFilter(w, filterType, corners, numpoles) +disp('Filtering waveform data...') +wfilt = detrend(w); +f=filterobject(filterType, corners, numpoles); +wfilt=filtfilt(f,wfilt); diff --git a/applications/rockets/infrasoundgt/computeSpeedOfSound.m b/applications/rockets/infrasoundgt/computeSpeedOfSound.m new file mode 100755 index 0000000..e631960 --- /dev/null +++ b/applications/rockets/infrasoundgt/computeSpeedOfSound.m @@ -0,0 +1,2 @@ +function c = computeSpeedOfSound(temperatureC, relativeHumidity) +c = 331.3 + 0.606 * temperatureC + 1.26 * relativeHumidity/100; \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/compute_infrasound_energy.m b/applications/rockets/infrasoundgt/compute_infrasound_energy.m new file mode 100755 index 0000000..a291826 --- /dev/null +++ b/applications/rockets/infrasoundgt/compute_infrasound_energy.m @@ -0,0 +1,4 @@ +function e = compute_infrasound_energy(dataInPascals, samplingFrequency, distanceInMetres, densityAir, speed_of_sound); +% densityAir = 1.225; % (kg/m3) +dimensionlessEnergy = dataInPascals.^2 / samplingFrequency; +e = 2 * pi * distanceInMetres^2 * dimensionlessEnergy / (densityAir * speed_of_sound); diff --git a/applications/rockets/infrasoundgt/eventMap.m b/applications/rockets/infrasoundgt/eventMap.m new file mode 100755 index 0000000..102d573 --- /dev/null +++ b/applications/rockets/infrasoundgt/eventMap.m @@ -0,0 +1,24 @@ +%% plot array map & compute eastings and northings +if make_figures + disp('Plotting array map') + close all + cols = 'rwbggg'; + for c=1:length(lat) + chan = get(w(c),'channel');; + plot(easting(c),northing(c),'o','MarkerFaceColor',cols(c),'MarkerSize',10) + hold on + quiver(easting(c),northing(c),-easting(c)/100,-northing(c)/100,0); % /100 just gives arrow length + text(easting(c)+1,northing(c),chan(1:3)); + end + grid on + quiver(440,1325,wind_speed*sin(deg2rad(wind_direction)), wind_speed*cos(deg2rad(wind_direction)) ,0,'k'); + text(440,1325,'wind') + hold off + title('Beach House array position relative to SLC40'); + xlabel('metres east'); + ylabel('metres north'); + axis equal; + outfile = sprintf('%s/arraymap.png',figureOutDirectory); + feval('print', '-dpng', outfile); + close +end \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/fahrenheit2celsius.m b/applications/rockets/infrasoundgt/fahrenheit2celsius.m new file mode 100755 index 0000000..2a871d3 --- /dev/null +++ b/applications/rockets/infrasoundgt/fahrenheit2celsius.m @@ -0,0 +1,2 @@ +function tempC = fahrenheit2celsius(tempF) +tempC = (tempF - 32) * 5/9; \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/infrasoundEvent2catalog.m b/applications/rockets/infrasoundgt/infrasoundEvent2catalog.m new file mode 100755 index 0000000..e69de29 diff --git a/applications/rockets/infrasoundgt/latlon2eastingsNorthings.m b/applications/rockets/infrasoundgt/latlon2eastingsNorthings.m new file mode 100755 index 0000000..7980fd4 --- /dev/null +++ b/applications/rockets/infrasoundgt/latlon2eastingsNorthings.m @@ -0,0 +1,11 @@ +function [easting,northing]=latlon2eastingsNorthings(sourcelat, sourcelon, lat, lon) +% Convert lat,lon to eastings,northings with sourcelat, sourcelon as origin +% inputs are in degrees, output is in metres relative to origin +% [easting,northing]=latlon2eastingsNorthings(sourcelat, sourcelon, lat, lon) +deg2m = deg2km(1) * 1000; +for c=1:length(lat) + e = distance(lat(c), lon(c), lat(c), sourcelon) * deg2m; + easting(c) = e * sign(lon(c)-sourcelon); + n = distance(lat(c), lon(c), sourcelat, lon(c)) * deg2m; + northing(c) = n * sign(lat(c)-sourcelat); +end \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/make_master_event.m b/applications/rockets/infrasoundgt/make_master_event.m new file mode 100755 index 0000000..ccd7090 --- /dev/null +++ b/applications/rockets/infrasoundgt/make_master_event.m @@ -0,0 +1,44 @@ +function masterEvent = make_master_event(infrasoundEvent) +%% Construct a master infrasound event, from all the individual ones +disp('Constructing master infrasound event from individual event statistics') +masterEvent.FirstArrivalTime = infrasoundEvent(1).FirstArrivalTime; +masterEvent.LastArrivalTime = infrasoundEvent(1).LastArrivalTime; + +% find the mean xcorr time lag difference for non-identical infrasound components - it should be close to zero if only one event in time window +% e.g. needle 1 and haystack 2 should have same magnitude but opposite sign +% time delay to needle 2 and haystack 1 if there is only one clear N wave +% in the haystacks +disp('- finding events with a mean time lag difference of close to 0 - these are the events we can use') +indexes = find(abs([infrasoundEvent.meanSecsDiff]) < 0.01); % these are events with probably only one event in wevent time window +fprintf('- found %d events we can use\n', numel(indexes)); +disp('- event indexes to use'); +disp(indexes) + +masterEvent.secsDiff = zeros(3,3); +masterEvent.stdSecsDiff = zeros(3,3); +for row=1:3 + for column=1:3 + a = []; + for eventNumber = indexes + thisEvent = infrasoundEvent(eventNumber); + a = [a thisEvent.secsDiff(row, column)]; + end + +% % eliminate any events which have a difference from the mean of +% % greater than the standard deviation +% diffa = abs( (a-mean(a))/std(a) ); +% +% % now set the mean and std for the master event +% masterEvent.secsDiff(row, column) = mean(a(diffa<1.0)); +% masterEvent.stdSecsDiff(row, column) = std(a(diffa<1.0)); + + masterEvent.secsDiff(row, column) = mean(a); + masterEvent.stdSecsDiff(row, column) = std(a); + end +end +disp(' - mean:'); +disp(masterEvent.secsDiff) +disp(' - std:') +disp(masterEvent.stdSecsDiff) +disp(' - fractional std:') +disp(masterEvent.stdSecsDiff ./ masterEvent.secsDiff) \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/plotIS.m b/applications/rockets/infrasoundgt/plotIS.m new file mode 100755 index 0000000..4646dae --- /dev/null +++ b/applications/rockets/infrasoundgt/plotIS.m @@ -0,0 +1,19 @@ +function plotIS(w) +r=waveform2rsam(w([2 6]),'max',0.1); +yi = r(1).data; +ys = r(2).data; +t = r(1).dnum; + +figure +subplot(2,1,1), semilogy(t,yi); +ytickpos = get(gca,'YTick'); +set(gca,'YTickLabels',ytickpos); +ylabel('Pressure change (Pa)'); +datetick('x','keeplimits') + +subplot(2,1,2), semilogy(t,ys); +ytickpos = get(gca,'YTick'); +set(gca,'YTickLabels',ytickpos); +ylabel('Ground velocity (nm/sec)'); +xlabel(sprintf('Date/Time starting at %s',datestr(t(1),'yyyy-mm-dd HH:MM:SS.FFF'))); +datetick('x','keeplimits') \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/plot_events.m b/applications/rockets/infrasoundgt/plot_events.m new file mode 100755 index 0000000..3bc0d0c --- /dev/null +++ b/applications/rockets/infrasoundgt/plot_events.m @@ -0,0 +1,11 @@ +function plot_events(wevent, filepattern, figureOutDirectory) +numEvents = numel(wevent); +for eventNumber=1:numEvents + fprintf('- plotting event %d of %d\n',eventNumber,numEvents ); + plot_panels(wevent{eventNumber}); + ah=get(gcf,'Children'); + title(ah(7),sprintf('Event %d',eventNumber)); + outfile = sprintf('%s/%s%03d.png',figureOutDirectory, filepattern, eventNumber); + feval('print', '-dpng', outfile); + close +end \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/predictedTravelTimes.m b/applications/rockets/infrasoundgt/predictedTravelTimes.m new file mode 100755 index 0000000..fa4ed6b --- /dev/null +++ b/applications/rockets/infrasoundgt/predictedTravelTimes.m @@ -0,0 +1,26 @@ +%% compute predicted travel times for infrasound waves based on GPS coords & wind +%% also add lat, lon, distance and backaz fields to waveform objects +disp('Predicting travel times based on GPS coordinates and wind vector...') +fout = fopen(fullfile(figureOutDirectory, 'predictedTravelTimes.txt'), 'w'); +fprintf(fout,'\n_______________________________________________\n'); +fprintf(fout,'PREDICTED TRAVEL TIME BASED ON:\n'); +fprintf(fout,' sound speed(c) %.1fm/s\n', speed_of_sound); +fprintf(fout,' wind speed %.1fm/s\n', wind_speed); +fprintf(fout,' wind direction %.1f degrees\n', wind_direction); +fprintf(fout,'------\t--------\t-----------\t----------\t-----------\n'); +fprintf(fout,'Channel\tDistance\tBackAzimuth\tTravelTime\tc_effective\n'); +fprintf(fout,'------\t--------\t-----------\t----------\t-----------\n'); +for c=1:length(lat) + [arclen(c), backaz(c)] = distance(lat(c), lon(c), source.lat, source.lon, 'degrees'); + arclen(c) = deg2km(arclen(c))*1000; + effective_speed(c) = speed_of_sound + wind_speed * cos(deg2rad( (180+backaz(c)) - wind_direction) ); + predicted_traveltime_seconds(c) = arclen(c)/effective_speed(c); + fprintf(fout,'%s\t%.1fm\t\t%.1f degrees\t%.3fs\t\t%.1fm/s\n',get(w(c),'channel'), arclen(c), backaz(c), predicted_traveltime_seconds(c),effective_speed(c)); + w(c) = addfield(w(c), 'lat', lat(c)); + w(c) = addfield(w(c), 'lon', lon(c)); + w(c) = addfield(w(c), 'distance', arclen(c)); + w(c) = addfield(w(c), 'backaz', backaz(c)); +end +fprintf(fout,'_______________________________________________\n'); +fprintf(fout,'Program name: %s\n',mfilename('fullpath')); +fclose(fout); \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/predictedTravelTimesNE.m b/applications/rockets/infrasoundgt/predictedTravelTimesNE.m new file mode 100755 index 0000000..b329af2 --- /dev/null +++ b/applications/rockets/infrasoundgt/predictedTravelTimesNE.m @@ -0,0 +1,28 @@ +%% compute predicted travel times for infrasound waves based on eastings & northings & wind +%% also add lat, lon, distance and backaz fields to waveform objects +disp('Predicting travel times based on GPS coordinates and wind vector...') +fout = fopen(fullfile(figureOutDirectory, 'predictedTravelTimes.txt'), 'w'); +fprintf(fout,'\n_______________________________________________\n'); +fprintf(fout,'PREDICTED TRAVEL TIME BASED ON:\n'); +fprintf(fout,' sound speed(c) %.1fm/s\n', speed_of_sound); +fprintf(fout,' wind speed %.1fm/s\n', wind_speed); +fprintf(fout,' wind direction %.1f degrees\n', wind_direction); +fprintf(fout,'------\t--------\t-----------\t----------\t-----------\n'); +fprintf(fout,'Channel\tDistance\tBackAzimuth\tTravelTime\tc_effective\n'); +fprintf(fout,'------\t--------\t-----------\t----------\t-----------\n'); +for c=1:length(lat) + [arclen(c), backaz(c)] = distance(lat(c), lon(c), source.lat, source.lon, 'degrees'); + arclen(c) = deg2km(arclen(c))*1000; + arclen(c) = sqrt(easting(c).^2 + northing(c).^2); + backaz(c) = 180+180/pi*atan(easting(c)/northing(c)); + effective_speed(c) = speed_of_sound + wind_speed * cos(deg2rad( (180+backaz(c)) - wind_direction) ); + predicted_traveltime_seconds(c) = arclen(c)/effective_speed(c); + fprintf(fout,'%s\t%.1fm\t\t%.1f degrees\t%.3fs\t\t%.1fm/s\n',get(w(c),'channel'), arclen(c), backaz(c), predicted_traveltime_seconds(c),effective_speed(c)); + w(c) = addfield(w(c), 'lat', lat(c)); + w(c) = addfield(w(c), 'lon', lon(c)); + w(c) = addfield(w(c), 'distance', arclen(c)); + w(c) = addfield(w(c), 'backaz', backaz(c)); +end +fprintf(fout,'_______________________________________________\n'); +fprintf(fout,'Program name: %s\n',mfilename('fullpath')); +fclose(fout); \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/pressure_v_elevation.m b/applications/rockets/infrasoundgt/pressure_v_elevation.m new file mode 100644 index 0000000..2888152 --- /dev/null +++ b/applications/rockets/infrasoundgt/pressure_v_elevation.m @@ -0,0 +1,25 @@ +% Section 2.8 of https://www.ohio.edu/mechanical/thermo/Intro/Chapt.1_6/Chapter2b.html +close all + +T0 = 0 + 273; % kelvin, temperature at sea level +a = -0.00651; % Kelvin/m, a is lapse rate +P0 = 101000; % Pa, standard atmosphere pressure +g = 9.81; %m/s-2 +R = 287; %J/kg.Kelvin gas constant for air + +count=1; +z = 0:3000; % height +T = T0 + a * z; +P = P0 * power(T/T0, -g/(R*a) ); + +subplot(3,1,1),plot(z, T-273); ylabel('Temperature (C)'); +subplot(3,1,2),plot(z, P); ylabel('Pressure (Pa)'); + + +z=z(1)+0.5:z(end)-0.5; +subplot(3,1,3),plot(z,diff(P)); +xlabel('Altitude (m)') +ylabel('Pressure gradient (Pa/m)') + + + diff --git a/applications/rockets/infrasoundgt/savedata.m b/applications/rockets/infrasoundgt/savedata.m new file mode 100755 index 0000000..3dc69e6 --- /dev/null +++ b/applications/rockets/infrasoundgt/savedata.m @@ -0,0 +1,2 @@ +fprintf('Saving data to matfile %s\n',matfilename); +feval('save', matfilename) \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/segment_event_waveforms.m b/applications/rockets/infrasoundgt/segment_event_waveforms.m new file mode 100755 index 0000000..dea4364 --- /dev/null +++ b/applications/rockets/infrasoundgt/segment_event_waveforms.m @@ -0,0 +1,26 @@ +function wevent = segment_event_waveforms(w, cobj, pretrigger, posttrigger, arrivalTimeCorrection) +%SEGMENT_EVENT_WAVEFORMS take a continuous vector of waveforms, and based +% arrival times in the infrasoundEvent vector, generate a cell vector where +% each element is a waveform vector extracted around the arrival times +% given +% Usage: +% wevent = segment_event_waveforms(w, infrasoundEvent, pretrigger, +% posttrigger,arrivalTimeCorrection) +% pretrigger and posttrigger are in seconds (e.g. 1) +if ~exist('arrivalTimeCorrection','var') + arrivalTimeCorrection = 0.0; +end +disp('Segmenting event waveforms...') +numEvents = numel(infrasoundEvent); +for eventNumber=1:numEvents + fprintf('- segmenting infrasound event %d of %d\n',eventNumber,numEvents ); + time1 = infrasoundEvent(eventNumber).FirstArrivalTime-pretrigger/86400-arrivalTimeCorrection/86400; +% if arrivalTimeCorrection==0.0 +% time2 = infrasoundEvent(eventNumber).LastArrivalTime+posttrigger/86400-arrivalTimeCorrection/86400; +% else + time2 = infrasoundEvent(eventNumber).FirstArrivalTime+posttrigger/86400-arrivalTimeCorrection/86400; +% end + w2 = detrend(extract(w, 'time', time1, time2)); + wevent{eventNumber} = w2; + clear w2 +end diff --git a/applications/rockets/infrasoundgt/speed_versus_pressure.m b/applications/rockets/infrasoundgt/speed_versus_pressure.m new file mode 100755 index 0000000..db6d1d8 --- /dev/null +++ b/applications/rockets/infrasoundgt/speed_versus_pressure.m @@ -0,0 +1,34 @@ +function speed_versus_pressure() +% from Marchetti & Yasur 2013 GRL +% compute Mach number (M) as a function of overpressure (P0) +speed_of_sound = 348.8; % m/sec +gamma = 1.4; % heat capacity for dry air +r = 1400; %m +ambient_pressure = 1e5; % Pascals +overpressure = logspace(0,5); +underpressure = sort(-overpressure); +overpressure = [underpressure overpressure]; +%P0=ambient_pressure*10.^(-0.9:0.001:0.9); +%M=sqrt( (gamma+1)/(2*gamma) * (P0/ambient_pressure - 1) + 1); +M=sqrt( (gamma+1)/(2*gamma) * overpressure/ambient_pressure + 1); +close all +figure +subplot(3,1,1) +loglog(overpressure,M); +xlabel('Overpressure (Pa)') +ylabel('Mach number'); + +p=1000; % Pa +p_reduced = p * r; +r1 = 10:1:r; +p1 = p_reduced./r1; +subplot(3,1,2),semilogy(r1,p1); +xlabel('Distance (m)') +ylabel('Overpressure (Pa)') + +M1=sqrt( (gamma+1)/(2*gamma) * p1/ambient_pressure + 1); +subplot(3,1,3),semilogy(r1,M1); +xlabel('Distance (m)') +ylabel('Mach number') +disp(sprintf('At array: Mach number = %.3f, mean speed = %.1f',M1(end),1.6+M1(end)*speed_of_sound)) +disp(sprintf('Along raypath: Mean Mach number = %.3f, mean speed = %.1f',mean(M1),1.6+mean(M1*speed_of_sound))) diff --git a/applications/rockets/infrasoundgt/writeEvents.m b/applications/rockets/infrasoundgt/writeEvents.m new file mode 100755 index 0000000..a9b9036 --- /dev/null +++ b/applications/rockets/infrasoundgt/writeEvents.m @@ -0,0 +1,60 @@ +function writeEvents(filepath, ev, array_distance_in_km, speed_of_sound) +fout = fopen(filepath, 'w'); +fprintf(fout, 'Arrival Time,Pressure (Pa),Reduced Pressure (Pa.km),Infrasound Energy (J),P_SNR,Vertical Seismic Amplitude (um/s),Seismic Energy (J), S_SNR,Energy Ratio,mean correlation,time error (s),good event?,back azimuth (degrees),sound speed (m/s),predicted origin time,apparent speed, apparent speed error,apparent origin time\n'); +for c=1:numel(ev) + fprintf(fout, '"%s"', datestr(ev(c).FirstArrivalTime,'yyyy-mm-dd HH:MM:SS.FFF')); + fprintf(fout,','); + fprintf(fout, '%7.1f', median(ev(c).p2p(1:3))); + fprintf(fout,','); + fprintf(fout, '%7.1f', median(ev(c).reducedPressure)); + fprintf(fout,','); + fprintf(fout, '%4.2e', ev(c).infrasoundEnergy); + fprintf(fout,','); + fprintf(fout, '%5.1f', median(ev(c).snr(1:3))); + fprintf(fout,','); + fprintf(fout, '%7.1f', ev(c).p2p(6)/1000); + fprintf(fout,','); + fprintf(fout, '%4.2e', ev(c).seismicEnergy); + fprintf(fout,','); + fprintf(fout, '%5.1f', ev(c).snr(6)); + fprintf(fout,','); + fprintf(fout, '%5.1f', ev(c).infrasoundEnergy/ev(c).seismicEnergy); + fprintf(fout,','); + fprintf(fout, '%4.2f', ev(c).meanCorr); + fprintf(fout, ','); + fprintf(fout, '%7.3f', ev(c).meanSecsDiff); + fprintf(fout, ','); + goodEvent = (ev(c).meanSecsDiff<0.001 && ev(c).meanCorr >= 0.7);% && ev(c).bestsoundspeed > 300.0 && ev(c).bestsoundspeed < 400.0); + fprintf(fout, '%7.3f', goodEvent); + fprintf(fout, ','); + if goodEvent + fprintf(fout, '%6.1f', ev(c).bestbackaz); + fprintf(fout,','); + fprintf(fout, '%7.1f', ev(c).bestsoundspeed); + fprintf(fout,','); + daysDiff = (min(array_distance_in_km)*1000/ev(c).bestsoundspeed)/86400; + fprintf(fout, '"%s"', datestr(ev(c).FirstArrivalTime-daysDiff,'yyyy-mm-dd HH:MM:SS.FFF')); + fprintf(fout, ','); + fprintf(fout, '%7.1f', ev(c).apparentSpeed); + fprintf(fout, ','); + fprintf(fout, '%7.1f', ev(c).apparentSpeedError); + fprintf(fout, ','); + daysDiff = (min(array_distance_in_km)*1000/ev(c).apparentSpeed)/86400; + fprintf(fout, '"%s"', datestr(ev(c).FirstArrivalTime-daysDiff,'yyyy-mm-dd HH:MM:SS.FFF')); + else + fprintf(fout, ''); + fprintf(fout,','); + fprintf(fout, ''); + fprintf(fout,','); + fprintf(fout, ''); + fprintf(fout, '%7.1f', 0); + fprintf(fout, ','); + fprintf(fout, '%7.1f', 0); + fprintf(fout, ','); + fprintf(fout, ''); + end + fprintf(fout, '\n'); + +end +fclose(fout); + \ No newline at end of file diff --git a/applications/rockets/infrasoundgt/xcorr3C.m b/applications/rockets/infrasoundgt/xcorr3C.m new file mode 100755 index 0000000..0faef43 --- /dev/null +++ b/applications/rockets/infrasoundgt/xcorr3C.m @@ -0,0 +1,83 @@ +function infrasoundEvent = xcorr3C(wevent, infrasoundEvent, make_figures, figureOutDirectory, pretrigger) +%XCORR3C Cross-correlation an event recorded on 3 infrasound components +% infrasoundEvent = xcorr3C(infrasoundEvent) +% Input: +% wevent - a cell array where each component is a vector of 3 +% waveform objects, 1 per infrasound channel +% infrasoundEvent is a structure containing two elements: +% FirstArrivalTime +% LastArrivalTime +% make_figures - if true, a figure is generated for each xcorr pair +% +% Output: +% infrasoundEvent with some additional elements added +% maxCorr - a 3x3 array of the maximum cross correlation values +% secsDiff - a 3x3 array of the time lags corresponding to +% maxCorr +% meanSecsDiff - the mean of secsDiff for non-diagonal components +% +% each component is cross correlated with each component, hence 3x3 + + %% correlate + % loop through infrasound channels + % take a 0.3-second snippet starting 0.1s before FirstArrivalTime, till 0.2s + % after it + % correlate this against the whole wevent for each infrasound + % trace + % this should result in a correlation matrix + % from this record the time lag matrix for each infrasound channel against each other + % infrasound channel + disp('CORRELATION ...') + disp('_______________') + numEvents = numel(infrasoundEvent); + for eventNumber=1:numEvents + fprintf('- processing event %d of %d\n', eventNumber, numEvents); + haystacks = wevent{eventNumber}; + infrasoundEvent(eventNumber).maxCorr = eye(3); + infrasoundEvent(eventNumber).secsDiff = eye(3); + precorrtime = 0.1; % NEEDLE seconds of data to add before first arrival + postcorrtime = 0.2; % NEEDLE seconds of data to add after first arrival + %postcorrtime = 0.4; + for chanNumber=1:3 + needle = extract(haystacks(chanNumber), 'time', infrasoundEvent(eventNumber).FirstArrivalTime-precorrtime/86400, infrasoundEvent(eventNumber).FirstArrivalTime+postcorrtime/86400); + needle_data = detrend(get(needle, 'data')); +% % upsample by a factor of 8 +% nx = get(needle,'timevector'); +% nxx = nx(1):(nx(2) - nx(1))/8:nx(end); +% nyy = spline(nx,needle_data,nxx); + for haystackNum = 1:3 + fprintf(' - looking for needle %d in haystack %d\n', chanNumber, haystackNum); + haystack = haystacks(haystackNum); + haystack_data = get(haystack,'data'); +% % upsample by a factor of 8 +% hx = get(haystack,'timevector'); +% hxx = hx(1):(hx(2) - hx(1))/8:hx(end); +% hyy = spline(hx,haystack_data,hxx); + [acor,lag] = xcorr(needle_data, haystack_data); +% [acor,lag] = xcorr(nyy, hyy); + cxx0 = sum(abs(needle_data).^2); + cyy0 = sum(abs(haystack_data).^2); +% cxx0 = sum(abs(nyy).^2); +% cyy0 = sum(abs(hyy).^2); + scale = sqrt(cxx0*cyy0); + acor = acor./scale; + [m,I] = max(abs(acor)); + infrasoundEvent(eventNumber).maxCorr(chanNumber,haystackNum) = m; + infrasoundEvent(eventNumber).secsDiff(chanNumber,haystackNum) = lag(I)/get(haystack,'freq') + pretrigger - precorrtime; + if make_figures + figure; + subplot(3,1,1),plot(haystack,'axeshandle',gca); + subplot(3,1,2),plot(needle,'axeshandle',gca); + subplot(3,1,3),plot(lag,acor); + outfile = sprintf('%s/xcorr_infrasoundEvent%03d_%d_%d.png',figureOutDirectory,eventNumber,chanNumber,haystackNum); + feval('print', '-dpng', outfile); + close + end + end + end + infrasoundEvent(eventNumber).meanCorr = mean(infrasoundEvent(eventNumber).maxCorr([2 3 4 6 7 8])); + infrasoundEvent(eventNumber).stdCorr = std(infrasoundEvent(eventNumber).maxCorr([2 3 4 6 7 8])); + infrasoundEvent(eventNumber).meanSecsDiff = mean(infrasoundEvent(eventNumber).secsDiff([2 3 4 6 7 8])); + infrasoundEvent(eventNumber).stdSecsDiff = std(infrasoundEvent(eventNumber).secsDiff([2 3 4 6 7 8])); + end +end \ No newline at end of file diff --git a/applications/rockets/misc/plot_average_frequency.m b/applications/rockets/misc/plot_average_frequency.m new file mode 100644 index 0000000..a05d956 --- /dev/null +++ b/applications/rockets/misc/plot_average_frequency.m @@ -0,0 +1,18 @@ +function plot_average_frequency(w) + figure + sp=spectralobject(1024,924,100,[]); + % Plot a spectrogram with superposed frequency metrics + [Tcell,meanF,peakF]=spectrogram(w,'spectralobject',sp,'plot_metrics',1); + % Plot the frequency metrics on their own + for c=1:numel(w) + subplot(numel(w),1,c) + plot(Tcell{c},smooth(peakF{c}),'g') + hold on + plot(Tcell{c},meanF{c},'k') + datetick('x') + ylabel('Hz') + sta= get(w(c),'station'); + chan= get(w(c),'channel'); + th=text(0.1,0.9, sprintf('%s %s.%s',datestr(Tcell{c}(1),30),sta,chan),'Units','normalized') + end +end \ No newline at end of file diff --git a/contributed_antelope/attenuation/hankelq.m b/contributed_antelope/attenuation/hankelq.m index 18890c2..117ea09 100644 --- a/contributed_antelope/attenuation/hankelq.m +++ b/contributed_antelope/attenuation/hankelq.m @@ -30,7 +30,11 @@ % Modified method to compute amplitude spectra. Now computes Q too. Now % also generic - works with input variables so it can be used on different % databases, for example. - +% November 2017: Glenn Thompson +% Fixed to work with updated GISMO classes +% +% NEED TO FIX TO CALCULATE Q based on seaz- Q is azimuthally dependent +% at Uturuncu stations! if ~admin.antelope_exists warning('Antelope not installed on this computer') @@ -42,10 +46,11 @@ end taper_seconds=pretrigger+posttrigger; - + %arrivals = antelope.dbgetarrivals(dbpath, expr); - arrivalobj = Arrival.retrieve('antelope', dbpath); - %arrivalobj = arrivalobj.subset(1:min([10 max_arrivals])); %when done, comment this line out, it's just for testing + arrivalobj = Arrival.retrieve('antelope', dbpath, 'subset_expr', expr); + %arrivalobj = arrivalobj.subset(expr) + %arrivalobj = arrivalobj.subset(1:max_arrivals); %when done, comment this line out, it's just for testing arrivalobj = arrivalobj.addwaveforms(datasource('antelope', dbpath), pretrigger+taper_seconds, posttrigger+taper_seconds); % w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); @@ -69,7 +74,7 @@ slope = (yline(2) - yline(1)) / (xlim(2) - xlim(1)); q = - pi * (f1 - f2) / slope; - title(sprintf('Q = %.0f', q)); + title(sprintf('Q = %.0f', q)); %% Can we add something that denotes whether the Q value is for Qp or Qs? end %function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m index 29acb8e..407e60f 100755 --- a/core/@Arrival/Arrival.m +++ b/core/@Arrival/Arrival.m @@ -293,11 +293,14 @@ function plot(obj) switch lower(dataformat) case {'css3.0','antelope', 'datascope'} if admin.antelope_exists() - %try - self = Arrival.read_arrivals.antelope(varargin{:}); - %catch - % no arrivals - %end + switch nargin + case 2 + self = Arrival.read_arrivals.antelope(varargin{1}); + case 4 + if strcmp(varargin{2}, 'subset_expr') + self = Arrival.read_arrivals.antelope(varargin{1}, varargin{3}); + end + end else warning('Antelope toolbox for MATLAB not found') end diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m index f5a567d..bd02a52 100755 --- a/core/@Arrival/associate.m +++ b/core/@Arrival/associate.m @@ -1,4 +1,4 @@ -edit function [catalogobj, arrivalobj] = associate(arrivalobj, maxTimeDiff, sites, source) +function [catalogobj, arrivalobj] = associate(arrivalobj, maxTimeDiff, sites, source) %ASSOCIATE Associate arrivals into events % [catalogobj] = associate(arrivals, maxTimeDiff) will scan through an % arrivals object and look for times where there are at least 2 arrivals on @@ -117,7 +117,7 @@ catalogobj.arrivals = arrivalobj2; fprintf('%d arrivals were determined to be duplicates using a time window of %.1f seconds\n',duplicatecount, maxTimeDiff); -end + % function result = alreadyHaveArrivalFromThisChannel(ctaglist, thisctag) % result = sum(cellfun(@(s) ~isempty(strfind(thisctag, s)), ctaglist)); diff --git a/core/@waveform/private/load_antelope.m b/core/@waveform/private/load_antelope.m index 7ae6b1a..fd2bf16 100755 --- a/core/@waveform/private/load_antelope.m +++ b/core/@waveform/private/load_antelope.m @@ -45,7 +45,8 @@ end outputWaveforms = emptyWaveform(); - % Glenn 2016/05/12 Check if wfdisc table exists + % Glenn 2016/05/12 Check if wfdisc table exists +database if ~antelope.dbtable_present(database, 'wfdisc') disp(sprintf('database %s contains no wfdisc table',database)); return diff --git a/core/@waveform/spectrogram.m b/core/@waveform/spectrogram.m index 828e773..81edfed 100755 --- a/core/@waveform/spectrogram.m +++ b/core/@waveform/spectrogram.m @@ -1,22 +1,49 @@ -function spectrogram( w, s ) +function [Tcell, meanf, peakf] = spectrogram( w, varargin ) %SPECTROGRAM Plot an IceWeb-style spectrogram % spectrogram(w, s) Creates an IceWeb style spectrogram by wrapping the % function iceweb.spectrogram_iceweb(). If s is omitted it defaults to: -% spectralobject(1024, 924, 10, [60 120]); +% spectralobject(1024, 924, 10, [60 120]) +% where [60 120] are the dB limits that correspond to the color map used. +% If this is a blank vector, [], the spectrogram is autoscaled in absolute +% amplitude, not plotted in dB with absolute dB limits. % -% For greater control, call that +% spectrogram(w, s, 'plot_metrics', 1) Will add frequency metrics computed +% by the waveform/amplitude_spectrum function. +% +% For greater control, call % iceweb.spectrogram_iceweb() directly, or use spectralobject/specgram or % spectralobject/specgram2 (not clear how these differ). Note that % spectrogram_iceweb() is significantly faster. % Glenn Thompson 2016/05/19 to provide a simple, fast way to geenrate nice % spectrograms without having to delve into specgram and specgram2 -if numel(w)>1 - w = reshape(w, numel(w), 1); -end -if ~exist('s','var') - s = spectralobject(1024, 924, 10, [60 120]); +figure +nfft = 1024; +overlap = 924; +fmax = 10; +dbLims = [60 120]; +p = inputParser; +p.addRequired('w'); +p.addParameter('spectralobject', spectralobject(nfft, overlap, fmax, dbLims)); +p.addParameter('plot_metrics', 0, @isnumeric); +p.parse(w, varargin{:}); +w=p.Results.w; +s=p.Results.spectralobject; + +% if ~class(s, 'spectralobject') +% disp('Oops, you did not give a valid spectralobject. Using default') + if numel(w)>1 + w = reshape(w, numel(w), 1); + end + + if p.Results.plot_metrics + [result,Tcell,Fcell,Ycell, meanf, peakf] = iceweb.spectrogram_iceweb(s, w, 'plot_metrics',1); + else + [result,Tcell,Fcell,Ycell, meanf, peakf] = iceweb.spectrogram_iceweb(s, w); + end + + end -iceweb.spectrogram_iceweb(s, w, 0.75); + From 1b4826c5a037969b7ca3f455e1a0db045f8813e6 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 1 Dec 2017 19:27:11 -0500 Subject: [PATCH 32/52] adding heather's frankel method changes --- contributed_antelope/attenuation/hankelq.m | 4 +- .../attenuation/singlestation_specrat.m | 243 ++++++++++++++++++ 2 files changed, 245 insertions(+), 2 deletions(-) create mode 100644 contributed_antelope/attenuation/singlestation_specrat.m diff --git a/contributed_antelope/attenuation/hankelq.m b/contributed_antelope/attenuation/hankelq.m index 117ea09..27c1bd2 100644 --- a/contributed_antelope/attenuation/hankelq.m +++ b/contributed_antelope/attenuation/hankelq.m @@ -174,11 +174,11 @@ % write out to file & close plot filename=sprintf('%s-%d',mfilename,i); print('-dpng', figure(i),filename) - if numel(w)>10 + if numel(w)>100 % I changed this from 10 to 100 because when I am passing more than 10 arrivals, my figures end up blank close end - % compute y=ln A1/A2 & t for formula 2 in Hankel (1982) + % compute y=ln A1/A2 & t for formula 2 in Frankel (1982) y(i) = log(A1/A2); [times, phasenames] = arrtimes(arrivalobj.delta(i), arrivalobj.depth(i)); phase_index = 1; diff --git a/contributed_antelope/attenuation/singlestation_specrat.m b/contributed_antelope/attenuation/singlestation_specrat.m new file mode 100644 index 0000000..fc753e2 --- /dev/null +++ b/contributed_antelope/attenuation/singlestation_specrat.m @@ -0,0 +1,243 @@ +function arrivalobj = singlestation_specrat(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) +%HANKELQ Compute spectral ratio in two frequency bands +% HANKELQ(dbpath, expr, freq_high, freq_low, pretrigger_seconds, posttrigger_seconds, max_arrivals ) +% Loads arrivals from an arrival table (after subsetting with expr) +% retrieves waveform data corresponding to those arrivals, cleans and +% plots the waveform data. The spectral ratio in bands around freq_high +% and freq_low is computed. When done for multiple earthquakes, a plot of this the +% natural log of this ratio versus travel time has a slope from which Q +% can be measured. +% pretrigger_seconds is the number of seconds before the arrival time to +% get waveform data for. +% posttrigger_seconds is the number of seconds after the arrival time to +% get waveform data for. +% max_arrivals is the maximum number of arrivals to process. +% +% Based on the method of Arthur Hankel, "The Effects of Attenuation and +% Site Response on the Spectra of Microearthquakes in the Northeastern +% Caribbean", BSSA, 72, 4, 1379-1402. +% +% Example: +% +% +% History: +% April 2014: Glenn Thompson +% Original version: load arrivals, load waveforms and plot waveforms +% April-November 2014: Heather McFarlin +% Modified to also plot amplitude spectra +% November 20, 2014: Glenn Thompson +% Completely overhauled & modularized. +% Modified method to compute amplitude spectra. Now computes Q too. Now +% also generic - works with input variables so it can be used on different +% databases, for example. +% November 2017: Glenn Thompson +% Fixed to work with updated GISMO classes +% Heather McFarlin +% Added units to Y-axis on plots +% Added amplitude spectrum of noise before waveform onto amplitude spectrum plot +% NEED TO FIX TO CALCULATE Q based on seaz- Q is azimuthally dependent +% at Uturuncu stations! + + if ~admin.antelope_exists + warning('Antelope not installed on this computer') + return + end + + if ~exist('max_arrivals','var') + max_arrivals=Inf; + end + + taper_seconds=pretrigger+posttrigger; + + %arrivals = antelope.dbgetarrivals(dbpath, expr); + arrivalobj = Arrival.retrieve('antelope', dbpath, 'subset_expr', expr); + %arrivalobj = arrivalobj.subset(expr) + arrivalobj = arrivalobj.subset(1:max_arrivals); %when done, comment this line out, it's just for testing + arrivalobj = arrivalobj.addwaveforms(datasource('antelope', dbpath), pretrigger+taper_seconds, posttrigger+taper_seconds); + + +% w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); + %w = waveform_clean(w); + close all + + %[y, t]=plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); + [y, t]=plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); + % This is the figure we use to derive q from spectral ratios for + % earthquakes of different distances (travel times) + % Q comes from the slope + figure; + plot(t, y, 'o'); + ylabel('ln(A_1/A_2)') + xlabel('travel time (s)') + p = polyfit(t,y,1); + xlim=get(gca,'XLim'); + yline = polyval(p, xlim); + hold on; + plot(xlim, yline) + + slope = (yline(2) - yline(1)) / (xlim(2) - xlim(1)); + q = - pi * (f1 - f2) / slope; + title(sprintf('Q = %.0f', q)); %% Can we add something that denotes whether the Q value is for Qp or Qs? +end + +%function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) +function [y, t] = plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) + + FMIN = 1.0; + + %% open an output file + fid=fopen([mfilename,'.txt'],'w'); + + taper_fraction = (taper_seconds * 2) / (taper_seconds * 2 + pretrigger + posttrigger); + + % get travel time for p-wave + p_time = arrivalobj.time - arrivalobj.otime + anum = arrivalobj.time; + + + w = arrivalobj.waveforms + for i=1:min([max_arrivals numel(w)]) + signal = get(w(i),'data'); + N = length(signal); + if N>0 + + % taper, filter to remove long period noise, and cut out tapered signal to leave only + % untapered signal + wf = w(i); + + taperwin=tukeywin(N, taper_fraction); + signal=signal.*taperwin; + wf = set(wf, 'data', signal); + fmax = get(wf, 'freq') * 0.4; + fobj = filterobject('b', [FMIN fmax], 2); + wf = filtfilt(fobj, wf); + [snum, enum]=gettimerange(wf); + + + + %get noise before event + wf_noise = extract(wf, 'time', snum, anum(i)-pretrigger/86400) + + %wf=subtime(wf, snum+taper_seconds/86400, enum-taper_seconds/86400); + wf=extract(wf, 'time', snum+taper_seconds/86400, enum-taper_seconds/86400) + + % integrate + dwf = integrate(wf); + + % integrate noise + + dwf_noise = integrate(wf_noise); + + % Plot waveform + hf(i)=figure; + ax(i,1)=subplot(3,1,1); + plot(w(i), 'xunit', 'date', 'color', 'r', 'axeshandle', ax(i,1)); %detrended and cleaned waveform -artifacts at beginning of signal are likely due to cleaning and detrending filters + datetick('x','HH:MM:SS', 'keeplimits') + hold on; + plot(wf, 'xunit', 'date', 'color', 'g', 'axeshandle', ax(i,1)); %filtered signal + datetick('x','HH:MM:SS','keeplimits') + hold on + plot(wf_noise, 'xunit', 'date', 'color', 'k', 'axeshandle', ax(i,1)) % noise + datetick('x','HH:MM:SS', 'keeplimits') + xlabel(sprintf('Time with arrival at %s',datestr(anum(i), 'yyyy-mm-dd HH:MM:SS.FFF'))); + ylabel('Velocity (nm/s)'); + title(sprintf('%s',arrivalobj.channelinfo{i})); + % plot arrival time as grey dotted line + ylim=get(gca,'YLim'); + hold on + plot([anum(i) anum(i)],ylim,'Color',[0.5 0.5 0.5], 'linestyle', '--') + hold off + + ax(i,2)=subplot(3,1,2); + plot(dwf, 'xunit', 'date', 'color', 'b', 'axeshandle', ax(i,2)); %filtered & integrated signal + datetick('x','HH:MM:SS:FFF', 'keeplimits', 'keepticks') + xlabel(sprintf('Time with arrival at %s',datestr(anum(i), 'yyyy-mm-dd HH:MM:SS.FFF'))); + ylabel('Displacement (nm)'); + title(sprintf('%s',arrivalobj.channelinfo{i})); + % plot arrival time as grey dotted line + ylim=get(gca,'YLim'); + hold on + plot([anum(i) anum(i)],ylim,'Color',[0.5 0.5 0.5], 'linestyle', '--') + hold off + + + % compute and plot amplitude spectrum + s = amplitude_spectrum(dwf); + A = s.amp; + f = s.f; + phi = s.phi; +% [A, phi, f] = amplitude_spectrum(dwf); + ax(i,3)=subplot(3,1,3); + A=smooth(A); + semilogy(f,A); + size(f) + %loglog(f, A) + xlabel('Frequency (Hz)') + ylabel('Amplitude (nm)') + hold on + % add noise spectrum + s_noise = amplitude_spectrum(dwf_noise); + A_noise = s_noise.amp; + f_noise = s_noise.f; + phi_noise = s_noise.phi; + A_noise = smooth(A_noise); + semilogy(f_noise, A_noise, 'color', 'k'); + size(f_noise) + hold on + % evaluate the spectral ratio + A1=mean(A(find(f>=f1*0.9 & f<=f1*1.1))); % for 20 Hz, this is 18-22 Hz + A2=mean(A(find(f>=f2*0.8 & f<=f2*1.2 ))); % for 5 Hz this is 4-6 Hz + patch([f1*0.9 f1*1.1 f1*1.1 f1*0.9],[0 0 A1 A1],[0.9 0.9 0.9]); + patch([f2*0.8 f2*1.2 f2*1.2 f2*0.8],[0 0 A2 A2],[0.9 0.9 0.9]); + %evaluate spectral ratio of noise + A1_noise = mean(A_noise(find(f_noise>=f1*0.9 & f_noise<=f1*1.1))); % for 20 Hz noise + A2_noise = mean(A_noise(find(f_noise>= f2*0.8 & f_noise<=f2*1.2))); % for 5 Hz noise + snr1 = A1/A1_noise; + snr2 = A2/A2_noise; + disp(sprintf('A1 = %6.3f, A2 = %6.3f, A1/A2 = %5.2f', A1, A2, A1/A2)); + hold on + disp(sprintf('SNR1 = %6.3f, SNR2 = %6.3f', snr1, snr2)); + hold off + + + + + + % add title + %outstr=sprintf('phase=%s orid=%d seaz=%6.2f delta=%5.3f depth=%5.1f\nA1=%5.3f A2=%5.3f A1/A2=%5.2f\n',arrivals.phase{i}, arrivals.orid(i), arrivals.seaz(i), arrivals.delta(i), arrivals.depth(i), A1, A2, A1/A2); + outstr=sprintf('phase=%s orid=%d seaz=%6.2f delta=%5.3f depth=%5.1f\nA1=%5.3f A2=%5.3f A1/A2=%5.2f\n SNR1 = %6.3f SNR2 = %6.3f',arrivalobj.iphase{i}, arrivalobj.orid(i), arrivalobj.seaz(i), arrivalobj.delta(i), arrivalobj.depth(i), A1, A2, A1/A2, snr1, snr2); + title(outstr) + + % write out to file & close plot + filename=sprintf('%s-%d',mfilename,i); + print('-dpng', figure(i),filename) + if numel(w)>100 % I changed this from 10 to 100 because when I am passing more than 10 arrivals, my figures end up blank + close + end + + % compute y=ln A1/A2 & t for formula 2 in Frankel (1982) + y(i) = log(A1/A2); + [times, phasenames] = arrtimes(arrivalobj.delta(i), arrivalobj.depth(i)); + phase_index = 1; + found = false; + while phase_index <= length(times) & ~found + thisphase = lower(phasenames{phase_index}); + thisphase = thisphase(1); + %if strcmp(lower(arrivals.phase{i}), thisphase) + if strcmp(lower(arrivalobj.iphase{i}), thisphase) + t(i)=times(phase_index); + found=true; + end + phase_index = phase_index + 1; + end + + %% write out to file + fprintf(fid,'%14.2f %8.2f %6.3f %5.1f %4.1f %4.1f %e %e\n', p_time(i), t(i), arrivalobj.delta(i), arrivalobj.depth(i), f1, f2, A1, A2); + + end + + end + + %% close output file + fclose(fid); +end \ No newline at end of file From 72d4f78d409ba4937ea183380d41f529c0fd67d3 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 4 Dec 2017 08:44:30 -0500 Subject: [PATCH 33/52] uploading changes from rocket spectral analysis --- applications/+iceweb/spectrogram_iceweb.m | 26 +++++++++++++++---- .../rockets/ensemble/rocketsimulation1d.m | 4 +-- .../attenuation/singlestation_specrat.m | 5 +++- core/@waveform/private/load_antelope.m | 3 +-- core/@waveform/spectrogram.m | 2 +- 5 files changed, 29 insertions(+), 11 deletions(-) diff --git a/applications/+iceweb/spectrogram_iceweb.m b/applications/+iceweb/spectrogram_iceweb.m index 74dee4d..0acda7e 100755 --- a/applications/+iceweb/spectrogram_iceweb.m +++ b/applications/+iceweb/spectrogram_iceweb.m @@ -115,13 +115,29 @@ S = S(1:max(index),:); % mean frequency - numerator = abs(S)' * F; - denominator = sum(abs(S),1); - meanF{c} = numerator./denominator'; + %minS = min(min(abs(S)+eps)); + minS = prctile(reshape(S,numel(S),1),40); + S2 = abs(S)-minS; + S2(S2 Date: Sat, 9 Dec 2017 14:54:54 -0500 Subject: [PATCH 34/52] Changes on newton --- applications/+iceweb/spectrogram_iceweb.m | 5 +++-- .../rockets/ensemble/load_all_rocket_events2.m | 6 ++---- .../attenuation/singlestation_specrat.m | 1 + core/@Catalog/subset.m | 10 +++++++--- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/applications/+iceweb/spectrogram_iceweb.m b/applications/+iceweb/spectrogram_iceweb.m index 0acda7e..86fd190 100755 --- a/applications/+iceweb/spectrogram_iceweb.m +++ b/applications/+iceweb/spectrogram_iceweb.m @@ -141,7 +141,8 @@ if isempty(dBlims) % plot spectrogram - imagesc(T,F,abs(S)); + %imagesc(T,F,abs(S)); + imagesc(T,F,Y); else imagesc(T,F,Y,dBlims); end @@ -175,7 +176,7 @@ % broadband stations % if (regexp(thischan, '[BH]H.')) % set(gca, 'Color', [.8 .8 .8]); - % end + % end[30 100 end result = result + 1; diff --git a/applications/rockets/ensemble/load_all_rocket_events2.m b/applications/rockets/ensemble/load_all_rocket_events2.m index 71a1c99..7c4b709 100755 --- a/applications/rockets/ensemble/load_all_rocket_events2.m +++ b/applications/rockets/ensemble/load_all_rocket_events2.m @@ -1,10 +1,8 @@ -localgismo -cd('~/Dropbox/scratch_matlab') close all clear all clc -mkdir('ensemble2') -cd('ensemble2') +mkdir('ensemble1') +cd('ensemble1') %% 0. have we run this before and saved the data? if exist('rocketmaster.mat', 'file') diff --git a/contributed_antelope/attenuation/singlestation_specrat.m b/contributed_antelope/attenuation/singlestation_specrat.m index 0f340ef..612c0cf 100644 --- a/contributed_antelope/attenuation/singlestation_specrat.m +++ b/contributed_antelope/attenuation/singlestation_specrat.m @@ -67,6 +67,7 @@ % earthquakes of different distances (travel times) % Q comes from the slope y + t figure; plot(t, y, 'o'); ylabel('ln(A_1/A_2)') diff --git a/core/@Catalog/subset.m b/core/@Catalog/subset.m index 6fccd74..088c2b8 100755 --- a/core/@Catalog/subset.m +++ b/core/@Catalog/subset.m @@ -30,9 +30,13 @@ cobj2.arrivals = cobj.arrivals(indices); end if numel(cobj.waveforms)==N - try - cobj2.waveforms = cobj.waveforms{indices}; - end + cobj2.waveforms = cobj.waveforms(indices); +% counter = 1; +% indices +% for thisindex=indices +% cobj2.waveforms{counter} = cobj.waveforms{thisindex}; +% counter = counter + 1; +% end end if numel(cobj.ontime)==N cobj2.ontime = cobj.ontime(indices); From d1ac05bda9d78678224d8a9ad53e13c9549e193d Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Sat, 9 Dec 2017 14:56:24 -0500 Subject: [PATCH 35/52] changes from faraday --- .../explosion/sync_youtube_video_usfdata.m | 311 ++++++++++++++---- contributed_antelope/attenuation/hankelq.m | 217 ------------ core/@drumplot/plot.m | 1 + core/@threecomp/plotpm.m | 8 +- 4 files changed, 257 insertions(+), 280 deletions(-) delete mode 100644 contributed_antelope/attenuation/hankelq.m diff --git a/applications/rockets/explosion/sync_youtube_video_usfdata.m b/applications/rockets/explosion/sync_youtube_video_usfdata.m index e3c70f0..60a09fa 100644 --- a/applications/rockets/explosion/sync_youtube_video_usfdata.m +++ b/applications/rockets/explosion/sync_youtube_video_usfdata.m @@ -1,98 +1,264 @@ +% +Improvements: +1. on zoomed plots, add 5-s to time on xticks +2. move to red lines to where they would be based on speed of sound travel time, so marks line up on each infrasound component + + + %% This is where all output will go -OUTDIR='/Users/gt/Dropbox/scratch_matlab/RocketSeismology/SpaceXplosion/video'; +OUTDIR='~/Movies/RocketSeismology/SpaceXplosion'; mkdir(fullfile(OUTDIR,'ymatfiles')); mkdir(fullfile(OUTDIR,'yimages')); SECONDS_PER_DAY = 86400; -FPS = 30; % frames per second %% locate the video clips from SpaceX and provide their start times (all different) -fname = fullfile(OUTDIR,'SpaceX - Static Fire Anomaly - AMOS-6 - 09-01-2016.mov'); +fname = fullfile(OUTDIR,'SpaceXStaticFireAnomalyAMOS_6_Youtube.mov'); FPS=30; % frames per second starttime = datenum(2016,9,1,13,06,00)+(1-1)/FPS/SECONDS_PER_DAY; %% loop over each file, importing each frame and saving it as a mat-file +start_recording_time = datenum(2016,9,1,13,07,05); +end_recording_time = datenum(2016,9,1,13,07,45); endtime = 0; v=VideoReader( fname ); -s = struct('cdata',zeros(v.Height,v.Width,3,'uint8'),... - 'colormap',[]); -k = 1; -while hasFrame(v) - s(k).cdata = readFrame(v); - thisframe = s(k).cdata; - thistime = starttime + (k-1)/FPS/SECONDS_PER_DAY; - if thistime > endtime - endtime = thistime; - end - save( fullfile(OUTDIR,'ymatfiles',sprintf('%s.mat',datestr(thistime,'HHMMSS.FFF'))), 'thisframe'); - if mod(k,FPS)==0 - fprintf('%d ',k/FPS); +d=dir(fullfile(OUTDIR,'ymatfiles')); +if numel(d)==0 + s = struct('cdata',zeros(v.Height,v.Width,3,'uint8'),... + 'colormap',[]); + k = 1; + while hasFrame(v) & endtime < end_recording_time + s(k).cdata = readFrame(v); + thisframe = s(k).cdata; + thistime = starttime + (k-1)/FPS/SECONDS_PER_DAY; + if thistime > endtime + endtime = thistime; + end + if thistime >= start_recording_time + %save( fullfile(OUTDIR,'ymatfiles',sprintf('%s.mat',datestr(thistime,'HHMMSS.FFF'))), 'thisframe'); + end + if mod(k,FPS)==0 + fprintf('%d ',k/FPS); + end + k = k+1; end - k = k+1; -end -%% -clear s c k crap thisframe thistime + %% + clear s c k crap thisframe thistime +end %% Define the figure panel setup close all -vw = v.Width; -vh = v.Height; -spacer = 40; +rf = 0.5; % reduction factor +vw = v.Width * rf; +vh = v.Height *rf; +spacer = 40 ;%* rf; imacaspectratio=16/9; -traceHeight = 200; +traceHeight = 200 *rf; figureHeight = vh + 2 * traceHeight + 4 * spacer; figureWidth = figureHeight * imacaspectratio; -fh=figure('Units','pixels','Position',[10 10 figureWidth figureHeight]); +zoomspacer = traceHeight * 0.6; +zoombottom = spacer*3+traceHeight*2; +zoomtraceHeight = traceHeight * 0.45; +fh=figure('Units','pixels','Position',[10 10 figureWidth figureHeight]); % figure -ax(1)=axes('Units','pixels','Position',[spacer spacer*3+traceHeight*2 vw vh]); +ax(1)=axes('Units','pixels','Position',[spacer*1.0 spacer*3+traceHeight*2 vw vh]); % video set(ax(1),'XTick',[],'YTick',[]); -ax(2)=axes('Units','pixels','Position',[spacer spacer*2+traceHeight vw traceHeight]); -ax(3)=axes('Units','pixels','Position',[spacer spacer vw traceHeight]); +ax(2)=axes('Units','pixels','Position',[spacer*2.0 spacer*2+traceHeight vw-spacer traceHeight]); % overall infrasound trace +ax(3)=axes('Units','pixels','Position',[spacer*2.0 spacer vw-spacer traceHeight]); % overall seismic trace % time label -ax(4) = axes('Units','pixels','Position',[vw/2-spacer spacer*2+traceHeight*2 spacer*4 spacer],'Visible','off'); +ax(4) = axes('Units','pixels','Position',[vw*.85-spacer spacer*2.5+traceHeight*2 spacer*4 spacer],'Visible','off'); % time stamp +ax(5) = axes('Units','pixels','Position',[3*spacer+vw zoombottom+zoomspacer*5+spacer/2 figureWidth-spacer*4-vw zoomtraceHeight]); % infra 1 +ax(6) = axes('Units','pixels','Position',[3*spacer+vw zoombottom+zoomspacer*4+spacer/2 figureWidth-spacer*4-vw zoomtraceHeight]); % infra 2 +ax(7) = axes('Units','pixels','Position',[3*spacer+vw zoombottom+zoomspacer*3+spacer/2 figureWidth-spacer*4-vw zoomtraceHeight]); % infra 3 +ax(8) = axes('Units','pixels','Position',[3*spacer+vw zoombottom+zoomspacer*2 figureWidth-spacer*4-vw zoomtraceHeight]); % seismic Z +ax(9) = axes('Units','pixels','Position',[3*spacer+vw zoombottom+zoomspacer*1 figureWidth-spacer*4-vw zoomtraceHeight]); % seismic R +ax(10) = axes('Units','pixels','Position',[3*spacer+vw zoombottom+zoomspacer*0 figureWidth-spacer*4-vw zoomtraceHeight]); % seismic T +ax(11) = axes('Units','pixels','Position',[3*spacer+vw spacer*1.5 figureWidth-spacer*4-vw traceHeight*2]); % rectilinearity +%ax(12) = axes('Units','pixels','Position',[spacer+vw+spacer spacer figureWidth-spacer*3-vw traceHeight]); % ?? %% Load the seismic and infrasound data corresponding to the time window of the video files -dbpath = '/Volumes/data/rockets/rocketmaster'; +windowlength = 5; % time (s) for showing in the zoomed plots +dbpath = '/Volumes/data/rockets/rocketmaster2'; ds = datasource('antelope', dbpath); chantag=ChannelTag('FL.BCHH.*.*') -w=waveform(ds,chantag,starttime,endtime) +w=waveform(ds,chantag,start_recording_time,end_recording_time+windowlength/SECONDS_PER_DAY); +if isempty(w) + error('no waveform data') +end w=clean(w); +%% Rotate seismogram +figure +t = threecomp(w([6 5 4])',199.5); +tr = t.rotate() +tr2 = tr.particlemotion(); +%tr2.plotpm() +wzrt=get(tr,'waveform'); + + %% plot the seismic and infrasound data in panels 3 & 2 respectively -ph1=plot(ax(2),get(w(1),'timevector'),get(w(1),'data')); -xlim(ax(2),[starttime endtime]); -datetick(ax(2),'x','keeplimits') +ph1=plot(ax(2),get(w(1),'timevector'),get(w(1),'data'),'LineWidth',2); % infrasound trace +xlim(ax(2),[start_recording_time end_recording_time]); +xticks = start_recording_time:5/86400:end_recording_time;%-5/86400; +yticks = [-200:200:800]; +ylim(ax(2),[-200 800]); +set(ax(2),'XTick',xticks,'YTick',yticks); +datetick(ax(2),'x','keepticks') ylabel(ax(2),'Pa') +text(ax(2),0.1,0.9,'infraBSU 1','FontSize',20,'Units','normalized'); pylims=get(ax(2),'YLim'); -ph2=plot(ax(3),get(w(6),'timevector'),1e-6*get(w(6),'data')); -xlim(ax(3),[starttime endtime]); -datetick(ax(3),'x','keeplimits') +ph2=plot(ax(3),get(wzrt(1),'timevector'),1e-6*get(w(6),'data'),'LineWidth',2); % vertical seismic trace +xlim(ax(3),[start_recording_time end_recording_time]); +yticks = [-3:1:3]; +ylim(ax(3),[-3 3]); +set(ax(3),'XTick',xticks,'YTick',yticks); +datetick(ax(3),'x','keepticks') ylabel(ax(3),'mm/s'); +text(ax(3),0.1,0.9,'seismic vertical','FontSize',20,'Units','normalized'); sylims=get(ax(3),'YLim'); %% Now loop over time from first frame to final frame -realstart = min(starttime); -kmax = floor((endtime - realstart) * SECONDS_PER_DAY * FPS) +kmax = floor((end_recording_time - start_recording_time) * SECONDS_PER_DAY * FPS); for k=1:kmax - realtime = realstart + (k-1)/FPS/SECONDS_PER_DAY; + realtime = start_recording_time + (k-1)/FPS/SECONDS_PER_DAY; + disp(sprintf('Processing frame %d of %d, corresponding to %s',k,kmax,datestr(realtime))); % draw line to mark where on seismic and infrasound traces the video % frames being shown right now are - lh1=line(ax(2),[realtime realtime], pylims,'LineWidth',2,'Color','k'); - lh2=line(ax(3),[realtime realtime], sylims,'LineWidth',2,'Color','k'); - infratime = realtime + 4/SECONDS_PER_DAY; - if infratime < endtime - lh3=line(ax(2),[infratime infratime], pylims,'LineWidth',2,'Color','r'); - lh4=line(ax(3),[infratime infratime], sylims,'LineWidth',2,'Color','r'); + lh1=line(ax(2),[realtime realtime], pylims,'LineWidth',3,'Color','k'); + lh2=line(ax(3),[realtime realtime], sylims,'LineWidth',3,'Color','k'); + infratime = realtime + 4/SECONDS_PER_DAY; % predicted airwave time if something happens at realtime + if infratime < end_recording_time + windowlength/SECONDS_PER_DAY + lh3=line(ax(2),[infratime infratime], pylims,'LineWidth',3,'Color','r'); + lh4=line(ax(3),[infratime infratime], sylims,'LineWidth',3,'Color','r'); end + seismictime = realtime + 1/SECONDS_PER_DAY; % predicted P wave time if something happens at realtime + if seismictime < end_recording_time + windowlength/SECONDS_PER_DAY + lh5=line(ax(3),[seismictime seismictime], sylims,'LineWidth',3,'Color','g'); + end uistack(ph1); uistack(ph2); % add time - th1=text(ax(4),0,0,datestr(realtime,'HH:MM:SS.FFF'),'FontSize',32); + th1=text(ax(4),0,0,datestr(realtime,'HH:MM:SS.FFF'),'FontSize',28); + + % add lines to these plots + startsecs = (realtime - start_recording_time) * SECONDS_PER_DAY; + for axnum=5:11 + %hold(ax(axnum), 'on') + lh6(axnum)=line(ax(axnum), [startsecs startsecs], ylim(ax(axnum)),'LineWidth',2,'Color','k'); + lh7(axnum)=line(ax(axnum),[startsecs+4 startsecs+4], ylim(ax(axnum)),'LineWidth',2,'Color','r'); + end + for axnum=8:11 + lh8(axnum)=line(ax(axnum),[startsecs+1 startsecs+1], ylim(ax(axnum)),'LineWidth',2,'Color','g'); + end + + % add zoomed infrasound traces + xlims = SECONDS_PER_DAY * ([realtime - start_recording_time realtime + windowlength/SECONDS_PER_DAY - start_recording_time]); + wiz = extract(w(1:3),'time',realtime,realtime+windowlength/SECONDS_PER_DAY); + t = ( get(wiz(1), 'timevector') - start_recording_time) * 86400; + + hold(ax(5),'on') + hi1=plot(ax(5), t, get(wiz(1), 'data'),'b'); + set(ax(5),'XLim',xlims); + set(hi1,'LineWidth',2) + title(ax(5),'Zoomed infrasound plots'); + ylabel(ax(5),'Pa'); + set(ax(5),'XTickLabel',{}) + %legend(ax(5),hi1,'HD1'); + + hold(ax(6),'on') + hi2=plot(ax(6), t, get(wiz(2), 'data'),'b'); + set(hi2,'LineWidth',2) + set(ax(6),'XLim',xlims); + set(ax(6),'XTickLabel',{}) + ylabel(ax(6),'Pa'); + %legend(ax(6),hi2,'HD2'); + + hold(ax(7),'on') + hi3=plot(ax(7), t, get(wiz(3), 'data'),'b'); + set(hi3,'LineWidth',2) + set(ax(7),'XLim',xlims); + ylabel(ax(7),'Pa'); + %legend(ax(7),hi3,'HD3'); + + % add zoomed seismic traces + wsz = extract(wzrt,'time',realtime,realtime+windowlength/SECONDS_PER_DAY); + + hold(ax(8),'on') + hs1=plot(ax(8), t, get(wsz(1), 'data')/1000,'b'); + set(hs1,'LineWidth',2) + set(ax(8),'XLim',xlims); + ylabel(ax(8),'\mum/s'); + title(ax(8),'Zoomed seismic plots') + text(ax(8),0.1,0.9,'vertical','Units','normalized','FontSize',18) + set(ax(8),'XTickLabel',{}) + %legend(ax(8),hs1,'HHZ'); + + hold(ax(9),'on') + hs2=plot(ax(9), t, get(wsz(2), 'data')/1000,'b'); + set(hs2,'LineWidth',2) + set(ax(9),'XLim',xlims); + ylabel(ax(9),'\mum/s'); + text(ax(9),0.1,0.9,'radial','Units','normalized','FontSize',18) + set(ax(9),'XTickLabel',{}) + %legend(ax(9),hs2,'HHR'); + + hold(ax(10),'on') + hs3=plot(ax(10), t, get(wsz(3), 'data')/1000,'b'); + set(ax(10),'XLim',xlims); + set(hs3,'LineWidth',2) + ylabel(ax(10),'\mum/s'); + text(ax(10),0.1,0.9,'transverse','Units','normalized','FontSize',18) + %legend(ax(10),hs3,'HHT'); + xlabel('Seconds'); + + % rectilinearity plot + wsz2 = extract(w([6 5 4]),'time',realtime,realtime+windowlength/SECONDS_PER_DAY); + tc = threecomp(wsz2',199.5); + tc1 = tc.rotate(); + tc2 = tc1.particlemotion(); + rl=get(tc2, 'rectilinearity'); + pl=get(tc2, 'planarity'); + tv = get(rl,'timevector'); + tv = (tv - start_recording_time)*SECONDS_PER_DAY; + + hold(ax(11),'on') + hrl=plot(ax(11), tv,get(rl,'data'),'m-','LineWidth',2); + text(ax(11),0.1,0.9,'rectilinearity','Color','m','Units','normalized','FontSize',18) + hold(ax(11),'on'); + hpl=plot(ax(11), tv, get(pl,'data'),'c-','LineWidth',2); + text(ax(11),0.5,0.9,'planarity','Color','c','Units','normalized','FontSize',18) + xlabel(ax(11),'Seconds'); + set(ax(11),'XLim',xlims); + %legend(ax(11),[hrl hpl],'Rectilinearity','Planarity'); + title(ax(11),''); + set(ax(11),'XGrid','on','YLim',[0 1]) + hold(ax(11),'off') + +% +% uistack(hi1); +% uistack(hi2); +% uistack(hi3); +% uistack(hs1); +% uistack(hs2); +% uistack(hs3); +% uistack(hrl); +% uistack(hpl); + + + % make sure there are no extra figures - there should just be 1 - these + % can otherwise mean printing the wrong figure to jpg/png + hfigs = findobj('type','figure'); + nfigs = length(hfigs); + if nfigs>1 + for fignum=2:nfigs + close(fignum) + end + end % find matfiles (i.e. frames) for this time sample dstr = datestr(realtime,'HHMMSS.FFF'); @@ -104,39 +270,66 @@ % plot the frame in the appropriate panel corresponding to posn % variable - if posn>0 - disp(sprintf('%s %s.%02d %d',dstr,datestr(realtime,'HHMMSS'), round(mod(realtime*SECONDS_PER_DAY,1)*30)+1, df(1).name, posn)); - image(ax(1),thisframe) - set(ax(1),'XTick',[],'YTick',[]); - end - + disp(sprintf('%s %s.%02d',dstr,datestr(realtime,'HHMMSS'), round(mod(realtime*SECONDS_PER_DAY,1)*30)+1, df(1).name)); + image(ax(1),thisframe) + set(ax(1),'XTick',[],'YTick',[]); + + % set font sizes + set(0,'DefaultAxesFontSize',16); % now all panels are plotted, save the figure window as a new jpeg % file - jpgfile = fullfile(OUTDIR,'yimages',sprintf('%s.jpg',dstr)); + + jpgfile = fullfile(OUTDIR,'yimagesjpg',sprintf('%s.jpg',dstr)); disp(jpgfile) - print('-djpeg',jpgfile); + print('-djpeg','-f1',jpgfile); + pngfile = fullfile(OUTDIR,'yimagespng',sprintf('%s.png',dstr)); + disp(pngfile) + print('-dpng','-f1',pngfile); end % delete the lines we drew to mark the time on the seismic and % infrasound panels delete(lh1) delete(lh2) - if infratime < endtime + if infratime < end_recording_time + windowlength/SECONDS_PER_DAY delete(lh3) delete(lh4) end + if seismictime < end_recording_time + windowlength/SECONDS_PER_DAY + delete(lh5) + end + set(th1,'String',' : : . ', 'FontSize',32); delete(th1) + delete(lh6) + delete(lh7) + delete(lh8) + delete(hrl) + delete(hpl) + + % set hold off + for axnum=5:11 + hold(ax(axnum),'off'); + end end %% Write video file from the JPG images - no longer need to use ImageJ which never seems to export all the images -d=dir(fullfile(OUTDIR,'yimages','*.jpg')); -v=VideoWriter(fullfile(OUTDIR,'yuncompressed.avi'),'Uncompressed AVI') +d=dir(fullfile(OUTDIR,'yimagespng','*.png')); +v=VideoWriter(fullfile(OUTDIR,'yuncompressed2.avi'),'Uncompressed AVI') open(v) +skippedframes = 0; +savedframes = 0; for c=1:numel(d) disp(sprintf('Processing frame %d of %d',c,numel(d))) a=imread(fullfile(d(c).folder,d(c).name)); - writeVideo(v,a); + if size(a)==[1500 2667 3] + writeVideo(v,a); + savedframes = savedframes + 1; + else + skippedframes = skippedframes + 1; + disp(sprintf('- wrong size. frame is %dx%dx%d',size(a))); + end + disp(sprintf('- Skipped %d, Saved %d', skippedframes, savedframes)); end close(v); diff --git a/contributed_antelope/attenuation/hankelq.m b/contributed_antelope/attenuation/hankelq.m deleted file mode 100644 index 27c1bd2..0000000 --- a/contributed_antelope/attenuation/hankelq.m +++ /dev/null @@ -1,217 +0,0 @@ -function arrivalobj = hankelq(dbpath, expr, f1, f2, pretrigger, posttrigger, max_arrivals) -%HANKELQ Compute spectral ratio in two frequency bands -% HANKELQ(dbpath, expr, freq_high, freq_low, pretrigger_seconds, posttrigger_seconds, max_arrivals ) -% Loads arrivals from an arrival table (after subsetting with expr) -% retrieves waveform data corresponding to those arrivals, cleans and -% plots the waveform data. The spectral ratio in bands around freq_high -% and freq_low is computed. When done for multiple earthquakes, a plot of this the -% natural log of this ratio versus travel time has a slope from which Q -% can be measured. -% pretrigger_seconds is the number of seconds before the arrival time to -% get waveform data for. -% posttrigger_seconds is the number of seconds after the arrival time to -% get waveform data for. -% max_arrivals is the maximum number of arrivals to process. -% -% Based on the method of Arthur Hankel, "The Effects of Attenuation and -% Site Response on the Spectra of Microearthquakes in the Northeastern -% Caribbean", BSSA, 72, 4, 1379-1402. -% -% Example: -% -% -% History: -% April 2014: Glenn Thompson -% Original version: load arrivals, load waveforms and plot waveforms -% April-November 2014: Heather McFarlin -% Modified to also plot amplitude spectra -% November 20, 2014: Glenn Thompson -% Completely overhauled & modularized. -% Modified method to compute amplitude spectra. Now computes Q too. Now -% also generic - works with input variables so it can be used on different -% databases, for example. -% November 2017: Glenn Thompson -% Fixed to work with updated GISMO classes -% -% NEED TO FIX TO CALCULATE Q based on seaz- Q is azimuthally dependent -% at Uturuncu stations! - - if ~admin.antelope_exists - warning('Antelope not installed on this computer') - return - end - - if ~exist('max_arrivals','var') - max_arrivals=Inf; - end - - taper_seconds=pretrigger+posttrigger; - - %arrivals = antelope.dbgetarrivals(dbpath, expr); - arrivalobj = Arrival.retrieve('antelope', dbpath, 'subset_expr', expr); - %arrivalobj = arrivalobj.subset(expr) - %arrivalobj = arrivalobj.subset(1:max_arrivals); %when done, comment this line out, it's just for testing - arrivalobj = arrivalobj.addwaveforms(datasource('antelope', dbpath), pretrigger+taper_seconds, posttrigger+taper_seconds); - -% w = antelope.arrivals2waveforms(dbpath, arrivals, pretrigger, posttrigger, taper_seconds, max_arrivals); - %w = waveform_clean(w); - close all - - %[y, t]=plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); - [y, t]=plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2); - % This is the figure we use to derive q from spectral ratios for - % earthquakes of different distances (travel times) - % Q comes from the slope - figure; - plot(t, y, 'o'); - ylabel('ln(A_1/A_2)') - xlabel('travel time (s)') - p = polyfit(t,y,1); - xlim=get(gca,'XLim'); - yline = polyval(p, xlim); - hold on; - plot(xlim, yline) - - slope = (yline(2) - yline(1)) / (xlim(2) - xlim(1)); - q = - pi * (f1 - f2) / slope; - title(sprintf('Q = %.0f', q)); %% Can we add something that denotes whether the Q value is for Qp or Qs? -end - -%function [y, t] = plot_arrival_waveforms(arrivals, w, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) -function [y, t] = plot_arrival_waveforms(arrivalobj, pretrigger, posttrigger, taper_seconds, max_arrivals, f1, f2) - - FMIN = 1.0; - - %% open an output file - fid=fopen([mfilename,'.txt'],'w'); - - taper_fraction = (taper_seconds * 2) / (taper_seconds * 2 + pretrigger + posttrigger); - - % get travel time for p-wave - p_time = arrivalobj.time - arrivalobj.otime - anum = arrivalobj.time; - - w = arrivalobj.waveforms - for i=1:min([max_arrivals numel(w)]) - signal = get(w(i),'data'); - N = length(signal); - if N>0 - - % taper, filter to remove long period noise, and cut out tapered signal to leave only - % untapered signal - wf = w(i); - - taperwin=tukeywin(N, taper_fraction); - signal=signal.*taperwin; - wf = set(wf, 'data', signal); - fmax = get(wf, 'freq') * 0.4; - fobj = filterobject('b', [FMIN fmax], 2); - wf = filtfilt(fobj, wf); - [snum, enum]=gettimerange(wf); - - %wf=subtime(wf, snum+taper_seconds/86400, enum-taper_seconds/86400); - wf=extract(wf, 'time', snum+taper_seconds/86400, enum-taper_seconds/86400); - - % integrate - dwf = integrate(wf); - - % Plot waveform - - hf(i)=figure; - ax(i,1)=subplot(3,1,1); - plot(w(i), 'xunit', 'date', 'color', 'r', 'axeshandle', ax(i,1)); %unfiltered signal - hold on; - plot(wf, 'xunit', 'date', 'color', 'g', 'axeshandle', ax(i,1)); %filtered signal - xlabel(sprintf('Time with arrival at %s',datestr(anum(i), 'yyyy-mm-dd HH:MM:SS.FFF'))); - ylabel('Velocity'); - title(sprintf('%s',arrivalobj.channelinfo{i})); - % plot arrival time as grey dotted line - ylim=get(gca,'YLim'); - hold on - plot([anum(i) anum(i)],ylim,'Color',[0.5 0.5 0.5], 'linestyle', '--') - hold off - - ax(i,2)=subplot(3,1,2); - plot(dwf, 'xunit', 'date', 'color', 'b', 'axeshandle', ax(i,2)); %filtered & integrated signal - xlabel(sprintf('Time with arrival at %s',datestr(anum(i), 'yyyy-mm-dd HH:MM:SS.FFF'))); - ylabel('Displacement'); - title(sprintf('%s',arrivalobj.channelinfo{i})); - % plot arrival time as grey dotted line - ylim=get(gca,'YLim'); - hold on - plot([anum(i) anum(i)],ylim,'Color',[0.5 0.5 0.5], 'linestyle', '--') - hold off - - - % compute and plot amplitude spectrum - s = amplitude_spectrum(dwf); - A = s.amp; - f = s.f; - phi = s.phi; -% [A, phi, f] = amplitude_spectrum(dwf); - ax(i,3)=subplot(3,1,3); - A=smooth(A); - plot(f,A); - size(f) - %loglog(f, A) - xlabel('Frequency (Hz)') - ylabel('Amplitude') - hold on - - - % evaluate the spectral ratio - A1=mean(A(find(f>=f1*0.9 & f<=f1*1.1))); % for 20 Hz, this is 18-22 Hz - A2=mean(A(find(f>=f2*0.8 & f<=f2*1.2 ))); % for 5 Hz this is 4-6 Hz - patch([f1*0.9 f1*1.1 f1*1.1 f1*0.9],[0 0 A1 A1],[0.9 0.9 0.9]) - patch([f2*0.8 f2*1.2 f2*1.2 f2*0.8],[0 0 A2 A2],[0.9 0.9 0.9]) - disp(sprintf('A1 = %6.3f, A2 = %6.3f, A1/A2 = %5.2f',A1, A2, A1/A2)); - - % add title - %outstr=sprintf('phase=%s orid=%d seaz=%6.2f delta=%5.3f depth=%5.1f\nA1=%5.3f A2=%5.3f A1/A2=%5.2f\n',arrivals.phase{i}, arrivals.orid(i), arrivals.seaz(i), arrivals.delta(i), arrivals.depth(i), A1, A2, A1/A2); - outstr=sprintf('phase=%s orid=%d seaz=%6.2f delta=%5.3f depth=%5.1f\nA1=%5.3f A2=%5.3f A1/A2=%5.2f\n',arrivalobj.iphase{i}, arrivalobj.orid(i), arrivalobj.seaz(i), arrivalobj.delta(i), arrivalobj.depth(i), A1, A2, A1/A2); - title(outstr) - - % write out to file & close plot - filename=sprintf('%s-%d',mfilename,i); - print('-dpng', figure(i),filename) - if numel(w)>100 % I changed this from 10 to 100 because when I am passing more than 10 arrivals, my figures end up blank - close - end - - % compute y=ln A1/A2 & t for formula 2 in Frankel (1982) - y(i) = log(A1/A2); - [times, phasenames] = arrtimes(arrivalobj.delta(i), arrivalobj.depth(i)); - phase_index = 1; - found = false; - while phase_index <= length(times) & ~found - thisphase = lower(phasenames{phase_index}); - thisphase = thisphase(1); - %if strcmp(lower(arrivals.phase{i}), thisphase) - if strcmp(lower(arrivalobj.iphase{i}), thisphase) - t(i)=times(phase_index); - found=true; - end - phase_index = phase_index + 1; - end - - %% write out to file - fprintf(fid,'%14.2f %8.2f %6.3f %5.1f %4.1f %4.1f %e %e\n', p_time(i), t(i), arrivalobj.delta(i), arrivalobj.depth(i), f1, f2, A1, A2); - - end - - end - - %% close output file - fclose(fid); -end - - - - - - - - - - - diff --git a/core/@drumplot/plot.m b/core/@drumplot/plot.m index c9ecc34..fe3a4af 100755 --- a/core/@drumplot/plot.m +++ b/core/@drumplot/plot.m @@ -73,6 +73,7 @@ if isempty(h.catalog.waveforms) h.catalog = h.catalog.addwaveforms(h.wave); end + h.catalog.waveforms w = [h.catalog.waveforms{1,:}]; w = combine(w); w = pad(w, snum, enum, NaN); diff --git a/core/@threecomp/plotpm.m b/core/@threecomp/plotpm.m index e4b9b20..c70fa3d 100755 --- a/core/@threecomp/plotpm.m +++ b/core/@threecomp/plotpm.m @@ -62,7 +62,7 @@ set(gca,'YScale','linear'); d = get(TC.energy,'Data'); ylim(gca,[0 1.1*max(d)]); -legend(gca,'Energy',1); +legend(gca,'Energy'); title(gca,''); %set(gca,'XTickLabel',[]); set(gca,'XGrid','on') @@ -75,7 +75,7 @@ plot(TC.planarity,'ko','MarkerFaceColor','y','axeshandle',gca); xlabel(gca,'Seconds'); ylim(gca,[0 1]); -legend(gca,'Rectilinearity','Planarity',1); +legend(gca,'Rectilinearity','Planarity'); title(gca,''); %set(gca,'XTickLabel',[]); set(gca,'XGrid','on') @@ -89,7 +89,7 @@ set(gca,'YTick',[-360:90:360]); ylim(gca,[-1 361]); xlabel(gca,'') - legend('Azimuth',1); + legend('Azimuth'); title(gca,''); set(gca,'XTickLabel',[]); set(gca,'XGrid','on') @@ -101,7 +101,7 @@ set(gca,'YTick',[-90:30:90]); ylim(gca,[-1 91]); xlabel(gca,'') - legend(gca,'Inclination',1); + legend(gca,'Inclination'); title(gca,''); set(gca,'XGrid','on') set(gca,'XLim',xlim) From 95b9d3cc6995b7a0c3126c9e4cad08f2d5da5460 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Mon, 11 Dec 2017 17:47:41 -0500 Subject: [PATCH 36/52] adding ensemble_analysis --- .../rockets/ensemble/ensemble_analysis.m | 294 ++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 applications/rockets/ensemble/ensemble_analysis.m diff --git a/applications/rockets/ensemble/ensemble_analysis.m b/applications/rockets/ensemble/ensemble_analysis.m new file mode 100644 index 0000000..d594b44 --- /dev/null +++ b/applications/rockets/ensemble/ensemble_analysis.m @@ -0,0 +1,294 @@ +close all +clear all +clc +mkdir('ensemble1') +cd('ensemble1') + +%% 0. have we run this before and saved the data? +if exist('rocketmaster.mat', 'file') + load rocketmaster.mat +else + + %% 1. Define datasources, channels etc + dbpath = '/raid/data/rockets/rocketmaster2'; + ds = datasource('antelope', dbpath); + + %% 2. Load arrival table into an Arrival object + arrivalobj = Arrival.retrieve('antelope', dbpath); + if isempty(arrivalobj) + error('No arrivals loaded') + end + + %% 3. Add a short waveform for each arrival for arrival waveform metrics + pretrigsecs = 5; posttrigsecs = 90; + arrivalobj = arrivalobj.addwaveforms(ds, pretrigsecs, posttrigsecs); + + %% 4. Compute an amplitude (and other waveform metrics) for each arrival + max_time_diff = 1.0; % max seconds between min and max + arrivalobj = arrivalobj.addmetrics(max_time_diff); + + %% 5. Associate arrivals into events in a Catalog + % 20 seconds seems to be most from BCHH to TANK infrasound + catalogobj = arrivalobj.associate(30*60); + + %% 6. Add waveforms for each event in the Catalog + pretriggersecs = 30; posttriggersecs = 120; + ctag = ChannelTag({'FL.BCHH.*.*'}); + catalogobj = catalogobj.addwaveforms(ds, ctag, pretriggersecs, posttriggersecs); + + %% 7. Add waveform metrics to event waveforms in Catalog + for eventnum = 1:catalogobj.numberOfEvents + w = [catalogobj.waveforms{eventnum}]; + maxTimeDiff = 2.0; + catalogobj.waveforms{eventnum} = addmetrics(w, maxTimeDiff); + end + + %% 8. save the data + save rocketmaster.mat + + %% 9. write Catalog to Antelope db + [dname, dfile] = fileparts(dbpath); + dbpath2 = sprintf('./%s_new',dfile); + catalogobj.write('antelope',dbpath2); + !chmod 775 *_new* *.png + !chgrp seismiclab *_new* + + +end + +%% 10. Make seismograms, spectrograms and sound files +close all +publish = 0; +for eventnum = 2:catalogobj.numberOfEvents + + % get waveform + w = [catalogobj.waveforms{eventnum}]; + thisA = catalogobj.arrivals{eventnum}; + dstr = datestr(min(get(w,'start')),'yyyymmdd.HHMM'); + tstr = sprintf('Event %2d: %s', eventnum, dstr); + + % plot seismograms + plot_panels(w(:),'alignWaveforms',1,'arrivals',thisA); + suptitle(sprintf('Raw waveform plot\n%s',tstr)); + if publish + snapnow; + else + print('-dpng', sprintf('%s_raw_waveform.png',dstr) ); + end + close + + % clean data + w=clean(w); + + % plot spectrograms of infrasound channels + figure + [Tcelli, Fcelli, Ycelli, meanfi, peakfi] = spectrogram(w(1:3), 'spectralobject', spectralobject(1024,1000,100,[30 80]) , 'plot_metrics', 0 ); + suptitle(sprintf('Infrasound Spectrogram\n%s',tstr)); + if publish + snapnow; + else + print('-dpng', sprintf('%s_infrasound_spectrogram.png',dstr) ); + end + close + + % plot spectrograms of seismic channels + figure + [Tcells, Fcells, Ycells, meanfs, peakfs] = spectrogram(w(4:end), 'spectralobject', spectralobject(1024,1000,100,[70 140]), 'plot_metrics', 0 ); + suptitle(sprintf('Seismic Spectrogram\n%s',tstr)); + if publish + snapnow; + else + print('-dpng', sprintf('%s_seismic_spectrogram.png',dstr) ); + end + close + + % make sound files + infrasoundwavname = sprintf('%s_infrasound.wav',dstr ); + waveform2sound(w(3), 30, infrasoundwavname); + seismicwavname = sprintf('%s_seismic.wav',dstr ); + waveform2sound(w(end), 30, seismicwavname); + + % frequency metrics + + % average meanf and peakf + % - infrasound + mfi = mean(cell2mat(meanfi),2); + pfi = mean(cell2mat(peakfi),2); + thisyi = Ycelli{1}; + for count=2:numel(Ycelli) + thisyi = thisyi + Ycelli{count}; + end + thisyi = thisyi / numel(Ycelli); + % - seismic + mfs = mean(cell2mat(meanfs),2); + pfs = mean(cell2mat(peakfs),2); + thisys = Ycells{1}; + for count=2:numel(Ycells) + thisys = thisys + Ycells{count}; + end + thisys = thisys / numel(Ycells); + + % replace small spectrogram amplitudes with NaN + % - infrasound + minyi = min(min(thisyi)); + maxyi = max(max(thisyi)); + yithresh = minyi + (maxyi-minyi) * 0.5; %* 0.675; + mfi(yithresh > max(thisyi)) = NaN; + pfi(yithresh > max(thisyi)) = NaN; + % - seismic + minys = min(min(thisys)); + maxys = max(max(thisys)); + ysthresh = minys + (maxys-minys) * 0.4; % 0.58; + mfs(ysthresh > max(thisys)) = NaN; + pfs(ysthresh > max(thisys)) = NaN; + + % smooth the plots + smoothsize = 20; + mfsi = smooth(mfi, smoothsize); + mfsi(find(isnan(mfi)))=NaN; + pfsi = smooth(pfi, smoothsize); + pfsi(find(isnan(pfi)))=NaN; + mfss = smooth(mfs, smoothsize); + mfss(find(isnan(mfs)))=NaN; + pfss = smooth(pfs, smoothsize); + pfss(find(isnan(pfs)))=NaN; + + % plot + figure + hmfi=plot(Tcelli{1}, mfsi,'k'); + set(hmfi, 'LineWidth',4); + datetick('x') + hold on + hmfs=plot(Tcells{1}, mfss,'b'); + set(hmfs, 'LineWidth',0.4); + datetick('x') + hpfi=plot(Tcelli{1}, pfsi); + set(hpfi, 'LineWidth',3,'Color',[0.8 0.8 0.8]); + datetick('x'); + hpfs=plot(Tcelli{1}, pfss); + set(hpfs, 'LineWidth',0.3,'Color',[0 0 0.8]); + datetick('x'); + ylabel('Frequency (Hz)') + legend('mean F - infrasound','mean F - seismic', 'peak F - infrasound','peak F - seismic'); + set(gca,'XLim',[Tcelli{1}(1) Tcelli{1}(end)], 'YLim', [0 50]); + hold off + suptitle(sprintf('Frequency analysis\n%s',tstr)); + if publish + snapnow; + else + print('-dpng', sprintf('%s_frequency_parameters.png',dstr) ); + end + %input(' to continue') + close + + % frequency to velocity + speed_of_sound = 350; + T=Tcelli{1}; + + [maxf,maxf_index]=max(mfsi); + velocity = speed_of_sound * (maxf./mfsi - 1); + velocity(1:maxf_index)=0; + vals = find(velocity>0); + X1 = velocity(1:max(vals)); + T1 = T(1:max(vals)); + X1(isnan(X1)) = interp1(find(~isnan(X1)), X1(~isnan(X1)), find(isnan(X1)),'linear'); + + [maxf,maxf_index]=max(pfsi); + velocity = speed_of_sound * (maxf./pfsi - 1); + velocity(1:maxf_index)=0; + vals = find(velocity>0); + X2 = velocity(1:max(vals)); + T2 = T(1:max(vals)); + X2(isnan(X2)) = interp1(find(~isnan(X2)), X2(~isnan(X2)), find(isnan(X2)),'linear'); + + figure + subplot(2,1,1) + h1=plot(T1,X1/1000); + set(h1, 'LineWidth',3,'Color',[0 0 0]); + datetick('x') + hold on + h2=plot(T2,smooth(X2/1000)); + set(h2, 'LineWidth',3,'Color',[0.8 0.8 0.8]); + ylabel('Speed (km/s)'); + datetick('x') + + samprate = 1/0.2560; + subplot(2,1,2) + h1=plot(T1,cumsum(X1/1000)/samprate); + set(h1, 'LineWidth',3,'Color',[0 0 0]); + datetick('x') + hold on + subplot(2,1,2) + h2=plot(T2,cumsum(smooth(X2/1000))/samprate); + set(h2, 'LineWidth',3,'Color',[0.8 0.8 0.8]); + ylabel('Distance (km)'); + datetick('x') + %input(' to continue') + suptitle(sprintf('Rocket trajectory\n%s',tstr)); + + + if publish + snapnow; + else + print('-dpng', sprintf('%s_trajectory.png',dstr) ); + end + close + + % envelope plot + figure + ax1=subplot(2,1,1); + plot(smooth(hilbert(clean(w(1:3))),1000),'axeshandle',ax1); + title(sprintf('infrasound amplitude starting at %s',dstr)) + ax2=subplot(2,1,2); + plot(smooth(hilbert(clean(w(4:end))),1000),'axeshandle',ax2); + title(sprintf('seismic amplitude starting at %s',dstr)) + suptitle(sprintf('envelope %s',tstr)); + if publish + snapnow; + else + print('-dpng', sprintf('%s_envelope.png',dstr) ); + end + close + + + + !chmod 775 *.wav *.png + !chgrp seismiclab *.wav *.png + + +end + +%% +plot_waveform_metrics(catalogobj) + + +%% make a plot of 1 infrasound & 1 seismic for each event +winfra=[]; +wseismic=[]; +for eventnum = 1:catalogobj.numberOfEvents + % get waveform + w = [catalogobj.waveforms{eventnum}]; + index1 = find(ismember(get(w,'channel'),'HD1_00')); + index2 = find(ismember(get(w,'channel'),'HHZ_00')); + if eventnum>1 + daysdiff = abs(get(winfra(end),'start') - get(w(index1),'start')); + if daysdiff>1 + winfra = [winfra w(index1)]; + wseismic = [wseismic w(index2)]; + end + else + winfra = w(index1); + wseismic = w(index2); + end + +end +plot_panels(winfra,'alignWaveforms',1); +plot_panels(wseismic,'alignWaveforms',1); + + +%% +plot_average_frequency(wseismic) + +%% + + From 89476cd393a1b47dc282ff735584472da19e1d90 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 27 Feb 2018 14:20:19 -0500 Subject: [PATCH 37/52] modified zmap catalog loader after helping Panagiotis. See email --- core/+Catalog/+read_catalog/zmap.m | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/core/+Catalog/+read_catalog/zmap.m b/core/+Catalog/+read_catalog/zmap.m index 086fec9..534e0d5 100755 --- a/core/+Catalog/+read_catalog/zmap.m +++ b/core/+Catalog/+read_catalog/zmap.m @@ -1,12 +1,28 @@ -function self = zmap(zmapdata) +function self = zmap(fname_or_data) %readEvents.zmap Translate a ZMAP-format data matrix into a Catalog object % ZMAP format is 10 columns: longitude, latitude, decimal year, month, day, % magnitude, depth, hour, minute, second - lon = zmapdata(:,1); - lat = zmapdata(:,2); - time = datenum( floor(zmapdata(:,3)), zmapdata(:,4), zmapdata(:,5), ... - zmapdata(:,8), zmapdata(:,9), zmapdata(:,10) ); - mag = zmapdata(:,6); - depth = zmapdata(:,7); + + if ischar(fname_or_data(1)) + %% read the data + data = load(fname_or_data) + else + data = fname_or_data; + end + lon = data(:,1); + lat = data(:,2); + yyyy = data(:,3); + mm = data(:,4); + dd = data(:,5); + hh = data(:,8); + mi = data(:,9); + if size(data,2) == 10 + ss = data(:,10); + else + ss = zeros(size(mi)); + end + time = datenum( floor(yyyy), mm, dd, hh, mi, ss ); + mag = data(:,6); + depth = data(:,7); self = Catalog(time, lon, lat, depth, mag, {}, {}); end From 76a24daa530cf05d1086bd86c2c392e4224914f9 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Wed, 7 Mar 2018 15:20:20 -0500 Subject: [PATCH 38/52] iceweb2017 change to make compatible with new named arguments in spectrogram_iceweb.m --- applications/+iceweb/iceweb2017.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/+iceweb/iceweb2017.m b/applications/+iceweb/iceweb2017.m index d7714e9..2728137 100755 --- a/applications/+iceweb/iceweb2017.m +++ b/applications/+iceweb/iceweb2017.m @@ -169,7 +169,7 @@ function process_timewindow(PRODUCTS_TOP_DIR, networkName, subnetName, ChannelTa end end - [sgresult, Tcell, Fcell, Ycell] = iceweb.spectrogram_iceweb(specObj, w, spectrogramFraction, iceweb.extended_spectralobject_colormap); + [sgresult, Tcell, Fcell, Ycell] = iceweb.spectrogram_iceweb(specObj, w, 'spectrogramFraction', spectrogramFraction, 'colormap', iceweb.extended_spectralobject_colormap); if sgresult > 0 % sgresult = number of waveforms for which a spectrogram was successfully plotted From d68a0624830e45b8fe4199b91b2f4dfabf6eb5d0 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 10 Apr 2018 16:15:03 -0400 Subject: [PATCH 39/52] Adding xcorrlocate application for MitchMelGlenn project --- .../rockets/ensemble/ensemble_analysis.m | 2 +- .../rockets/explosion/spaceXplosion.m | 42 ++++--- applications/rockets/infrasoundgt/beamform2.m | 4 + .../rockets/infrasoundgt/beamform2d.m | 3 + cookbooks/waveform_cookbook.m | 15 +-- core/+Detection/sta_lta.m | 65 +++++++++-- core/@Arrival/addwaveforms.m | 34 +++++- core/@Arrival/associate.m | 42 ++++--- core/@Catalog/addwaveforms.m | 34 ++++-- core/@Detection/Detection.m | 51 ++++++++- core/@Detection/associate.m | 27 ++++- core/@drumplot/plot.m | 106 ++++++++++-------- core/@filterobject/filtfilt.m | 14 ++- core/@waveform/combine.m | 53 +++++++-- core/@waveform/plot_helicorder.m | 10 +- 15 files changed, 369 insertions(+), 133 deletions(-) diff --git a/applications/rockets/ensemble/ensemble_analysis.m b/applications/rockets/ensemble/ensemble_analysis.m index d594b44..1e0f8d8 100644 --- a/applications/rockets/ensemble/ensemble_analysis.m +++ b/applications/rockets/ensemble/ensemble_analysis.m @@ -14,7 +14,7 @@ ds = datasource('antelope', dbpath); %% 2. Load arrival table into an Arrival object - arrivalobj = Arrival.retrieve('antelope', dbpath); + arrivalobj = Arrival.retrieve('antelope', dbpath ); if isempty(arrivalobj) error('No arrivals loaded') end diff --git a/applications/rockets/explosion/spaceXplosion.m b/applications/rockets/explosion/spaceXplosion.m index ee83e78..d6a0392 100755 --- a/applications/rockets/explosion/spaceXplosion.m +++ b/applications/rockets/explosion/spaceXplosion.m @@ -5,16 +5,14 @@ %% setup clear all close all -rmpath(genpath('/raid/apps/src/GISMO')) -make_figures = true -addpath('infrasoundGT') -figureOutDirectory = '20160901_SpaceXpolsion2'; -mkdir('.',figureOutDirectory); - -%% constants +matfile = '/Users/glennthompson/Dropbox/Rockets/analysis/20160901_SpaceXplosion/explosion2.mat'; +if exist(matfile,'file') + load(matfile); +else % waveform data parameters - ds = datasource('antelope', '/raid/data/rockets/dbspacexplosion'); + %ds = datasource('antelope', '/raid/data/rockets/dbspacexplosion'); + ds = datasource('antelope', '/Users/glennthompson/Dropbox/Rockets/db/20160901_explosion'); snum=datenum(2016,9,1,13,0,0); enum = snum + 1/24; scnl = scnlobject('BCHH', '*', 'FL'); @@ -24,7 +22,7 @@ lat = [28.574182 28.573894 28.574004 28.574013 28.574013 28.574013]; lon = [-80.572410 -80.572352 -80.572561 -80.572360 -80.572360 -80.572360]; source.lat = 28.562106; % SLC40 - SpaceX launch complex - source.lon = -80.57718; + source.lon = -80.57718; % Wind tower data - could read this from Excel instead relativeHumidity = 92; % percent from NASA weather tower data temperatureF = 80; % 80 Fahrenheit according to weather tower data from NASA @@ -32,19 +30,27 @@ wind_direction = mod(wind_direction_from + 180, 360); wind_speed_knots = 10; % knots wind_speed = wind_speed_knots * 0.514444; % m/s + % rmpath(genpath('/raid/apps/src/GISMO')) + + %% compute speed of sound based on temperature & rel. humidity + temperatureC = fahrenheit2celsius(temperatureF); + speed_of_sound = computeSpeedOfSound(temperatureC, relativeHumidity); + disp(sprintf('speed of sound at %.1f Celsius and %f percent relative humidity is %.1f',temperatureC, relativeHumidity, speed_of_sound)); + + %% load waveform data + disp('Loading waveform data...') + w=waveform(ds,scnl,snum,enum); + save(matfile); +end -%% compute speed of sound based on temperature & rel. humidity -temperatureC = fahrenheit2celsius(temperatureF); -speed_of_sound = computeSpeedOfSound(temperatureC, relativeHumidity); -disp(sprintf('speed of sound at %.1f Celsius and %f percent relative humidity is %.1f',temperatureC, relativeHumidity, speed_of_sound)); +make_figures = true +%addpath('infrasoundGT') +figureOutDirectory = '20160901_results'; +mkdir('.',figureOutDirectory); -save spacexplosion.mat -%% load waveform data -disp('Loading waveform data...') -w=waveform(ds,scnl,snum,enum); -save spacexplosion.mat +save(matfile) %% plot raw waveform data if make_figures diff --git a/applications/rockets/infrasoundgt/beamform2.m b/applications/rockets/infrasoundgt/beamform2.m index 172ac92..46b0a50 100755 --- a/applications/rockets/infrasoundgt/beamform2.m +++ b/applications/rockets/infrasoundgt/beamform2.m @@ -35,6 +35,7 @@ bestbackaz = NaN; bestspeed = NaN; + disp('goit here') % First we use travel time ratios to find back azimuthal angle of the beam % this means we do not need to know speed @@ -68,6 +69,9 @@ northingDiff(row, column) = northing(row) - northing(column); end end + eastingDiff + northingDiff + meanSecsDiff %for thisaz = backaz for c=1:length(backaz) diff --git a/applications/rockets/infrasoundgt/beamform2d.m b/applications/rockets/infrasoundgt/beamform2d.m index 5ea629e..a541b4c 100755 --- a/applications/rockets/infrasoundgt/beamform2d.m +++ b/applications/rockets/infrasoundgt/beamform2d.m @@ -54,6 +54,7 @@ warning('You can only set fixbackaz or fixspeed, not both. Ignoring fixbackaz') end + if exist('fixbackaz', 'var') backaz = fixbackaz - 1.0: 0.1: fixbackaz + 1.0; else @@ -76,7 +77,9 @@ for column=1:N distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(c) unit_vector_northing(c)] ); end + %distanceDiff end + speedMatrix = distanceDiff ./ meanSecsDiff; a =[]; for row=1:N diff --git a/cookbooks/waveform_cookbook.m b/cookbooks/waveform_cookbook.m index b783f24..5e99c94 100755 --- a/cookbooks/waveform_cookbook.m +++ b/cookbooks/waveform_cookbook.m @@ -46,11 +46,11 @@ % reading from IRIS DMC webservices, except that the datasource should be % 'earthworm' or 'winston', and the two arguments are the host-ip-address % and the port number: -ds = datasource('winston', 'pubavo1.wr.usgs.gov', 16022); -ctag = ChannelTag('AV', 'RSO', '--', 'EHZ'); -startTime = now-1/24; -endTime = now; -w = waveform(ds, ctag, startTime, endTime) +% ds = datasource('winston', 'pubavo1.wr.usgs.gov', 16022); +% ctag = ChannelTag('AV', 'RSO', '--', 'EHZ'); +% startTime = now-1/24; +% endTime = now; +% w = waveform(ds, ctag, startTime, endTime) %% % *Reading waveform data from an CSS3.0 flat-file database (the format used @@ -120,12 +120,13 @@ %% % *Spectrum* % An amplitude spectrum can be generated with: -plot_spectrum(w) +s=amplitude_spectrum(w) +plot(s.f, s.amp); xlabel('Frequency (Hz)'); ylabel('Amplitude') + %% % *Spectrogram* % A spectrogram can be generated with: -figure spectrogram(w) %% diff --git a/core/+Detection/sta_lta.m b/core/+Detection/sta_lta.m index e681083..5789ce9 100755 --- a/core/+Detection/sta_lta.m +++ b/core/+Detection/sta_lta.m @@ -1,4 +1,5 @@ -function [cobj,sta,lta,sta_to_lta] = sta_lta(wave,varargin) +function [detObj, sta, lta, sta_to_lta] = sta_lta(wave,varargin) +%function [cobj,sta,lta,sta_to_lta] = sta_lta(wave,varargin) %STA_LTA: Short-Time-Average/Long-Time-Average event detector. % @@ -49,9 +50,27 @@ %% Check waveform variable if isa(wave,'waveform') + if numel(wave)>1 + detObj = []; + for wavnum=1:numel(wave) + [detObj0,sta,lta,sta_to_lta] = Detection.sta_lta(wave(wavnum),varargin{:}); + if strcmp(class(detObj0),'Detection') + if isempty(detObj) + detObj = detObj0; + else + detObj = detObj.append(detObj0); + end + end + + end + return + end + Fs = get(wave,'freq'); % Sampling frequency l_v = get(wave,'data_length'); % Length of time series tv = get(wave, 'timevector'); % Time vector of waveform + staname = get(wave, 'station'); + channame = get(wave, 'channel'); if isempty(wave) disp('Input waveform empty, no events detected') events = []; @@ -149,6 +168,7 @@ EVENT_ON = true; eventstart = t(count); lta_freeze_level = lta(count); + snr_start = sta_to_lta(count); end if EVENT_ON & ((sta_to_lta(count) <= th_off) || count == length(y)) @@ -164,6 +184,10 @@ end trig_array(eventnum, 1) = eventstart; trig_array(eventnum, 2) = eventend; + snr_val(eventnum*2-1) = snr_start; + snr_val(eventnum*2) = sta_to_lta(count); +% detectionArray(eventnum*2-1) = Detection(staname, channame, trig_array(eventnum,1) , 'ON', '', snr_start); +% detectionArray(eventnum*2) = Detection(staname, channame, trig_array(eventnum,2) , 'OFF', '', snr_end); eventstart = 0; eventend = 0; end @@ -174,10 +198,18 @@ t_secs=(t-t(1))*86400; ta_secs = (trig_array-t(1))*86400; - ax(1)=subplot(4,1,1);plot(t_secs,get(wave,'data'),'k'),title('waveform') - ax(2)=subplot(4,1,2);plot(t_secs,sta,'k'),title('STA') - ax(3)=subplot(4,1,3);plot(t_secs,lta,'k'),title('LTA') - ax(4)=subplot(4,1,4);plot(t_secs,sta_to_lta,'k'),title('STA:LTA') + ax(1)=subplot(4,1,1); + plot(t_secs, get(wave,'data'), 'k') + title('waveform') + ax(2)=subplot(4,1,2); + plot(t_secs, sta, 'k') + title('STA') + ax(3)=subplot(4,1,3); + plot(t_secs, lta, 'k') + title('LTA') + ax(4)=subplot(4,1,4); + plot(t_secs, sta_to_lta, 'k') + title('STA:LTA') linkaxes(ax,'x') hold on a=axis(); @@ -187,11 +219,24 @@ for count=1:size(ta_secs,1) plot(ta_secs(count,:),[0 0],'b','LineWidth',5); end - if eventnum==0 - cobj = Catalog(); - else - cobj = Catalog([], [], [], [], [], {}, {}, 'ontime', trig_array(:,1), 'offtime', trig_array(:,2)); - end + %% CHANGED CODE FROM RETURNING A CATALOG TO RETURNING A DETECTION VECTOR +% if eventnum==0 +% cobj = Catalog(); +% else +% cobj = Catalog([], [], [], [], [], {}, {}, 'ontime', trig_array(:,1), 'offtime', trig_array(:,2)); +% end + + if eventnum>0 + detObj = Detection(repmat(cellstr(staname),eventnum*2,1), ... + repmat(cellstr(channame),eventnum*2,1), ... + reshape(trig_array', 1, eventnum*2), ... + repmat({'ON';'OFF'},eventnum,1), ... + repmat(cellstr(''), eventnum*2,1), ... + snr_val); + else + detObj = 0; + end + end diff --git a/core/@Arrival/addwaveforms.m b/core/@Arrival/addwaveforms.m index 1a1a646..1786db6 100755 --- a/core/@Arrival/addwaveforms.m +++ b/core/@Arrival/addwaveforms.m @@ -6,6 +6,8 @@ % % Usage: % arrivalobj = arrivalobj.addwaveforms(datasourceobj, pretrigsecs, posttrigsecs) +% or: +% arrivalobj = arrivalobj.addwaveforms(waveformobj, pretrigsecs, posttrigsecs) % % Example: % dbpath = '/raid/data/sakurajima/db'; @@ -24,10 +26,20 @@ ctag = ChannelTag(arrivalobj.channelinfo(c)); snum = arrivalobj.time(c) - pretrigsecs/86400; enum = arrivalobj.time(c) + posttrigsecs/86400; + if strcmp(class(datasourceobj),'waveform') + index = match_channel(ctag, get(datasourceobj,'channelinfo') ); + neww = extract(datasourceobj(index),'time',snum,enum); + else % try - w = [w waveform(datasourceobj, ctag, snum, enum)]; - fprintf('.'); - numsuccess = numsuccess + 1; + neww = waveform(datasourceobj, ctag, snum, enum); + end + + if isempty(neww) + error('Blank waveform') + end + w = [w neww]; + fprintf('.'); + numsuccess = numsuccess + 1; % catch % w = [w waveform()]; % fprintf('x'); @@ -35,9 +47,25 @@ if mod(c,30) == 0 fprintf('\nDone %d out of %d\n',c, Na); end + end arrivalobj.waveforms = clean(w'); fprintf('\n(added %d of %d waveforms successfully)\n', numsuccess, numel(arrivalobj.time)); end +function index=match_channel(chaninfo, chaninfo_list) + index=0; + for c=1:numel(chaninfo_list) + pattern = chaninfo.string(); + if strcmp(pattern(end-2),'_') % take care of when the location has changed between waveform and arrival + pattern = pattern(1:end-3); + end + result=strfind(chaninfo_list{c},pattern); + if ~isempty(result) + index=result; + break; + end + end +end + diff --git a/core/@Arrival/associate.m b/core/@Arrival/associate.m index bd02a52..b4a4826 100755 --- a/core/@Arrival/associate.m +++ b/core/@Arrival/associate.m @@ -32,6 +32,9 @@ for c=1:numel(sites) thissite = sites(c); thischanstr = thissite.channeltag.string(); + if strcmp(thischanstr(end-2),'_') + thischanstr=thischanstr(1,end-3); + end i = strcmp(arrivalobj.channelinfo, thischanstr)==1; arrivalobj.traveltime(i) = sites(c).traveltime; arrivalobj.time(i) = arrivalobj.time(i) - sites(c).traveltime/86400; @@ -55,7 +58,7 @@ % 2. Remove decrementing series, e.g. replace sequence % like 6 5 4 3 2 1 with 6 0 0 0 0 0 numarrivals = [numarrivals(1) diff(numarrivals)+1]; - %numarrivals(numarrivals<=1)=0; + numarrivals(numarrivals<=1)=0; % 3. Now loop over numarrivals and create events fprintf('Making events') @@ -64,8 +67,7 @@ for c=1:numel(numarrivals) if numarrivals(c)>0 fprintf('.') - eventnum = eventnum + 1; - otime(eventnum) = arrtimes(c); + try eventarrivalobj = arrivalobj.subset([c : c + numarrivals(c) - 1]); catch @@ -75,22 +77,29 @@ rethrow(); end - % remove the reduced time - if exist('sites','var') - for cc=1:numel(eventarrivalobj.time) - eventarrivalobj.time(cc) = eventarrivalobj.time(cc) + eventarrivalobj.traveltime(cc)/86400; - end - end + +% % remove the reduced time +% if exist('sites','var') +% for cc=1:numel(eventarrivalobj.time) +% eventarrivalobj.time(cc) = eventarrivalobj.time(cc) + eventarrivalobj.traveltime(cc)/86400; +% end +% end + % remove duplicate channels [uc,ia] = unique(eventarrivalobj.channelinfo, 'stable'); duplicatecount = duplicatecount + numel(eventarrivalobj.channelinfo) - numel(uc); - eventarrivalobj = eventarrivalobj.subset(ia); + if numel(ia)>1 + eventarrivalobj = eventarrivalobj.subset(ia); + eventnum = eventnum + 1; + otime(eventnum) = arrtimes(c); - % set the arrivalobj for this event - arrivalobj2{eventnum} = eventarrivalobj; - firstArrivalTime(eventnum) = min(eventarrivalobj.time); - lastArrivalTime(eventnum) = max(eventarrivalobj.time); + % set the arrivalobj for this event + arrivalobj2{eventnum} = eventarrivalobj; + firstArrivalTime(eventnum) = min(eventarrivalobj.time); + lastArrivalTime(eventnum) = max(eventarrivalobj.time); + + end end if mod(c,30) == 0 @@ -113,6 +122,11 @@ olon = NaN(size(otime)); olat = NaN(size(otime)); end + + for enum=1:numel(otime) + %disp(sprintf('%d: %s-%s',enum,firstArrivalTime,lastArrivalTime)); + end + catalogobj = Catalog(otime, olon, olat, [], [], {}, {}, 'ontime', firstArrivalTime, 'offtime', lastArrivalTime); catalogobj.arrivals = arrivalobj2; fprintf('%d arrivals were determined to be duplicates using a time window of %.1f seconds\n',duplicatecount, maxTimeDiff); diff --git a/core/@Catalog/addwaveforms.m b/core/@Catalog/addwaveforms.m index 1261bc5..5c275c9 100755 --- a/core/@Catalog/addwaveforms.m +++ b/core/@Catalog/addwaveforms.m @@ -6,39 +6,55 @@ % continuous waveform object, w_continuous. Each event is defined by its ontime and % offtime, which are recorded in cobj. % -% cobj2 = cobj.addwaveforms(ds, ctag, pretrigger, posttrigger) will create event waveform objects from +% cobj2 = cobj.addwaveforms(w_continuous, pretriggerSecs, posttriggerSecs) +% will prepend each waveform by pretriggerSecs Seconds. And append by +% posttriggerSecs. +% +% cobj2 = cobj.addwaveforms(ds, ctag, pretriggerSecs, posttriggerSecs) will create event waveform objects from % datasource, ChannelTag.array. Each event is defined by its ontime and % offtime, which are recorded in cobj. % disp(sprintf('Adding waveforms for each of %d events in Catalog',cobj.numberOfEvents)) w_events = {}; - switch nargin - case 2 + pretriggerSecs = 0; + posttriggerSecs = 0; + if nargin>1 + if isa(varargin{1},'waveform') + + if nargin>2 + pretriggerSecs = varargin{2}; + posttriggerSecs = varargin{3}; + end w_cont = clean(varargin{1}); - w_temp = extract(w_cont, 'time', cobj.ontime, cobj.offtime); + %w_temp = extract(w_cont, 'time', cobj.ontime, cobj.offtime); for count = 1:cobj.numberOfEvents fprintf('.'); - w_events{count} = w_temp(:,count); + w_temp = extract(w_cont, 'time', cobj.ontime(count)-pretriggerSecs/86400, cobj.offtime(count)+posttriggerSecs/86400); + %w_events{count} = w_temp(:,count); + w_events{count} = w_temp; + if mod(count,30) == 0 fprintf('\nDone %d out of %d\n',count, cobj.numberOfEvents); end end end - case 5 + if isa(varargin{1},'datasource') + if nargin>2 + pretriggerSecs = varargin{3}; + postriggerSecs = varargin{4}; + end for count = 1:cobj.numberOfEvents fprintf('.'); - thisw = waveform(varargin{1}, varargin{2}, cobj.ontime(count)-varargin{3}/86400, cobj.offtime(count)+varargin{4}/86400); + thisw = waveform(varargin{1}, varargin{2}, cobj.ontime(count)-pretriggerSecs/86400, cobj.offtime(count)+posttriggerSecs/86400); w_events{count} = clean(thisw); if mod(count,30) == 0 fprintf('\nDone %d out of %d\n',count, cobj.numberOfEvents); end end end - otherwise - nargin end cobj.waveforms = w_events; fprintf('\n(Complete)\n'); diff --git a/core/@Detection/Detection.m b/core/@Detection/Detection.m index 814c530..391d7a5 100644 --- a/core/@Detection/Detection.m +++ b/core/@Detection/Detection.m @@ -10,6 +10,9 @@ signal2noise traveltime end + properties(Dependent) + numel + end methods function obj = Detection(sta, chan, time, state, filterString, signal2noise) % Parse required, optional and param-value pair arguments, @@ -32,13 +35,30 @@ obj.state = p.Results.state; obj.filterString = p.Results.filterString; obj.signal2noise = p.Results.signal2noise; - fprintf('\nGot %d detections\n',numel(obj.time)); + N = numel(obj.time); + fprintf('\nGot %d detections\n',N); + if numel(obj.state) == 0 + obj.state = repmat({''},1,N); + end + if numel(obj.filterString) == 0 + obj.filterString = repmat({''},1,N); + end + if numel(obj.signal2noise) == 0 + obj.signal2noise = repmat({''},1,N); + end + if numel(obj.traveltime) == 0 + obj.traveltime = repmat(NaN,1,N); + end end function val = get.time(obj) val = obj.time; - end + end + + function val = get.numel(obj) + val = numel(obj.time); + end % function val = get.channelinfo(obj) % val = obj.channelinfo; @@ -176,10 +196,33 @@ function summarize_row(self, rownum) if numel(self.signal2noise)==N self2.signal2noise = self.signal2noise(indexes); end - + if numel(self.traveltime)==N + self2.traveltime = self.traveltime(indexes); + end end - + function self = append(self1, self2) + disp('Appending...') + [newtime, indices] = sort([self1.time self2.time]); + size(cellstr(self1.channelinfo)) + size(cellstr(self2.channelinfo)) + newchannelinfo = [cellstr(self1.channelinfo); cellstr(self2.channelinfo)]; + newchannelinfo = newchannelinfo(indices); + newstate = [cellstr(self1.state); cellstr(self2.state)]; + newstate = newstate(indices); + newfs = [cellstr(self1.filterString); cellstr(self2.filterString)]; + newfs = newfs(indices); + newsnr = [self1.signal2noise self2.signal2noise]; + newsnr = newsnr(indices); + ctags = ChannelTag(newchannelinfo); + %self = Detection(cellstr([get(ctags,'station')]), cellstr([get(ctags,'channel')]), newtime, cellstr([newstate]), cellstr([newfs]), newsnr) + self = Detection([get(ctags,'station')], ... + [get(ctags,'channel')], ... + newtime, ... + newstate, ... + [newfs], ... + newsnr) + end % prototypes catalogobj = associate(self, maxTimeDiff, sites, source) diff --git a/core/@Detection/associate.m b/core/@Detection/associate.m index 4d26012..efbb740 100644 --- a/core/@Detection/associate.m +++ b/core/@Detection/associate.m @@ -43,6 +43,16 @@ % association_time_window = 2; % max seconds from seismic to infrasound arrival % catalogobj = detobj.associate(maxtimediff, sites); + % break up detection types + detections_on = obj.subset('state', 'ON'); + detections_d = obj.subset('state', 'D'); + detections_off = obj.subset('state', 'OFF'); + if detections_d.numel > 0 + obj = detections_d; + elseif detections_on.numel > 0 + obj = detections_on; + end + %% REDUCE BY SUBTRACTING TRAVEL TIME % If sites exist, let's correct the arrival times first if exist('sites', 'var') @@ -125,9 +135,19 @@ end %% CREATE CATALOG + if numel(otime)==0 + % no events + catalogobj = Catalog(); + return + end + fprintf('\nCreating Catalog\n') - olon = source.lon*ones(size(otime)); - olat = source.lat*ones(size(otime)); + olon=[]; + olat=[]; + if exist('source','var') + olon = source.lon*ones(size(otime)); + olat = source.lat*ones(size(otime)); + end catalogobj = Catalog(otime, olon, olat, [], [], {}, {}, 'ontime', firstDetectionTime, 'offtime', lastDetectionTime); catalogobj.arrivals = arrivalobj; fprintf('%d detections were determined to be duplicates using a time window of %.1f seconds\n',duplicatecount, maxTimeDiff); @@ -143,7 +163,8 @@ end sta = get(ctag, 'station'); chan = get(ctag, 'channel'); - arrivalobj = Arrival(cellstr(sta), cellstr(chan), detectionobj.time, cellstr(detectionobj.state), 'signal2noise', detectionobj.signal2noise); + arrivalobj = Arrival(cellstr(sta), cellstr(chan), detectionobj.time, ... + cellstr(detectionobj.state), 'signal2noise', detectionobj.signal2noise); end diff --git a/core/@drumplot/plot.m b/core/@drumplot/plot.m index fe3a4af..8868237 100755 --- a/core/@drumplot/plot.m +++ b/core/@drumplot/plot.m @@ -1,18 +1,17 @@ -function varargout = plot(h) - -%PLOT: Drumplot plotting function. A drumplot object (h) contains no +function fh = plot(drumplotobj) +%PLOT: Drumplot plotting function. A drumplot object contains no % graphical elements, but is instead a blueprint for how the drumplot -% figure should be assembled. Information in h includes waveform data, +% figure should be assembled. Information in drumplotobj includes waveform data, % number of minutes per line, color scheme, multi-waveform display type, -% and a Catalog object to highlight over the drumplot. Calling plot(h) will -% assemble the drumplot figure based the information in h. Plot returns +% and a Catalog object to highlight over the drumplot. Calling plot(drumplotobj) will +% assemble the drumplot figure based the information in drumplotobj. Plot returns % the figure handle if an output argument is provided, otherwise, there is % no output. % -%USAGE: plot(h) --> Create drumplot figure from drumplot object -% fh = plot(h) --> Also return drumplot figure handle +%USAGE: plot(drumplotobj) --> Create drumplot figure from drumplot object +% fh = plot(drumplotobj) --> Also return drumplot figure handle % -%INPUTS: h - drumplot object +%INPUTS: drumplotobj - drumplot object % %OUTPUTS: fh - figure handle of drumplot % @@ -34,9 +33,9 @@ % near the middle of line 14 (2 lines above 16). Note that for any % waveform in a drumplot, B.scale is consistant throughout (no different % scaling on different lines for the same waveform). B.scale is multiplied -% by h.scale, which by default is equal to 1. B.scale cannot be accessed +% by drumplotobj.scale, which by default is equal to 1. B.scale cannot be accessed % directly, but it can be increased or decreased indirectly by setting -% h.scale to a different value: h = set(h,'scale',2); will double the +% drumplotobj.scale to a different value: h = set(h,'scale',2); will double the % displayed amplitude assuming there is only one waveform in drumplot. % B.lines_per_waveform --> Number of drumplot lines occupied by a single waveform % B.number_of_lines --> Total number of drumplot lines @@ -45,37 +44,48 @@ % B.line_waveform_events --> 1 waveform object per line set to NaN between % events from Catalog %% INITIALIZE DRUMPLOT FIGURE - B.fh = figure('Name','Drumplot'); % New drumplot figure handle + B.fh = figure('Name','Drumplot');% New drumplot figure handle + fh = B.fh; B.ax = axes('position',[.10 .07 .83 .86]); % New drumplot axes handle title(B.ax,'Plotting Drumplot...','FontSize',12) - %refresh(B.fh) - refresh(gcf) - pause(0.1) +% %refresh(B.fh) +% refresh(gcf) +drawnow +% pause(0.1) %% INITIALIZE BUILDER STRUCTURE FIELDS % pad waveform object - [snum enum] = gettimerange(h.wave); - snum = floorminute(snum+1/86400, h.mpl); - enum = ceilminute(enum-1/86400, h.mpl); + [snum enum] = gettimerange(drumplotobj.wave); + snum = floorminute(snum+1/86400, drumplotobj.mpl); + enum = ceilminute(enum-1/86400, drumplotobj.mpl); % find start and end times for each line - B.number_of_lines = 1440*(enum-snum)/h.mpl; + B.number_of_lines = 1440*(enum-snum)/drumplotobj.mpl; days_per_line = (enum-snum)/B.number_of_lines; B.starttimes=snum:days_per_line:enum-days_per_line; B.endtimes=snum+days_per_line:days_per_line:enum; - % split h.wave into one waveform per line for continuous data - B.line_waveform_continuous = extract(h.wave, 'time', B.starttimes, B.endtimes); + % split drumplotobj.wave into one waveform per line for continuous data + B.line_waveform_continuous = extract(drumplotobj.wave, 'time', B.starttimes, B.endtimes); % if there are catalog events, add waveform objects, return one waveform per line for event data B.line_waveform_events = []; - if h.catalog.numberOfEvents > 0 - if isempty(h.catalog.waveforms) - h.catalog = h.catalog.addwaveforms(h.wave); + if drumplotobj.catalog.numberOfEvents > 0 + + if isempty(drumplotobj.catalog.waveforms) + drumplotobj.catalog = drumplotobj.catalog.addwaveforms(drumplotobj.wave); + end + w = [drumplotobj.catalog.waveforms{1,:}]; + % go through w and check the channeltag is same as drumplotobj.wave + mainctag = get(drumplotobj.wave,'ChannelTag'); + w2=[]; + for wavnum=1:numel(w) + thisctag = get(w(wavnum),'ChannelTag'); + if strcmp(thisctag.string(), mainctag.string()) + w2 = [w2 w(wavnum)]; + end end - h.catalog.waveforms - w = [h.catalog.waveforms{1,:}]; - w = combine(w); + w = combine(w2); w = pad(w, snum, enum, NaN); B.line_waveform_events = extract(w, 'time', B.starttimes, B.endtimes); clear w @@ -84,47 +94,47 @@ % now we just need to plot each line with an appropriate offset % scaling - y = get(h.wave, 'data'); + y = get(drumplotobj.wave, 'data'); max_amplitude = (nanmax(y)-nanmin(y))/2; - B.scale=h.scale/(B.number_of_lines*max_amplitude); + B.scale=drumplotobj.scale/(B.number_of_lines*max_amplitude); %% PLOT DRUMPLOT TRACES WITH EVENT OVERLAY for n = 1:B.number_of_lines % Glenn 20160513: For cookbook examples I had to add 1 here. Not sure why. Doesn't work in other cases B.line_offset(n) = (B.number_of_lines-n+0.5)/B.number_of_lines; % Trace offset from bottom B.line_waveform_continuous(n) = B.line_waveform_continuous(n) * B.scale + B.line_offset(n); - plot(B.line_waveform_continuous(n), 'color', h.trace_color, 'xunit', 'minutes', 'axeshandle', B.ax); + plot(B.line_waveform_continuous(n), 'color', drumplotobj.trace_color, 'xunit', 'minutes', 'axeshandle', B.ax); hold on; if ~isempty(B.line_waveform_events) B.line_waveform_events(n) = B.line_waveform_events(n) * B.scale + B.line_offset(n); - plot(B.line_waveform_events(n), 'color', h.event_color, 'xunit', 'minutes', 'axeshandle', B.ax); + plot(B.line_waveform_events(n), 'color', drumplotobj.event_color, 'xunit', 'minutes', 'axeshandle', B.ax); end end % Finished plotting all drumplot trace data %% ADD FINISHING TOUCHES TO DRUMPLOT FIGURE - add_title(h,B); - add_y_ticks(h,B); + add_title(drumplotobj,B); + add_y_ticks(drumplotobj,B); set(B.ax,'XGrid','on') - xlim([0 h.mpl]) + xlim([0 drumplotobj.mpl]) set(B.ax, 'YLim', [0 1]); - %% OUTPUT - if nargout == 0 - elseif nargout == 1 - varargout(1) = {B.fh}; - else - warning('DRUMPLOT/PLOT Too many outputs') - end +% %% OUTPUT +% if nargout == 0 +% elseif nargout == 1 +% B(1) = {B.fh}; +% else +% warning('DRUMPLOT/PLOT Too many outputs') +% end end %% ADD TITLE TO DRUMPLOT FIGURE -function add_title(h,B) - if isempty(h.wave) +function add_title(drumplotobj,B) + if isempty(drumplotobj.wave) title(B.ax,'No Data Selected','FontSize',12); else scn_str = []; - sta = get(h.wave,'station'); - cha = get(h.wave,'channel'); - net = get(h.wave,'network'); + sta = get(drumplotobj.wave,'station'); + cha = get(drumplotobj.wave,'channel'); + net = get(drumplotobj.wave,'network'); scn_str = [net,'.',sta,'.',cha]; h_title = sprintf('%s:\n%s to %s',scn_str, datestr(B.starttimes(1),31), datestr(B.endtimes(end),31) ); title(B.ax,h_title); @@ -132,9 +142,9 @@ function add_title(h,B) end %% ADD Y-AXES TICKS AND LABELS -function add_y_ticks(h,B) +function add_y_ticks(drumplotobj,B) - if ~isempty(h.wave) + if ~isempty(drumplotobj.wave) ylabel(B.ax,'') tick_positions = B.line_offset; tick_labels = datestr(B.starttimes,15); diff --git a/core/@filterobject/filtfilt.m b/core/@filterobject/filtfilt.m index 0771356..a1bd535 100755 --- a/core/@filterobject/filtfilt.m +++ b/core/@filterobject/filtfilt.m @@ -39,13 +39,20 @@ 'will cause filtfilt to return an answer of all NaN. To prevent '... 'this, use waveform/fillgaps to replace NaN with an appropriate'... ' value. \nSee help waveform/fillgaps.']); + return end for n = 1 : numel(w); - WN = f.cutoff / get(w(n),'NYQ'); %only one filter is assumed! - [b, a] = getButter(f,WN); - w(n) = set(w(n),'data', filtfilt(b, a, double(w(n))) ); + fnyq = get(w(n),'NYQ'); + if fnyq>0 + WN = f.cutoff / fnyq; %only one filter is assumed! + [b, a] = getButter(f,WN); + w(n) = set(w(n),'data', filtfilt(b, a, double(w(n))) ); + else + warning('Sampling rate is not set on this waveform. Use w = set(w, ''freq'', 100) to set to 100 Hz, for example. Cannot design a Butterworth filter') + return + end end end @@ -55,6 +62,7 @@ %- - - - helper function - - - - % function [b, a] = getButter(f, WN) + switch f.type case 'H'; [b,a] = butter(f.poles, WN, 'high'); diff --git a/core/@waveform/combine.m b/core/@waveform/combine.m index 67a2be8..2dc4355 100755 --- a/core/@waveform/combine.m +++ b/core/@waveform/combine.m @@ -7,6 +7,8 @@ % AUTHOR: Celso Reyes, Geophysical Institute, Univ. of Alaska Fairbanks % $Date$ % $Revision$ + % Glenn Thompson 2018/01/09: replaced splice_waveform routine as it was + % failing as part of drumplot.plot if numel(waveformlist) < 2 %nothing to do combined_waveforms = waveformlist; @@ -67,16 +69,49 @@ w = set(w1,'data',[w1.data; toAdd; w2.data]); end +% function w = spliceWaveform(w1, w2) +% +% % NOTE * Function uses direct field access +% timesToGrab = sum(get(w1,'timevector') < get(w2,'start')); +% +% samplesRemoved = numel(w1.data) - timesToGrab; +% +% w = set(w1,'data',[double(extract(w1,'index',1,timesToGrab)); w2.data]); +% +% w= addhistory(w,'SPLICEPOINT: %s, removed %d points (overlap)',... +% datestr(get(w2,'start')),samplesRemoved); +% end + function w = spliceWaveform(w1, w2) - % NOTE * Function uses direct field access - timesToGrab = sum(get(w1,'timevector') < get(w2,'start')); - - samplesRemoved = numel(w1.data) - timesToGrab; - - w = set(w1,'data',[double(extract(w1,'index',1,timesToGrab)); w2.data]); - - w= addhistory(w,'SPLICEPOINT: %s, removed %d points (overlap)',... - datestr(get(w2,'start')),samplesRemoved); +% +% % NOTE * Function uses direct field access + snum1 = get(w1,'start'); + snum2 = get(w2,'start'); + enum1 = get(w1,'end'); + enum2 = get(w2,'end'); + [snummin, snuminindex] = min([snum1 snum2]); + [enummax, enumaxindex] = max([enum1 enum2]); + dnum1 = get(w1,'timevector'); + dnum2 = get(w2,'timevector'); + data1 = get(w1,'data'); + data2 = get(w2,'data'); + w = w1; + dnum=dnum1; + data=data1; + ind = find(dnum20 + dnum = [dnum2(ind); dnum]; + data = [data2(ind); data]; + end + ind = find(dnum2>enum1); + if numel(ind)>0 + dnum = [dnum; dnum2(ind)]; + data = [data; data2(ind)]; + end + snum = dnum(1); + w = set(w, 'start', snum, 'data', data); + + end function result = overlaps(dt, sampleInterval) diff --git a/core/@waveform/plot_helicorder.m b/core/@waveform/plot_helicorder.m index afd0277..99398af 100755 --- a/core/@waveform/plot_helicorder.m +++ b/core/@waveform/plot_helicorder.m @@ -1,12 +1,14 @@ -function [ output_args ] = plot_helicorder( w, varargin ) +function plot_helicorder( w, varargin ) %WAVEFORM/PLOT_HELICORDER Plot waveform objects as helicorders % Each waveform object is plotted as a separate helicorder plot using the % drumplot class - +close all % Glenn Thompson 20160513 for c=1:numel(w) - h = drumplot(demean(w(c)), varargin{:}); - plot(h); + %figure + drumobj0 = drumplot(demean(w(c)), varargin{:}) + plot(drumobj0); + pause(2) end end From 103ac889703df906a92d9df9f31d3b54f1e8f966 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 10 Apr 2018 16:19:10 -0400 Subject: [PATCH 40/52] added beamform2d --- .../rockets/infrasoundgt/beamform2dfull.m | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 applications/rockets/infrasoundgt/beamform2dfull.m diff --git a/applications/rockets/infrasoundgt/beamform2dfull.m b/applications/rockets/infrasoundgt/beamform2dfull.m new file mode 100644 index 0000000..a468136 --- /dev/null +++ b/applications/rockets/infrasoundgt/beamform2dfull.m @@ -0,0 +1,121 @@ +function [backazimuth, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff, fixazimuth, fixspeed) +%BEAMFORM2D compute back azimuthguess of source from travel time differences +%between each component. Plane waves are assumed (i.e. source at infinite +%distance). 2D assumes flat topography, does not search over a vertical +%incident angle. +% +% [backazimuth, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff) +% For each possible back azimuthguess, compute the distances between array +% components resolved in that direction. +% Based on differential travel times (meanSecsDiff), compute +% speedMatrix. Take average and stdev of speedMatrix, and compute +% fractional deviation. +% Choose the azimuthguess for which the fractional +% deviation is least. Return this and the mean speed (bestspeed). +% +% Inputs: +% easting, northing - GPS coordinates of array components +% meanSecsDiff - an array of size N*N where N = number of array +% components. Each element represents mean travel +% time difference between the array elements +% represented by that row and column +% +% Outputs: +% backazimuthguess - back azimuthguess of the source that best fits inputs +% bestspeed - pressure wave speed across array that best fits inputs +% +% [backazimuth, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff,fixazimuthguess) +% fixazimuth - fix the back azimuthguess to this value +% Only iterate from fixazimuth-1 to fixazimuth+1, rather than from +% 0.1 to 360. +% +% +% [backazimuth, bestspeed,distanceDiff,speedMatrix] = beamform2d(easting, northing, meanSecsDiff,0,fixspeed) +% fixspeed - return the back azimuthguess that best fits this speed. + + backazimuth = NaN; + bestspeed = NaN; + + % First we use travel time ratios to find back azimuthguessal angle of the beam + % this means we do not need to know speed + N=numel(easting); + if numel(northing)~=N + error('length of easting and northing must be same') + end + if (size(meanSecsDiff) ~= [N N]) + size(easting) + size(northing) + size(meanSecsDiff) + error('wrong dimensions for meanSecsDiff') + end + + if exist('fixspeed','var') + clear fixazimuthguess + warning('You can only set fixazimuthguess or fixspeed, not both. Ignoring fixazimuthguess') + end + + + if exist('fixazimuthguess', 'var') + azimuthguess = mod(180 + fixazimuthguess - 1.0: 0.1: fixazimuthguess + 1.0,360); + else + azimuthguess = 0.1:0.1:360; + end + unit_vector_easting = -sin(deg2rad(azimuthguess)); + unit_vector_northing = -cos(deg2rad(azimuthguess)); + + for row=1:N + for column=1:N + eastingDiff(row, column) = easting(row) - easting(column); + northingDiff(row, column) = northing(row) - northing(column); + end + end + + %for thisaz = azimuthguess + for c=1:length(azimuthguess) + thisaz = azimuthguess(c); + for row=1:N + for column=1:N + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(c) unit_vector_northing(c)] ); + end + %distanceDiff + end + + speedMatrix = distanceDiff ./ meanSecsDiff; + meanspeed(c) = mean(speedMatrix([2 3 4 6 7 8])); + stdspeed(c) = std(speedMatrix([2 3 4 6 7 8])); + if meanspeed(c)<0 + stdspeed(c)=Inf; + end + + end + fractional_error = stdspeed ./ meanspeed; +% figure +% subplot(2,1,1),bar(azimuthguess, meanspeed); +% xlabel('Back azimuthguess (degrees)') +% ylabel('Sound speed (m/s)'); +% subplot(2,1,2),semilogy(azimuthguess, abs(fractional_error)); +% xlabel('Back azimuthguess (degrees)') +% ylabel('Sound speed fractional error'); + + + % return variables + fractional_error(meanspeed<0) = Inf; % eliminate -ve speeds as solutions + if exist('fixspeed','var') + [~,index] = min(abs(meanspeed-fixspeed)); + fractional_error(index) = 0; % force this speed to be used + end + %[~,bestindex] = min(abs(fractional_error)); + [~,bestindex] = min(abs(stdspeed)); + backazimuth = mod(180+azimuthguess(bestindex),360); + bestspeed = meanspeed(bestindex); + + + for row=1:N + for column=1:N + %distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestazimuthguess) unit_vector_northing(bestazimuthguess)] ); + distanceDiff(row, column) = dot( [eastingDiff(row, column) northingDiff(row, column)], [unit_vector_easting(bestindex) unit_vector_northing(bestindex)] ); + end + end + speedMatrix = distanceDiff ./ meanSecsDiff; +end + From 27165e6b50a1c9d663aa58eda62471a19b019b1f Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Wed, 11 Apr 2018 16:49:32 -0400 Subject: [PATCH 41/52] blank file added --- applications/rockets/misc/plot_average_frequency.m | 3 ++- applications/xcorrlocate/testfile.m | 0 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 applications/xcorrlocate/testfile.m diff --git a/applications/rockets/misc/plot_average_frequency.m b/applications/rockets/misc/plot_average_frequency.m index a05d956..91742aa 100644 --- a/applications/rockets/misc/plot_average_frequency.m +++ b/applications/rockets/misc/plot_average_frequency.m @@ -15,4 +15,5 @@ function plot_average_frequency(w) chan= get(w(c),'channel'); th=text(0.1,0.9, sprintf('%s %s.%s',datestr(Tcell{c}(1),30),sta,chan),'Units','normalized') end -end \ No newline at end of file + +end diff --git a/applications/xcorrlocate/testfile.m b/applications/xcorrlocate/testfile.m new file mode 100644 index 0000000..e69de29 From be76c4ed8efda974749e045d8061b49704dc132c Mon Sep 17 00:00:00 2001 From: Mitchell Hastings Date: Wed, 11 Apr 2018 16:58:22 -0400 Subject: [PATCH 42/52] first commit of multiplets script --- Multipletscorrelation.m | 358 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 358 insertions(+) create mode 100644 Multipletscorrelation.m diff --git a/Multipletscorrelation.m b/Multipletscorrelation.m new file mode 100644 index 0000000..420de46 --- /dev/null +++ b/Multipletscorrelation.m @@ -0,0 +1,358 @@ +% Author: Mitchell Hastings +% Welcome Weary Seismologists! +% This is a .m script made to automate the process of creating a subset +% of waveforms at each station at Telica volcano, Nicaragua. This script +% can work with any kind of waveform data if you are making subsets of +% families of waveforms. This script was written for the purpose of a class +% project for Steve McNutt's Volcano Seismology course. The author is tired +% and wishes to no longer continue modulating this script, but he may come +% back to doing so....eventually... + +clear all +close all +clc + +POSTTRIG = 20 + +%% THIS IS THE ONLY SECTION IN THE SCRIPT THAT NEEDS CHANGED + %SIMPLY CHANGE THE WORKING DIRECTORY AND THE FILENAME TO RUN IT + %NOTE: MUST HAVE THE SAME DATA STRUCTURE AND NAMING SCHEME AS + %MEL'S DATA + +% Move to the working directory that contains the correct data structure +% for this script, which is... +cd ~/Desktop/Multiplets + +% Read in file that has the original list of the Multiplets and all +% member events +filename = 'M-2012-05-11-edit2.dat'; +fid = fopen(filename,'r'); +%% TBTN-------------------------------------------------------------------- +% loop to read in each line and write a file path relative to the working +% directory + +count = 1; +while 1 + tline = fgetl(fid); + if ~ischar(tline), break, end; + fname = tline; + d = fname(1:4); + full = fullfile(d,fname); + w(count) = waveform(full, 'sac'); + count = count + 1; +end + +% create correlation object of the waveforms to do the correlation +c = correlation(w, get(w, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +% Use the subset_list to find the waveforms that correlate above the +% threshold on other stations + +%% TBMR-------------------------------------------------------------------- + +% this loop makes a cell array for the subset of events on station TBMR +subMR = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBTN', 'TBMR'); + subMR{count} = sub; + count = count + 1; +end + +% this loop creates a waveform object for the subset on TBMR +count = 1; +for count = 1:numel(subMR) + w_subMR(count) = waveform(subMR{count}, 'sac'); + count = count + 1; +end + +% Now this step is to do the correlation with the subset on TBMR +clear c, c2, corr, lag, keep, c3, w3, h, subset_list, h1, h11 + +% create correlation object of the waveforms to do the correlation +c = correlation(w_subMR, get(w_subMR, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +%% TBHY-------------------------------------------------------------------- + +% this loop makes a cell array for the subset of events on station TBMR +subHY = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBMR', 'TBHY'); + subHY{count} = sub; + count = count + 1; +end + +% this loop creates a waveform object for the subset on TBMR +count = 1; +for count = 1:numel(subHY) + w_subHY(count) = waveform(subHY{count}, 'sac'); + count = count + 1; +end + +% Now this step is to do the correlation with the subset on TBHY +clear c, c2, corr, lag, keep, c3, w3, h, subset_list, h1, h11 + +% create correlation object of the waveforms to do the correlation +c = correlation(w_subHY, get(w_subHY, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +%% TBHS-------------------------------------------------------------------- + +% this loop makes a cell array for the subset of events on station TBMR +subHS = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBHS'); + subHS{count} = sub; + count = count + 1; +end + +% this loop creates a waveform object for the subset on TBMR +count = 1; +for count = 1:numel(subHS) + w_subHS(count) = waveform(subHY{count}, 'sac'); + count = count + 1; +end + +% Now this step is to do the correlation with the subset on TBHY +clear c, c2, corr, lag, keep, c3, w3, h, subset_list, h1, h11 + +% create correlation object of the waveforms to do the correlation +c = correlation(w_subHS, get(w_subHS, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +%% CREATE A LIST FOR THE NEW SUBSET FOR EACH STATION + +% this loop makes a cell array for the new subset on TBTN +subset_TBTN = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBTN'); + subset_TBTN{count} = sub; + count = count + 1; +end + +% this loop makes a cell array for the new subset on TBMR +subset_TBMR = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBMR'); + subset_TBMR{count} = sub; + count = count + 1; +end + +% this loop makes a cell array for the new subset on TBHS +subset_TBHS = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBHS'); + subset_TBHS{count} = sub; + count = count + 1; +end + +% this loop makes a cell array for the new subset on TBHY +subset_TBHY = subset_list; + +%% WRITE THE SUBSETS TO .DAT FILES + +% Ensure that the previous file being read is closed +% fclose(fid); + +% loops to create the .dat files +fid = fopen('Subset-TBTN.dat', 'w'); +for row = 1:numel(subset_TBTN) + fprintf(fid, '%s\n', subset_TBTN{row}); +end +fclose(fid); + +fid = fopen('Subset-TBMR.dat', 'w'); +for row = 1:numel(subset_TBMR) + fprintf(fid, '%s\n', subset_TBMR{row}); +end +fclose(fid); + +fid = fopen('Subset-TBHY.dat', 'w'); +for row = 1:numel(subset_TBHY) + fprintf(fid, '%s\n', subset_TBHY{row}); +end +fclose(fid); + +fid = fopen('Subset-TBHS.dat', 'w'); +for row = 1:numel(subset_TBHS) + fprintf(fid, '%s\n', subset_TBHS{row}); +end +fclose(fid); + +%% CORRELATIONS AND STACKS WITH THE SUBSET THAT APPEARS ON ALL STATIONS + +% load final waveform subset in for generating the stacks + +% TBTN +for count = 1:numel(subset_TBTN) + fname = subset_TBTN{count}; + WTN(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CTN = correlation(WTN, get(WTN, 'start')); +CTN2 = xcorr(CTN, [1 POSTTRIG]); +corr = get(CTN2, 'CORR'); % just to check correlation coefficients +CTN3 = adjusttrig(CTN2, 'median'); + +% plot(CTN3); + +CTN4 = stack(CTN3); +% plot(CTN4); +WTN4 = waveform(CTN4); +plot(WTN4(end)); % stacked waveform +% plot(WTN4(1)); % master waveform +plot_panels(WTN4, 'alignWaveform', 1) + +% TBMR +clear fname; +for count = 1:numel(subset_TBMR) + fname = subset_TBMR{count}; + WMR(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CMR = correlation(WMR, get(WMR, 'start')); +CMR2 = xcorr(CMR, [1 POSTTRIG]); +corr = get(CMR2, 'CORR'); % just to check correlation coefficients +CMR3 = adjusttrig(CMR2, 'median'); + +% plot(CMR3); + +CMR4 = stack(CMR3); +% plot(CMR4); +WMR4 = waveform(CMR4); +plot(WMR4(end)); % stacked waveform +%plot(WMR4(1)); % master waveform +plot_panels(WMR4, 'alignWaveform', 1) +% TBHY +clear fname +for count = 1:numel(subset_TBHY) + fname = subset_TBHY{count}; + WHY(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CHY = correlation(WHY, get(WHY, 'start')); +CHY2 = xcorr(CHY, [1 POSTTRIG]); +corr = get(CHY2, 'CORR'); % just to check correlation coefficients +CHY3 = adjusttrig(CHY2, 'median'); + +% plot(CHY3); + +CHY4 = stack(CHY3); +% plot(CHY4); +WHY4 = waveform(CHY4); +plot(WHY4(end)); % stacked waveform +%plot(WHY4(1)); % master waveform +plot_panels(WHY4, 'alignWaveform', 1) + +% TBHS +clear fname +for count = 1:numel(subset_TBHS) + fname = subset_TBHS{count}; + WHS(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CHS = correlation(WHS, get(WHS, 'start')); +CHS2 = xcorr(CHS, [1 POSTTRIG]); +corr = get(CHS2, 'CORR'); % just to check correlation coefficients +CHS3 = adjusttrig(CHS2, 'median'); + +% plot(CHS3); + +CHS4 = stack(CHS3); +% plot(CHS4); +WHS4 = waveform(CHS4); +plot(WHS4(end)); % stacked waveform +% plot(WHS4(1)); % master waveform +plot_panels(WHS4, 'alignWaveform', 1) + +%% + + + From 00d61eb898aac6ca9bbb740681040b3dc97a74c7 Mon Sep 17 00:00:00 2001 From: Mitchell Hastings Date: Wed, 11 Apr 2018 17:01:01 -0400 Subject: [PATCH 43/52] Moved multiplets to apps --- .../xcorrlocate/Multipletscorrelation.m | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Multipletscorrelation.m => applications/xcorrlocate/Multipletscorrelation.m (100%) diff --git a/Multipletscorrelation.m b/applications/xcorrlocate/Multipletscorrelation.m similarity index 100% rename from Multipletscorrelation.m rename to applications/xcorrlocate/Multipletscorrelation.m From d24d469ae361ff046fcbbf478a21187bf3433eeb Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 20 Apr 2018 11:59:18 -0400 Subject: [PATCH 44/52] functionized mitchscript --- .../xcorrlocate/Multipletscorrelation.m | 96 +++++++++++++------ 1 file changed, 68 insertions(+), 28 deletions(-) diff --git a/applications/xcorrlocate/Multipletscorrelation.m b/applications/xcorrlocate/Multipletscorrelation.m index 420de46..41fbe07 100644 --- a/applications/xcorrlocate/Multipletscorrelation.m +++ b/applications/xcorrlocate/Multipletscorrelation.m @@ -1,12 +1,5 @@ -% Author: Mitchell Hastings -% Welcome Weary Seismologists! -% This is a .m script made to automate the process of creating a subset -% of waveforms at each station at Telica volcano, Nicaragua. This script -% can work with any kind of waveform data if you are making subsets of -% families of waveforms. This script was written for the purpose of a class -% project for Steve McNutt's Volcano Seismology course. The author is tired -% and wishes to no longer continue modulating this script, but he may come -% back to doing so....eventually... +function mitchmadnesswrapper() + clear all close all @@ -14,19 +7,39 @@ POSTTRIG = 20 -%% THIS IS THE ONLY SECTION IN THE SCRIPT THAT NEEDS CHANGED - %SIMPLY CHANGE THE WORKING DIRECTORY AND THE FILENAME TO RUN IT - %NOTE: MUST HAVE THE SAME DATA STRUCTURE AND NAMING SCHEME AS - %MEL'S DATA - +%% THIS IS THE ONLY SECTION IN THE SCRIPT THAT NEEDS CHANGED +%SIMPLY CHANGE THE WORKING DIRECTORY AND THE FILENAME TO RUN IT +%NOTE: MUST HAVE THE SAME DATA STRUCTURE AND NAMING SCHEME AS +%MEL'S DATA + +MULTIPLETS_TOP_DIR = '~/Desktop/Multiplets'; +PEAKMATCH_OUTPUT_FILE = 'M-2012-05-11-edit2.dat'; + % Move to the working directory that contains the correct data structure % for this script, which is... -cd ~/Desktop/Multiplets +cd(MULTIPLETS_TOP_DIR); + +mitchmadness(PEAKMATCH_OUTPUT_FILE, POSTTRIG); + + +end + +function mitchmadness(PEAKMATCH_OUTPUT_FILE, POSTTRIG) +% Author: Mitchell Hastings +% Welcome Weary Seismologists! +% This is a .m script made to automate the process of creating a subset +% of waveforms at each station at Telica volcano, Nicaragua. This script +% can work with any kind of waveform data if you are making subsets of +% families of waveforms. This script was written for the purpose of a class +% project for Steve McNutt's Volcano Seismology course. The author is tired +% and wishes to no longer continue modulating this script, but he may come +% back to doing so....eventually... + +% Read in file that has the original list of the Multiplets and all +% member events +PEAKMATCH_OUTPUT_FILE = 'M-2012-05-11-edit2.dat'; +fid = fopen(PEAKMATCH_OUTPUT_FILE,'r'); -% Read in file that has the original list of the Multiplets and all -% member events -filename = 'M-2012-05-11-edit2.dat'; -fid = fopen(filename,'r'); %% TBTN-------------------------------------------------------------------- % loop to read in each line and write a file path relative to the working % directory @@ -65,7 +78,7 @@ count = count + 1; end -% Use the subset_list to find the waveforms that correlate above the +% Use the subset_list to find the waveforms that correlate above the % threshold on other stations %% TBMR-------------------------------------------------------------------- @@ -83,7 +96,7 @@ count = 1; for count = 1:numel(subMR) w_subMR(count) = waveform(subMR{count}, 'sac'); - count = count + 1; + count = count + 1; end % Now this step is to do the correlation with the subset on TBMR @@ -127,7 +140,7 @@ count = 1; for count = 1:numel(subHY) w_subHY(count) = waveform(subHY{count}, 'sac'); - count = count + 1; + count = count + 1; end % Now this step is to do the correlation with the subset on TBHY @@ -171,7 +184,7 @@ count = 1; for count = 1:numel(subHS) w_subHS(count) = waveform(subHY{count}, 'sac'); - count = count + 1; + count = count + 1; end % Now this step is to do the correlation with the subset on TBHY @@ -278,7 +291,7 @@ corr = get(CTN2, 'CORR'); % just to check correlation coefficients CTN3 = adjusttrig(CTN2, 'median'); -% plot(CTN3); +% plot(CTN3); CTN4 = stack(CTN3); % plot(CTN4); @@ -300,7 +313,7 @@ corr = get(CMR2, 'CORR'); % just to check correlation coefficients CMR3 = adjusttrig(CMR2, 'median'); -% plot(CMR3); +% plot(CMR3); CMR4 = stack(CMR3); % plot(CMR4); @@ -321,7 +334,7 @@ corr = get(CHY2, 'CORR'); % just to check correlation coefficients CHY3 = adjusttrig(CHY2, 'median'); -% plot(CHY3); +% plot(CHY3); CHY4 = stack(CHY3); % plot(CHY4); @@ -343,7 +356,7 @@ corr = get(CHS2, 'CORR'); % just to check correlation coefficients CHS3 = adjusttrig(CHS2, 'median'); -% plot(CHS3); +% plot(CHS3); CHS4 = stack(CHS3); % plot(CHS4); @@ -352,7 +365,34 @@ % plot(WHS4(1)); % master waveform plot_panels(WHS4, 'alignWaveform', 1) -%% +end + + +function glenngadzeeks() + +%% STUFF ADDED BY GLENN +% Maths to use for computing arrival time: +% where: +% wEvent is a real event +% lagSeconds is xcorr(wstack, wEvent) +% onsetDelaySeconds is how far into stack we pick the arrival onset +% arrivalDatenum = wEventDateNum + (lagSeconds + onsetDelaySeconds)/SECONDS_PER_DAY +% +% This test example shows that xcorr(a,b) where b is a delayed by 1 sample produces a lag of -1 +% +% b = randn(1,10) + [0 0 0 0 0 10 0 0 0 0]; +% a = randn(1,10) + [0 0 0 0 10 0 0 0 0 0]; +% [acor,lag] = xcorr(a,b); +% plot(lag,acor) +% +% then we create Arrival objects, add them into Catalog object +% +% write Catalog object to Antelope database +% +% Linux script Antelope relocate or dbgenloc or dblocsat to locate events using those Arrivals time +% Also drive db2kml to plot in Google Earth (or GMT) + +end From 3379db9de2555fac6f58c0d7e0441e3672d0b358 Mon Sep 17 00:00:00 2001 From: Mitchell Hastings Date: Fri, 20 Apr 2018 12:05:21 -0400 Subject: [PATCH 45/52] remove useless variable --- applications/xcorrlocate/Multipletscorrelation.m | 1 - 1 file changed, 1 deletion(-) diff --git a/applications/xcorrlocate/Multipletscorrelation.m b/applications/xcorrlocate/Multipletscorrelation.m index 41fbe07..b84ec7f 100644 --- a/applications/xcorrlocate/Multipletscorrelation.m +++ b/applications/xcorrlocate/Multipletscorrelation.m @@ -37,7 +37,6 @@ function mitchmadness(PEAKMATCH_OUTPUT_FILE, POSTTRIG) % Read in file that has the original list of the Multiplets and all % member events -PEAKMATCH_OUTPUT_FILE = 'M-2012-05-11-edit2.dat'; fid = fopen(PEAKMATCH_OUTPUT_FILE,'r'); %% TBTN-------------------------------------------------------------------- From 18c02bf09e149d949d515467a5935dc34789986c Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 20 Apr 2018 14:38:41 -0400 Subject: [PATCH 46/52] added a GT version --- .../xcorrlocate/MultipletscorrelationGT.m | 425 ++++++++++++++++++ 1 file changed, 425 insertions(+) create mode 100644 applications/xcorrlocate/MultipletscorrelationGT.m diff --git a/applications/xcorrlocate/MultipletscorrelationGT.m b/applications/xcorrlocate/MultipletscorrelationGT.m new file mode 100644 index 0000000..9506cc2 --- /dev/null +++ b/applications/xcorrlocate/MultipletscorrelationGT.m @@ -0,0 +1,425 @@ +function Multipletscorrelation() + + +clear all +close all +clc +STATIONS = {'TBTN';'TBMR';'TBHY';'TBHS'}; +POSTTRIG = 20 + +%% THIS IS THE ONLY SECTION IN THE SCRIPT THAT NEEDS CHANGED +%SIMPLY CHANGE THE WORKING DIRECTORY AND THE FILENAME TO RUN IT +%NOTE: MUST HAVE THE SAME DATA STRUCTURE AND NAMING SCHEME AS +%MEL'S DATA + +MULTIPLETS_TOP_DIR = '~/Desktop/Multiplets'; +PEAKMATCH_OUTPUT_FILE = 'M-2012-05-11-edit2.dat'; + +% Move to the working directory that contains the correct data structure +% for this script, which is... +cd(MULTIPLETS_TOP_DIR); + +[stacked_waveform, waveforms_that_went_into_stack] = stackwaveforms(PEAKMATCH_OUTPUT_FILE, POSTTRIG, STATIONS); +stack_onset_time = manually_pick_onset_time(stacked_waveform); +arrivals = find_onset_times(stacked_waveforms); % xcorr +write_arrivals_to_antelope(arrivals, dbname); + +end + +function stacked_waveforms = stackwaveforms(PEAKMATCH_OUTPUT_FILE, POSTTRIG, STATIONS) +% % Author: Mitchell Hastings +% % Welcome Weary Seismologists! +% % This is a .m script made to automate the process of creating a subset +% % of waveforms at each station at Telica volcano, Nicaragua. This script +% % can work with any kind of waveform data if you are making subsets of +% % families of waveforms. This script was written for the purpose of a class +% % project for Steve McNutt's Volcano Seismology course. The author is tired +% % and wishes to no longer continue modulating this script, but he may come +% % back to doing so....eventually... +%% NOW HACKED BY GLENN to +% use functions, structures, loops, meaningful variable names +% remove station names hardwired into variable names + +% Read in file that has the original list of the Multiplets and all +% member events (this is for station TBTN only, that is all PeakMatch was run for) +fid = fopen(PEAKMATCH_OUTPUT_FILE,'r'); + +%% TBTN-------------------------------------------------------------------- +% loop to read in each line and read the corresponding SAC file into the +% next element of the waveform vector, w +count = 1; +while 1 + tline = fgetl(fid); + if ~ischar(tline), break, end; + fname = tline; + d = fname(1:4); + full = fullfile(d,fname); + w(count) = waveform(full, 'sac'); + count = count + 1; +end + +% cross-correlate each element of w against every other +c = correlation(w, get(w, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create correlation object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); + +% create waveform vector for these +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +% Use the subset_list to find the waveforms that correlate above the +% threshold on other stations + +%% TBMR-------------------------------------------------------------------- + +% this loop makes a cell array for the subset of events on station TBMR +subMR = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBTN', 'TBMR'); + subMR{count} = sub; + count = count + 1; +end + +% this loop creates a waveform object for the subset on TBMR +count = 1; +for count = 1:numel(subMR) + w_subMR(count) = waveform(subMR{count}, 'sac'); + count = count + 1; +end + +% Now this step is to do the correlation with the subset on TBMR +clear c, c2, corr, lag, keep, c3, w3, h, subset_list, h1, h11 + +% create correlation object of the waveforms to do the correlation +c = correlation(w_subMR, get(w_subMR, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +%% TBHY-------------------------------------------------------------------- + +% this loop makes a cell array for the subset of events on station TBMR +subHY = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBMR', 'TBHY'); + subHY{count} = sub; + count = count + 1; +end + +% this loop creates a waveform object for the subset on TBMR +count = 1; +for count = 1:numel(subHY) + w_subHY(count) = waveform(subHY{count}, 'sac'); + count = count + 1; +end + +% Now this step is to do the correlation with the subset on TBHY +clear c, c2, corr, lag, keep, c3, w3, h, subset_list, h1, h11 + +% create correlation object of the waveforms to do the correlation +c = correlation(w_subHY, get(w_subHY, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +%% TBHS-------------------------------------------------------------------- + +% this loop makes a cell array for the subset of events on station TBMR +subHS = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBHS'); + subHS{count} = sub; + count = count + 1; +end + +% this loop creates a waveform object for the subset on TBMR +count = 1; +for count = 1:numel(subHS) + w_subHS(count) = waveform(subHY{count}, 'sac'); + count = count + 1; +end + +% Now this step is to do the correlation with the subset on TBHY +clear c, c2, corr, lag, keep, c3, w3, h, subset_list, h1, h11 + +% create correlation object of the waveforms to do the correlation +c = correlation(w_subHS, get(w_subHS, 'start')); +c2 = xcorr(c, [1 POSTTRIG]); +corr = get(c2, 'CORR'); +lag = get(c2, 'LAG'); + +% create object with correlation coefficient above 0.7 +corrthresh = 0.7; +keep = find(corr(:,1) > corrthresh); +c3 = subset(c2, keep); +w3 = waveform(c3); + +% Extract the waveform files that correlate above the threshold +h = get(w3, 'history'); +subset_list = cell(numel(h), 1); +count = 1; +for count = 1:numel(h) + h1 = h{count,1}{2,1}; + h11 = strrep(h1,'Loaded SAC file: ', ''); + subset_list{count} = h11; + count = count + 1; +end + +%% CREATE A LIST FOR THE NEW SUBSET FOR EACH STATION + +% this loop makes a cell array for the new subset on TBTN +subset_TBTN = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBTN'); + subset_TBTN{count} = sub; + count = count + 1; +end + +% this loop makes a cell array for the new subset on TBMR +subset_TBMR = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBMR'); + subset_TBMR{count} = sub; + count = count + 1; +end + +% this loop makes a cell array for the new subset on TBHS +subset_TBHS = cell(numel(subset_list),1); +count = 1; +for count = 1:numel(subset_list) + sub = strrep(subset_list{count}, 'TBHY', 'TBHS'); + subset_TBHS{count} = sub; + count = count + 1; +end + +% this loop makes a cell array for the new subset on TBHY +subset_TBHY = subset_list; + +%% WRITE THE SUBSETS TO .DAT FILES + +% Ensure that the previous file being read is closed +% fclose(fid); + +% loops to create the .dat files +fid = fopen('Subset-TBTN.dat', 'w'); +for row = 1:numel(subset_TBTN) + fprintf(fid, '%s\n', subset_TBTN{row}); +end +fclose(fid); + +fid = fopen('Subset-TBMR.dat', 'w'); +for row = 1:numel(subset_TBMR) + fprintf(fid, '%s\n', subset_TBMR{row}); +end +fclose(fid); + +fid = fopen('Subset-TBHY.dat', 'w'); +for row = 1:numel(subset_TBHY) + fprintf(fid, '%s\n', subset_TBHY{row}); +end +fclose(fid); + +fid = fopen('Subset-TBHS.dat', 'w'); +for row = 1:numel(subset_TBHS) + fprintf(fid, '%s\n', subset_TBHS{row}); +end +fclose(fid); + +%% CORRELATIONS AND STACKS WITH THE SUBSET THAT APPEARS ON ALL STATIONS + +% load final waveform subset in for generating the stacks + +% TBTN +for count = 1:numel(subset_TBTN) + fname = subset_TBTN{count}; + WTN(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CTN = correlation(WTN, get(WTN, 'start')); +CTN2 = xcorr(CTN, [1 POSTTRIG]); +corr = get(CTN2, 'CORR'); % just to check correlation coefficients +CTN3 = adjusttrig(CTN2, 'median'); + +% plot(CTN3); + +CTN4 = stack(CTN3); +% plot(CTN4); +WTN4 = waveform(CTN4); +plot(WTN4(end)); % stacked waveform +% plot(WTN4(1)); % master waveform +plot_panels(WTN4, 'alignWaveform', 1) + +% TBMR +clear fname; +for count = 1:numel(subset_TBMR) + fname = subset_TBMR{count}; + WMR(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CMR = correlation(WMR, get(WMR, 'start')); +CMR2 = xcorr(CMR, [1 POSTTRIG]); +corr = get(CMR2, 'CORR'); % just to check correlation coefficients +CMR3 = adjusttrig(CMR2, 'median'); + +% plot(CMR3); + +CMR4 = stack(CMR3); +% plot(CMR4); +WMR4 = waveform(CMR4); +plot(WMR4(end)); % stacked waveform +%plot(WMR4(1)); % master waveform +plot_panels(WMR4, 'alignWaveform', 1) +% TBHY +clear fname +for count = 1:numel(subset_TBHY) + fname = subset_TBHY{count}; + WHY(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CHY = correlation(WHY, get(WHY, 'start')); +CHY2 = xcorr(CHY, [1 POSTTRIG]); +corr = get(CHY2, 'CORR'); % just to check correlation coefficients +CHY3 = adjusttrig(CHY2, 'median'); + +% plot(CHY3); + +CHY4 = stack(CHY3); +% plot(CHY4); +WHY4 = waveform(CHY4); +plot(WHY4(end)); % stacked waveform +%plot(WHY4(1)); % master waveform +plot_panels(WHY4, 'alignWaveform', 1) + +% TBHS +clear fname +for count = 1:numel(subset_TBHS) + fname = subset_TBHS{count}; + WHS(count) = waveform(fname, 'sac'); + count = count + 1; +end + +CHS = correlation(WHS, get(WHS, 'start')); +CHS2 = xcorr(CHS, [1 POSTTRIG]); +corr = get(CHS2, 'CORR'); % just to check correlation coefficients +CHS3 = adjusttrig(CHS2, 'median'); + +% plot(CHS3); + +CHS4 = stack(CHS3); +% plot(CHS4); +WHS4 = waveform(CHS4); +plot(WHS4(end)); % stacked waveform +% plot(WHS4(1)); % master waveform +plot_panels(WHS4, 'alignWaveform', 1) + +end + +function stack_onset_time = manually_pick_onset_time(stacked_waveform); + plot(stacked_waveform) + [t,y]=ginput(1); + close + stack_onset_time = get(stacked_waveform,'start') + t/86400; +end + +function arrivalobj = find_onset_times(stacked_waveforms); % xcorr +% Maths to use for computing arrival time: +% where: +% wEvent is a real event +% lagSeconds is xcorr(wstack, wEvent) +% onsetDelaySeconds is how far into stack we pick the arrival onset +% arrivalDatenum = wEventDateNum + (lagSeconds + onsetDelaySeconds)/SECONDS_PER_DAY +% +% This test example shows that xcorr(a,b) where b is a delayed by 1 sample produces a lag of -1 +end + +function write_arrivals_to_antelope(arrivals, dbname); +% build a Catalog object +end + + + +function ignore_these_notes +%% STUFF ADDED BY GLENN +% Maths to use for computing arrival time: +% where: +% wEvent is a real event +% lagSeconds is xcorr(wstack, wEvent) +% onsetDelaySeconds is how far into stack we pick the arrival onset +% arrivalDatenum = wEventDateNum + (lagSeconds + onsetDelaySeconds)/SECONDS_PER_DAY +% +% This test example shows that xcorr(a,b) where b is a delayed by 1 sample produces a lag of -1 +% +% b = randn(1,10) + [0 0 0 0 0 10 0 0 0 0]; +% a = randn(1,10) + [0 0 0 0 10 0 0 0 0 0]; +% [acor,lag] = xcorr(a,b); +% plot(lag,acor) +% +% then we create Arrival objects, add them into Catalog object +% +% write Catalog object to Antelope database +% +% Linux script Antelope relocate or dbgenloc or dblocsat to locate events using those Arrivals time +% Also drive db2kml to plot in Google Earth (or GMT) + +end + + + From e418e1605cd0cab3e38ec13eafa23a791aca77b4 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Tue, 24 Apr 2018 18:39:00 -0400 Subject: [PATCH 47/52] Montserrat catalog stuff for Abby --- core/+Catalog/+read_catalog/aef.m | 16 ++++++++------ core/@Catalog/Catalog.m | 19 ++++++++++++++++ core/@Catalog/disp.m | 2 +- core/@Catalog/subclassify.m | 6 +++--- core/@Catalog/subset.m | 17 +++++++++++---- core/@EventRate/EventRate.m | 36 ++++++++++++++++--------------- 6 files changed, 64 insertions(+), 32 deletions(-) diff --git a/core/+Catalog/+read_catalog/aef.m b/core/+Catalog/+read_catalog/aef.m index 13a1420..fd265d8 100755 --- a/core/+Catalog/+read_catalog/aef.m +++ b/core/+Catalog/+read_catalog/aef.m @@ -54,7 +54,8 @@ fprintf('Directory %s not found. Perhaps you need to generate from S files?\n',dbpath); return; end - + snum=startTime; + enum=endTime; lnum=snum; % loop over all years and months selected @@ -62,9 +63,11 @@ [yyyy, mm] = datevec(lnum); % concatenate catalogs - Object0 = import_aef_file(dbpath,yyyy,mm,snum,enum,p.Results.RUNMODE); + Object0 = import_aef_file(dbpath,yyyy,mm,snum,enum);%,p.Results.RUNMODE); if exist('self', 'var') - self = self + Object0; + %self = self + Object0; + %self = combine(self, Object0); + self = add(self, Object0); else self = Object0; end @@ -76,13 +79,13 @@ self.mag(self.mag<-3)=NaN; - if ~isempty(self.dnum) + if ~isempty(self.otime) % cut data according to threshold mag if ~isempty(minimumMagnitude) disp('Applying minimum magnitude filter') m = find(self.mag > minimumMagnitude); - fprintf('Accepting %d events out of %d\n',length(m),length(self.dnum)); + fprintf('Accepting %d events out of %d\n',length(m),length(self.otime)); self.event_list = self.event_list(m); end end @@ -134,8 +137,7 @@ [yr,mn,dd,hh,mi,ss,etype0,mag0] = textread(datfile,'%d %d %d %d %d %d %s %f'); dnum = datenum(yr,mn,dd,hh,mi,ss)'; mag = mag0'; - etype = char(etype0)'; - self = Catalog(dnum, [], [], [], mag, {}, etype); + self = Catalog(dnum, [], [], [], mag, {}, etype0); else disp([datfile,' not found']); end diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m index c3023b8..c471a06 100755 --- a/core/@Catalog/Catalog.m +++ b/core/@Catalog/Catalog.m @@ -199,6 +199,24 @@ enum = nanmax([obj.otime; obj.offtime]); t = [snum enum]; end + + function cobj3 = add(cobj1, cobj2) +% combine method already exists, but uses tables - Catalog isn't a table +% anymore + cobj3 = cobj1; + cobj3.otime = [cobj1.otime; cobj2.otime]; + cobj3.lon = [cobj1.lon; cobj2.lon]; + cobj3.lat = [cobj1.lat; cobj2.lat]; + cobj3.depth = [cobj1.depth; cobj2.depth]; + cobj3.mag = [cobj1.mag; cobj2.mag]; + cobj3.magtype = [cobj1.magtype; cobj2.magtype]; + cobj3.etype = [cobj1.etype; cobj2.etype]; + cobj3.ontime = [cobj1.ontime; cobj2.ontime]; + cobj3.offtime = [cobj1.offtime; cobj2.offtime]; + cobj3.arrivals = [cobj1.arrivals; cobj2.arrivals]; + cobj3.waveforms = [cobj1.waveforms; cobj2.waveforms]; + end + % Prototypes bvalue(catalogObject, mcType) @@ -220,6 +238,7 @@ webmap(catalogObject) write(catalogObject, outformat, outpath, schema) arrivals_per_event(catalogObject) + end %% --------------------------------------------------- methods (Access=protected, Hidden=true) diff --git a/core/@Catalog/disp.m b/core/@Catalog/disp.m index 7ec9ef3..d61c7fd 100755 --- a/core/@Catalog/disp.m +++ b/core/@Catalog/disp.m @@ -103,7 +103,7 @@ function disp_event(obj, eventnum) end if sum(~isnan(obj.mag)) fprintf('\t%.1f', obj.mag(eventnum) ); - end + end if sum(~strcmp(obj.magtype,'u')) fprintf('\t%s', obj.magtype{eventnum} ); end diff --git a/core/@Catalog/subclassify.m b/core/@Catalog/subclassify.m index d7deb9a..7f55591 100755 --- a/core/@Catalog/subclassify.m +++ b/core/@Catalog/subclassify.m @@ -9,15 +9,15 @@ if strcmp(subclasses, '*')==0 for i = 1:length(subclasses); c(i) = catalogObject; - subclass = subclasses(i); - index = strfind(char(catalogObject.etype)', subclass); % previously findstr + subclass{i} = subclasses(i); + index = strfind(char(catalogObject.etype)', subclass{i}); % previously findstr if length(index)>0 c(i) = catalogObject.subset(index); else c(i) = Catalog(); end c(i).request = catalogObject.request; - c(i).request.subclass = subclass; + c(i).request.subclass = subclass{i}; end end end diff --git a/core/@Catalog/subset.m b/core/@Catalog/subset.m index 088c2b8..11151a9 100755 --- a/core/@Catalog/subset.m +++ b/core/@Catalog/subset.m @@ -17,14 +17,23 @@ cobj2.mag = cobj.mag(indices); end if numel(cobj.magtype)==N - try % there is a limit on subsetting cell array - cobj2.magtype = cobj.magtype{indices}; +% try % there is a limit on subsetting cell array +% cobj2.magtype = cobj.magtype{indices}; +% end + for c=1:numel(indices) + dummy{c} = cobj.magtype{indices(c)}; end + cobj2.magtype = dummy; + clear dummy end if numel(cobj.etype)==N - try - cobj2.etype = cobj.etype{indices}; + for c=1:numel(indices) + dummy{c} = cobj.etype{indices(c)}; end + cobj2.etype = dummy; +% try +% cobj2.etype = cobj.etype{indices}; +% end end if numel(cobj.arrivals)==N cobj2.arrivals = cobj.arrivals(indices); diff --git a/core/@EventRate/EventRate.m b/core/@EventRate/EventRate.m index f26d026..a6ce0b9 100755 --- a/core/@EventRate/EventRate.m +++ b/core/@EventRate/EventRate.m @@ -37,23 +37,6 @@ % (3) Create an eventrate object using a binsize of 1 hour but a stepsize of 5 minutes: % erobj = catalogObject.eventrate('binsize', 1/24, 'stepsize', 5/1440); % -% (4) Create a vector of eventrate objects subclassified using event types 'r', 'e', 'l', 'h', 't': -% erobj = eventrate(catalogObject, 1, 'etypes', 'relht'); -% To plot counts on separate figures: -% erobj.plot() -% To plot counts and energy panels, each event type as a separate figure: -% erobj.plot('metric', {'counts';'energy'}); -% To plot counts and energy panels on separate figures, each event type as panels: -% erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'panels'); -% To plot counts and energy panels on separate figures, each event type stacked: -% erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'stacked'); -% -% (5) A full example: -% catalogObject = catalog(fullfile(MVO_DATA, 'mbwh_catalog'), 'seisan', 'snum', datenum(1996,10,1), 'enum', datenum(2004,3,1), 'region', 'Montserrat') -% erobj = eventrate(catalogObject, 365/12, 'stepsize', 1, 'etypes', 'thlr'); -% erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'stacked'); -% -% %% PROPERTIES % % For a list of all properties type properties(EventRate) @@ -101,6 +84,25 @@ % $Date: 2014-05-06 14:52:40 -0800 (Tue, 06 May 2014) $ % $Revision: 404 $ + +% I don't think these parts work anymore +% (4) Create a vector of eventrate objects subclassified using event types 'r', 'e', 'l', 'h', 't': +% erobj = eventrate(catalogObject, 1, 'etypes', 'relht'); +% To plot counts on separate figures: +% erobj.plot() +% To plot counts and energy panels, each event type as a separate figure: +% erobj.plot('metric', {'counts';'energy'}); +% To plot counts and energy panels on separate figures, each event type as panels: +% erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'panels'); +% To plot counts and energy panels on separate figures, each event type stacked: +% erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'stacked'); +% +% (5) A full example: +% catalogObject = catalog(fullfile(MVO_DATA, 'mbwh_catalog'), 'seisan', 'snum', datenum(1996,10,1), 'enum', datenum(2004,3,1), 'region', 'Montserrat') +% erobj = eventrate(catalogObject, 365/12, 'stepsize', 1, 'etypes', 'thlr'); +% erobj.plot('metric', {'counts';'energy'}, 'plotmode', 'stacked'); +% + %% PROPERTIES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% properties(GetAccess = 'public', SetAccess = 'public') From e851cb3294781941e9ff22d7bab53acffcbd34bd Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Wed, 25 Apr 2018 18:30:16 -0400 Subject: [PATCH 48/52] modified drumplot to work with catalog, arrival and detection objects. needs improving. tutorial needs updating --- cookbooks/drumplot_cookbook.m | 8 ++++---- core/+Detection/sta_lta.m | 10 +++++----- core/@Arrival/Arrival.m | 8 +++++++- core/@Detection/Detection.m | 6 ++++++ core/@drumplot/drumplot.m | 12 ++++++++++++ core/@drumplot/plot.m | 25 +++++++++++++++++++++++++ 6 files changed, 59 insertions(+), 10 deletions(-) diff --git a/cookbooks/drumplot_cookbook.m b/cookbooks/drumplot_cookbook.m index a43692c..b06b39c 100755 --- a/cookbooks/drumplot_cookbook.m +++ b/cookbooks/drumplot_cookbook.m @@ -21,7 +21,7 @@ enum=snum+1; % create the datasource object - in this case it is a SAC file -ds = datasource('sac', 'SACDATA/REF.EHZ.2009-03-22T00:00:00.000000Z.sac'); +ds = datasource('sac', 'SACDATA/REF.EHZ.2009-03-22.sac'); % create the waveform object with this datasource, ChannelTag, starttime % and endtime @@ -77,16 +77,16 @@ post_trigger_seconds = 0; % Do not pad after trigger event_detection_params = [sta_seconds lta_seconds thresh_on thresh_off ... minimum_event_duration_seconds]; - +%% % run the STA/LTA detector. lta_mode = 'frozen' means the LTA stops % updating when trigger is "ON". -[cobj,sta,lta,sta_to_lta] = Detection.sta_lta(w2, 'edp', event_detection_params, ... +[detectionObject,sta,lta,sta_to_lta] = Detection.sta_lta(w2, 'edp', event_detection_params, ... 'lta_mode', 'frozen'); % not sure what this is for set(gca, 'XLim', [44*60 48*60]) %% Plot detected events on top of the continuous drumplot -h3 = drumplot(w2, 'mpl', 5, 'catalog', cobj); +h3 = drumplot(w2, 'mpl', 5, 'detections', detectionObject); plot(h3) diff --git a/core/+Detection/sta_lta.m b/core/+Detection/sta_lta.m index 5789ce9..7e5e6dd 100755 --- a/core/+Detection/sta_lta.m +++ b/core/+Detection/sta_lta.m @@ -1,5 +1,5 @@ function [detObj, sta, lta, sta_to_lta] = sta_lta(wave,varargin) -%function [cobj,sta,lta,sta_to_lta] = sta_lta(wave,varargin) +%function [detectionObject, sta, lta, sta_to_lta] = sta_lta(wave, varargin) %STA_LTA: Short-Time-Average/Long-Time-Average event detector. % @@ -36,13 +36,13 @@ % --> 'continuous' - LTA window continues w/ STA window after trigger % is turned on (Same behavior as before trigger) -%OUTPUTS: events - Catalog object +%OUTPUTS: Detection object -% Author: Glenn Thompson 2016-04-19 inspired by an earlier program by Dane +% Author: Glenn Thompson 2016-04-19 based heavily on an earlier program by Dane % Ketner (Alaska Volcano Observatory). The main differences are: -% * algorithm completely rewritten to improve execution speed, clarity +% * algorithm rewritten to improve execution speed, clarity % * visualization of the sta_lta ratio added -% * triggered events are returned as a GISMO Catalog object, for +% * triggered events are returned as a GISMO Detection object, for % consistency across GISMO % % $Date$ diff --git a/core/@Arrival/Arrival.m b/core/@Arrival/Arrival.m index 407e60f..7f001b9 100755 --- a/core/@Arrival/Arrival.m +++ b/core/@Arrival/Arrival.m @@ -34,8 +34,14 @@ end methods function obj = Arrival(sta, chan, time, iphase, varargin) + + % Blank constructor + if ~exist('sta','var') + return + end + % Parse required, optional and param-value pair arguments, - % set default values, and add validation conditions + % set default values, and add validation conditions p = inputParser; p.addRequired('sta', @iscell); p.addRequired('chan', @iscell); diff --git a/core/@Detection/Detection.m b/core/@Detection/Detection.m index 391d7a5..1e8a461 100644 --- a/core/@Detection/Detection.m +++ b/core/@Detection/Detection.m @@ -15,6 +15,12 @@ end methods function obj = Detection(sta, chan, time, state, filterString, signal2noise) + + % Blank constructor + if ~exist('sta','var') + return + end + % Parse required, optional and param-value pair arguments, % set default values, and add validation conditions p = inputParser; diff --git a/core/@drumplot/drumplot.m b/core/@drumplot/drumplot.m index 0329c8c..13f5702 100755 --- a/core/@drumplot/drumplot.m +++ b/core/@drumplot/drumplot.m @@ -6,6 +6,8 @@ properties wave = waveform(); catalog = Catalog(); + detections = Detection(); + arrivals = Arrival(); mpl = 10; % 10 Minutes per line trace_color = [0 0 0]; % black event_color = [1 0 0]; % red @@ -79,6 +81,8 @@ p.addOptional('wave', obj.wave) p.addParameter('mpl', obj.mpl, @(i) floor(i)==i) p.addParameter('catalog', obj.catalog) + p.addParameter('detections', obj.detections) + p.addParameter('arrivals', obj.arrivals) p.addParameter('trace_color', obj.trace_color); p.addParameter('event_color', obj.event_color); p.addParameter('ytick', obj.ytick, @isnumeric); @@ -100,6 +104,14 @@ if ~isa(obj.catalog, 'Catalog') | numel(obj.catalog)~=1 error('Input catalog must be a single Catalog object') end + + if ~isa(obj.detections, 'Detection') | numel(obj.detections)~=1 + error('Input detections must be a single Detection object') + end + + if ~isa(obj.arrivals, 'Arrival') | numel(obj.arrivals)~=1 + error('Input arrivals must be a single Arrival object') + end end % Prototypes diff --git a/core/@drumplot/plot.m b/core/@drumplot/plot.m index 8868237..d95a5d5 100755 --- a/core/@drumplot/plot.m +++ b/core/@drumplot/plot.m @@ -70,12 +70,37 @@ % if there are catalog events, add waveform objects, return one waveform per line for event data B.line_waveform_events = []; + w = []; if drumplotobj.catalog.numberOfEvents > 0 if isempty(drumplotobj.catalog.waveforms) drumplotobj.catalog = drumplotobj.catalog.addwaveforms(drumplotobj.wave); end w = [drumplotobj.catalog.waveforms{1,:}]; + end + + if numel(drumplotobj.arrivals.time) > 0 + pretrigsecs = 1; posttrigsecs = 1; + if isempty(drumplotobj.arrivals.waveforms) + drumplotobj.arrivals = drumplotobj.arrivals.addwaveforms(drumplotobj.wave, pretrigsecs, posttrigsecs); + end + w = [drumplotobj.arrivals.waveforms{1,:}]; + end + + if drumplotobj.detections.numel() > 0 + temp_cobj = associate(drumplotobj.detections, 0.01); + + + if isempty(temp_cobj.waveforms) + pretrigsecs = 1; posttrigsecs = 1; + temp_cobj = temp_cobj.addwaveforms(drumplotobj.wave, pretrigsecs, posttrigsecs); + end + w = [temp_cobj.waveforms{1,:}]; + end +w(1) +w(2) + + if ~isempty(w) % go through w and check the channeltag is same as drumplotobj.wave mainctag = get(drumplotobj.wave,'ChannelTag'); w2=[]; From 0e7ec46fedabf7a2c05b23773e5c674e0b10070b Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 27 Apr 2018 11:03:31 -0400 Subject: [PATCH 49/52] adding date range subsetting on Catalog objects --- core/@Catalog/Catalog.m | 2 +- core/@Catalog/subset.m | 46 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m index c471a06..e337749 100755 --- a/core/@Catalog/Catalog.m +++ b/core/@Catalog/Catalog.m @@ -222,7 +222,7 @@ bvalue(catalogObject, mcType) catalogObject = addwaveforms(catalogObject, varargin); catalogObject = combine(catalogObject1, catalogObject2) - catalogObject2 = subset(catalogObject, indices) + catalogObject2 = subset(catalogObject, varargin) catalogObjects=subclassify(catalogObject, subclasses) disp(catalogObject) eev(obj, eventnum) diff --git a/core/@Catalog/subset.m b/core/@Catalog/subset.m index 11151a9..8ffc4bc 100755 --- a/core/@Catalog/subset.m +++ b/core/@Catalog/subset.m @@ -1,8 +1,50 @@ -function cobj2 = subset(cobj, indices) +function cobj2 = subset(cobj, varargin) %CATALOG.SUBSET Create a new catalogObject by subsetting based %on indices. + % Usage: + % cobj.subset('indices', []) + % or: + % cobj.subset('start_time', [], 'end_time', []) + % can also just give one of start_time or end_time + + %if nargin>0 + % Parse required, optional and param-value pair arguments, + % set default values, and add validation conditions + p = inputParser; + p.addParameter('start_time', [], @isnumeric) % positional + p.addParameter('end_time', [], @isnumeric) + p.addParameter('indices', [], @isnumeric) + p.parse(varargin{:}); + fields = fieldnames(p.Results); + for i=1:length(fields) + field=fields{i}; + val = p.Results.(field); + eval(sprintf('%s = val;',field)); + end + %end + +% datestr(min(cobj.otime)) +% datestr(max(cobj.otime)) +% datestr(start_time) +% datestr(end_time) +indices + if isempty(indices) + i1 = 1:numel(cobj.otime); + if start_time + i1 = find(cobj.otime >= start_time); + disp(sprintf('Found %d events after %s',numel(i1), datestr(start_time))); + end + i2 = 1:numel(cobj.otime); + if end_time + i2 = find(cobj.otime <= end_time); + disp(sprintf('Found %d events before %s',numel(i1), datestr(end_time))); + end + indices = intersect(i1, i2); + end + cobj2 = cobj; - N = numel(cobj.otime) + N = numel(cobj.otime); + disp(sprintf('Subsetting from %d events to %d events',N, numel(indices))); cobj2.otime = cobj.otime(indices); if numel(cobj.lon)==N cobj2.lon = cobj.lon(indices); From ee552f0e0becdf1803f6ba11a2052d7851d36c46 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Fri, 27 Apr 2018 14:59:09 -0400 Subject: [PATCH 50/52] eliminate error about dummy variable when subset called with empty indices array --- core/@Catalog/subset.m | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/@Catalog/subset.m b/core/@Catalog/subset.m index 8ffc4bc..cc8ea8b 100755 --- a/core/@Catalog/subset.m +++ b/core/@Catalog/subset.m @@ -27,7 +27,7 @@ % datestr(max(cobj.otime)) % datestr(start_time) % datestr(end_time) -indices + if isempty(indices) i1 = 1:numel(cobj.otime); if start_time @@ -41,7 +41,8 @@ end indices = intersect(i1, i2); end - + + cobj2 = cobj; N = numel(cobj.otime); disp(sprintf('Subsetting from %d events to %d events',N, numel(indices))); @@ -59,6 +60,7 @@ cobj2.mag = cobj.mag(indices); end if numel(cobj.magtype)==N + dummy=[]; % try % there is a limit on subsetting cell array % cobj2.magtype = cobj.magtype{indices}; % end @@ -69,13 +71,12 @@ clear dummy end if numel(cobj.etype)==N + dummy=[]; for c=1:numel(indices) dummy{c} = cobj.etype{indices(c)}; end cobj2.etype = dummy; -% try -% cobj2.etype = cobj.etype{indices}; -% end + clear dummy; end if numel(cobj.arrivals)==N cobj2.arrivals = cobj.arrivals(indices); From e11203fccb0ccebf7755e7e3dd9b919132727675 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Wed, 2 May 2018 11:06:39 -0400 Subject: [PATCH 51/52] changes made to support Abby's project --- core/+Catalog/+bvalue_lib/calc_Mc.m | 3 +- core/+Catalog/+bvalue_lib/calc_McBest.m | 4 +- core/@Catalog/Catalog.m | 31 +++++++++++++- core/@Catalog/bvalue.m | 56 +++++++++++++++++++------ core/@Catalog/disp.m | 7 +++- core/@Catalog/subclassify.m | 2 +- core/@Catalog/subset.m | 20 +++++++-- core/@EventRate/plot.m | 16 +++---- 8 files changed, 108 insertions(+), 31 deletions(-) diff --git a/core/+Catalog/+bvalue_lib/calc_Mc.m b/core/+Catalog/+bvalue_lib/calc_Mc.m index 90dd6de..95b61b5 100755 --- a/core/+Catalog/+bvalue_lib/calc_Mc.m +++ b/core/+Catalog/+bvalue_lib/calc_Mc.m @@ -67,7 +67,8 @@ fMc = Catalog.bvalue_lib.calc_McMaxCurvature(mag); case 2 % Fixed Mc (Mc = Mmin) - fMc = min(mag(:,6)); + %fMc = min(mag(:,6)); + fMc = min(mag); case 3 % Automatic Mc90 [fDummy, fDummy, fMc] = Catalog.bvalue_lib.calc_McBest(mag, fBinning); diff --git a/core/+Catalog/+bvalue_lib/calc_McBest.m b/core/+Catalog/+bvalue_lib/calc_McBest.m index 6470aa8..a80d60e 100755 --- a/core/+Catalog/+bvalue_lib/calc_McBest.m +++ b/core/+Catalog/+bvalue_lib/calc_McBest.m @@ -59,9 +59,9 @@ % Is fMc90 available nSel = min(find(mData(:,2) < 10)); if isempty(nSel) - fMc90 = NaN; + fMc90 = NaN else - fMc90 = mData(nSel,1); + fMc90 = mData(nSel,1) end % Is fMc95 available diff --git a/core/@Catalog/Catalog.m b/core/@Catalog/Catalog.m index e337749..8310dc9 100755 --- a/core/@Catalog/Catalog.m +++ b/core/@Catalog/Catalog.m @@ -35,6 +35,9 @@ properties(Dependent) numberOfEvents; duration; + cum_mag; + max_mag; + peakrate; end @@ -193,6 +196,32 @@ function val = get.numberOfEvents(obj) val = max([ numel(obj.otime) numel(obj.ontime)]); end + + function val = get.cum_mag(obj) + val = magnitude.eng2mag( sum(magnitude.mag2eng(obj.mag)) ); + end + + function mm = get.max_mag(obj) + % return max_mag as the real component & percentage through the + % time series as the imaginary component (use real() & imag() + % to separate these) + t=obj.gettimerange(); + days = t(2) - t(1); + [mm, mmi] = max(obj.mag); + mmpercent = 100*(obj.otime(mmi) - t(1))/days; + mm = mm + mmpercent * j; + end + + function pr = get.peakrate(obj) + t=obj.gettimerange(); + days = t(2) - t(1); + binsize = days/100; + erobj = obj.eventrate('binsize',binsize); + [pr, pri] = max(erobj.counts); + pr = pr + 100*(erobj.time(pri) - erobj.snum)/(erobj.enum-erobj.snum) * j; + end + + function t=gettimerange(obj) snum = nanmin([obj.otime; obj.ontime]); @@ -219,7 +248,7 @@ % Prototypes - bvalue(catalogObject, mcType) + gr = bvalue(catalogObject, mcType) catalogObject = addwaveforms(catalogObject, varargin); catalogObject = combine(catalogObject1, catalogObject2) catalogObject2 = subset(catalogObject, varargin) diff --git a/core/@Catalog/bvalue.m b/core/@Catalog/bvalue.m index 5039f8b..2c1bece 100755 --- a/core/@Catalog/bvalue.m +++ b/core/@Catalog/bvalue.m @@ -1,10 +1,11 @@ -function bvalue(catalogObject, mcType) +function gr=bvalue(catalogObject, mcType, manual_on) %BVALUE evaluate b-value, a-value and magnitude of completeness % of an earthquake catalog stored in a Catalog object. % - % BVALUE(catalogObject, MCTYPE) produces a Gutenberg-Richter type plot + % gr = BVALUE(catalogObject, MCTYPE) produces a Gutenberg-Richter type plot % with the best fit line and display of b-,a-values and Mc - % for catalogObject. MCTYPE is a number from 1-5 + % for catalogObject. These values are also returned in a structure. + % MCTYPE is a number from 1-5 % to select the algorithm used for calculation of the % magnitude of completeness. Options are: % @@ -13,6 +14,14 @@ function bvalue(catalogObject, mcType) % 3: Mc90 (90% probability) % 4: Mc95 (95% probability) % 5: Best combination (Mc95 - Mc90 - maximum curvature) + % + % * Note: it seems only 1 only really works, and 5 is same as 1 *' + % + % gr = BVALUE(catalogObject, MCTYPE, manual_on) where the value of manual_on + % computes as true will give the user the ability to manually pick a + % linear segment on the graph too (which is then plotted with a + % green line). The manual Mc and bvalue are returned in the gr + % structure as gr.Mc_manual and gr.bvalue_manual % Liberally adapted from original code in ZMAP. % Author: Silvio De Angelis, 27/07/2012 00:00:00 @@ -35,16 +44,13 @@ function bvalue(catalogObject, mcType) % 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. if nargin < 2 - disp('--------------------------------------------------------') - disp('Usage is: catalogObject.bvalue(mcType)') - disp('--------------------------------------------------------') - disp('mcType can be:') - disp('1: Maximum curvature') - disp('2: Fixed Mc = minimum magnitude (Mmin)') - disp('3: Mc90 (90% probability)') - disp('4: Mc95 (95% probability)') - disp('5: Best combination (Mc95 - Mc90 - maximum curvature)') - return + disp('* Note: it seems only 1 only really works, and 5 is same as 1 *') + mcType = menu('mcType can be:','Maximum curvature','Fixed Mc = minimum magnitude (Mmin)', ... + 'Mc90 (90% probability)', 'Mc95 (95% probability)', ... + 'Best combination (Mc95 - Mc90 - maximum curvature)') + end + if ~exist('manual_on','var') + manual_on = false; end % form magnitude vector - removing any NaN values with find @@ -163,6 +169,7 @@ function bvalue(catalogObject, mcType) magco = fMc; index_low=find(xt3 < magco+.05 & xt3 > magco-.05); +try mag_hi = xt3(1); index_hi = 1; mz = xt3 <= mag_hi & xt3 >= magco-.0001; @@ -212,4 +219,27 @@ function bvalue(catalogObject, mcType) text(.53,.88, ['b-value = ',tt1,' +/- ',tt2,', a value = ',num2str(aw,3)],'FontSize',12); text(.53,.85,sol_type,'FontSize',12 ); text(.53,.82,['Magnitude of Completeness = ',tmc],'FontSize',12); + + %% Added by Glenn 2018-05-01 to return a structure + gr.bvalue = str2num(tt1); + gr.bvalue_error = str2num(tt2); + gr.avalue = aw; + gr.Mc = str2num(tmc); + + %% Manually fit a line (added by Glenn 2018-05-01) + if manual_on + [xmag, yN] = ginput(2); + slope = (log10(yN(1)) - log10(yN(2) )) / (xmag(2) - xmag(1) ) + plot(xmag, yN, 'g'); + gr.Mc_manual = xmag(1); + gr.bvalue_manual = slope; + text(xmag(1) + (xmag(2)-xmag(1))*0.5, yN(1) + (yN(2)-yN(1))*0.5, sprintf('manual b=%.2f',slope),'Color','g'); + end +catch + gr.bvalue = NaN; + gr.Mc = NaN; + gr.avalue = NaN; + gr.bvalue_error = NaN; +end + end \ No newline at end of file diff --git a/core/@Catalog/disp.m b/core/@Catalog/disp.m index d61c7fd..c443d63 100755 --- a/core/@Catalog/disp.m +++ b/core/@Catalog/disp.m @@ -10,15 +10,18 @@ function disp(obj, showall) % subclass = obj(c).table.etype{1}; % end try - disp(sprintf('%s object: Event type: %s',class(obj(c)),obj(c).request.subclass)); + disp(sprintf('\n%s object: Event type: %s',class(obj(c)),obj(c).request.subclass)); catch end fprintf('Number of events: %d\n',obj(c).numberOfEvents); + try + fprintf('Cumulative magnitude: %.2f\n',obj(c).cum_mag ); + end if obj(c).numberOfEvents > 0 [maxmag, maxmagindex] = nanmax(obj(c).mag); if ~isnan(maxmag) - fprintf('Biggest event: %f at %s\n',maxmag, datestr(obj(c).otime(maxmagindex))); + fprintf('Biggest event: %.2f at %s\n',maxmag, datestr(obj(c).otime(maxmagindex))); end if ~exist('showall','var') showall = false; diff --git a/core/@Catalog/subclassify.m b/core/@Catalog/subclassify.m index 7f55591..e01f135 100755 --- a/core/@Catalog/subclassify.m +++ b/core/@Catalog/subclassify.m @@ -12,7 +12,7 @@ subclass{i} = subclasses(i); index = strfind(char(catalogObject.etype)', subclass{i}); % previously findstr if length(index)>0 - c(i) = catalogObject.subset(index); + c(i) = catalogObject.subset('indices',index); else c(i) = Catalog(); end diff --git a/core/@Catalog/subset.m b/core/@Catalog/subset.m index cc8ea8b..6363dec 100755 --- a/core/@Catalog/subset.m +++ b/core/@Catalog/subset.m @@ -32,12 +32,12 @@ i1 = 1:numel(cobj.otime); if start_time i1 = find(cobj.otime >= start_time); - disp(sprintf('Found %d events after %s',numel(i1), datestr(start_time))); + debug.print_debug(1,sprintf('Found %d events after %s',numel(i1), datestr(start_time))); end i2 = 1:numel(cobj.otime); if end_time i2 = find(cobj.otime <= end_time); - disp(sprintf('Found %d events before %s',numel(i1), datestr(end_time))); + debug.print_debug(1,sprintf('Found %d events before %s',numel(i1), datestr(end_time))); end indices = intersect(i1, i2); end @@ -45,7 +45,7 @@ cobj2 = cobj; N = numel(cobj.otime); - disp(sprintf('Subsetting from %d events to %d events',N, numel(indices))); + debug.print_debug(1,sprintf('Subsetting from %d events to %d events',N, numel(indices))); cobj2.otime = cobj.otime(indices); if numel(cobj.lon)==N cobj2.lon = cobj.lon(indices); @@ -95,5 +95,19 @@ end if numel(cobj.offtime)==N cobj2.offtime = cobj.offtime(indices); + end + + %% Added by Glenn Thompson 2018-05-01 to add a request start & end time + if isempty(start_time) + cobj2.request.start_time = min(cobj2.otime); + else + cobj2.request.start_time = start_time; + end + if isempty(end_time) + cobj2.request.end_time = max(cobj2.otime); + else + cobj2.request.end_time = end_time; end + + end \ No newline at end of file diff --git a/core/@EventRate/plot.m b/core/@EventRate/plot.m index 696f4d4..9f02fc2 100755 --- a/core/@EventRate/plot.m +++ b/core/@EventRate/plot.m @@ -123,10 +123,10 @@ function plot(obj, varargin) ylabel(ax(1), labels{1}, 'Color', colors{1}, 'FontSize', fontsize) ylims = get(ax(1), 'YLim'); set(ax(1), 'YColor', colors{1}, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); - xticklabels = get(ax(1), 'XTickLabels'); - set(ax(1), 'XTickLabels', xticklabels, 'FontSize', fontsize); - yticklabels = get(ax(1), 'YTickLabels'); - set(ax(1), 'YTickLabels', yticklabels, 'FontSize', fontsize); + xticklabels = get(ax(1), 'XTickLabel'); + set(ax(1), 'XTickLabel', xticklabels, 'FontSize', fontsize); + yticklabels = get(ax(1), 'YTickLabel'); + set(ax(1), 'YTickLabel', yticklabels, 'FontSize', fontsize); %% graph 2 set(h2, 'LineWidth', 3, 'Color', colors{2}); @@ -134,10 +134,10 @@ function plot(obj, varargin) ylabel(ax(2),labels{2}, 'Color', colors{2}, 'FontSize', fontsize) ylims = get(ax(2), 'YLim'); set(ax(2), 'YColor', colors{2}, 'YLim', [0 max([ylims(2) 1])], 'XLim', [t(1) t(end)]); - xticklabels = get(ax(2), 'XTickLabels'); - set(ax(2), 'XTickLabels', xticklabels, 'FontSize', fontsize); - yticklabels = get(ax(2), 'YTickLabels'); - set(ax(2), 'YTickLabels', yticklabels, 'FontSize', fontsize); + xticklabels = get(ax(2), 'XTickLabel'); + set(ax(2), 'XTickLabel', xticklabels, 'FontSize', fontsize); + yticklabels = get(ax(2), 'YTickLabel'); + set(ax(2), 'YTickLabel', yticklabels, 'FontSize', fontsize); linkaxes(ax, 'x'); From 222a7539aea9da81fcffe5df4133723df8a28f84 Mon Sep 17 00:00:00 2001 From: Glenn Thompson Date: Sat, 25 Aug 2018 10:22:07 -0400 Subject: [PATCH 52/52] Drafting Site, Position and Calibration classes --- core/@Calibration/Calibration.m | 58 ++++++++++++++++++++++++++++++ core/@Position/Position.m | 56 +++++++++++++++++++++++++++++ core/@Site/Site.m | 63 +++++++++++++++++++++++++++++++++ core/@waveform/waveform.m | 4 +-- 4 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 core/@Calibration/Calibration.m create mode 100644 core/@Position/Position.m create mode 100644 core/@Site/Site.m diff --git a/core/@Calibration/Calibration.m b/core/@Calibration/Calibration.m new file mode 100644 index 0000000..b17727c --- /dev/null +++ b/core/@Calibration/Calibration.m @@ -0,0 +1,58 @@ +%SITE the blueprint for Calibration objects in GISMO +classdef Calibration + + properties + nslc; + calib; + ondate; + offdate; + end + + properties(Dependent) % need get methods + + end + + methods + + function sobj = Calibration(varargin) + %Calibration.Calibration constructor for Calibration object + % sobj = Calibration(ChannelTag, calibration [[, ondate [, offdate]) + + % Blank constructor + if nargin==0 + return + end + + % Parse required, optional and param-value pair arguments, + % set default values, and add validation conditions + p = inputParser; + p.addRequired('nslc', @(c) strcmp(class(c),'ChannelTag') ) % positional + p.addRequired('calib', @isnumeric ) % positional + p.addOptional('ondate', [], @(t1) t1>datenum(1900,1,1) & t1datenum(1900,1,1)) + p.parse(varargin{:}); + fields = fieldnames(p.Results); + for i=1:length(fields) + field=fields{i}; + val = p.Results.(field); + eval(sprintf('sobj.%s = val;',field)); + end + + end + +% % Get methods +% function val = get.duration(obj) +% val = 86400 * (obj.offtime - obj.ontime); +% end + + % Prototypes + + end +%% --------------------------------------------------- + methods (Access=protected, Hidden=true) + end + + methods(Static) + end + +end diff --git a/core/@Position/Position.m b/core/@Position/Position.m new file mode 100644 index 0000000..26d7ee7 --- /dev/null +++ b/core/@Position/Position.m @@ -0,0 +1,56 @@ +%POSIITON the blueprint for Position objects in GISMO +classdef Location + + properties + latitude; + longitude; + elevation; + end + + properties(Dependent) % need get methods + + end + + methods + + function lobj = Position(varargin) + %Position.Position constructor for Position object + % lobj = Position(latitude, longitude, elevation) + + % Blank constructor + if nargin==0 + return + end + + % Parse required, optional and param-value pair arguments, + % set default values, and add validation conditions + p = inputParser; + p.addOptional('latitude', [], @isnumeric) % positional + p.addOptional('longitude', [], @isnumeric) + p.addOptional('elevation', [], @isnumeric) % positional + p.parse(varargin{:}); + fields = fieldnames(p.Results); + for i=1:length(fields) + field=fields{i}; + val = p.Results.(field); + eval(sprintf('lobj.%s = val;',field)); + end + + end + +% % Get methods +% function val = get.duration(obj) +% val = 86400 * (obj.offtime - obj.ontime); +% end + + % Prototypes + + end +%% --------------------------------------------------- + methods (Access=protected, Hidden=true) + end + + methods(Static) + end + +end diff --git a/core/@Site/Site.m b/core/@Site/Site.m new file mode 100644 index 0000000..641cc0f --- /dev/null +++ b/core/@Site/Site.m @@ -0,0 +1,63 @@ +%SITE the blueprint for Site objects in GISMO +classdef Site + + properties + network; + station; + position; + ondate; + offdate; + end + + properties(Dependent) % need get methods + + end + + methods + + function sobj = Site(varargin) + %Site.Site constructor for Site object + % sobj = Site(ChannelTag, Location) + + % Blank constructor + if nargin==0 + return + end + + % Parse required, optional and param-value pair arguments, + % set default values, and add validation conditions + p = inputParser; +% p.addRequired('nscl', @(c) strcmp(class(c),'ChannelTag') ) % positional + p.addRequired('network', @ischar ) % positional + p.addRequired('station', @ischar ) % positional + p.addRequired('position', @(p) strcmp(class(p),'Position')); +% p.addOptional('ondate', [], @isnumeric) +% p.addOptional('offdate', [], @isnumeric) + p.addOptional('ondate', [], @(t1) t1>datenum(1900,1,1) & t1datenum(1900,1,1)) + p.parse(varargin{:}); + fields = fieldnames(p.Results); + for i=1:length(fields) + field=fields{i}; + val = p.Results.(field); + eval(sprintf('sobj.%s = val;',field)); + end + + end + +% % Get methods +% function val = get.duration(obj) +% val = 86400 * (obj.offtime - obj.ontime); +% end + + % Prototypes + + end +%% --------------------------------------------------- + methods (Access=protected, Hidden=true) + end + + methods(Static) + end + +end diff --git a/core/@waveform/waveform.m b/core/@waveform/waveform.m index f91e9dd..a53503f 100755 --- a/core/@waveform/waveform.m +++ b/core/@waveform/waveform.m @@ -41,7 +41,7 @@ % a waveform from consituent parts. % % CHANNELTAG - either 'net.sta.loc.cha' or a ChannelTag -% SAMPLERATE - Sampling frequency, in Hz (default nan) +% SAMPLERATE - Sampling frequency, in Hz (default NaN) % DATA - a vector of seismic amplitudes (default []) % STARTTIME - Start time, in most any format (default '1/1/1970') % UNITS - a string describing the data units @@ -227,7 +227,7 @@ %create a fresh waveform. All calls to the waveform object, aside %from the "copy" call (case nargin==1) will be initated HERE. blankW.cha_tag = ChannelTag(); - blankW.Fs = nan; + blankW.Fs = NaN; blankW.start = 719529; % datenum for 1970-01-01 blankW.data = double([]); blankW.units = 'Counts';

    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%0A1H~T~|_JLJ$%JV@*SX!#D^87oB#; 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