If you use our web services, please cite the study below:

Stähler, S. C., M. P. Panning, S. D. Vance, M. van Driel, R. Lorenz, T. Nissen-Meyer, and S. Kedar, 2017. Seismic wave propagation in icy ocean worlds, submitted to J. Geoph. Res.

You might also consider citing the ObsPy, AxiSEM, and Instaseis papers:

Krischer, L., T. Megies, R. Barsch, M. Beyreuther, T. Lecocq, C. Caudron, and J. Wassermann, 2015. ObsPy: a bridge for seismology into the scientific Python ecosystem, Computational Science & Discovery, 8(1), 014003, doi: 10.1088/1749-4699/8/1/014003.
Nissen-Meyer, T., van Driel, M., Stähler, S. C., Hosseini, K., Hempel, S., Auer, L., Colombi, A., and Fournier, A., 2014. AxiSEM: broadband 3-D seismic wavefields in axisymmetric media, Solid Earth, 5, 425-445, doi:10.5194/se-5-425-2014.
van Driel, M., Krischer, L., Stähler, S. C., Hosseini, K., and Nissen-Meyer, T., 2015. Instaseis: instant global seismograms based on a broadband waveform database, Solid Earth, 6, 701-717, http://dx.doi.org/10.5194/se-6-701-2015.

Other studies we use:

Summary of the Green's functions databases:

The model names are defined as: AAABBBkm-CCpDQ-EQ_X
with AAA: The planetary body name (Eur(opa), Tit(an), ...) BBB: The thickness of the surface ice in km CC: Salt content in water in per mille. D: high or low Q model X: Additional parameters
Eur005km-00pMS-hQ_hyd30km_2s
The columns in the nd files are depth(km), Vp(km/s), Vs(km/s), density(g/cm^3), Qmu and Qkappa. The deck format includes radius(m), density(kg/m^3), Vp(m/s), Vs(m/s), Qkappa, Qmu, V1(m/s), V2(m/s), and iso/aniso columns in order. V1 and V2 are other velocities which we do not use; therefore, we duplicate the values of Vp and Vs.

Object
Ice thickness
Salt
Salt amount (in 1e-3)
Q-model
Extra features
Min. period (s)
Record length(min.)
Database name
Model data
Complete URL for database Current status
Enceladus
53 km
MgSO4
0
high
30km hydr. mantle layer
1 ~60 Enc053km-00pMS-hQ_hyd30km_1s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Enc053km-00pMS-hQ_hyd30km_1s Active
Ganymede
126 km
MgSO4
0
high
30km hydr. mantle layer
2 ~60 Gan126km-00pMS-hQ_hyd30km_4s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Gan126km-00pMS-hQ_hyd30km_4s Active
Titan
46 km
NH3
33
high
IceVI layer removed
2 ~20 Tit046km-33pNH-hQ_noiceVI_2s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Tit046km-33pNH-hQ_noiceVI_2s Active
Titan
124 km
NH3
33
high

2 ~60 Tit124km-33pNH-hQ_2s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Tit124km-33pNH-hQ_2s Active
Europa
5 km
MgSO4
0
high
30km hydr. mantle layer
2 ~60 Eur005km-00pMS-hQ_hyd30km_2s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Eur005km-00pMS-hQ_hyd30km_2s Active
Europa
5 km
MgSO4
0
low
30km hydr. mantle layer
2 ~60 Eur005km-00pMS-lQ_hyd30km_2s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Eur005km-00pMS-lQ_hyd30km_2s Inactive
Europa
5 km
MgSO4
0
low
30km hydr. mantle layer, scattering
2 ~60 Eur005km-00pMS-lQ_hyd30km_2s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Eur005km-00pMS-lQ_hyd30km_scatter_2s Active
Europa
20 km
MgSO4
0
high
30km hydr. mantle layer
2 ~60 Eur020km-00pMS-hQ_hyd30km_2s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Eur020km-00pMS-hQ_hyd30km_2s Active
Europa
20 km
MgSO4
0
low
30km hydr. mantle layer
2 ~60 Eur020km-00pMS-lQ_hyd30km_2s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Eur020km-00pMS-lQ_hyd30km_2s Active
Europa
20 km
MgSO4
0
high
30km hydr. mantle layer,
10 hours long
5 ~600 Eur020km-00pMS-hQ_hyd30km_5s pngnd http://instaseis.ethz.ch/icy_ocean_worlds/Eur020km-00pMS-hQ_hyd30km_5s Active

Use your own Python scripts [example code]:

We recommend developing your own Python scripts for generating synthetics. If you choose to use your own scripts, simply import Instaseis and connect to one of our databases remotely. Note that our Instaseis servers compute the waveforms in displacement units by default. Most of the default parameters can be overridden in your scripts according to your needs. Consult to Instaseis webpage for more info.

			/usr/bin/python
			>>> import obspy
			>>> import instaseis
			>>> 
			>>> db = instaseis.open_db("http://instaseis.ethz.ch/marssynthetics/C30VH-BFT13-1s")
			>>> print(db)
			RemoteInstaseisDB reciprocal Green's function Database (v7) generated with these parameters:
				components           : vertical and horizontal
				velocity model       : external
				attenuation          : True
				dominant period      : 1.000 s
				dump type            : displ_only
				excitation type      : dipole
				time step            : 0.230 s
				sampling rate        : 4.346 Hz
				number of samples    : 7823
				seismogram length    : 1799.9 s
				source time function : gauss_0
				source shift         : 1.611 s
				spatial order        : 4
				min/max radius       : 3289.0 - 3389.5 km
				Planet radius        : 3389.5 km
				min/max distance     : 0.0 - 180.0 deg
				time stepping scheme : symplec4
				compiler/user        : gfortran 4.9.2 20141030 (Cray Inc.) by vamartin on dora22
				directory/url        : http://instaseis.ethz.ch/marssynthetics/C30VH-BFT13-1s
				size of netCDF files : 564.9 GB
				generated by AxiSEM version v1.2-11-g8461-dirty at 2016-03-11T12:50:33.000000Z 
			>>>
			

Define a source/receiver pair using the moment tensor solution and location parameters. Use a whole ObsPy.Catalog for this purpose in a loop as you wish.

			>>> receiver = instaseis.Receiver(

			                 latitude=4.5, longitude=136.0, network="7J", station="SYNT1")

			

			>>> source = instaseis.Source(

			                 latitude=30.0, longitude=30.0, depth_in_m=50000,

			                 m_rr=1.710000e+24,

			                 m_tt=1.810000e+22,

			                 m_pp=1.740000e+24,

			                 m_rt=1.990000e+23,

			                 m_rp=1.050000e+23,

			                 m_tp=1.230000e+24,

			                 origin_time=obspy.UTCDateTime(2020, 1, 2, 0, 0, 0))
			

Retrieve the waveforms.

			>>> seismogram = db.get_seismograms(source=source, receiver=receiver)
			

Do some more processing as needed...

			
			>>> print(seismogram)
			>>> seismogram.plot()
			

Use REST-like API of Instaseis:

Instaseis currently supports nine back-end commands. Check http://www.instaseis.net/routes/seismograms_raw.html and http://www.instaseis.net/routes/seismograms.html webpages for a list of parameters needed to compute waveforms. You can use these commands within your Python scripts, or use wget to download the data.

Use Instaseis GUI:

You also have the option to view synthetics for any source type using the Instaseis GUI. This tool is useful especially for exploring the waveforms before generating a set of them. To start the GUI, simply type the command below in your command screen.

			
			> python -m instaseis.gui