Recent Releases of https://github.com/quakemigrate/quakemigrate

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.2.0

QuakeMigrate 1.2.0 Release Notes

This minor release introduces a number of new features to some core QuakeMigrate routines (mainly within Trigger), addresses a number of minor bugs, and brings with it a basic set of tutorials detailing each stage in the QuakeMigrate pipeline and a walkthrough of the synthetic example presented in the QuakeMigrate manuscript.

  • add the median ratio threshold for triggering candidate events, as well as pre-trigger smoothing of the 1-D maximum coalescence function (6d16f18, 1ea643c)
  • add a complete example for volcano-tectonic events at Askja volcano, which highlights the ability for QuakeMigrate to effectively identify events with differing frequency spectra (volcano-tectonic and deep long period events) (febabcd)
  • move all examples to using data from EarthScope DMC rather than hosting it locally in this repository. Data are downloaded using the obspy MassDownloader class (7788af7, 7e1e3d0, 6694459)
  • add a complete synthetic example, as used in the QuakeMigrate manuscript (2e1f2d5)
  • fix an issue with how days were being split during trigger, specifically relating to the final/first sample at midnight (7be2653)
  • fix an issue where trigger plotting would fail in instances where no events were identified above the specified threshold (4a6788c)
  • add the ability to write out the 4-D coalescence functions computed during the locate stage (f147b3f)
  • adjust how time steps are handled during the Detect stage, addressing a minor bug that was causing issues at the ends of days/runs (c98c6e3)
  • add an option to only plot the stations actively being used during the locate stage (3c9953c)
  • update all online documentation to include more complete tutorials for each stage in the workflow, as well as detailed overview of the synthetic example (4ab2e9d, a0356f7)

Contributors

@hemmelig & @TomWinder.

What's Changed

  • FEAT: Add trigger median_ratio threshold & smoothing by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/179
  • FEAT: Askja VT-DLP example by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/184
  • FEAT: MassDownloader rollout by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/185
  • FEAT: MassDownloader rollout by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/186
  • FEAT: locate tweaks by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/189
  • Add synthetic example and documentation by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/168
  • FIX: Trigger day splitting by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/190
  • README and workflow maintenance by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/192
  • BUGFIX: trigger plot failure when no events by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/194
  • FEAT: Add ability to write out 4-D coalescence maps during locate stage by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/193
  • BUGFIX: Make timestep handling explicit and uniform in detect/locate by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/195
  • BUG: Correctly set default trigger method when instantiating a new Trigger object by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/197
  • FEAT: Add option to only plot active stations in event summary by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/196
  • Refresh online documentation—tutorials by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/201
  • :bookmark_tabs: bump version to v1.2.0 EOM by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/200
  • Fix small bug with empty ScanMSEED objects by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/202
  • Resolve merge conflict v1.2.0 by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/203
  • QuakeMigrate v1.2.0 by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/199

Full Changelog: https://github.com/QuakeMigrate/QuakeMigrate/compare/v1.1.2...v1.2.0

- Python
Published by hemmelig 11 months ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.1.2

This bugfix release addresses a bug in Trigger caused by a deprecated numpy function, minor bugfixes within the local magnitudes sub-module, and fixes coverage reporting with CodeCov.

  • quakemigrate.io.amplitudes
    • Handle the case where no amplitude measurements are made for an event. acc6bd9
  • quakemigrate.signal.localmag.localmag
    • Fix handling of no amplitude measurements when adding a local magnitude to an event. 1f60f64
  • quakemigrate.signal.local_mag.magnitude
    • Fix application of filter_gain to noise amplitude measurements, within magnitude calculation and amplitudes plotting. 4faee34
    • Fix handling of ML_Err and ML_r2 calculation where only a single magnitude estimate is available for an event. 03a3032
  • quakemigrate.signal.trigger
    • Replace np.product() (deprecated in numpy v2.0.0) with the new syntax np.prod(), addressing #187. bee2b34
  • tests:
    • Update the process for analysing package coverage of the tests, including fixing path issue that was breaking CodeCov report parsing via adding codecov.yml, and updating versions of all component actions. 6dd40ba

Contributors

@hemmelig & @TomWinder.

What's Changed (auto-generated)

  • FIX: minor local magnitudes / amplitudes bugs by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/182
  • Fix coverage reporting via CodeCov by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/183
  • FIX: Replace deprecated (renamed) function within numpy (#187). by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/191

Full Changelog: https://github.com/QuakeMigrate/QuakeMigrate/compare/v1.1.1...v1.1.2

- Python
Published by TomWinder over 1 year ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.1.1

This bugfix release addresses a bug in the amplitude plotting (summarised in #180), and includes a modification to the Volcanotectonic_Iceland example and benchmark to address the gap in test coverage that this bug exposed.

  • Explicitly use pandas.Series for input to plot.amplitudes.label_stations(), and fix a minor plotting bug e63851f
  • Add filters for magnitude calculation in the Volcanotectonic_Iceland example, as well as making some additional improvements to the amp_params and mag_params configuration 7e5768a

Contributors

@hemmelig & @TomWinder.

What's Changed (auto-generated)

  • FIX (plot/amplitudes.py) Explicitly use pd.Series by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/181

Full Changelog: https://github.com/QuakeMigrate/QuakeMigrate/compare/v1.1.0...v1.1.1

- Python
Published by TomWinder over 1 year ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.1.0

QuakeMigrate 1.1.0 Release Notes

This minor release introduces a small fix to part of the core routines, a new library of C routines for computing onset functions, the option to select from several signal transformations when calculating STA/LTA onset functions, and some adjustments to the parameters used for some of the examples.

Importantly, we addressed a bug in the ordering of when the onset functions for the horizontal (S) components were combined relative to when the log of the onset function was taken. This changes the values for the example benchmarks, which have been updated accordingly. This motivated the bump from version 1.0.x to 1.1.0. In terms of performance and user experience the impact is relatively minor.

The ability to use the original Python backend for computing the onset functions is retained and exposed via a keyword argument.

Settings for the icequake examples were updated to improve the detections/locations, reflecting improvements to the core code that allows for higher resolutions to be computed without incurring prohibitive computational costs. We also added a feature to allow users to select the transformation applied to the waveform data before onset functions are computed.

  • Add C onset function library (dd3b52d)
  • Add Python backend for onset functions (907873a)
  • Move the logging of the onset functions to the correct position (after combining the two horizontal components for the S onset) (1600f11)
  • Update Rutford icequake example (5d7510f and 9e2c363)
  • Update Iceland icequake example (8f61a64 and 9e2c363)
  • Update minimum and maximum supported Python versions to 3.9 and 3.12, respectively (28d2537)
  • Move onset log (breaking change, fixes a bug) (1600f11)
  • Add the ability to select the type of signal transform applied to the raw data before computing the onset functions (1600f11)
    • Energy (waveform squared)
    • Absolute value
    • Envelope (absolute value of the analytic signal, i.e., the Hilbert transform)
    • Envelope squared

Contributors

@hemmelig & @TomWinder.

What's Changed (auto-generated)

  • :atom: Rewrite onset functions as C library by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/166

Full Changelog: https://github.com/QuakeMigrate/QuakeMigrate/compare/v1.0.3...v1.1.0

- Python
Published by hemmelig over 1 year ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.0.3

QuakeMigrate 1.0.3 Release Notes

This patch release introduces some minor updates to tooling used by the package and address some issues that had arisen from underlying dependencies. Further, we have added a backdoor that allows us to debug issues with our CI/CD testing.

  • Switched to Ruff autoformatter (9580ccf)
  • Addressed a Matplotlib bug arising from the deprecation of the method of sharing/joining axes we were previously using (a4fe6f8)
  • Resolved issue with test workflow failure (a11677b/1363a7a) and added tmate backdoor for debugging (9b433d3)
  • Updated an issue with the data downloading in the Iceland volcano-tectonic example. This had the added benefit of being faster, too! (b11a6b8)

Contributors

@hemmelig & @TomWinder.

What's Changed (auto-generated)

  • Autoformat (Black), bump copyright years, add test workflow by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/159
  • Address issue with shared axes from Matplotlib 3.8 by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/163
  • Add debug backdoor (tmate) and bypass root cause of test workflow failure by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/164
  • :wrench: Update cibuildwheels version to fix Windows wheel building by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/171
  • Switch to Ruff formatter by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/165
  • :bug: Single client request for all stations by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/174

Full Changelog: https://github.com/QuakeMigrate/QuakeMigrate/compare/v1.0.2...v1.0.3

- Python
Published by hemmelig almost 2 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.0.2

QuakeMigrate 1.0.2 Release Notes

This patch release introduces a few code management/styling tools to help maintain consistent styling across contributors, as well as re-establishing routine testing.

Contributors

@hemmelig & @TomWinder.

What's Changed (auto-generated)

  • FIX: Fix binder by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/156
  • Add GitHub workflow for testing/code coverage assessment by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/157

Detailed Changelog

  • Introduced a pre-commit hook for developers that performs a number of checks that must pass before a commit can be made. Principle among these tests is the use of Black ("The uncompromising Python code formatter"). This ensures consistent styling across all commits.
  • A GitHub workflow now manages test running and coverage analysis. The workflow is triggered by a number of scenarios, such as a new PR being opened etc. For full details, see 24bdb2e. Importantly, the workflow is also scheduled to run on a regular basis. Once a week, all tests are run—any breaking changes introduced by our dependencies should be caught this way.
  • The Contributing guidelines were updated to reflect these changes to the developer workflow.

Full Changelog: https://github.com/QuakeMigrate/QuakeMigrate/compare/v1.0.1...v1.0.2

- Python
Published by hemmelig almost 3 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.0.1

QuakeMigrate 1.0.1 Release Notes

This release brings QuakeMigrate to the Python Package Index and enables users to install via pip. This means we are able to do much of the work pre-compiling the C extension library in a controlled environment, which will 'just work' on the user's system. Wheels are available for all combinations of: Python versions 3.8 to 3.11; and macOS, Windows, and Linux operating systems. This is a great step towards making the package more user-friendly.

We also decided to take this opportunity to fix a number of minor bugs that had cropped up over the course of use in the last couple of years—we want the first PyPI release to be as bug free as possible! That's not to say we won't have further improvements to make, but see the changelog notes for more information.

Contributors

@hemmelig & @TomWinder.

What's Changed (auto-generated)

  • FEAT: wheel building and PyPI releases by @hemmelig in https://github.com/QuakeMigrate/QuakeMigrate/pull/138
  • FIX: Bugfixes implemented in Maintenance 1.0.0 branch by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/150
  • FIX: more minor bug fixes addressing the list of current Issues by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/151
  • TEST: Update Volcanotectonic_Iceland benchmark by @TomWinder in https://github.com/QuakeMigrate/QuakeMigrate/pull/152

Detailed Changelog

  • Overhaul the build system from the old, quite messy, setup.py file to a pyproject.toml file (specifying mostly metadata) and a setup.py file that specifically handles the C extension module.
  • Make the codebase compatible with most recent versions of dependencies (and specify some minimum version requirements).
  • Handled a number of deprecation warnings that had started to crop up.
  • Reviewed the installation instructions and provided significant additional detail for installing compilers across different operating systems. While no longer necessary (pip install quakemigrate will install QuakeMigrate complete with its precompiled C library), it may still be useful for anyone wanting to build from the source code themselves.
  • Updated base README.md file to reflect these updates.
  • Drop TravisCI—not currently working and will migrate to testing and coverage uploading via GitHub Actions in the future.
  • Fix bug where no candidate events were triggered, which caused the plotting stage to fail
  • Fix bug where no data were available at the start/end of a tilmestep, which wasn't being correctly identified
  • Update the benchmarks to reflect the ~6th decimal place changes introduced by changes in one of our dependencies (pyproj)

Full Changelog: https://github.com/QuakeMigrate/QuakeMigrate/compare/v1.0.0...v1.0.1

- Python
Published by hemmelig almost 3 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v1.0.0

QuakeMigrate 1.0.0 Release Notes

QuakeMigrate 1.0.0 is the culmination of almost 18 months of hard work, and is the first major, stable release of the package. The codebase has been largely re-written, delivering dramatic improvements in run-time and memory usage, many new features and far greater flexibility to the user. There have also been a large number of bug fixes relating to the stability and performance of the package. All users are encouraged to update to this release.

We anticipate releasing v1.1.0 soon, with a significant expansion of tutorials and related documentation, and some further improvements to user-flexbility. (And maybe a couple more bug-fixes!) So please give us your feedback!!

Thank you to everyone who has been part of the journey so far! With your help, we have tested the code thoroughly, but it is inevitable that we won’t have covered every possible use-case and combination of parameters – so please continue to provide feedback. And please let us know when it works well, too! It is our favourite source of motivation.

Highlights

  • Cross-platform support: QuakeMigrate has now been successfully built and run on Linux, Mac and Windows! The core development of the code continues to be carried out largely on Linux, so additional feedback & testing from Windows and Mac users will continue to be appreciated.
  • Documentation: We now have comprehensive documentation automatically built from the source code, plus installation instructions (for Linux, Mac and Windows) and a limited set of tutorials. More coming soon!
  • Local magnitude calculation: support for built-in local magnitude calculation (and output of cut raw, real and Wood-Anderson simulated waveforms for each event).
  • Single-phase support: QuakeMigrate now supports flexible multiple-phase stacking. For example, users processing Z-only nodal data may wish to only stack P-wave onset functions. The flexible implementation allows users to design onset functions for any phase of their choosing (with P and S the default for the time being). But if you want to design an onset function to identify and migrate/stack Vsh, Vsv etc. it is now easy to do!
  • Publication-ready plots: significant improvements to the information content, clarity and aesthetics of automatic plots (including from the trigger, locate, local-magnitude calculation and auto-picking modules & sub-modules).
  • Examples: Two new examples; another demonstration of using QuakeMigrate to detect and locate high-frequency basal icequakes (amongst crevassing noise!), plus detecting dike-induced earthquakes during the 2014 Bárðarbunga-Holuhraun dike intrusion - featuring an event rate of more than 150 earthquakes per hour (~ 4000 per day!).
  • Tests: we have made our first steps on the journey to including a comprehensive suite of tests, to verify correct operation after installation. These are based on the included icequake_iceland and dike_intrusion example use-cases. More to come soon.
  • Logging: flexible log output – currently split mainly between “info”, “warning” and “debug” levels. We recommend sticking with the default – “debug" returns a lot of additional info!!
  • Modularity: the picker and onset sub-modules are now built on an abstract base class, making it straightforward to build and share new alternatives that integrate with the core migration machinery of the package.
  • License: QuakeMigrate 1.0.0 is released under the GPL v3 license.

Users who have been using the development branch

v1.0.0 serves as a citable release of the version of the code that has been available on the development branch since January 2020 – however note there have been a significant number of further enhancements and bug fixes over this period, particularly since May 2020. We intend to maintain a far more granular series of releases in future – thank you for your patience!

Users upgrading from the 0.x.x series

Users upgrading from the 0.x.x series will notice differences in the absolute value of the coalescence functions calculated, due to bug-fixes affecting the core migration and stacking functions. However, the relative values of the coalescence functions through time should remain largely unchanged, meaning trigger results and relative uncertainty estimates are still valid. Absolute uncertainty estimates, however, were previously being over-estimated, and trigger thresholds will need to be updated. To re-emphasise: there have been major bug-fixes and improvements reaching throughout the entire package. To benefit from these improvements we highly recommend re-processing the data through all stages (detect, trigger & locate), though we have tried to incorporate backwards-compatibility for all old output file formats wherever possible, for example to allow you to solely re-run locate().

Changelog

This provides a limited summary of the major changes to the code since the previous release. For full details please see the linked pull requests, and commit messages therein.

  • Change to top-level package name - QMigratequakemigrate See #85
  • quakemigrate.core
    • C libraries now build automatically when installing the package.
    • C functions have been cleaned up and documented properly. See #21.
  • quakemigrate.export – new!
    • Add some export utilities to a new module (export).
    • Currently includes functions to take the outputs of QuakeMigrate to: ObsPy catalogue; ObsPy catalogue to NLLoc OBS file; ObsPy catalogue to MFAST SAC input; QuakeMigrate to pyrocko Snuffler input.
  • quakemigrate.io
    • Refactor the I/O system entirely. This was in response to Issue #66. See 68c13f7 for full details.
    • The re-write of the quakemigrate.io.data sub-module includes fixing bugs and making breaking changes related to the detrending and upsampling/decimation of waveform data. See c1ff447 and #103.
    • Add support for reading response information (via a light wrapper of the obspy function) and functions for response removal & Wood-Anderson seismogram simulation, for use with the new quakemigrate.signal.local_mag module.
    • Add a new, more comprehensive, transparent & flexible check_availability() function, to check what data is available given a set of provided quality criteria.
    • Added functions for removing response and simulating WA response here, allowing for this functionality to be accessed from anywhere across the package. This includes the ability to output real and/or WA cut waveforms (as velocity or displacement seismograms), for example for spectral analysis. Response removal parameters are specified (along with the instrument response inventory) when creating the Archive object.
    • The format of triggered event files, event files, pick files and station-availabiity files have been heavily overhauled. See #76.
    • Fix to allow for numerical station names.
  • quakemigate.lut – significant rewrite (see #54, #65)
    • Significant changes to API – see examples.
    • Users from the 0.x series will need to update their look-up table files (using an included utility function) or re-compute them.
    • Fully-documented, including a tutorial in the documentation.
    • Handling of a possible bug/ambiguity in the scipy RegularGridInterpolator API. The default for the fill_value parameter does not appear to be consistent with documentation.
    • The traveltime lookup tables are now stored in a dictionary structure maps[station][phase] to enable migration of a flexible combination of seismic phases, and to make it possible to migrate onsets for a subset of the phases and stations contained in the LUT. See #75, #103.
    • The 3-D grid on which the lookup tables are defined is now more intuitive to build. The user simply chooses the positions of a pair of opposite corners (the lower-left and upper-right) in geographic coordinates, the geographic and cartesian projections (using pyproj), and a node spacing along each axis. The number of grid nodes will be calculated automatically to span the volume of interest.
    • User-specified units: the user must specify when making an LUT whether to use units of metres or kilometres; this will then be used consistently throughout the package. See #79.
  • quakemigrate.plot – new! See #83.
    • Extracted all base plotting methods to individual modules within the quakemigrate.plot module. No longer using a class to pass the information around.
    • Revamp all of the figures produced by QuakeMigrate to include more useful information and to make better use of the available space. See 72b1c47 for details.
  • quakemigrate.signal
    • Refactor to be more flexible with the input data.
    • QuakeMigrate now allows for single-component data to be used, or stacking to be performed on just one phase (e.g. just P or just S). The required changes reached quite deep into the package and have changed how Onset objects are created, but is ultimately very straightforward to use. See #103.
    • Channel names can now be specified by the user, by default they are “Z” for vertical component, and “[N,1]” and [“E,2”] for horizontal components.
    • Internally use obspy.Trace objects to store data up to the point of passing it to the C functions; this adds greater flexibility and more built-in methods for quality checking, filtering, re-sampling etc. than the previous framework using arrays.
    • quakemigate.signal.onsets – significant re-write
    • Extracted the embedded onset function generation from the core QuakeScan class to a new submodule, quakemigrate.signal.onsets.
    • Various changes to parameter names – see examples.
    • Created an Abstract Base Class – Onset. This class can be used as a base class for a class implementing an alternative onset function algorithm, while ensuring compliance with the embedded code in QuakeScan.
    • Created a new class OnsetData to store the pre-processed waveforms used for onset calculation, the onset functions themselves, and all associated parameters and attributes.
    • Significant expansion to the options available for data quality-checking; now exposed to the user, giving the flexibility to select which to use.
    • The STA/LTA onset function remains the default.
    • quakemigate.signal.pickers – significant re-write
    • Extracted the embedded picking functions from the core QuakeScan class to a new module, quakemigrate.signal.pickers.
    • General improvements to picking through a mix of fixes and features. Major improvement to clarity/style.
    • Created an Abstract Base Class – PhasePicker. This class can be used as a base class for a class implementing an alternative phase picking algorithm, while ensuring compliance with the embedded code in QuakeMigrate.
    • The user can provide a different onset function for phase picking using GaussianPicker than they used for migration in locate().
    • Bug fixes related to calculating the pick threshold; new option to use the median absolute deviation of the noise, rather than a percentile. See #116.
    • Fitting a 1-D Gaussian to the phase onset function remains the default method of phase picking.
    • quakemigate.signal.trigger
    • Add dynamic trigger threshold method based on the median absolute deviation, a robust statistical estimator that is insensitive to extreme outliers. See #59.
    • Added the ability to trigger events restricted to a specific region of the grid (specified as geographic coordinates, and illustrated on the trigger summary plot).
    • Numerous bug-fixes related to the handling of overlapping triggers.
    • Fix an indexing bug in trigger that caused the last event to be missed if it was a single sample in length.
    • quakemigrate.signal.local_mag – new! See #71
    • A comprehensive suite of codes for local earthquake magnitude calculation by measuring displacement amplitudes from Wood-Anderson simulated seismograms.
    • This can optionally be used as part of a locate run to automatically output ML estimates for each located event.
  • General changes
    • Update to various class attributes. Deprecation warnings + internal attribute re-mappings have been included to ease the transition.
    • Add additional examples (Rutford icequakes + Iceland dike intrusion). This includes a script that performs data download from IRIS through an FDSN client. See #105.
    • Option to locate events from a user-provided triggered event file, as well as the existing functionality to automatically read triggers between two timestamps from the default output directory structure. See #53.
    • Re-write setup.py to automatically build the C extension library and link it to the rest of the package. Should be more robust on different platforms. Functions to read .dll or .so files (depending on operating system) have been added to automatically load the correct linked library. See #84.
    • Add a system of module imports through __init__.py files to reduce the verbosity of input statements.
    • New, intuitive directory structure for outputs, allowing straightforward batch processing of data archives. See #68.
    • Option to run trigger() multiple times from the same detect() output by using different run sub-names. Also incorporated into the functions used by locate() to read triggered event files.
    • Add readthedocs documentation with sphinx. Here we can host the documentation for the source code, instructions on installation, and tutorials on how to use the package.
    • The internal reference frame has Z being positive down (the depth frame). Station elevations in the station input file are in the positive up (elevation/natural frame) and converted internally.
    • More information on intermediate results is retained in the final output files. For example, the coalescence and normalised coalescence values for a triggered event, along with which value it was triggered against.
    • Added tests based on the "Iceland Icequake" and "Volcanotectonic_Iceland" example use-cases to veryify correct operation ofter installation.
    • Added Continuous Integration (Travis CI) allow us to catch breaking issues before new features/fixes are merged and, in particular, should help us keep on top of changes related to upstream changes to dependencies.
    • License: QuakeMigrate v1.0.0 is released under the GPLv3 license.
  • Optimisations
    • Optimise compute by changing the flags passed to the the compiler. Bumped more of the compute() method to the C library to maximise efficiency. See a9ffdb6
    • Moved to logging with the native Python logging module, which allows for writing logs to file as well as stdout in a more concise manner. See #81

Thanks!

Thank you to all those who have contributed to this release, whether by writing code, reporting bugs, or suggesting new features and improvements! This includes, but is not limited to (listed alphabetically): * Pascal Audet * Vivek Babu * Conor Bacon * Paul Derand * GitHub user @fontiela * Miriam Gauntlett * Amy Gilligan * Tim Greenfield * Thomas Hudson * Junior Kimata * Ian Lee * Andrew Owen * Miriam Reiss * Daniel Roberts * Charlie Schoonman * Nate Stevens * Jonathan Smith * GitHub user @bvicic * GitHub user @SeisVincent * Tom Winder

- Python
Published by QuakeMigrate-developers about 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.2.3

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Update deprecated pandas features (Series.argmax -> Series.idxmax)
  • Allow for the use of numerical station names.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.2.2

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Rename the Data.pathtype attribute to Data.archiveformat.
  • Update the logging system - can now write to a log file as well as to stdout.
  • Fix empty archive bug which occurs if the very first timestep is empty leading to no availability information being generated.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.2.1

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Significant improvement to docstring coverage throughout the package.
  • Add more custom exceptions to further improve control system.
  • Rename internal C function names for clarity - now migrate() and findmaxcoa().
  • Update file extension for output of detect - '.scnmseed' to '.scanmseed'.
  • Internalise reading of velocity model information from file.
  • Added availability information to the trigger plot - useful for diagnosing variations in coalescence signals or changes in event detection rates.
  • Fix reading in of coalescence streams during trigger.
  • Fix upsampling method to correctly order the interpolated datapoints.
  • Rename the mSEED class to Data as we are able to read other standard data formats as well.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.2.0

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Modularise the Trigger stage - it now acts as a standalone stage with its own API.
  • Start a new utility module (QMigrate.util) to collect together various functions that are useful across the package.
  • Add some custom exceptions to build a more robust control system.
  • Remove the redundant second _compute() call in detect used to calculate the normalised coalescence. It is instead calculated by dividing the output of the first _compute() call by the average value in the coalescence volume at each time step. This resulted in a ~40% speedup of detect/locate.
  • Add the ability to resample data by upsampling with a linear interpolation scheme before decimating down to the target sampling rate.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.1.2

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Fix issue with reading data over a yearline.
  • Refactor plotting functions to independent plot module.
  • Refactor SeisOutFile to independent io module.
  • Restructure output directories.
  • Fix a floating point rounding error when calculating the number of samples in the mSEED data traces.
  • Refactor the internal location error functions.
  • Added spline fit to marginalised coalescence map - this returns the subgrid maximum coalescence (and hence best estimate of hypocentre) location.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.1.1

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Update terminal outputs to have a more consistent format.
  • Amend the Gaussian pick search window to capture an additional sample.
  • Added str methods to Scan, LUT, mSEED classes to provide descriptions of the current parameter settings.
  • Gaussian coalescence method (unused) was officially deprecated.
  • Added a Gaussian filter to the marginalised coalescence before fitting a 3-D Gaussian.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.1.0

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Add the ability to generate a traveltime lookup table using the NonLinLoc powered 2-D velocity model sweep.
  • Update 3-D NonLinLoc lookup table reading.
  • Fix updategrid_centre() in NonLinLoc class to correctly project between coordinate systems.
  • Add some additional path structures for the mSEED class.
  • Enforce the requirement for the minimum repeat window to be at least twice the width of the marginal window.
  • Change the multiplication factor used when casting the outputs of the detect scan to integer in order to avoid any potential overflow problems.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.0.5

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Update deprecated features in pandas and pin to pandas version 0.19.*
  • Change the internal definition of the lookup table elevation.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.0.4

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Internalise onset centred attribute on Scan class.
  • Move to using the public obspy.Trace.merge(method=-1) over the internal _cleanup() method, for stability.
  • Internalise the parsing of velocity model files.
  • Update example running scripts and notebooks.
  • Fix the generation of event IDs to correctly remove all punctuation.
  • Move source code from src/QMigrate to QMigrate.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.0.3

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Fix naming issue when reading normalised coalescence miniSEED.
  • Move downsample function into the mSEED data class.
  • Update path structure handling to include a run name.
  • Change file extension of the mSEED file output by the detect scan to '.scanmseed'.
  • Various minor alterations/fixes.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.0.2

A Python package for the detection and location of microseismicity from continuous seismic data.

Changelog

  • Transfer of refactor/rewrite work performed on the previous incarnation of the package.
  • Addition of numpy-style docstring stubs across package.

- Python
Published by hemmelig over 5 years ago

https://github.com/quakemigrate/quakemigrate - QuakeMigrate v0.0.1

A Python package for the detection and location of microseismicity from continuous seismic data.

This is a pre-production release of QuakeMigrate - it is incomplete, but in a functioning alpha state. It is expected that many aspects of the API will continue to change as bugs are found and the code is refactored, but the core features of the package are complete.

- Python
Published by hemmelig over 5 years ago