Recent Releases of eqcorrscan
eqcorrscan - EQcorrscan 0.5.1
Small release to cope with updates to numpy and obspy for Python 3.12 and 3.13
- Python
Published by calum-chamberlain about 1 year ago
eqcorrscan - EQcorrscan 0.5.0
This release represents a significant increase in efficiency in large-scale matched-filters in EQcorrscan. Lots of work has gone in to reducing memory usage in the non-correlation components of the matched-filter workflow, streamlining the code, making better use of shared memory multi-threaded parallelism and increasing CPU loads. In our testing we can now achieve and maintain >190% CPU efficiency (e.g. >95% hyperthreaded performance). We can also better load GPUs by making use of concurrent CPU and GPU processing of workflow steps. You should not need to change your code to make use of most of these speed-ups. Hopefully you will notice that you can run larger datasets faster than even!
Changelog
- core.match_filter.tribe
- Significant re-write of detect logic to take advantage of parallel steps (see #544)
- Significant re-structure of hidden functions.
- core.matchfilter.matchedfilter
- 5x speed up for MAD threshold calculation with parallel (threaded) MAD calculation (#531).
- core.match_filter.detect
- 1000x speedup for retrieving unique detections for all templates.
- 30x speedup in handling detections (50x speedup in selecting detections, 4x speedup in adding prepick time)
- core.match_filter.template
- new quickgrouptemplates function for 50x quicker template grouping.
- Templates with nan channels will be considered equal to other templates with shared nan channels.
- New grouping strategy to minimise nan-channels - templates are grouped by similar seed-ids. This should speed up both correlations and prepdatafor_correlation. See PR #457.
- utils.pre_processing
_prep_data_for_correlation: 3x speedup for filling NaN-traces in templates- New function `
quick_trace_selectfor a very efficient selection of trace by seed ID without wildcards (4x speedup). process,dayprocandshortprocreplaced bymulti_process. Deprecation warning added.multi_processimplements multithreaded GIL-releasing parallelism of slow sections (detrending, resampling and filtering) of the processing workflow. Multiprocessing is no longer supported or needed for processing. See PR #540 for benchmarks. New approach is slightly faster overall, and significantly more memory efficeint (uses c. 6x less memory than old multiprocessing approach on a 12 core machine)
- utils.correlate
- 25 % speedup for
_get_array_dictswith quicker access to properties.
- 25 % speedup for
- utils.catalogtodd
- preparestream
- Now more consistently slices templates to length = extractlen * samprate so that user receives less warnings about insufficient data.
- write_correlations
- New option
use_shared_memoryto speed up correlation of many events by ca. 20 % by moving trace data into shared memory. - Add ability to weight correlations by raw correlation rather than just correlation squared.
- utils.cluster.declusterdistancetime
- Bug-fix: fix segmentation fault when declustering more than 46340 detections with hypocentral_separation.
- Python
Published by calum-chamberlain over 2 years ago
eqcorrscan - EQcorrscan 0.5.0rc0
Release candidate for version 0.5.0
- Python
Published by calum-chamberlain over 2 years ago
eqcorrscan - EQcorrscan 0.4.4
EQcorrscan 0.4.4:
Changelog
- core.match_filter
- Bug-fix: peak-cores could be defined twice in groupdetect through kwargs. Fix: only update peak_cores if it isn't there already.
- core.match_filter.tribe
- Detect now allows passing of pre-processed data
- core.match_filter.template
- Remove duplicate detections from overlapping windows using
._uniq()
- Remove duplicate detections from overlapping windows using
- core.lagcalc.xcorr_interp
- CC-interpolation replaced with resampling (more robust), old method deprecated. Use new method with usenewresamp_method=True as **kwarg.
- core.lag_calc:
- Fixed bug where minimum CC defined via minccfrommeancc_factor was not set correctly for negative correlation sums.
- utils.correlate
- Fast Matched Filter now supported natively for version >= 1.4.0
- Only full correlation stacks are returned now (e.g. where fewer than than the full number of channels are in the stack at the end of the stack, zeros are returned).
- utils.magcalc.relativemagnitude
- fixed bug where S-picks / traces were used for relative-magnitude calculation against user's choice.
- implemented full magnitude bias-correction for CC and SNR
- utils.magcalc.relativeamplitude:
- returns dicts for SNR measurements
- utils.catalogtodd.write_correlations
- Fixed bug on execution of parallel execution.
- Added parallel-options for catalog-dt measurements and for stream-preparation before cross correlation-dt measurements.
- Default parallelization of dt-computation is now across events (loads CPUs
more efficiently), and there is a new option `
max_trace_workersto use the old parallelization strategy across traces. - Now includes
all_horiz-option that will correlate all matching horizontal channels no matter to which of these the S-pick is linking.
- utils.clustering
- Allow to handle indirect comparison of event-waveforms when (i.e., events without matching traces which can be compared indirectly via a third event)
- Allows to set clustering method, metric, and sort_order from scipy.cluster.hierarchy.linkage.
- tribe, template, templategen, archiveread, clustering: remove option to read from seishub (deprecated in obspy).
- Python
Published by calum-chamberlain almost 4 years ago
eqcorrscan - EQcorrscan 0.4.4 Release Candidate 0
Release candidate 0 for release 0.4.4.
- core.match_filter
- Bug-fix: peak-cores could be defined twice in groupdetect through kwargs. Fix: only update peak_cores if it isn't there already.
- core.match_filter.tribe
- Detect now allows passing of pre-processed data
- core.match_filter.template
- Remove duplicate detections from overlapping windows using
._uniq()
- Remove duplicate detections from overlapping windows using
- core.lagcalc.xcorr_interp
- CC-interpolation replaced with resampling (more robust), old method deprecated. Use new method with usenewresamp_method=True as **kwarg.
- core.lag_calc:
- Fixed bug where minimum CC defined via minccfrommeancc_factor was not set correctly for negative correlation sums.
- utils.correlate
- Fast Matched Filter now supported natively for version >= 1.4.0
- Only full correlation stacks are returned now (e.g. where fewer than than the full number of channels are in the stack at the end of the stack, zeros are returned).
- utils.magcalc.relativemagnitude
- fixed bug where S-picks / traces were used for relative-magnitude calculation against user's choice.
- implemented full magnitude bias-correction for CC and SNR
- utils.magcalc.relativeamplitude:
- returns dicts for SNR measurements
- utils.catalogtodd.write_correlations
- Fixed bug on execution of parallel execution.
- Added parallel-options for catalog-dt measurements and for stream-preparation before cross correlation-dt measurements.
- Default parallelization of dt-computation is now across events (loads CPUs
more efficiently), and there is a new option `
max_trace_workersto use the old parallelization strategy across traces. - Now includes
all_horiz-option that will correlate all matching horizontal channels no matter to which of these the S-pick is linking.
- utils.clustering
- Allow to handle indirect comparison of event-waveforms when (i.e., events without matching traces which can be compared indirectly via a third event)
- Allows to set clustering method, metric, and sort_order from scipy.cluster.hierarchy.linkage.
- tribe, template, templategen, archiveread, clustering: remove option to read from seishub (deprecated in obspy).
- Python
Published by calum-chamberlain almost 4 years ago
eqcorrscan - EQcorrscan Version 0.4.3
Changelog
- core.match_filter
- match_filter:
- Provide option of exporting the cross-correlation sums for additional later analysis.
- match_filter:
- core.match_filter.party.write
- BUG-FIX: When
format='tar'is selected, added a check for .tgz-file suffix before checking the filename against an existing file. Previously, when a filename without '.tgz'-suffix was supplied, then the file was overwritten against the function's intention. - Add option
overwrite=Trueto allow overwriting of existing files.
- BUG-FIX: When
- core.match_filter.party.read
- BUG-FIX: Ensure wildcard reading works as expected: #453
- core.match_filter.party.rethreshold:
- added option to rethreshold based on absolute values to keep relevant detections with large negative detect_val.
- core.lag_calc:
- Added option to set minimum CC threshold individually for detections based on: min(detectval / nchans * minccfrommeanccfactor, mincc).
- Added the ability of saving correlation data of the lag_calc.
- utils.magcalc.calcb_value:
- Added useful information to doc-string regarding method and meaning of residuals
- Changed the number of magnitudes used to an int (from a string!?)
- utils.magcalc.relativemagnitude:
- Refactor so that
min_ccis used regardless of whetherweight_by_correlationis set. See issue #455.
- Refactor so that
- utils.archive_read
- Add support for wildcard-comparisons in the list of requested stations and channels.
- New option
arctype='SDS'to read from a SeisComp Data Structure (SDS). This option is also available inutils.clustering.extract_detectionsand inutils.archive_read._check_available_data.
- utils.catalogtodd
- Bug-fixes in #424:
- only P and S phases are used now (previously spurious amplitude picks were included in correlations);
- Checks for length are done prior to correlations and more helpful error outputs are provided.
- Progress is not reported within dt.cc computation
write_stationnow supports writing elevations: #424.
- utils.clustering
- For
cluster,distance_matrixandcross_chan_correlation, implemented full support forshift_len != 0. The latter two functions now return, in addition to the distance-matrix, a shift-matrix (both functions) and a shift-dictionary (fordistance_matrix). New option for shifting streams as a whole or letting traces shift individually (allow_individual_trace_shifts=True).
- For
- utils.plotting
- Function added (twoD_seismplot) for plotting seismicity (#365).
- Python
Published by calum-chamberlain about 5 years ago
eqcorrscan - EQcorrscan 0.4.3 Release Candidate 0
Changelog
- core.match_filter
- match_filter:
- Provide option of exporting the cross-correlation sums for additional later analysis.
- match_filter:
- core.match_filter.party.write
- BUG-FIX: When
format='tar'is selected, added a check for .tgz-file suffix before checking the filename against an existing file. Previously, when a filename without '.tgz'-suffix was supplied, then the file was overwritten against the function's intention. - Add option
overwrite=Trueto allow overwriting of existing files.
- BUG-FIX: When
- core.match_filter.party.read
- BUG-FIX: Ensure wildcard reading works as expected: #453
- core.match_filter.party.rethreshold:
- added option to rethreshold based on absolute values to keep relevant detections with large negative detect_val.
- core.lag_calc:
- Added option to set minimum CC threshold individually for detections based on: min(detectval / nchans * minccfrommeanccfactor, mincc).
- Added the ability of saving correlation data of the lag_calc.
- utils.magcalc.calcb_value:
- Added useful information to doc-string regarding method and meaning of residuals
- Changed the number of magnitudes used to an int (from a string!?)
- utils.magcalc.relativemagnitude:
- Refactor so that
min_ccis used regardless of whetherweight_by_correlationis set. See issue #455.
- Refactor so that
- utils.archive_read
- Add support for wildcard-comparisons in the list of requested stations and channels.
- New option
arctype='SDS'to read from a SeisComp Data Structure (SDS). This option is also available inutils.clustering.extract_detectionsand inutils.archive_read._check_available_data.
- utils.catalogtodd
- Bug-fixes in #424:
- only P and S phases are used now (previously spurious amplitude picks were included in correlations);
- Checks for length are done prior to correlations and more helpful error outputs are provided.
- Progress is not reported within dt.cc computation
write_stationnow supports writing elevations: #424.
- utils.clustering
- For
cluster,distance_matrixandcross_chan_correlation, implemented full support forshift_len != 0. The latter two functions now return, in addition to the distance-matrix, a shift-matrix (both functions) and a shift-dictionary (fordistance_matrix). New option for shifting streams as a whole or letting traces shift individually (allow_individual_trace_shifts=True).
- For
- utils.plotting
- Function added (twoD_seismplot) for plotting seismicity (#365).
- Python
Published by calum-chamberlain about 5 years ago
eqcorrscan - EQcorrscan Version 0.4.2
A Python package for the detection and analysis of repeating and near-repeating seismicity.
Changelog
- Add seed-ids to the spiketest's message.
- utils.correlation
- Cross-correlation normalisation errors no-longer raise an error
- When "out-of-range" correlations occur a warning is given by the C-function with details of what channel, what template and where in the data vector the issue occurred for the user to check their data.
- Out-of-range correlations are set to 0.0
- After extensive testing these errors have always been related to data issues within regions where correlations should not be computed (spikes, step artifacts due to incorrectly padding data gaps).
- USERS SHOULD BE CAREFUL TO CHECK THEIR DATA IF THEY SEE THESE WARNINGS
- utils.magcalc.amppick_event
- Added option to output IASPEI standard amplitudes, with static amplification of 1 (rather than 2080 as per Wood Anderson specs).
- Added
filter_idandmethod_idto amplitudes to make these methods more traceable.
- core.match_filter
- Bug-fix - cope with data that are too short with
ignore_bad_data=True. This flag is generally not advised, but when used, may attempt to trim all data to zero length. The expected behaviour is to remove bad data and run with the remaining data. - Party:
- decluster now accepts a hypocentralseparation argument. This allows the inclusion of detections that occur close in time, but not in space. This is underwritten by a new findpeaks.declusterdist_time function based on a new C-function.
- Tribe:
- Add monkey-patching for clients that do not have a
get_waveforms_bulkmethod for use in.client_detect. See issue #394.
- Bug-fix - cope with data that are too short with
- utils.pre_processing
- Only templates that need to be reshaped are reshaped now - this can be a lot faster.
- Python
Published by calum-chamberlain almost 6 years ago
eqcorrscan - Version 0.4.2 Release Candidate 0
Pre-release for 0.4.2 for testing on conda-forge
- Python
Published by calum-chamberlain almost 6 years ago
eqcorrscan - EQcorrscan Version 0.4.1
A Python package for the detection and analysis of repeating and near-repeating seismicity.
Changelog
- core.match_filter
- BUG-FIX: Empty families are no longer run through lag-calc when using Party.lag_calc(). Previously this resulted in a "No matching data" error, see #341.
- core.template_gen
- BUG-FIX: Fix bug where events were incorrectly associated with templates
in
Tribe().construct()if the given catalog contained events outside of the time-range of the stream. See issue #381 and PR #382.
- BUG-FIX: Fix bug where events were incorrectly associated with templates
in
- utils.catalogtodd
- Added ability to turn off parallel processing (this is turned off by
default now) for
write_correlations- parallel processing for moderate to large datasets was copying far too much data and using lots of memory. This is a short-term fix - ideally we will move filtering and resampling to C functions with shared-memory parallelism and GIL releasing. See PR #374. - Moved parallelism for
_compute_dt_correlationsto the C functions to reduce memory overhead. Using a generator to construct sub-catalogs rather than making a list of lists in memory. See issue #361.
- Added ability to turn off parallel processing (this is turned off by
default now) for
- utils.mag_calc:
amp_pick_eventnow works on a copy of the data by defaultamp_pick_eventuses the appropriate digital filter gain to correct the applied filter. See issue #376.amp_pick_eventrewritten for simplicity.amp_pick_eventnow has simple synthetic tests for accuracy._sim_wauses the full response information to correct to velocity this includes FIR filters (previously not used), and ensures that the wood-anderson poles (with a single zero) are correctly applied to velocity waveforms.calc_max_curvis now computed using the non-cumulative distribution.
- Some problem solved in matchfilter_plot. Now it shows all new detections.
- Add plotdir to eqcorrscan.core.lagcalc.lagcalc function to save the images.
- Python
Published by calum-chamberlain about 6 years ago
eqcorrscan - Version 0.4.1 Release Candidate 0
Pre-release for 0.4.1
- Python
Published by calum-chamberlain about 6 years ago
eqcorrscan - EQcorrscan v. 0.4.0
A Python package for the detection and analysis of repeating and near-repeating seismicity.
Changelog
- Change resampling to use pyFFTW backend for FFT's. This is an attempt to alleviate issue related to large-prime length transforms. This requires an additional dependency, but EQcorrscan already depends on FFTW itself (#316).
- Refactor of catalogtodd functions (#322):
- Speed-ups, using new correlation functions and better resource management
- Removed enforcement of seisan, arguments are now standard obspy objects.
- Add plotdir to lag-calc, template construction and matched-filter detection methods and functions (#330, #325).
- Wholesale re-write of lag-calc function and methods. External interface is
similar, but some arguments have been depreciated as they were unnecessary (#321).
- This was done to make use of the new internal correlation functions which are faster and more memory efficient.
- Party.lagcalc and Family.lagcalc now work in-place on the events in the grouping.
- Added relative_mags method to Party and Family; this can be called from lag-calc to avoid reprocessing data.
- Added lagcalc.xcorrpick_family as a public facing API to implement correlation re-picking of a group of events.
- Renamed utils.clustering.crosschancoherence to utils.clustering.crosschancorrelation to better reflect what it actually does.
- Add --no-mkl flag for setup.py to force the FFTW correlation routines not to compile against intels mkl. On NeSI systems mkl is currently causing issues.
- BUG-FIX:
eqcorrscan.utils.mag_calc.dist_calccalculated the long-way round the Earth when changing hemispheres. We now use the Haversine formula, which should give better results at short distances, and does not use a flat-Earth approximation, so is better suited to larger distances as well. - Add C-openmp parallel distance-clustering (speed-ups of ~100 times).
- Allow option to not stack correlations in correlation functions.
- Use compiled correlation functions for correlation clustering (speed-up).
- Add time-clustering for catalogs and change how space-time cluster works so that it uses the time-clustering, rather than just throwing out events outside the time-range.
- Changed all prints to calls to logging, as a result, debug is no longer an argument for function calls.
find-peaksreplaced by compiled peak finding routine - more efficient both in memory and time #249 - approx 50x faster- Note that the results of the C-func and the Python functions are slightly different. The C function (now the default) is more stable when peaks are small and close together (e.g. in noisy data).
- multi-find peaks makes use of openMP parallelism for more efficient memory usage #249
- enforce normalization of continuous data before correlation to avoid float32 overflow errors that result in correlation errors (see pr #292).
- Add SEC-C style chunked cross-correlations. This is both faster and more
memory efficient. This is now used by default with an fft length of
2 ** 13. This was found to be consistently the fastest length in testing.
This can be changed by the user by passing the
fft_lenkeyword argument. See PR #285. - Outer-loop parallelism has been disabled for all systems now. This was not useful in most situations and is hard to maintain.
- Improved support for compilation on RedHat systems
- Refactored match-filter into smaller files. Namespace remains the same. This was done to ease maintenance - the match_filter.py file had become massive and was slow to load and process in IDEs.
- Refactored
_prep_data_for_correlationto reduce looping for speed, now approximately six times faster than previously (minor speed-up)- Now explicitly doesn't allow templates with different length traces - previously this was ignored and templates with different length channels to other templates had their channels padded with zeros or trimmed.
- Add
skip_short_channelsoption to template generation. This allows users to provide data of unknown length and short channels will not be used, rather than generating an error. This is useful for downloading data from datacentres via thefrom_clientmethod. - Remove pytest_namespace in conftest.py to support pytest 4.x
- Add
ignore_bad_datakwarg for all processing functions, if set to True (defaults to False for continuity) then any errors related to bad data at process-time will be supressed and empty traces returned. This is useful for downloading data from datacentres via thefrom_clientmethod when data quality is not known. - Added relative amplitude measurements as
utils.mag_calc.relative_amplitude(#306). - Added relative magnitude calculation using relative amplitudes weighted by
correlations to
utils.mag_calc.relative_magnitude. - Added
relative_magnitudesargument toeqcorrscan.core.match_filter.party.Party.lag_calcto provide an in-flow way to compute relative magnitudes for detected events. - Events constructed from detections now include estimated origins alongside the picks. These origins are time-shifted versions of the template origin and should be used with caution. They are corrected for prepick (#308).
- Picks in detection.event are now corrected for prepick if the template is given. This is now standard in all Tribe, Party and Family methods. Picks will not be corrected for prepick in match_filter (#308).
- Fix #298 where the header was repeated in detection csv files. Also added
a
write_detectionsfunction toeqcorrscan.core.match_filter.detectionto streamline writing detections. - Remove support for Python 2.7.
- Add warning about unused data when using
Tribe.detectmethods with data that do not fit into chunks. Fixes #291. - Fix #179 when decimating for cccsumhist in `matchfilterplot`
- Removed depreciated
template_genfunctions andbright_lightsandseismo_logs. See #315
- Python
Published by calum-chamberlain over 6 years ago
eqcorrscan - Version 0.4.0 Release Candidate 0
- Python
Published by calum-chamberlain over 6 years ago
eqcorrscan - EQcorrscan v. 0.3.3
A Python package for the detection and analysis of repeating and near-repeating seismicity.
Changelog
- Make test-script more stable, installed alongside package.
- Fix bug where
set_xcorras context manager did not correctly reset stream_xcorr methods. - Correct test-script (
test_eqcorrscan.py) to find paths properly. - BUG-FIX in
Party.declusterwhen detections made at exactly the same time the first, rather than the highest of these was taken. - Catch one-sample difference in day properly in pre-processing.dayproc
- Shortproc now clips and pads to the correct length asserted by starttime and endtime.
- Bug-fix: Match-filter collection objects (Tribe, Party, Family) implemented
addition (
__add__) to alter the main object. Now the main object is left unchanged. Family.catalogis now an immutable property.
- Python
Published by calum-chamberlain over 7 years ago
eqcorrscan - EQcorrscan v. 0.3.2
A Python package for the detection and analysis of repeating and near-repeating seismicity.
Changelog
- Implement reading Party objects from multiple files, including wildcard expansion. This will only read template information if it was not previously read in (which is a little more efficient).
- Allow reading of Party objects without reading the catalog files.
- Check quality of downloaded data in
Tribe.client_detect()and remove it if it would otherwise result in errors. - Add
process_coresargument toTribe.client_detect()andTribe.detect()to provide a separate number of cores for processing and peak-finding - both functions are less memory efficient that fftw correlation and can result in memory errors if using lots of cores. - Allow passing of
cores_outerkwarg through to fftw correlate functions to control inner/outer thread numbers. If given,coreswill define the number of inner-cores (used for parallel fft calculation) andcores_outersets the number of channels to process in parallel (which results in increased memory usage). - Allow Tribe and Party IO to use QUAKEML or SC3ML format for catalogs (NORDIC to come once obspy updates).
- Allow Party IO to not write detection catalogs if so desired, because writing and reading large catalogs can be slow.
- If detection-catalogs are not read in, then the detection events will be
generated on the fly using
Detection._calculate_event. - BUG-FIX: When one template in a set of templates had a channel repeated, all detections had an extra, spurious pick in their event object. This should no-longer happen.
- Add
selectmethod toPartyandTribeto allow selection of a specific family/template. - Add ability to "retry" downloading in
Tribe.client_detect. - Change behaviour of template_gen for data that are daylong, but do not start within 1 minute of a day-break - previous versions enforced padding to start and end at day-breaks, which led to zeros in the data and undesirable behaviour.
- BUG-FIX: Normalisation errors not properly passed back from internal fftw correlation functions, gaps not always properly handled during long-period trends - variance threshold is now raised, and Python checks for low-variance and applies gain to stabilise correlations if needed.
- Plotting functions are now tested and have a more consistent interface:
- All plotting functions accept the keyword arguments
save,savefile,show,return_figureandtitle. - All plotting functions return a figure.
SVD_plotrenamed tosvd_plot
- All plotting functions accept the keyword arguments
- Enforce pre-processing even when no filters or resampling is to be done
to ensure gaps are properly processed (when called from
Tribe.detect,Template.detectorTribe.client_detect) - BUG-FIX in
Tribe.client_detectwhere data were processed from data one sample too long resulting in minor differences in data processing (due to difference in FFT length) and therefore minor differences in resulting correlations (~0.07 per channel).- Includes extra stability check in fftw_normxcorr which affects the last sample before a gap when that sample is near-zero.
- BUG-FIX: fftw correlation dot product was not thread-safe on some systems. The dot-product did not have the inner index protected as a private variable. This did not appear to cause issues for Linux with Python 3.x or Windows, but did cause issues for on Linux for Python 2.7 and Mac OS builds.
- KeyboardInterrupt (e.g. ctrl-c) should now be caught during python parallel processes.
- Stopped allowing outer-threading on OSX, clang openMP is not thread-safe for how we have this set-up. Inner threading is faster and more memory efficient anyway.
- Added testing script (
test_eqcorrscan.py, which will be installed to your path on installation of EQcorrscan) that will download all the relevant data and run the tests on the installed package - no need to clone EQcorrscan to run tests!
- Python
Published by calum-chamberlain almost 8 years ago
eqcorrscan - EQcorrscan v. 0.3.2 release candidate 0
Release candidate for EQcorrscan version 0.3.2
- Python
Published by calum-chamberlain almost 8 years ago
eqcorrscan - EQcorrscan v. 0.3.1
A Python package for the detection and analysis of repeating and near-repeating seismicity.
Changelog
- Cleaned imports in utils modules
- Removed parallel checking loop in archive_read.
- Add better checks for timing in lag-calc functions (#207)
- Removed gap-threshold of twice the template length in
Tribe.client_detect, see issue #224. - Bug-fix: give multifindpeaks a cores kwarg to limit thread usage.
- Check for the same value in a row in continuous data when computing correlations and zero resulting correlations where the whole window is the same value repeated (#224, #230).
- BUG-FIX: template generation
from_clientmethods for swin=Pall or Sall now download all channels and return them (as they should). See #235 and #206 - Change from raising an error if data from a station are not long enough, to logging a critical warning and not using the station.
- Add ability to give multiple
swinoptions as a list. Remains backwards compatible with singleswinarguments. - Add option to
save_progressfor long runningTribemethods. Files are written to temporary files local to the caller. - Fix bug where if gaps overlapped the endtime set in pre_processing an error was raised - happened when downloading data with a deliberate pad at either end.
- Python
Published by calum-chamberlain almost 8 years ago
eqcorrscan - EQcorrscan v. 0.3.0
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release adds in support for intel MKL versions of FFTW and openmp which provides faster processing on intel systems. This version also enables internal and external threading in the frequency domain cross-correlations, which reduces memory usage and reduces cpu-time.
This release is the first of the 0.3.x series, and removes support for Nordic format. This is done because this support has now moved to obspy.
Changelog:
- Compiled peak-finding routine written to speed-up peak-finding.
- Change default match-filter plotting to not decimate unless it has to.
- BUG-FIX: changed minimum variance for fftw correlation backend.
- Do not try to process when no processing needs to be done in core.matchfilter.group_process.
- Length checking in core.matchfilter.group_process done in samples rather than time.
- BUG-FIX: Fix bug where data lengths were not correct in match_filter.Tribe.detect when sampling time-stamps were inconsistent between channels, which previously resulted in error.
- BUG-FIX: Fix memory-leak in tribe.construct
- Add plotting options for plotting rate to Party.plot
- Add filtering detections by date as Party.filter
- BUG-FIX: Change method for Party.rethreshold: list.remove was not reliable.
- Add option
full_peaksto detect methods to map to find_peaks. - pre-processing (and match-filter object methods) are now gap-aware and will accept gappy traces and can return gappy traces. By default gaps are filled to maintain backwards compatibility. Note that the fftw correlation backend requires gaps to be padded with zeros.
- Removed sfile_utils This support for Nordic IO has been upgraded and moved
to obspy for obspy version 1.1.0. All functions are there and many bugs have
been fixed. This also means the removal of nordic-specific functions in
EQcorrscan - the following functions have been removed:
- templategen.fromsfile
- templategen.fromcontbase
- magcalc.amppick_sfile
- magcalc.pickdb
All removed functions will error and tell you to use obspy.io.nordic.core.
This now means that you can use obspy's
read_eventsto read in sfiles.
- Added
P_allandS_alloptions to template generation functions to allow creation of multi-channel templates starting at the P and S times respectively. - Refactored
template_gen, all options are available viatemplate_gen(method=...), and depreciation warnings are in place. - Added some docs for converting older templates and detections into Template and Party objects.
- Python
Published by calum-chamberlain about 8 years ago
eqcorrscan - EQcorrscan v.0.2.7
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release is a path release: 0.2.6 did not work on windows for all versions of MSVC.
Changelog: * Patch multi_corr.c to work with more versions of MSVC; * Revert to using single-precision floats for correlations (as in previous, < 0.2.x versions) for memory efficiency.
- Python
Published by calum-chamberlain over 8 years ago
eqcorrscan - EQcorrscan v.0.2.6
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release is an incremental update and bug-fix. Specifically a bug whereby more processes than needed when using the match-filter objects was found and constrained. It is now much easier to access the underlying correlation functions, allowing users to customise the way correlations are computed based on their system (number of threads possible and memory available). The default correlation routine is also faster and more memory efficient.
The full change-log for this release is as follows:
- Added the ability to change the correlation functions used in detection
methods through the parameter xcorrfunc of matchfilter, Template.detect
and Tribe.detect, or using the set_xcorr context manager in
the utils.correlate module. Supported options are:
- numpy
- fftw
- time-domain
- or passing a function that implements the xcorr interface.
- Added the ability to change the concurrency strategy of xcorr functions
using the paramter concurrency of match_filter, Template.detect
and Tribe.detect. Supported options are:
- None - for single-threaded execution in a single process
- multithread - for multi-threaded execution
- multiprocess- for multiprocess execution
- concurrent - allows functions to describe their own preferred currency methods, defaults to multithread
- Change debug printing output, it should be a little quieter;
- Speed-up time-domain using a threaded C-routine - separate from frequency domain C-routines;
- Expose useful parallel options for all correlation routines;
- Expose cores argument for match-filter objects to allow limits to be placed on how much of your machine is used;
- Limit number of workers created during pre-processing to never be more than the number of traces in the stream being processed;
- Implement openMP parallelisation of cross-correlation sum routines - memory consumption reduced by using shared memory, and by computing the cross-correlation sums rather than individual channel cross-correlations. This also leads to a speed-up. This routine is the default concurrent correlation routine;
- Test examples in rst doc files to ensure they are up-to-date;
- Tests that were prone to timeout issues have been migrated to run on circleci to allow quick re-starting of fails not due to code errors
- Python
Published by calum-chamberlain over 8 years ago
eqcorrscan - EQcorrscan v0.2.5
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release is the first patch release of the 0.2.x series (previous versions were missed due to failed conda-forge attempts). This patch fixes bugs with lag-calc and match-filter for edge-case datasets with strange download tendencies.
The change-log for this release is as follows: * Fix bug with _groupprocess that resulted in stalled processes. * Force NumPy version * Support indexing of Tribe and Party objects by template-name. * Add tests for lag-calc issue with preparing data * Change internals of *eqcorrscan.core.lagcalc.preparedata* to use a dictionary for delays, and to work correctly! Issues arose from not checking for masked data properly and not checking length properly. * Fix bug in matchfilter.matchfilter when checking for equal length traces, length count was one sample too short.
- Python
Published by calum-chamberlain almost 9 years ago
eqcorrscan - EQcorrscan v0.2.4
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release contain significant updates to the object-oriented API for matched-filter detection (while retaining the old API), alongside re-written, more efficient correlation internals, and a re-designed (more accurate and efficient) subspace detection module.
Note that 0.2.0-3 were released to PyPi as tests for conda installs - they have no functional difference to this version.
The change log for this release is as follows:
- Increase test coverage (edge-cases) in template_gen;
- Fix bug in templategen.extractfrom_stack for duplicate channels in template;
- Increase coverage somewhat in bright_lights, remove non-parallel option (previously only used for debugging in development);
- Increase test coverage in lag_calc;
- Speed-up tests for brightness;
- Increase test coverage for match_filter including testing io of detections;
- Increase subspace test coverage for edge cases;
- Speed-up catalogtodd_tests;
- Lag-calc will pick S-picks on channels ending E, N, 1 and 2, change from only picking on E and N before; warning added to docs;
- Add full tests for pre-processing;
- Run tests in parallel on ci, speed-up tests dramatically;
- Rename singular-value decomposition functions (with depreciation warnings);
- Rename SVD_moments to lower-case and add depreciation warning;
- Increase test coverage in utils.mag_calc;
- Add Template, Tribe, Family, Party objects and rename DETECTION to
Detection;
- Template objects maintain meta-data associated with their creation to stream-line processing of data (e.g. reduce chance of using the wrong filters).
- Template events have a detect method which takes unprocessed data and does the correct processing using the Template meta-data, and computes the matched-filter detections.
- Tribe objects are containers for multiple Templates.
- Tribe objects have a detect method which groups Templates with similar meta-data (processing information) and runs these templates in parallel through the matched-filter routine. Tribe.detect outputs a Party of Family objects.
- The Party object is a container for many Family objects.
- Family objects are containers for detections from the same Template.
- Family and Party objects have a lag_calc method which computes the cross-correlation pick-refinements.
- The upshot of this is that it is possible to, in one line, generate a Tribe of templates, compute their matched-filter detections, and generate cross-correlation pick refinements, which output Event objects, which can be written to a catalog: Tribe.construct(method, kwargs).detect(st, **kwargs).lag_calc(kwargs).write()
- Added 25 tests for these methods.
- Add parameters threshold_type and threshold_input to Detection class. Add support for legacy Detection objects via NaN and unset values.
- Removed support for obspy < 1.0.0
- Update / correct doc-strings in template-gen functions when describing processing parameters.
- Add warning message when removing channels from continuous data in match_filter;
- Add min_snr option for template generation routines, if the signal-to-noise ratio is below a user-defined threshold, the channel will not be used.
- Stop enforcing two-channel template channel names.
- Fix bug in detection_multiplot which didn't allow streams with fewer traces than template;
- Update internals to custom C fftw-based correlation rather than openCV (Major change);
- OpenCV has been removed as a dependancy;
- eqcorrscan.core.match_filter.normxcorr2 now calls a compiled C routine;
- Parallel workflows handled by openMP rather than Python Multiprocessing
for matched-filter operations to allow better memory handling.
- It is worth noting that we tried re-writing using SciPy internals which led to a significant speed-up, but with high memory costs, we ended up going with this option, which was the more difficult option, because it allows effective use on SLURM managed systems where python multiprocessing results in un-real memory spikes (issue #88).
- Python
Published by calum-chamberlain almost 9 years ago
eqcorrscan - EQcorrscan v0.1.6
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release represents a thorough bug-fix for a feature introduced in 0.1.4 (multiple templates from a single channel). This was not fixed in 0.1.5 and both 0.1.4 and 0.1.5 should be avoided.
- Python
Published by calum-chamberlain over 9 years ago
eqcorrscan - EQcorrscan v0.1.5
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release represents a quick bug-fix for a feature introduced in 0.1.4 (multiple templates from a single channel). Otherwise it is as 0.1.4.
- Python
Published by calum-chamberlain over 9 years ago
eqcorrscan - EQcorrscan v0.1.4
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release is mostly a feature release, with a few minor bug-fixes. For this release we add a subspace detector.
The following is the change-log for this release: - Bug-fix in plotrepicked removed where data were not normalized properly; - Bug-fix in lagcalc where data were missing in the continuous data fixed (this led to incorrect picks, major bug!); - Output cross-channel correlation sum in lag-calc output; - Add id to DETECTION objects, which is consistent with the events within DETECTION objects and catalog output, and used in lagcalc to allow linking of detections to catalog events; - Add lots of logging and error messages to lag-calc to ensure user understands limits; - Add error to day-proc to ensure user is aware of risks of padding; - Change utils.preprocessing.process to accept different length of data enforcement, not just full day (allow for overlap in processing, which might be useful for reducing day start and end effects); - Bug-fix in magcalc.amppickevent, broke loop if data were missing; - Lots of docs adjustment to sort order of doc-strings and hyper-links; - Allow multiple uses of the same channel in templates (e.g. you can now use a template with two windows from the same channel, such as a P and an S); - Add evaluation mode filter to utils.catalogutils.filter_picks; - Update subspace plot to work when detector is not partitioned; - Make tests run a little faster; - Add pep8 testing for all code.
- Python
Published by calum-chamberlain over 9 years ago
eqcorrscan - EQcorrscan v0.1.3
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release is mostly a feature release, with a few minor bug-fixes. For this release we add a subspace detector.
The following is the change-log for this release: - Now testing on OSX (python 2.7 and 3.5) - also added linux python 3.4; - Add lag-calculation and tests for it; - Change how lag-calc does the trace splitting to reduce memory usage; - Added pick-filtering utility to clean up tutorials; - Change template generation function names for clarity (wrappers for depreciated names); - Add more useful error messages when picks are not associated with waveforms; - Add example plots for more plotting functions; - Add subspace detector including docs and tutorial. - Add delayed option to all template_gen functions, set to True by default which retains old behaviour.
- Python
Published by calum-chamberlain almost 10 years ago
eqcorrscan - EQcorrscan v0.1.2
A Python package for the detection and analysis of repeating and near-repeating seismicity.
This release mostly introduces extensive testing to the package. We now support and test on Windows and Linux, we also support OS X, but we don't currently have continuous integration testing for OS X. This release also marks the support for Python 3.5 as well as 2.7.
The following is the change-log for this release:
0.1.2
- Add handling for empty location information in sfiles.
- Added project setup script which creates a useful directory structure and copies a default match-filter script to the directory.
- Add archive reader helper for default script, and parameter classes and definitions for default script.
- Re-write history to make repository smaller, removed trash files that had been added carelessly.
- Now tested on appveyor, so able to be run on Windows.
- Added ability to read hypoDD/tomoDD phase files to obspy events.
- Added simple despiking algorithm - not ideal for correlation as spikes are interpolated around when found: eqcorrscan.utils.despike.
- Option to output catalog object from match_filter - this will become the default once we introduce meta-data to templates - currently the picks for events are the template trace start-times, which will be before the phase-pick by the lag defined in the template creation - also added event into detection class, so you can access the event info from the detections, or create a catalog from a list of detections.
- Add option to extract detections at run-time in matchfilter.matchfilter.
- Edited multieventsinglechan to take a catalog with multiple picks, but requires you to specify the station and channel to plot.
- Add normalize option to stacking routines.
- Add tests for stacking - PWS test needs more checks.
- Add many examples to doc-strings, not complete though.
- Change docs to have one page per function.
- Python 3.5 testing underway, all tests pass, testing about 74% of codebase.
- Add io functions to match_filter to simplify detection handling including writing detections to catalog and to text file.
- Stricter match_filter testing to enforce exactly the same result with a variety of systems.
- Add hack to template_gen tutorial to fix differences in sorting between python 3.x and python 2.
- Added advanced network triggering routine from Konstantinos, allows different parameters for individual stations - note only uses recursive sta-lta triggering at the moment. Useful for template generations alongside pickers.
- Added magnitude of completeness and b-value calculators to utils.mag_calc
- Python
Published by calum-chamberlain almost 10 years ago
eqcorrscan - EQcorrscan v0.1.1
A python package to conduct match-filter earthquake detections.
This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.
The changes in this version have been substantial enough to warrant an end to the 0.0.x line, we have removed the PICK and EVENTINFO classes and are now using Obspy's obspy.core.event classes. This allows us more flexibility with event and pick information, and provides a means for writing and reading many other forms of data. This does mean that scripts dependent on the PICK and EVENTINFO classes will no longer work, however, in this release we have provided functions to map between the two class sets.
The change-log for this version is as follows:
0.1.1
- Cope with events not always having time_errors in them in eventtoSfile;
- Convert Quakeml depths from m to km;
- Multiple little fixes to make Sfile conversion play well with GeoNet QuakeML files;
- Add function to convert from obspy.core.inventory.station.Station to string format for Seisan STATION0.HYP file;
- Merged feature branch - hypoDD into develop, this provides mappings for the hypoDD location program, including generation of dt.cc files;
- Added tests for functions in catalogtodd;
- Implemented unittest tests;
- Changed name of EQcorrscan_plotting to plotting;
- Added depreciation warnings;
- Changed internal structure of pre-processing to aid long-term upkeep;
- Added warnings in docs for template_gen relating to template generation from set length files;
- Updated template_creation tutorial to use day-long data;
- Renamed Sfileutil to sfileutil, and functions there-in: will warn about name changes;
- Updated template plotting to include pick labels;
- Updated template_creation tutorial to download S-picks as well as P-picks;
- Update sfile_util to cope with many possible unfilled objects;
- Added sac_util to convert from sac headers to useful event information - note, does not convert all things, just origin and pick times;
- Added fromsac function to templategen.
- Python
Published by calum-chamberlain about 10 years ago
eqcorrscan - EQcorrscan v0.1.0
A python package to conduct match-filter earthquake detections.
This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.
The changes in this version have been substantial enough to warrant an end to the 0.0.x line, we have removed the PICK and EVENTINFO classes and are now using Obspy's obspy.core.event classes. This allows us more flexibility with event and pick information, and provides a means for writing and reading many other forms of data. This does mean that scripts dependent on the PICK and EVENTINFO classes will no longer work, however, in this release we have provided functions to map between the two class sets.
The change-log for this version is as follows:
0.1.0 Changes
- Implimented tests for synthetic generation and match-filter functions
- Developed new tutorials that download from GeoNet and are much clearer
- Changed from PICK and EVENTINFO classes to obspy.core.event classes, note this will break some previous scripts, however wrappers are included for this, this ended up being the biggy, and is the reason for ceasing the 0.0.x line.
- Added synthetic seismogram generation, very basic seismograms, but they work as templates for the detection of some seismicity.
- Added compatibility with Obspy v.1.0.0.
- All files now follow pep8.
- Removed parameter files completely, and redundant scripts.
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan v0.0.9
A python package to conduct match-filter earthquake detections.
This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.
This release works towards pep8 compatibility and fixes bugs from previous releases. Of note is a major bug-fix in matchfilter - arguments were the wrong way round when calling the _templateloop internal function.
Again, update your version using:
pip install -U --no-deps EQcorrscan
For a full description of the changes from previous versions see the CHANGES.md file. The change-log for this version is as follows:
0.0.9
- Working towards following pep8
- Change how match_filter handles missing data - now remove template traces (which have been copied) rather than adding null traces to the data stream - more memory efficient, and faster
- Change float handling for large amplitudes in Sfile_utils
- Change distance decimal handling in Sfile_utils
- Add magnitude-frequency plotting to EQcorrscan_plotting
- Update tutorial and docs for tutorial
- Major bug-fix Change in match_filter - debug and index were the wrong way round from version 0.0.5 onwards, hence for multiple templates, cross-correlation vectors were not matched for templates. Will push a release because of this.
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan v0.0.8
A python package to conduct match-filter earthquake detections.
This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.
This latest update implements a lot of changes, including better incorporation of synthetic seismogram generation, SVD magnitude calculations, hierarchical clustering based on average cross-correlation values between detections, clustering in space and time, and multiple bug-fixes. There is one major bug-fix, which applies to the matchfilter_ routine in core. This does not change the operation and outcome, but will apply to users who want to run multiple groups of templates serially, say if you run out of memory running all templates in parallel.
Again, update your version using:
pip install -U --no-deps EQcorrscan
For a full description of the changes from previous versions see the CHANGES.md file. The change-log for this version is as follows:
0.0.8:
- Added SVD magnitude inversion to utils.mag_calc, tested for multi-channel;
- Bug-fix in s-file printing when printing AIN, convert to int now before print;
- Add master option to stacking.align_traces, alignment can be forced to this;
- Add plot directory output option to match_filter;
- Change plot downsampling to 10 Hz in match_filter;
- Clustering.cluster now output groups properly when computing clustering by cross-correlation;
- Add plotsynthreal function to EQcorrscan_plotting - use for plotting a synthetic template on top of a real template;
- Add space-time clustering fucntion to clustering, use to group repeating events;
- Add rethreshcsv to clustering, can be used to increase the detection threshold after detection run;
- Add mock modules to conf.py for ReadTheDocs, also removed requirements.txt file as it was unused;
- Added parallel options to distance_matrix computation in clustering.
- Change matplotlib import location in match_filter to allow other functions to be called without turning off interactive plots.
- Add both option to utils.synth_seis to allow individual creation of both P and S phases.
- Add sanity check for nyquist frequency to utils.preprocessing, now breaks if highcut >= samprate
- Add plotformat option to core.matchfilter
- Add multiple phase capability to utils.synth_seis
- BUG-FIX Change match-filter data stream handling to copy the stream and keep it safe before adding null-traces or removing excess traces. Match_filter will now remove excess, un-needed traces from the copied stream. This is specifically necessary when splitting a large template set, with a range of channels, into smaller groups to be run serially.
:volcano:
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan v0.0.7
A python package to conduct match-filter earthquake detections.
This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.
Update for 0.0.7 and missing 0.0.6...
- 0.0.5 did not work for pip install because of the test data being too large, this must be downloaded here;
- 0.0.6 did not fix this, a missed section in setup.py to blame
- 0.0.7 is functionally the same as 0.0.5, but can be installed from pip properly - install as:
pip install EQcorrscan
To upgrade from 0.0.4:
pip install -U --no-deps EQcorrscan
This will install without trying to upgrade all the dependencies, which is not needed. For me upgrading dependencies crashed with matplotlib.
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan v0.0.5
A python package to conduct match-filter earthquake detections.
This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.
Changes for version 0.0.5
- Update all paths in functions when calling EQcorrscan functions to use the installed version
- Remove parameter file usage in core functions and replace with variables, parameter files remain for scripts
Hotfix of v0.0.5 to include MANIFEST.txt for pypi, does not affect functionality of 0.0.5 release.
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan v0.0.4
A python package to conduct match-filter earthquake detections.
This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.
Changes: - (developer) Minor updates to include travis.ci integration, which allows continuous testing of the package - (user) Added very basic synthetic template generation for testing whether synthetics can be used as templates for earthquake detection. Very early stages, and not robust yet. - (user) Removed grids from package, makes it a lot lighter to download
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan v0.0.3
Minor big-fix from yesterday's release by removal of unnecessary import in tutorial, now works and tested.
Major change in directory structure to allow for pip installation in future releases.
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan v0.0.2
This is the second release of EQcorrscan, a lot of bugs have been fixed, notably some significant ones in Sfile_util, which affected writing picks to sfiles. We have also implemented some changes to how seismic data are written out, with the default being STEIM2 now, which requires int32 numbers.
In brightlights, there have been more efficiencies made in terms of memory consumption by switching from float32 to unit8 for certain applications. Similarly the cross-correlation sums in matchfilter.py are stored at float16, which reduces memory consumption allowing for even more template to be run in parallel.
The next release should be more of a feature release, with some cool things in development on the feature branches at the moment. With this release also comes the introduction of a new branching model which should streamline development and allow for simpler bug-fixing, following the model of: http://nvie.com/posts/a-successful-git-branching-model/
Hope this helps. As with any software, there will be bugs, perhaps more-so in this software because I am the only person working on it at the moment. If you see bugs, or behaviour that you disagree with/don't like, flag it as an issue and we can try and fix it. Even better you can fix it yourself and create a pull request to merge the fix into the development branch!
Thanks,
C
- Python
Published by calum-chamberlain over 10 years ago
eqcorrscan - EQcorrscan
Pre-production release of EQcorrscan software in very alpha stages (not all working with all datasets, brightness function still in development, anything may change at any-time).
In general the match-filter routines are stable. Features are often added to the utils sub-module, but changes should be backwards-compatible.
- Python
Published by calum-chamberlain almost 11 years ago