Installation¶
pyasdf and Dependencies¶
pyasdf supports Python versions >= 3.7 and it depends on the
following Python modules: NumPy, ObsPy, h5py, colorama,
pytest, prov, dill, and optionally mpi4py. You can
install pyasdf with or without parallel I/O support; the later requires
mpi4py and parallel versions of hdf5 and h5py.
pyasdf itself is available on pypi and also as a conda package in the
conda-forge channel (non-parallel only).
If you know what you are doing, install it any way you see fit. Otherwise do yourself a favor and download the Anaconda Python distribution for your chosen Python version.
Note
When to choose the parallel I/O version?
Please note that in most cases it is not worth it to install the parallel I/O version. For one most machines (aside from actual HPC machines) don’t even have the necessary hardware to do actually parallel I/O. Also seismological waveform data is usually not that big in volume so a single reading/writing thread might be sufficient. Furthermore modern SSDs can write at very high speeds.
But if your application does indeed benefit from parallel I/O follow the instructions below.
Non-parallel pyasdf¶
This is very easy - just execute this one line and it will install all the
dependencies including pyasdf (assuming you installed the
Anaconda Python distribution
as recommended above).
$ conda install -c conda-forge pyasdf
pyasdf with parallel I/O¶
You only have to make sure to have a parallel version of h5py installed. A
simple way is to just use one on conda, e.g.:
$ conda install -c spectraldns h5py-parallel
Additionally you need mpi4py. The one on conda might work, if not,
read on.
For all of the following steps make sure that the MPI package of your local
supercomputer/cluster is loaded. The mpi4py potentially shipping with
Anaconda might not work on your cluster - if that is the case uninstall it
and reinstall with pip at which point it should link against your
cluster’s MPI implementation.
$ conda uninstall mpi4py
$ pip install mpi4py
After everything is installed, you can run the following command to print information about the current system.
$ python -c "import pyasdf; pyasdf.print_sys_info()"
which will print something along the following lines:
pyasdf version 0.1.4
===============================================================================
CPython 2.7.9, compiler: GCC 4.2.1 (Apple Inc. build 5577)
Darwin 14.3.0 64bit
Machine: x86_64, Processor: i386 with 8 cores
===============================================================================
HDF5 version 1.8.17, h5py version: 2.5.0
MPI: Open MPI, version: 1.10.1, mpi4py version: 2.0.0
Parallel I/O support: True
Problematic multiprocessing: False
===============================================================================
Other_modules:
dill: 0.2.5
lxml: 3.7.2
numpy: 1.11.3
obspy: 1.0.3
prov: 1.4.0
scipy: 0.18.1
Testing¶
To assert that your installation is working properly, execute
$ python -m pyasdf.tests
and make sure all tests pass. Otherwise please contact the developers.
Building the Documentation¶
The documentation requires sphinx and the Bootstrap theme. Install both
with
$ pip install sphinx sphinx-bootstrap-theme
Build the doc with
$ cd doc
$ make html
Finally open the doc/_build/html/index.html file with the browser of your
choice.