Main Instaseis Classes¶
This page documents the central open_db()
function and the
main Instaseis classes. Please always use the open_db()
function to open a connection to an Instaseis database.
open_db() Function¶
-
instaseis.
open_db
(path, *args, **kwargs)[source]¶ Central function to open a local or remote Instaseis database. Any keyword arguments are passed to the underlying
InstaseisDB
orRemoteInstaseisDB
classes.- Parameters
path (str) – Filepath or URL. Instaseis will determine if it is a local file path or a HTTP URL and delegate to the corresponding class.
- Returns
An initialized database object.
- Return type
InstaseisDB
orRemoteInstaseisDB
If a directory is passed, it will return a local Instaseis database:
>>> import instaseis >>> db = instaseis.open_db("/path/to/DB") >>> print(db) InstaseisDB reciprocal Green's function Database (v7) generated ... components : vertical and horizontal velocity model : ak135f ...
For an HTTP URL it will return a remote Instaseis database:
>>> db = instaseis.open_db("http://webadress.com:8765") >>> print(db) RemoteInstaseisDB reciprocal Green's function Database (v7) generated ... components : vertical and horizontal velocity model : ak135f
The special syntax
syngine://MODEL_NAME
will connect to the IRIS syngine web service for the specified model.>>> db = instaseis.open_db("syngine://ak135f") >>> print(db) SyngineInstaseisDB reciprocal Green's function Database (v7) ... Syngine model name: 'ak135f' Syngine service version: 0.0.2 components : vertical and horizontal velocity model : ak135f
Note
If opening a local database and the
ordered_output.nc4
files are located for example in/path/to/DB/PZ/Data
and/path/to/DB/PX/Data
, please pass/path/to/DB
to theopen_db()
function. Instaseis will recursively search the child directories for the necessary files and open them.
BaseInstaseisDB¶
-
class
instaseis.database_interfaces.base_instaseis_db.
BaseInstaseisDB
[source]¶ Base class for all Instaseis database classes defining the user interface.
-
property
available_components
¶ Returns a list with all available components.
-
property
default_components
¶ The components returned by default by most of the higher level routines.
-
get_greens_function
(epicentral_distance_in_degree, source_depth_in_m, origin_time=UTCDateTime(1970, 1, 1, 0, 0), kind='displacement', return_obspy_stream=True, dt=None, kernelwidth=12, definition='seiscomp')[source]¶ Extract Green’s function from the Green’s function database.
Currently only one definition is implemented: the one assumed by Seiscomp, i.e. the components
TSS
,ZSS
,RSS
,TDS
,ZDS
,RDS
,ZDD
,RDD
,ZEP
,REP
as defined inMinson, Sarah E., and Douglas S. Dreger (2008)Stable Inversions for Complete Moment Tensors.Geophysical Journal International 174 (2): 585–592.- Parameters
epicentral_distance_in_degree (float) – The epicentral distance in degree.
source_depth_in_m (float) – The source depth in m below the surface.
origin_time (
obspy.core.utcdatetime.UTCDateTime
) – Origin time of the source.kind (str) – The desired units of the seismogram:
"displacement"
,"velocity"
, or"acceleration"
.dt (float) – Desired sampling rate of the Green’s functions. Resampling is done using a Lanczos kernel.
kernelwidth (int) – The width of the sinc kernel used for resampling in terms of the original sampling interval. Best choose something between 10 and 20.
definition (str) – The desired Green’s function definition.
- Returns
Multi component seismograms.
- Return type
A
obspy.core.stream.Stream
object or a dictionary with NumPy arrays as values.
-
get_seismograms
(source, receiver, components=None, kind='displacement', remove_source_shift=True, reconvolve_stf=False, return_obspy_stream=True, dt=None, kernelwidth=12)[source]¶ Extract seismograms from the Green’s function database.
- Parameters
source (
instaseis.source.Source
orinstaseis.source.ForceSource
) – The source definition.receiver (
instaseis.source.Receiver
) – The seismic receiver.components (tuple of str, optional) – Which components to calculate. Must be a tuple containing any combination of
"Z"
,"N"
,"E"
,"R"
, and"T"
. Defaults to["Z", "N", "E"]
for two component databases, to["N", "E"]
for horizontal only databases, and to["Z"]
for vertical only databases.kind (str, optional) – The desired units of the seismogram:
"displacement"
,"velocity"
, or"acceleration"
.remove_source_shift (bool, optional) – Cut all samples before the peak of the source time function. This has the effect that the first sample is the origin time of the source.
reconvolve_stf (bool, optional) – Deconvolve the source time function used in the AxiSEM run and convolve with the STF attached to the source. For this to be stable, the new STF needs to bandlimited.
return_obspy_stream (bool, optional) – Return format is either an
obspy.core.stream.Stream
object or a dictionary containing the raw NumPy arrays.dt (float, optional) – Desired sampling rate of the seismograms. Resampling is done using a Lanczos kernel.
kernelwidth (int, optional) – The width of the sinc kernel used for resampling in terms of the original sampling interval. Best choose something between 10 and 20.
- Returns
Multi component seismograms.
- Return type
A
obspy.core.stream.Stream
object or a dictionary with NumPy arrays as values.
-
get_seismograms_finite_source
(sources, receiver, components=None, kind='displacement', dt=None, kernelwidth=12, correct_mu=False, progress_callback=None)[source]¶ Extract seismograms for a finite source from an Instaseis database.
- Parameters
sources (
FiniteSource
or list ofSource
objects.) – A collection of point sources.receiver (
instaseis.source.Receiver
) – The seismic receiver.components (tuple of str, optional) – Which components to calculate. Must be a tuple containing any combination of
"Z"
,"N"
,"E"
,"R"
, and"T"
. Defaults to["Z", "N", "E"]
for two component databases, to["N", "E"]
for horizontal only databases, and to["Z"]
for vertical only databases.kind (str, optional) – The desired units of the seismogram:
"displacement"
,"velocity"
, or"acceleration"
.dt (float, optional) – Desired sampling rate of the seismograms. Resampling is done using a Lanczos kernel.
kernelwidth (int, optional) – The width of the sinc kernel used for resampling in terms of the original sampling interval. Best choose something between 10 and 20.
correct_mu (bool, optional) – Correct the source magnitude for the actual shear modulus from the model.
progress_callback (function, optional) – Optional callback function that will be called with current source number and the number of total sources for each calculated source. Useful for integration into user interfaces to provide some kind of progress information. If the callback returns
True
, the calculation will be cancelled.
- Returns
Multi component finite source seismogram.
- Return type
-
property
BaseNetCDFInstaseisDB¶
-
class
instaseis.database_interfaces.base_netcdf_instaseis_db.
BaseNetCDFInstaseisDB
(db_path, buffer_size_in_mb=100, read_on_demand=False, *args, **kwargs)[source]¶ Base class for extracting seismograms from a local Instaseis netCDF database.
- Parameters
db_path (str) – Path to the Instaseis Database containing subdirectories PZ and/or PX each containing a
order_output.nc4
file.buffer_size_in_mb (int, optional) – Strain and displacement are buffered to avoid repeated disc access. Depending on the type of database and the number of components of the database, the total buffer memory can be up to four times this number. The optimal value is highly application and system dependent.
read_on_demand (bool, optional) – Read several global fields on demand (faster initialization) or on initialization (slower initialization, faster in individual seismogram extraction, useful e.g. for finite sources, default).
ReciprocalInstaseisDB¶
-
class
instaseis.database_interfaces.reciprocal_instaseis_db.
ReciprocalInstaseisDB
(db_path, netcdf_files, buffer_size_in_mb=100, read_on_demand=False, *args, **kwargs)[source]¶ Reciprocal Instaseis database.
- Parameters
db_path (str) – Path to the Instaseis Database containing subdirectories PZ and/or PX each containing a
order_output.nc4
file.buffer_size_in_mb (int, optional) – Strain and displacement are buffered to avoid repeated disc access. Depending on the type of database and the number of components of the database, the total buffer memory can be up to four times this number. The optimal value is highly application and system dependent.
read_on_demand (bool, optional) – Read several global fields on demand (faster initialization) or on initialization (slower initialization, faster in individual seismogram extraction, useful e.g. for finite sources, default).
ReciprocalMergedInstaseisDB¶
-
class
instaseis.database_interfaces.reciprocal_merged_instaseis_db.
ReciprocalMergedInstaseisDB
(db_path, netcdf_file, buffer_size_in_mb=100, read_on_demand=False, *args, **kwargs)[source]¶ Reciprocal Merged Instaseis Database.
- Parameters
db_path (str) – Path to the Instaseis Database.
netcdf_file (str) – The path to the actual netcdf4 file.
buffer_size_in_mb (int, optional) – Strain and displacement are buffered to avoid repeated disc access. Depending on the type of database and the number of components of the database, the total buffer memory can be up to four times this number. The optimal value is highly application and system dependent.
read_on_demand (bool, optional) – Read several global fields on demand (faster initialization) or on initialization (slower initialization, faster in individual seismogram extraction, useful e.g. for finite sources, default).
ForwardInstaseisDB¶
-
class
instaseis.database_interfaces.forward_instaseis_db.
ForwardInstaseisDB
(db_path, netcdf_files, buffer_size_in_mb=100, read_on_demand=False, *args, **kwargs)[source]¶ Forward Instaseis database.
- Parameters
db_path (str) – Path to the Instaseis Database containing subdirectories PZ and/or PX each containing a
order_output.nc4
file.buffer_size_in_mb (int, optional) – Strain and displacement are buffered to avoid repeated disc access. Depending on the type of database and the number of components of the database, the total buffer memory can be up to four times this number. The optimal value is highly application and system dependent.
read_on_demand (bool, optional) – Read several global fields on demand (faster initialization) or on initialization (slower initialization, faster in individual seismogram extraction, useful e.g. for finite sources, default).
ForwardMergedInstaseisDB¶
-
class
instaseis.database_interfaces.forward_merged_instaseis_db.
ForwardMergedInstaseisDB
(db_path, netcdf_file, buffer_size_in_mb=100, read_on_demand=False, *args, **kwargs)[source]¶ Merged forward Instaseis database.
- Parameters
db_path (str) – Path to the Instaseis Database.
netcdf_file (str) – The path to the actual netcdf4 file.
buffer_size_in_mb (int, optional) – Strain and displacement are buffered to avoid repeated disc access. Depending on the type of database and the number of components of the database, the total buffer memory can be up to four times this number. The optimal value is highly application and system dependent.
read_on_demand (bool, optional) – Read several global fields on demand (faster initialization) or on initialization (slower initialization, faster in individual seismogram extraction, useful e.g. for finite sources, default).