# Converted to Python 3.5.2 on 01-25-17
# by: Jeremy Webster
# coding: utf-8
"""
Center for Seismic Studies relational database schema 3.0 (CSS3.0)
"""
from datetime import datetime
from sqlalchemy import DateTime, Float, String, Integer
from sqlalchemy import Column
from sqlalchemy import PrimaryKeyConstraint, UniqueConstraint
from sqlalchemy.orm import declarative_base
from sqlalchemy.ext.declarative import declared_attr
from obspy.core import UTCDateTime
from pisces.schema.util import PiscesMeta
from pisces.schema.util import parse_int, parse_float, parse_str
from pisces.io.trace import wfdisc2trace
from copy import deepcopy as dc
Base = declarative_base(metaclass=PiscesMeta, constructor=None)
# COLUMN DEFINITIONS
# Generic SQLA types, compatible with different backends
# !! info dictionary defines the external representations (NumPy, text files)
# and default values for the mapped class representation.
#
# XXX: for numeric types, maximum width is not enforced!
#
# NOTE: info['dtype'] for floats/ints should match the system default for Python
# "{:f}".format(numpyfloat/int) to work, b/c it can use the builtin float
# __format__(). use 'float' or 'int'
# See:
# http://stackoverflow.com/questions/16928644/floats-in-numpy-structured-array-and-native-string-formatting-with-format
[docs]def strip(s):
return str(s).strip()
DATEFMT = '%y-%m-%d %H:%M:%S'
[docs]def dtfn(s):
try:
dt = datetime.strptime(s.strip(), DATEFMT)
except ValueError:
# Antelope convention
dt = UTCDateTime(float(s)).datetime
return dt
algorithm = Column(String(15),
info={'default': '-', 'parse': parse_str, 'dtype': 'a15', 'width': 15, 'format': '15.15s'})
amp = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 10, 'format': '10.1f'})
ampid = Column(Integer, nullable=False,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 9, 'format': '9d'})
amptime = Column(Float(53),
info={'default': -9999999999.999, 'parse': parse_float, 'dtype': 'float', 'width': 17, 'format': '17.5f'})
amptype = Column(String(8),
info={'default': '-', 'parse': parse_str, 'dtype': 'a8', 'width': 8, 'format': '8.8s'})
arid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
auth = Column(String(15),
info={'default': '-', 'parse': parse_str, 'dtype': 'a15', 'width': 15, 'format': '15s'})
azdef = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
azimuth = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
azres = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.1f'})
band = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
belief = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 4, 'format': '4.2f'})
calib = Column(Float(24),
info={'default': 1.0, 'parse': parse_float, 'dtype': 'float', 'width': 16, 'format': '16.6f'})
calper = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 16, 'format': '16.6f'})
calratio = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 16, 'format': '16.6f'})
chan = Column(String(8),
info={'default': '-', 'parse': parse_str, 'dtype': 'a8', 'width': 8, 'format': '8.8s'})
chanid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
clip = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
commid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
conf = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 5, 'format': '5.3f'})
ctype = Column(String(4),
info={'default': '-', 'parse': parse_str, 'dtype': 'a4', 'width': 4, 'format': '4.4s'})
datatype = Column(String(2),
info={'default': '-', 'parse': parse_str, 'dtype': 'a2', 'width': 2, 'format': '2.2s'})
deast = Column(Float(24),
info={'default': 0.0, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
delaz = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
delslo = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
delta = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 8, 'format': '8.3f'})
deltaf = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.3f'})
deltim = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 6, 'format': '6.3f'})
depdp = Column(Float(24),
info={'default': -999, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
depth = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
descrip = Column(String(50),
info={'default': '-', 'parse': parse_str, 'dtype': 'a50', 'width': 50, 'format': '50.50s'})
dfile = Column(String(32),
info={'default': '-', 'parse': parse_str, 'dtype': 'a32', 'width': 32, 'format': '32.32s'})
digital = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
dir = Column(String(64),
info={'default': '-', 'parse': parse_str, 'dtype': 'a64', 'width': 64, 'format': '64.64s'})
dist = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
dnorth = Column(Float(24),
info={'default': 0.0, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
dtype = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
duration = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
edepth = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
elev = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
ema = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
emares = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.1f'})
endtime = Column(Float(53),
info={'default': 9999999999.999, 'parse': parse_float, 'dtype': 'float', 'width': 17, 'format': '17.5f'})
esaz = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
etype = Column(String(7),
info={'default': '-', 'parse': parse_str, 'dtype': 'a7', 'width': 7, 'format': '7.7s'})
evid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
evname = Column(String(15),
info={'default': '-', 'parse': parse_str, 'dtype': 'a15', 'width': 15, 'format': '15.15s'})
fm = Column(String(2),
info={'default': '-', 'parse': parse_str, 'dtype': 'a2', 'width': 2, 'format': '2.2s'})
foff = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 10, 'format': '10d'})
grn = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
grname = Column(String(40),
info={'default': '-', 'parse': parse_str, 'dtype': 'a40', 'width': 40, 'format': '40.40s'})
hang = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 6, 'format': '6.1f'})
imb = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
iml = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
ims = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
inarrival = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
inid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
insname = Column(String(50),
info={'default': '-', 'parse': parse_str, 'dtype': 'a50', 'width': 50, 'format': '50.50s'})
instant = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
instype = Column(String(6),
info={'default': '-', 'parse': parse_str, 'dtype': 'a6', 'width': 6, 'format': '6.6s'})
iphase = Column(String(8),
info={'default': '-', 'parse': parse_str, 'dtype': 'a8', 'width': 8, 'format': '8.8s'})
jdate = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
keyname = Column(String(15),
info={'default': '-', 'parse': parse_str, 'dtype': 'a15', 'width': 15, 'format': '15.15s'})
keyvalue = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
lat = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
lddate = Column(DateTime, nullable=False, onupdate=datetime.now,
info={'default': datetime.now, 'parse': dtfn, 'dtype': 'O', 'width': 17, 'format': DATEFMT})
lineno = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
location = Column(String(32),
info={'default': '-', 'parse': parse_str, 'dtype': 'a32', 'width': 32, 'format': '32.32s'})
logat = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
lon = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
magid = Column(Integer, nullable=False,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
magnitude = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
magres = Column(Float(24),
info={'default': -999, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
magdef = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
magtype = Column(String(6),
info={'default': '-', 'parse': parse_str, 'dtype': 'a6', 'width': 6, 'format': '6.6s'})
mb = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
mbid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
ml = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
mlid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
ms = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
msid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
mmodel = Column(String(15),
info={'default': '-', 'parse': parse_str, 'dtype': 'a15', 'width': 15, 'format': '15.15s'})
nass = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 4, 'format': '4d'})
ncalib = Column(Float(24),
info={'default': 1.0, 'parse': parse_float, 'dtype': 'float', 'width': 16, 'format': '16.6f'})
ncalper = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 16, 'format': '16.6f'})
ndef = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 4, 'format': '4d'})
ndp = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 4, 'format': '4d'})
net = Column(String(8),
info={'default': '-', 'parse': parse_str, 'dtype': 'a8', 'width': 8, 'format': '8.8s'})
netname = Column(String(80),
info={'default': '-', 'parse': parse_str, 'dtype': 'a80', 'width': 80, 'format': '80.80s'})
nettype = Column(String(4),
info={'default': '-', 'parse': parse_str, 'dtype': 'a4', 'width': 4, 'format': '4.4s'})
nsamp = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
nsta = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
offdate = Column(Integer,
info={'default': 2286324, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
ondate = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
orid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
parid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 9, 'format': '9d'})
per = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
phase = Column(String(8),
info={'default': '-', 'parse': parse_str, 'dtype': 'a8', 'width': 8, 'format': '8.8s'})
prefor = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
qual = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
rect = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.3f'})
refsta = Column(String(6),
info={'default': '-', 'parse': parse_str, 'dtype': 'a6', 'width': 6, 'format': '6.6s'})
remark = Column(String(80),
info={'default': '-', 'parse': parse_str, 'dtype': 'a80', 'width': 80, 'format': '80.80s'})
rsptype = Column(String(6),
info={'default': '-', 'parse': parse_str, 'dtype': 'a6', 'width': 6, 'format': '6.6s'})
samprate = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 11, 'format': '11.7f'})
sdepth = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
sdobs = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
seaz = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
segtype = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
slodef = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
slores = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
slow = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
smajax = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
sminax = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 9, 'format': '9.4f'})
snr = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 10, 'format': '10.2f'})
srn = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
srname = Column(String(40),
info={'default': '-', 'parse': parse_str, 'dtype': 'a40', 'width': 40, 'format': '40.40s'})
sta = Column(String(6),
info={'default': '-', 'parse': parse_str, 'dtype': 'a6', 'width': 6, 'format': '6.6s'})
staname = Column(String(50),
info={'default': '-', 'parse': parse_str, 'dtype': 'a50', 'width': 50, 'format': '50.50s'})
stassid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
statype = Column(String(4),
info={'default': '-', 'parse': parse_str, 'dtype': 'a4', 'width': 4, 'format': '4.4s'})
stime = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 8, 'format': '8.2f'})
strike = Column(Float(24),
info={'default': -1, 'parse': parse_float, 'dtype': 'float', 'width': 6, 'format': '6.2f'})
stt = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
stx = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
sty = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
stype = Column(String(1),
info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
stz = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
sxx = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
sxy = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
sxz = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
syy = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
syz = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
szz = Column(Float(24),
info={'default': -100000000, 'parse': parse_float, 'dtype': 'float', 'width': 15, 'format': '15.4f'})
tagid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
tagname = Column(String(8),
info={'default': '-', 'parse': parse_str, 'dtype': 'a8', 'width': 8, 'format': '8.8s'})
time = Column(Float(53),
info={'default': -9999999999.999, 'parse': parse_float, 'dtype': 'float', 'width': 17, 'format': '17.5f'})
timedef = Column(String(1), info={'default': '-', 'parse': parse_str, 'dtype': 'a1', 'width': 1, 'format': '1.1s'})
timeres = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 8, 'format': '8.3f'})
tshift = Column(Float(24),
info={'default': -999.0, 'parse': parse_float, 'dtype': 'float', 'width': 6, 'format': '6.2f'})
uncertainty = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 7, 'format': '7.2f'})
units = Column(String(15),
info={'default': '-', 'parse': parse_str, 'dtype': 'a15', 'width': 15, 'format': '15.15s'})
vang = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 6, 'format': '6.1f'})
vmodel = Column(String(15),
info={'default': '-', 'parse': parse_str, 'dtype': 'a15', 'width': 15, 'format': '15.15s'})
wfid = Column(Integer,
info={'default': -1, 'parse': parse_int, 'dtype': 'int', 'width': 8, 'format': '8d'})
wgt = Column(Float(24),
info={'default': -1.0, 'parse': parse_float, 'dtype': 'float', 'width': 6, 'format': '6.3f'})
[docs]class Affiliation(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('net', 'sta'),)
net = dc(net)
sta = dc(sta)
lddate = dc(lddate)
[docs]class Amplitude(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('ampid'),)
ampid = dc(ampid)
arid = dc(arid)
parid = dc(parid)
chan = dc(chan)
amp = dc(amp)
per = dc(per)
snr = dc(snr)
amptime = dc(amptime)
time = dc(time)
duration = dc(duration)
deltaf = dc(deltaf)
amptype = dc(amptype)
units = dc(units)
clip = dc(clip)
inarrival = dc(inarrival)
auth = dc(auth)
lddate = dc(lddate)
[docs]class Arrival(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('arid'),
UniqueConstraint('sta', 'time', 'chan', 'iphase', 'auth'),)
sta = dc(sta)
time = dc(time)
arid = dc(arid)
jdate = dc(jdate)
stassid = dc(stassid)
chanid = dc(chanid)
chan = dc(chan)
iphase = dc(iphase)
stype = dc(stype)
deltim = dc(deltim)
azimuth = dc(azimuth)
delaz = dc(delaz)
slow = dc(slow)
delslo = dc(delslo)
ema = dc(ema)
rect = dc(rect)
amp = dc(amp)
per = dc(per)
logat = dc(logat)
clip = dc(clip)
fm = dc(fm)
snr = dc(snr)
qual = dc(qual)
auth = dc(auth)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Assoc(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('arid', 'orid'), UniqueConstraint('arid'), )
arid = dc(arid)
orid = dc(orid)
sta = dc(sta)
phase = dc(phase)
belief = dc(belief)
delta = dc(delta)
seaz = dc(seaz)
esaz = dc(esaz)
timeres = dc(timeres)
timedef = dc(timedef)
azres = dc(azres)
azdef = dc(azdef)
slores = dc(slores)
slodef = dc(slodef)
emares = dc(emares)
wgt = dc(wgt)
vmodel = dc(vmodel)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Event(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('evid'), UniqueConstraint('prefor'),)
evid = dc(evid)
evname = dc(evname)
prefor = dc(prefor)
auth = dc(auth)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Gregion(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('grn'),)
grn = dc(grn)
grname = dc(grname)
lddate = dc(lddate)
[docs]class Instrument(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('inid'),)
inid = dc(inid)
insname = dc(insname)
instype = dc(instype)
band = dc(band)
digital = dc(digital)
samprate = dc(samprate)
ncalib = dc(ncalib)
ncalper = dc(ncalper)
dir = dc(dir)
dfile = dc(dfile)
rsptype = dc(rsptype)
lddate = dc(lddate)
[docs]class Lastid(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('keyname'), UniqueConstraint('keyname', 'keyvalue'),)
keyname = dc(keyname)
keyvalue = dc(keyvalue)
lddate = dc(lddate)
[docs]class Netmag(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('magid'),
UniqueConstraint('magid', 'orid'),)
magid = dc(magid)
net = dc(net)
orid = dc(orid)
evid = dc(evid)
magtype = dc(magtype)
nsta = dc(nsta)
magnitude = dc(magnitude)
uncertainty = dc(uncertainty)
auth = dc(auth)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Network(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('net'),)
net = dc(net)
netname = dc(netname)
nettype = dc(nettype)
auth = dc(auth)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Origerr(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('orid'),)
orid = dc(orid)
sxx = dc(sxx)
syy = dc(syy)
szz = dc(szz)
stt = dc(stt)
sxy = dc(sxy)
sxz = dc(sxz)
syz = dc(syz)
stx = dc(stx)
sty = dc(sty)
stz = dc(stz)
sdobs = dc(sdobs)
smajax = dc(smajax)
sminax = dc(sminax)
strike = dc(strike)
sdepth = dc(sdepth)
stime = dc(stime)
conf = dc(conf)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Origin(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (UniqueConstraint('lat', 'lon', 'depth', 'time', 'auth'), PrimaryKeyConstraint('orid'))
lat = dc(lat)
lon = dc(lon)
depth = dc(depth)
time = dc(time)
orid = dc(orid)
evid = dc(evid)
jdate = dc(jdate)
nass = dc(nass)
ndef = dc(ndef)
ndp = dc(ndp)
grn = dc(grn)
srn = dc(srn)
etype = dc(etype)
depdp = dc(depdp)
dtype = dc(dtype)
mb = dc(mb)
mbid = dc(mbid)
ms = dc(ms)
msid = dc(msid)
ml = dc(ml)
mlid = dc(mlid)
algorithm = dc(algorithm)
auth = dc(auth)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Sensor(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('sta', 'chan', 'time', 'endtime'),)
sta = dc(sta)
chan = dc(chan)
time = dc(time)
endtime = dc(endtime)
inid = dc(inid)
chanid = dc(chanid)
jdate = dc(jdate)
calratio = dc(calratio)
calper = dc(calper)
tshift = dc(tshift)
instant = dc(instant)
lddate = dc(lddate)
[docs]class Site(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('sta', 'ondate'),)
sta = dc(sta)
ondate = dc(ondate)
offdate = dc(offdate)
lat = dc(lat)
lon = dc(lon)
elev = dc(elev)
staname = dc(staname)
statype = dc(statype)
refsta = dc(refsta)
dnorth = dc(dnorth)
deast = dc(deast)
lddate = dc(lddate)
[docs]class Sitechan(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (UniqueConstraint('sta', 'chan', 'ondate'),
PrimaryKeyConstraint('chanid'),)
sta = dc(sta)
chan = dc(chan)
ondate = dc(ondate)
chanid = dc(chanid)
offdate = dc(offdate)
ctype = dc(ctype)
edepth = dc(edepth)
hang = dc(hang)
vang = dc(vang)
descrip = dc(descrip)
lddate = dc(lddate)
[docs]class Sregion(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('srn'),)
srn = dc(srn)
srname = dc(srname)
lddate = dc(lddate)
[docs]class Stamag(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('magid', 'sta'),)
magid = dc(magid)
sta = dc(sta)
arid = dc(arid)
orid = dc(orid)
evid = dc(evid)
phase = dc(phase)
delta = dc(delta)
magtype = dc(magtype)
magnitude = dc(magnitude)
uncertainty = dc(uncertainty)
auth = dc(auth)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Stassoc(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('stassid'),)
stassid = dc(stassid)
sta = dc(sta)
etype = dc(etype)
location = dc(location)
dist = dc(dist)
azimuth = dc(azimuth)
lat = dc(lat)
lon = dc(lon)
depth = dc(depth)
time = dc(time)
imb = dc(imb)
ims = dc(ims)
iml = dc(iml)
auth = dc(auth)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Wfdisc(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (UniqueConstraint('wfid', 'dir', 'dfile'), PrimaryKeyConstraint('wfid'),)
[docs] def to_trace(self):
"""
Read the wfdisc line into a Trace instance. Minimal header.
Returns
-------
obspy.Trace
"""
return wfdisc2trace(self)
sta = dc(sta)
chan = dc(chan)
time = dc(time)
wfid = dc(wfid)
chanid = dc(chanid)
jdate = dc(jdate)
endtime = dc(endtime)
nsamp = dc(nsamp)
samprate = dc(samprate)
calib = dc(calib)
calper = dc(calper)
instype = dc(instype)
segtype = dc(segtype)
datatype = dc(datatype)
clip = dc(clip)
dir = dc(dir)
dfile = dc(dfile)
foff = dc(foff)
commid = dc(commid)
lddate = dc(lddate)
[docs]class Wftag(Base):
__abstract__ = True
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint('tagname', 'tagid', 'wfid'),)
tagname = dc(tagname)
tagid = dc(tagid)
wfid = dc(wfid)
lddate = dc(lddate)