Functions to convert rotation to horizotal seismometer signals, and vice versa,
assuming only rotation through the gravitational field
Currently uses small-angle theory, simply multiplying radians by the gravitational attraction.
convert_motion(periods, vals, in_units, out_units)
Convert rotation units
Source code in crawtools/rotation_seismometer.py
| def convert_motion(periods, vals, in_units, out_units):
"""Convert rotation units"""
vals = match_dims(vals, periods)
vals = _to_accel(periods, vals, in_units)
return _from_accel(periods, vals, out_units)
|
convert_rotation(periods, vals, in_units, out_units)
Convert rotation units
Source code in crawtools/rotation_seismometer.py
| def convert_rotation(periods, vals, in_units, out_units):
"""Convert rotation units"""
vals = _match_dims(vals, periods)
vals = _to_rads(periods, vals, in_units)
return _from_rads(periods, vals, out_units)
|
motion_to_rotation(periods, vals, in_units='m/s^2', out_units='rad')
Convert horizontal motion to rotational equivalent
PSD is assumed to be in in_units/sqrt(Hz)
| Parameters: |
-
periods
(array)
–
-
vals
(array or float)
–
PSD value in (in_units)/sqrt(Hz) at each period.
If a scalar, the same value is applied at every period.
-
out_units
(str, default:
'rad'
)
–
Reference units for rotation: '(n)rad', '(n)rad/s', '(n)rad.s'
|
Source code in crawtools/rotation_seismometer.py
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 | def motion_to_rotation(periods, vals, in_units='m/s^2', out_units='rad'):
"""
Convert horizontal motion to rotational equivalent
PSD is assumed to be in in_units/sqrt(Hz)
Args:
periods (np.array): periods in seconds
vals (np.array or float): PSD value in (in_units)/sqrt(Hz) at each period.
If a scalar, the same value is applied at every period.
out_units (str): Reference units for rotation: '(n)rad', '(n)rad/s', '(n)rad.s'
"""
vals = _match_dims(vals, periods)
vals = _to_accel(periods, vals, in_units)
outp = vals / 9.8
outp = _from_rads(periods, outp, out_units)
return outp
|
rotation_to_motion(periods, vals, in_units, out_units='m/s^2')
Return the horizontal PSD that will result from rotation through grav field
PSD is assumed to be in units/sqrt(Hz)
| Parameters: |
-
periods
(array)
–
-
vals
(array or float)
–
rotationalPSDvalue at each period. If a scalar, the
same value is applied at every period.
-
in_units
(str)
–
Reference units for rotation: "rad", "rad.s", "rad/s",
"nrad", "nrad.s", "nrad/s"
-
out_units
(str, default:
'm/s^2'
)
–
Reference units for horizontal sensor: 'm', 'm/s' or 'm/s^2'
|
Source code in crawtools/rotation_seismometer.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | def rotation_to_motion(periods, vals, in_units, out_units="m/s^2"):
"""
Return the horizontal PSD that will result from rotation through grav field
PSD is assumed to be in units/sqrt(Hz)
Args:
periods (np.array): periods in seconds
vals (np.array or float): rotationalPSDvalue at each period. If a scalar, the
same value is applied at every period.
in_units (str): Reference units for rotation: "rad", "rad.s", "rad/s",
"nrad", "nrad.s", "nrad/s"
out_units (str): Reference units for horizontal sensor: 'm', 'm/s' or 'm/s^2'
"""
vals = _match_dims(vals, periods)
vals = _to_rads(periods, vals, in_units)
outp = vals * 9.8
outp = _from_accel(periods, outp, out_units)
return outp
|