Changelog
All notable changes to the pysmo project will be documented in this file.
[Unreleased]
๐ Bug Fixes
- (iccs) Fix save cancel callback on buttons
- Distinguish between required/non-required sac time headers
๐ Documentation
- Remove unused mkdocs-macros-plugin
๐ Other Changes
- Install pandas
๐ง Refactoring
- Migrate from stdlib datetime to pandas Timestamp/Timedelta (#252)
- (tools-iccs) Make figures modular for easier re-use
- Use 2 descriptors instead of 1 complicated one for sac timestamps
- (signal) Add filter registry decorator (#257)
๐ New Features
- (tools-signal) Add multi-delay functions (#249)
- (tools-signal) Add mccc function
1.0.0.dev0 - 2026-02-17
โ๏ธ DevOps & Infrastructure
- Combine coverage results before uploading and add osx
- Add dependabot for gh actions
- Add gh-pages workflow
- Use poetry with mkdocs
- Use dynamic versioning
๐จ Styling
- Switch to formatting with black
๐ Bug Fixes
- Fix typo
- Adjust tutorial to new naming in sac class
- Add event time to SacEvent (#120)
- Use paramspec (for now) on value_not_none decorator
- Importerror (#136)
- Move coverage combine out of tox for gh actions
- Need to clear cache after updating time window
- Ensure iccs seismogram lengths are always equal
- Add key to sorted call
- Index was out of bounds with --all
- Allow selecing index 0
- Correct type in sacstation.elevation setter
๐ Documentation
- Switch from sphinx to mkdocs (#111)
- Switch to google type docstrings. (#112)
- Update "not-so-fast" section
- Be a bit more specific in 'rules of the land'
- Add linting instructions to contribution section
- Add mkdocstrings-python
- Switch to jupyter lab, update packages
- Update tutorial
- Add BIB_FILE env variable
- Update mkdocs-bibtex
- Bump python version in build
- Add bib file
- Use relative paths for images and other pages
- Update noise example
- Add a small paragraph on how to use the documentation
- Switch to zensical
- Simpler tutorial
- Split usage into smaller sections
- Update development section
- Add FAQs
- Add more details to readme
- (cliff) Add more filters
- (faqs) Add diagram showing how pysmo relates to third party modules
๐ฆ Miscellaneous
- Ignore black commit in git blame
- Update packages
- Add py312 to matrix
- Don't install pandoc, don't run post attach commands (#143)
- Update packages and run tox lint and report on py312
- Cleanup CI config
- Update packages and format some code
- Update pytest to version 8 (#160)
- Update dependencies
- Update deps
- Upload hidden files as artifacts for codecov ci step
- Updates and some code cleanup
- Tweaks to docs and add python 3.13 to matrix (#176)
- Add CNAME file for gh-pages
- Switch to uv (#199)
- Move to ./src directory
๐ Other Changes
- Add code linting to Makefile and clean up code a bit
- Add github actions workflow for testing
- Add codecov to github action
- Change codecov report filetype to xml
- Remove travis stuff and update badge in readme
- Remove extra bracket in README
- Add coverage filename to gitignore
- Add version badge to readme
- Add pypi badges
- Add build action
- Really add build action...
- Add path to artifact download so that the pypi action finds build
- Bump version to 0.8.0-dev1 to test package upload to pypi-test
- Add quickstart to README
- Update readme to show how to install from github directly
- Next version will be stable 1.0.0
- New sacheaders (#46)
- Add protocols and rewrite functions to use them
- Introduction (#49)
- Update installation instructions.
- Add devcontainer config
- Documentation - Fundamentals (#53)
- Seismogram Protocol (#55)
- Fix documentation (#57)
- Furo (#58)
- Use newer pypi-publish action
- Add some tests for the Station protocol
- Skip publishing to test pypi on untagged commits
- Add tests for event protocol
- First draft of intro section
- Event is too generic as a type -> Epicenter and Hypcenter (#67)
- Update readme to fit in better with the documentation. (#68)
- New Documentation Structure (#70)
- Edit Makefile to run also on windows
- Remove "core" directory and reorganise psymo content
- Add readme files to source directory
- Use nested classes in SAC class (#77)
- Add Mini classes (#78)
- Normalize function and test file for the func (#76)
- Cleanup tests
- Documentation for "types"
- Update dependencies
- Bug fix in normalize function
- Classes documentation
- Add docs for functions
- Add tools documentation
- Add inherited attributes to SAC documentation
- Added instructions for setting up dev env on Windows (#82)
- Update packages
- Update Devcontainer Config (#93)
- Don't run make notebook on attach
- Test with tox and add windows to matrix (#94)
- Fix spaces in tox.ini
- Ignore additinal coverage files
- Add lib/defaults.py
- Change tox config
- Update packages
- Create tox venv without docs packages
- Update noise tool to use pysmo types
- Added content to contributing section of docs (#88)
- Add rules of the land chapter to docs. (#102)
- Update "more on types" section
- Bump version in pyproj.toml
- Modify build workflow to run on new tags
- Issue #65: providing error message from IRIS service (#105)
- Noise tests (#106)
- Add a bit more testing (#107)
- Rename _Sacio to SacIO and move it to pysmo/lib/io
- Use poetry to generate requirements.txt in readthedocs build
- Update deps
- Don't build singlehtml
- Add py.typed
- Small tweaks to test config
- Strip whitespaces and \x00 chars when reading sac files.
- Fix typo in mini module documentation
- Fix typo in makefile help string
- (feat) Add sac timestamps
- Cut function
๐ง Refactoring
- Move SAC helper classes inside SAC class
- Move functions into a single file
- Rewrite sacio as (pydantic) dataclass
- Use pydantic dataclass for mini classes
- Change clone_to_miniseismogram function to classmethod clone in MiniSeismogram
- Use attrs instead of pydantic
- Rename sacio jinja template file
- Rename sampling_rate to delta.
- Remove methods and use functions only
- Use timedelta instaed of float for seimsmogram.delta
- Split sacio module into rendered and non-rendered files
- Use httpx instead of requests
- Use pathlib a bit more
- Update time2index and related functions
- Clean up code and make sure to use np functions where applicable
- (tools-iccs) Clarify types of prepared seismograms used in iccs
๐ New Features
- Add methods corresponding to functions to mini class
- Add Event type and MiniEvent class
- Sacio.py can read SAC version 7 files
- RuntimeError when trying to read invalid SAC file.
- Use nix dev environment (#153)
- Add time_array function
- Remove converters from mini classes
- Add unix_time_array function
- Add delay function
- Use generic types in functions
- Add time2index function
- Add clone arg to functions
- Add clone and copy funcs
- Prevent changing header value if it is also zero time
- Allow restricting max value search to window when normalising seismogram
- Add initial ICCS implementation (#198)
- Iccs pick function
- Add padding to iccs plots
- Add iccs time window picker
- Make showing iccs figures optional
- Add concurrent processing to iccs
- Resample seismograms in iccs
- Add pad function
- Add checks for iccs timewindow and pick updates
- Add uuid_shortener function
- Iccs-select-ccnorm function
- Add titles to iccs figures
- Add progressive scrolling to min_ccnorm selecter and add option to include all seismograms
- Add channel and location to station type
- Add windows function and add py3.14
- (iccs) Taper on outside of window
- Retry from_iris on error status 500
- (signal) Add butterworth filters
- (iccs) Add bandpass filtering to iccs (#248)
๐งช Testing
- Rearrange test structure to match changes in src structure
- Re-organise test folders and fixtures.
- Lint with ruff instead of flake8
- Check tutorial notebook runs error free
- Add codecov token to workflow
- (sacio) Add retries to IRIS web service requests and tests
- Add common test helper script and use snapshots (#243)
- (signal) Add unit tests for butter filters
- Snapshot regression testing with 6-decimal rounding to seismogram functions (#246)
- (signal) Verify butterworth with sac implementation (#247)
0.8.0 - 2021-08-23
๐ Other Changes
- Added two methods to sacio.SacIO: read_data and from_data. It will allow to read a SAC file from memory, for example, if the file comes from a URL request, avoid to save it into a temporary file.
- It was a mistake when reading the data section of the SAC file. Solved.
- Added SacIO.from_iris
- Removed a debug print
- Add contributors to README
- Minor code cleanup
- Add update command to Makefile
- Update dependencies
- Update docs to show use of poetry instead of pipenv
- Next version will be 0.8.0
0.7.7 - 2021-06-29
๐ Other Changes
- Fix formatting and add publish option in Makefile
- Add codecov hook to travis.yml
- Add codecov badge to readme
- Fix typo
- Fix enum header bug and update dependancies
- Be sure to convert enumerated headers to int
- Bump version to 0.7.7
0.7.6 - 2020-12-14
๐ Other Changes
- Switch from pipenv to poetry
- Move poetry install to install step
- Remove init from makefile
- Setup.py not needed with poetry
- Add readthedocs CI files
- Specify additional docs to build
- Can we pip install local package
0.7.5 - 2019-08-19
๐ Other Changes
- Use yaml.safe_load instead of yaml.load.
- Update Makefile
- Ensure all python versions in travis.yml are used
- Update installation instructions for conda users.
- Check if pipenv is already installed before running pip install pipenv
- Change heading for conda installation
- Add development docs.
- Update packages
0.7.4 - 2019-01-11
๐ Other Changes
- Make init.py more concise.
- Add derived headers kztime and kzdate. (#25)
- Add some conda installation instructions.
- Add .python-version to .gitignore
- Pipenv (#26)
- Remove py2 (#27)
0.7.3 - 2018-12-05
๐ Other Changes
- Use pytest for SacIO tests. (#23)
- SacIO objects now can be pickled and deep copied.
0.7.2 - 2018-12-04
๐ Other Changes
- Sacio2 (#15)
- Make setup.py read requirements.txt
- Check validity of headers.
- Use try/except instead of if for
.rstrip() - Recommend using virtualenv for installation.
- Add virtualenv to installation instructions.
- Add virtualenv to installation instructions.
- Ensure SacIO is used instead of SacFile in the documentation.
- Fix typo in docs.
- Fix typo in docs.
- Rename SacFile -> SacIO in sacfunc.py
- Use include_package_data instead of data_files.
- Use short paths for core modules in example docstrings.
- Fix typo and adjust requirements.txt to install scpiy 1.1
- Fix bug where sacheader descriptor was shared across instances.
- Cleanup using pylint (#22)
0.6.1 - 2018-09-28
๐ Other Changes
- Initial sphinx documentation
- Documentation structure done, still need content though.
- Add more documentation. Add scm_version to setuptools.
- Move use('Agg') further up.
- Add pip installation instructions.
0.6.0 - 2018-09-10
๐ Other Changes
- Don't track .DS_Store files.
- Convert to py3
- Setup travis
- Remove itertools for python3 compatibility
- Remove itertools for python3 compatibility
- Adjust setup.py for pkgutil and move pysmo source to root directory.
- Basic read/write tests for sacio
- Fix bytencoding for py3
- Store SAC header meta information in a separate yaml file.
- Add pyyaml to requirements
- Add yml file to setup.py - not installed otherwise
- Clean up code in sacfunc.py and add tests for each function defined there. (#9)
- Add gitter notification to travis
- Import future for forwards compatiblility
- Place SAC header fields in a separate descriptor class.
- Rename sacfile to SacFile.
- Move 'tools' into this repo, version bump to 0.6
- Update README.md
[0.5.1] - 2014-08-07
๐ Bug Fixes
- Fixed merge
๐ Other Changes
- Initial commit
- Initial import of pysmo.sac
- Minor formatting changes
- Need init.py in pysmo dir so that sac part is picked up
- Small cleanup
- Ade
- Update README.md
- Update README.md
- Temp save for sac
- Reverted
- Filename wrong
- New version
- Don't want to track the buld directory
- Change