Skip to main content

CSV and CSZ read/write support for ObsPy earthquake catalogs

Project description

## Installation

Install ObsPy. After that install obspycsv using pip by:

pip install obspycsv

## Usage CSV

CSV format can be used to store a catalog with basic origin properties. Picks cannot be stored.

` >>> from obspy import read_events >>> events = read_events() # load example events >>> print(events) 3 Event(s) in Catalog: 2012-04-04T14:21:42.300000Z | +41.818, +79.689 | 4.4 mb | manual 2012-04-04T14:18:37.000000Z | +39.342, +41.044 | 4.3 ML | manual 2012-04-04T14:08:46.000000Z | +38.017, +37.736 | 3.0 ML | manual >>> events.write('catalog.csv', 'CSV') # declare 'CSV' as format >>> print(read('catalog.csv')) 3 Event(s) in Catalog: 2012-04-04T14:21:42.300000Z | +41.818, +79.689 | 4.4 mb 2012-04-04T14:18:37.000000Z | +39.342, +41.044 | 4.3 ML 2012-04-04T14:08:46.000000Z | +38.017, +37.736 | 3.0 ML >>> cat catalog.csv time,lat,lon,dep,mag,magtype,id 2012-04-04T14:21:42.30000,41.818000,79.689000,1.000,4.40,mb,20120404_0000041 2012-04-04T14:18:37.00000,39.342000,41.044000,14.400,4.30,ML,20120404_0000038 2012-04-04T14:08:46.00000,38.017000,37.736000,7.000,3.00,ML,20120404_0000039 `

It is possible to load arbitrary csv files. Define the field names in the code or use the first line in the file to define the field names. The following field names have to be used to read the origin time: time (UTC time string) or year, mon, day, hour, minu, sec. The following additional field names have to be used: lat, lon, dep, mag, magtype, id. magtype, mag and id are optional. For external csv files, the format ‘CSV’ has to be explicitly specified.

` >>> cat external.csv Year, Month, Day, Hour, Minute, Seconds, code, Lat, Lon, Depth, Station_count, time_residual_RMS, Magnitude, etc 2023, 05, 06, 19, 55, 01.3, LI, 10.1942, 124.8300, 50.47, 111, 0.0, 0.2, 42, 0.0, 0.0176, 0.0127, 0.02, 0.3, 2023abcde >>> fields = 'year mon day hour minu sec _ lat lon dep _ _ mag _ _ _ _ _ _ id'.split() events = read_events('external.csv', 'CSV', skipheader=1, fieldnames=fields) 1 Event(s) in Catalog: 2023-05-06T19:55:01.300000Z | +10.194, +124.830 | 0.2 None `

## Usage CSZ

CSZ format can be used to store a catalog with picks in a set of csv files zipped into a single file. It works similar to NumPy’s npz format. Because ObsPy automatically unpacks zip archives, to read files with ObsPy use the option check_compression=False or use the read_csz function directly. Compression may be used with compression and compresslevel parameters (see [zipfile doc](https://docs.python.org/library/zipfile.html#zipfile.ZipFile)).

` >>> events = read_events('/path/to/example.pha') >>> print(events) 2 Event(s) in Catalog: 2025-05-14T14:35:35.510000Z | +40.225, +10.450 | 3.5 None 2025-05-14T15:43:05.280000Z | +40.223, +10.450 | 1.8 None >>> print(len(events[0].picks)) 2 >>> events.write('catalog.csz', 'CSZ') >>> events2 = read_events('catalog.csz', check_compression=False) >>> print(events2) 2 Event(s) in Catalog: 2025-05-14T14:35:35.510000Z | +40.225, +10.450 | 3.5 None 2025-05-14T15:43:05.280000Z | +40.223, +10.450 | 1.8 None >>> print(len(events2[0].picks)) 2 `

## Miscellaneous

Plese submit an issue if you want to see support for other properties. Questions can be asked in the ObsPy forum.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obspycsv-0.3.0.tar.gz (7.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page