Releases: ispingos/pytheas-splitting
[Version 0.3.0+d14] Installation update and rotation bug fix
IMPORTANT This release is at an early development stage. New functionality is NOT detailed in the documentation. If you intend to use it, please refer to the following comments as well as the included README file. Also see the previous developer commits.
- Updated the installation scripts and added a
requirements.txt
file for PIP. - Updated README.
- Fixed a critical typo in 3D rotation that would lead to unreasonable rotated waveforms (see #5)
[Version 0.3.0+d13] Major bug fix
IMPORTANT This release is at an early development stage. New functionality is NOT detailed in the documentation. If you intend to use it, please refer to the following comments as well as the included README.nd file. Also see the previous developer commits.
- Fixed a critical bug that would prevent CCA from working
[Version 0.3.0+d12] Takeoff angle and database auto-sync
IMPORTANT This release is at an early development stage. New functionality is NOT detailed in the documentation. If you intend to use it, please refer to the following comments as well as the included README.nd file. Also see the previous developer commits.
TAKEOFF ANGLE:
- The takeoff angle is now included in the software, to provide more clarity on whether the user is processing s (upwards) or S (downwards) waves. Please remember that both the incidence and takeoff angles are acquired theoretically through TauP and, therefore, are highly dependent of the hypocenter quality and the velocity model.
- The takeoff angle is now shown in the header area of the main screen (
tkf
). The incidence angle label was shortened to save space (now calledinc
). - The takeoff angle is now shown in the station selection window.
- The takeoff angle is now included in the database and the CSV output.
- Might consider adding a 'WARNING' pop-up when opening S (i.e. takeoff < 90) arrivals.
DATABASE:
- Added a sync function for database entries. Any new columns added from now on should be automatically added to databses generated from older versions of the software.
BUG FIXES:
- Fixed some instances where traces would differ by 1 sample and waveform rotation could not happen, leading to errors.
- Did a cleanup to accomodate opening simple delimited catalogues, instead of QuakeML files. This needs more work.
- Moved velocity model parsing before catalogue opening. This resolves issues concerning incidence angle estimation on opening the catalogue (pre-TauP).
- Added a few more logging messages.
KNOWN BUGS:
- The station selection window does not show the backazimuths.
- The
OK
andCancel
buttons of the Catalogue CA window do not work. After the automatic processing is done, a message should be shown in the bottom black box stating the total time elapsed. When that appears, you can safely close the window. To interrupt the process, close Pytheas (try Alt+F4). - The black boxes in the CCA window are supposed to show thread-specific information, but they still need work. This is strictly a GUI issue and does not affect the background processing.
- CA for a single event is deactivated.
[Version 0.3.0+d11] Multiprocessing - Major changes
IMPORTANT This release is at an early development stage. New functionality is NOT detailed in the documentation. If you intend to use it, please refer to the following comments as well as the included README.nd file.
NEW FEATURE: MULTIPROCESSING
- Added a rough multiprocessing scheme of Cluster Analysis (CA) for Pytheas.
- This includes fixes concerning stability issues (see #3)
- A new thread will spawn additional processes for processing the given event catalogue in multiple cores, in parallel.
- Added a
number of cores
selector in the CCA preferences window. - CA for individual event-station pairs through the GUI is DISABLED until further notice. This is a feature we intent to reactivate in the future.
- Parallel processing has been tested in various large datasets (over 10,000 event-station pairs).
NEW FEATURE: CLI - EXPERIMENTAL
- Better be avoided until further notice.
- Moved several functions from
pytheas.py
totools.py
- Revised and updated several functions related to CA/CCA
- Removed
QThread
functionality fromclustering.py
NEW FEATURE: ALTERNATIVE PICKS
- Added the feature of using different picking methods, if the observed ones are missing from the catalogue, for CCA.
NEW FEATURE: SPECTROGRAM
- There is now an option to view the spectrogram of the current stream
ACQUISITION SCRIPTS
- Renamed acquisition scripts for clarity.
- Added multiple providers in
fdsn_get_waveform_data.py
, to enable downloading data from multiple nodes in one session. - Cleaned logging in
fdsn_get_waveform_data.py
EXCEPTIONS
- Added an
exceptions.py
module for custom exception classes
SNR-FILTER FIXES
- Moved the SNR and automatic filtering processes to the
tools
module - Peformed various cleanup actions for the SNR/auto-filter processes
- The new SNR should now properly be displayed when applying/removing filters
GENERAL
- Updated the example velocity model with better calculated densities
- Spectra of the horizontal channels will now represent the current state of the stream, instead of the initial. This means that if you now filter a stream, you should see the corresponding frequencies in the spectra.
- Added some system information logging
- Added a new function
tools.grouper
to permit more fine grouping of iterables. - Added a new function
tools.grid_dimensions
to permit the estimation of the 'best' grid dimensions for figures/layout - Did a pass on the prerequisites installer scripts.
- Added a workaround in cases where detrending fails. This should help in cases where event/station pairs would be omitted because
detrend
raised an exception. - The number of C95 contours should now be properly determined!
- Minor fixes/adjustments in CCA.
- Fixed various issues with switching between events and/or stations.
- Even if the angle of incidence changes after opening a new station (i.e. the angle is recalculated), the order of the stations should no longer change.
- The Calinski-Harabasz plot should now REALLY not show up in the CA figures (for real this time!).
- Swapped the Fast-Slow channels with the Radial-Transverse ones, in the EV/ME/RC plots. This should provide a clearer picture of the quality of the correction (since the transverse component is now shown).
- In the EV/ME/RC plot, the Radial-Transverse channels are either
RT
orQT
. This is defined by the user in theSplitting
toolbar. - Cleaned up the logging a bit (removed all those bloating
findfont
debug messages frommatplotlib
).
[Version 0.2.3] Minor fix
[Version 0.2.2] Critical Fix
- Fixed a compatibility issue with Pytheas and the latest version (0.23) of scikit-learn. If you were getting an
AttributeError
when using Cluster Analysis, it should now be corrected! - The
getEvents
script should now be better at identifying a simple catalogue file in the non-QuakeML format (see also a68b048).
[Version 0.2.1] Critical Fix
- Fixed an issue that would prevent the program from launching in a fresh environment.
- Mandatory directories will now be created on startup, if they do not exist.
[Version 0.2.0] Major Update - Automatic Filtering
Version 0.2.0 of the Pytheas software!
- Automatic Filtering
- Added the automatic filtering technique of Savage et al. (2010). A variety of pre-determined filters will be applied to the waveforms and the one with the highest SNR will be selected.
- Filters can be edited in the new Filters tab in Preferences.
- The two manually applied filters (previously fixed at 1-20 Hz and 1-10 Hz) can now be set by the user in the Filters tab. They can be found in the topmost rows of the table (i.e. the Preset 1 and Preset 2 filters).
- Rotating Log Files
- Log files will now split into smaller ones, after reaching a specified maximum size.
- The maximum size (in MB) can be provided by the user in Preferences
- Default Preferences
- To ensure compatibility with updates and provide a cleaner download, preference files in `pytheas/options/*.cnf' will now be written anew if they don't exist.
- If a preference field is missing from any
.cnf
file, it will be added automatically with a default value.
- Other Changes
- Added a SNR check in the CCA window.
- Added the option to use the Automatic Filtering method in CCA, instead of the fixed filters.
- Performed a touch-up on the initial splash image, to modernize it a bit.
- Updated the documentation in
docs
- Bugs
- Event and Station tables should no longer be editable.
- Event and Station tables cannot be opened more than once anymore.
- Event folder path retrieval process should now ignore non-eligible directory names without crashing.
- Removed the Calinski-Harabasz subplot from the CA figure, as it offered little to no value in evaluating the results.
- Performed a small pass over path construction, to use the
os.path.join
function (instead of string manipulation). More work will be conducted over time for this. - Fixed an incompatibility with newer versions of PyQt5 that would lead to crashes on launch.
- The
Reset Settings
button in Preferences will properly reset all settings to default.
[Version 0.1.2] Important Fix for CA
- The
Tend0
parameter for Cluster Analysis is now correctly acquired from the Preferences.
[Version 0.1.1] Minor Compatibility Fixes
Minor Compatibility Fixes
- Adjusted handling of TauP model building
- Fixed
catFile
not being acquired fromself
- Changed storing of
npz
files to velocity model's original directory to avoid issues with user's write permission to obspy''s directory. - Missing magnitudes should no longer cause problems when exporting to
csv
format - Made some changes to the logging of
csv
exporting. - Few adjustments to
.gitignore
- Added a quick check for StationXML files
- Added a check for valid latitude and longitude values in the QuakeML files. If any of those is
None
, the event will be skipped. - Added a quick fix for events with a depth of 0. For now, the event depth is set at 0.1 km. A non-zero depth is mandatory to calculate the incidence angle geometrically. A more elegant solution will be provided in a future release.
- Fixed instances of erroneous array loading from the database.