SeisCat Changelog
Keep a local seismic catalog.
Copyright (c) 2022-2026 Claudio Satriano satriano@ipgp.fr
/\_/\
~~( ⊙.⊙ )~~ SeisCat
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.
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
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 🐱
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 columnraw_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 theraw_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
0it’s now possible to dismiss the event sorting popup by pressing
escorq.
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.
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--wherefilter 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
--colorbytime-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 +--colorbyonly): 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 initdbandseiscat updatedbto crop imported events according to configured selection criteria.Added new CSV import option
-x, --missing-valueinseiscat initdbandseiscat 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 forseiscat 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.sqlitetoseiscat_db.sqlite.Improved error messages for
--whereto suggest using--where-help.Improved
--wherehandling of missing values:mag=Nonemag==Nonemag!=Noneare 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 eachKEY=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.
0.8 - 2024-10-28
New option for
seiscat printandseiscat plot:--whereto filter events based on one or more conditionsNew option for
seiscat plot:--maptypeto use eithercartopy(Matplotlib) orfolium(HTML) for plotting mapsNew command line option
seiscat downloadto download full event details and/or waveform data and metadata from FDSNWS services
0.7 - 2024-03-11
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
0.6 - 2023-06-26
New command to edit the event database:
seiscat editdbeventidargument forseiscat print, to print a specific eventFix 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
0.5 - 2023-06-22
New configuration option:
overwrite_updated_events. Default isFalseand 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 topRename database column
deptodepth
0.4 - 2023-06-20
Command line autocompletion, thanks to argcomplete
Show event depth in plot annotation
--scaleoption forseiscat plotCorrectly parse evids from USGS and ISC
Exit gracefully if database file is missing
Fix printing of
Nonevalues
0.3 - 2023-06-20
New command to print catalog to screen:
seiscat printDocumentation!
0.2 - 2023-06-19
Fix for plotting the whole world when no limits are given
New way of computing zoom level for map tiles
0.1 - 2023-06-19
This is the initial release of SeisCat.
SeisCat is a command line tool to keep a local seismic catalog. The local catalog can be used as a basis for further analyses.
The seismic catalog is built and updated by querying a FDSNWS event webservice. More ways of feeding the catalog will be added in the future.
The local catalog is stored in a SQLite database (single file database).