Releases: SeismicSource/seiscat
v0.9.4
SeisCat
Keep a local seismic catalog.
Copyright (c) 2022-2026 Claudio Satriano satriano@ipgp.fr
SeisCat is an open-source command-line tool for keeping and querying a local seismic catalog.
Source code:
github.com/SeismicSource/seiscat
Documentation:
seiscat.readthedocs.io
If you use SeisCat in your work, please cite:
Satriano, C. (2026). SeisCat: Keep a local seismic catalog (X.Y). doi: 10.5281/ZENODO.8411836
Replace X.Y with the specific SeisCat version number used in your study.
/\_/\
~~( ⊙.⊙ )~~ SeisCat
Changes in this version:
0.9.4 - 2026-04-23
Added
- New
station_codesconfiguration parameter for filtering stations by name
when downloading waveforms (analogous tochannel_codes).
Supports multiple codes and wildcard patterns (?,*). - New
picked_stations_onlyconfiguration parameter to restrict waveform
downloads to stations that have at least one P or S-wave arrival in the
catalog (requires a QuakeML event details file to be present). seiscat self statusnow reports installation status of optional plotting
modules (cartopy,plotly,pandas,folium).
Fixed
- Fixed
seiscat self update --gitto install optional plotting/data
dependencies (cartopy,plotly,folium) together with
SeisCat.
v0.9.3
SeisCat
Keep a local seismic catalog.
Copyright (c) 2022-2026 Claudio Satriano satriano@ipgp.fr
SeisCat is an open-source command-line tool for keeping and querying a local seismic catalog.
Source code:
github.com/SeismicSource/seiscat
Documentation:
seiscat.readthedocs.io
If you use SeisCat in your work, please cite:
Satriano, C. (2026). SeisCat: Keep a local seismic catalog (X.Y). doi: 10.5281/ZENODO.8411836
Replace X.Y with the specific SeisCat version number used in your study.
/\_/\
~~( ⊙.⊙ )~~ SeisCat
Changes in this version:
0.9.3 - 2026-04-20
Fixed
- Fix capitalization of SeisCat in small logo 😳
- Fix
seiscat self updatelogic to properly handle up-to date versions
v0.9.2
SeisCat
Keep a local seismic catalog.
Copyright (c) 2022-2026 Claudio Satriano satriano@ipgp.fr
SeisCat is an open-source command-line tool for keeping and querying a local seismic catalog.
Source code:
github.com/SeismicSource/seiscat
Documentation:
seiscat.readthedocs.io
If you use SeisCat in your work, please cite:
Satriano, C. (2026). SeisCat: Keep a local seismic catalog (X.Y). doi: 10.5281/ZENODO.8411836
Replace X.Y with the specific SeisCat version number used in your study.
/\_/\
~~( ⊙.⊙ )~~ SeiScat
Changes in this version:
0.9.2 - 2026-04-20
Added
- New installer script to install SeisCat
as a uv-managed system tool on Linux, macOS, and Windows (PowerShell). - New
seiscat selfworkflows for self-management, including
updates (seiscat self update,seiscat self update --git) and shell
completion setup (seiscat self completion install). - New ascii-art small logo 🐱
v0.9.1
SeisCat
Keep a local seismic catalog.
Copyright (c) 2022-2026 Claudio Satriano satriano@ipgp.fr
SeisCat is an open-source command-line tool for keeping and querying a local seismic catalog.
Source code:
github.com/SeismicSource/seiscat
Documentation:
seiscat.readthedocs.io
If you use SeisCat in your work, please cite:
Satriano, C. (2026). SeisCat: Keep a local seismic catalog (X.Y). doi: 10.5281/ZENODO.8411836
Replace X.Y with the specific SeisCat version number used in your study.
Changes in this version:
0.9.1 - 2026-04-17
Added
- New config options
fdsn_event_userandfdsn_event_passwordto specify
authentication credentials for the FDSN event web service (fdsn_event_url). - New config options
fdsn_providers_usersandfdsn_providers_passwords
(parallel lists) to specify per-provider authentication credentials for
waveform/metadata providers (fdsn_providers). - New config option
keep_raw_evid(default:False). WhenTrue, the full
originalresource_idstring is stored in an additional protected column
raw_evidalongside the normalizedevid. This is useful when the
normalized evid is not recognized by the FDSN server and the original
resource_id is needed to download event details. seiscat fetchdata: when downloading event details fails with the
normalizedevid, automatically retry using theraw_evidvalue (if the
raw_evidcolumn is present in the database).- New
--max-col-widthoption forseiscat printto limit the width of
columns in the interactive table pager. Longer values are truncated with
..., while full row details remain available via the Enter popup. seiscat printinteractive event sorting popup:- option to restore the default sort order by pressing
0 - it's now possible to dismiss the event sorting popup
by pressingescorq.
- option to restore the default sort order by pressing
Fixed
- Fixed pager sorting failing when a column contains
Nonevalues mixed with
numeric values (e.g. magnitude columns with positive and negative values). - Fixed
seiscat plot -b cartopycrashing withIndexErrorwhen the map
extent is very small (e.g. near-coincident events), by falling back to the
simple background when Natural Earth imagery cannot be rendered. - Fixed clipboard copying of evid not working on linux.
v0.9
SeisCat
Keep a local seismic catalog.
Copyright (c) 2022-2026 Claudio Satriano satriano@ipgp.fr
SeisCat is an open-source command-line tool for keeping and querying a local seismic catalog.
Source code:
github.com/SeismicSource/seiscat
Documentation:
seiscat.readthedocs.io
If you use SeisCat in your work, please cite:
Satriano, C. (2026). SeisCat: Keep a local seismic catalog (X.Y). doi: 10.5281/ZENODO.8411836
Replace X.Y with the specific SeisCat version number used in your study.
Changes in this version:
0.9 - 2026-04-15
This is a major release with substantial improvements across visualization,
database management, and workflow automation. Highlights include a new
interactive terminal UI, expanded plotting capabilities with Plotly, and four
new core commands: seiscat timeline, seiscat export, seiscat cropdb, and
seiscat run. Additional enhancements throughout the CLI make filtering,
import/export, and event processing more powerful and flexible.
Minimum required Python version is now 3.9, and support for Python
3.13 and 3.14 has been added.
See the full changelog below for complete details.
Added
Compatibility
- Added support for Python 3.13 and 3.14.
CLI and User Interface
- Added colored help output using
rich-argparse. - Added colorized error messages for improved visibility and consistency.
- Added interactive table pager for
seiscat print -f tablewith:- fixed header
- alternating row colors
- row selection
- sorting
- copying evid
- keyboard navigation
- event details popup
- Added new
seiscat logocommand to print the ASCII-art SeisCat logo.
Filtering and Sorting
- Added new
--where-helpoption to display detailed help for the--where
filter expression, including syntax, examples, and notes. Available from any
subcommand supporting--where(editdb,print,export,plot,
fetchdata,run). - Added new
--sortbyoption to sort catalog output by any database field
(default:time). Available for:seiscat printseiscat exportseiscat plotseiscat run
- Added tab-completion support for
--sortbyfield names.
Plotting and Visualization
- Added new
seiscat timelinecommand with:- matplotlib / plotly / terminal backends
- attribute or count mode (
--count,--bins) - optional
--colorby - time-formatted axis/colorbar when using
time
- Added
--colorbysupport for map plots. - Added
--colormapsupport (with autocompletion) for:seiscat plotseiscat timeline
- Added new
--thresholdoption forseiscat plot(Cartopy +--colorby
only): markers above threshold retain a black outline. - Added new
plotlyplottype forseiscat plot, enabling interactive 3D
seismicity plots. - Added new
--out-fileoption forseiscat plotto save plots to file.
Data Import and Export
- Added
--fromfileoption toseiscat initdbandseiscat updatedbto
initialize/update the database from an event file.
Supported formats:- CSV
- Any ObsPy-supported format (QuakeML, SC3ML, NLLOC, etc.)
- Added
-C, --cropoption for file-based imports inseiscat initdband
seiscat updatedbto crop imported events according to configured selection
criteria. - Added new CSV import option
-x, --missing-valueinseiscat initdband
seiscat updatedbto define missing-value markers (e.g.-999,N/A). - Added new
--csv-extra-columnsoption toseiscat initdbfor importing
non-standard CSV columns as additional database fields. - Added new
seiscat exportcommand to export catalogs in:- CSV
- GeoJSON
- KML
Database Management
- Added new
seiscat cropdbcommand to crop an existing database to configured
selection criteria. - Added
seiscat editdboptions to:- add table columns
- delete table columns
- rename table columns
- Added protection for default columns against rename/delete.
- Added new
seiscat getandseiscat setcommands to retrieve/set specific
event attribute values.
Automation and Scripting
- Added new
seiscat runcommand to run a user-defined command on each event. - Added new
seiscat samplescriptcommand to generate a sample script for
seiscat run.
Data Retrieval
- Added new
--sdsoption forseiscat fetchdatato retrieve waveform data
from a local SDS archive.
Configuration
- Added new configuration option
prefer_high_sampling_rate. - Added new configuration option
station_radius_max_magfor
magnitude-dependent maximum station radius.
Changed
- Raised minimum required Python version to 3.9.
- Changed default database filename from
seiscat.sqliteto
seiscat_db.sqlite. - Improved error messages for
--whereto suggest using--where-help. - Improved
--wherehandling of missing values:mag=Nonemag==Nonemag!=None
are now translated into SQLIS NULL/IS NOT NULL.
- Renamed
-m/--maptypeto-b/--backendinseiscat plotfor consistency
withseiscat timeline. - Renamed
seiscat downloadtoseiscat fetchdata. - Replaced configuration option
channel_prioritieswithchannel_codes. seiscat plotnow respects--sortbyinstead of always sorting by time,
allowing control over draw order.- Upgraded Cartopy maps to use higher-resolution Natural Earth background
images. seiscat editdbnow requires repeating--setand--incrementfor each
KEY=VALUEpair. Example:-s locked=True -s processed=True.
Removed
- Removed configuration option
location_priorities. - Removed CSV output format from
seiscat print; useseiscat exportinstead.
Fixed
- Fixed an issue in seiscat editdb where positional arguments (
eventid,
event_version) were not parsed correctly due to improper handling of
--setand--increment.
Release v0.8
- New option for
seiscat printandseiscat plot:--whereto filter events
based on one or more conditions - New option for
seiscat plot:--maptypeto use eithercartopy
(Matplotlib) orfolium(HTML) for plotting maps - New command line option
seiscat downloadto download full event details
and/or waveform data and metadata from FDSNWS services
Release v0.7
- CSV output for
seiscat print, using--format=csv(or-f csv) - Special argument
ALLforseiscat editdbto edit all the events
(or all the events of a given version when used together with the
--versionargument) - New option for
seiscat editdb:--incrementto increment (or decrement)
a numeric field by a given, positive or negative, amount
Release v0.6
- New command to edit the event database:
seiscat editdb eventidargument forseiscat print, to print a specific event- Fix bug where an event was updated when extra fields were set to a different
value than the default - Fix bug where an event was updated to new version even if the same event
already existed in the database
Release v0.5
- New configuration option:
overwrite_updated_events. Default isFalse
and updated events get an incremented version number --allversionsoption forseiscat printandseiscat plotto print/show
all the versions for events with more than one version--formatoption forseiscat print: current possibilities aretable
(default) andstats--reverseoption forseiscat print: if set, latest events will be printed
on top- Rename database column
deptodepth
Release v0.4
- Command line autocompletion, thanks to argcomplete
- Show event depth in plot annotation
--scaleoption forseiscat plot- Correctly parse evids from USGS and ISC
- Exit gracefully if database file is missing
- Fix printing of
Nonevalues