Difference between revisions of "CSEP 2 CATALOG FORMAT"

From SCECpedia
Jump to navigationJump to search
Line 9: Line 9:
 
</code>
 
</code>
  
<code>'''longitude'''</code>: longitude in decimal degrees {float64} [-180,180]</br>
+
<code>'''longitude'''</code>: longitude in decimal degrees</br>
<code>'''latitude'''</code>: latitude in decimal degrees {float64} [-90,90]</br>
+
<code>'''latitude'''</code>: latitude in decimal degrees</br>
<code>'''M'''</code>: magnitude arbitrary units {float32} </br>
+
<code>'''M'''</code>: magnitude arbitrary units</br>
<code>'''epoch_time'''</code>: time in milliseconds since unix epoch {int64} [-inf, inf]</br>
+
<code>'''epoch_time'''</code>: time in milliseconds since unix epoch</br>
<code>'''depth'''</code>: hypocenter depth in (km) {float32} [0, inf] </br>
+
<code>'''depth'''</code>: hypocenter depth in (km) {float32}</br>
<code>'''catalog_id'''</code>: indicates type of catalog {int32} </br>
+
<code>'''catalog_id'''</code>: indicates type of catalog</br>
 
* observed: -1
 
* observed: -1
* simulated: [0,n_cat-1]
+
* simulated: [0, n_cat-1]
  
 
This format can be easily extended to additional file types, including more advanced storage types like HDF5 or databases.
 
This format can be easily extended to additional file types, including more advanced storage types like HDF5 or databases.
 
The binary format will need a header that includes the number of catalogs and the version number of the format (this is if we decide to change things down the road).
 
The number of catalogs should be an int32 and the version can be an int16. Each catalog in the binary format should include an int32 header value that contains the number of events in the catalog.
 
  
 
== Example Catalog ==
 
== Example Catalog ==

Revision as of 17:43, 26 May 2020

Summary

The general philosophy is that the file type should be human readable and easy to use for both researchers and developers. We should support multiple readers to ingest various catalog formats into the PyCSEP codebase.

The catalog will initially be defined as an ASCII .csv format where each row corresponds to a single event. This file will have the following headers:

longitude, latitude, M, time_string format="%Y-%m-%d %H:%M:%S.%f", depth, [catalog_id]

longitude: longitude in decimal degrees
latitude: latitude in decimal degrees
M: magnitude arbitrary units
epoch_time: time in milliseconds since unix epoch
depth: hypocenter depth in (km) {float32}
catalog_id: indicates type of catalog

  • observed: -1
  • simulated: [0, n_cat-1]

This format can be easily extended to additional file types, including more advanced storage types like HDF5 or databases.

Example Catalog

lon,lat,M,epoch_time,depth,catalog_id,event_id
-117.43017,35.616665,4.73,1562383355630,9.35,-1 -117.7365,35.891,4.64,1562383368300,9.1,-1 -117.617836,35.803165,4.84,1562383430720,11.44,-1 -117.67083,35.86067,4.61,1562383527970,10.32,-1 -117.52167,35.55517,4.68,1562386024570,5.64,-1 -117.58083,35.777668,3.85,1562386249040,10.41,-1 -117.69067,35.902332,3.83,1562386262210,7.27,-1 -117.72283,35.887333,3.87,1562386338850,9.17,-1 -117.6145,35.584667,4.8,1562386387080,9.73,-1 -117.402664,35.604168,3.84,1562386460800,6.72,-1 -117.49067,35.6795,3.74,1562386471370,0.91,-1 -117.68483,35.910168,5.44,1562386735790,7.41,-1 -117.6175,35.785,4.49,1562386755470,10.6,-1 -117.717,35.885,3.83,1562386794940,4.9,-1