Giter Site home page Giter Site logo

extras's Introduction

SeisComP

About

SeisComP is a seismological software for data acquisition, processing, distribution and interactive analysis that has been developed by the GEOFON Program at Helmholtz Centre Potsdam, GFZ German Research Centre for Geosciences and gempa GmbH.

License

SeisComP is primarily released under the AGPL 3.0. Please check the license agreement.

Asking Questions

Please ask questions in the forums and use appropriate topics to get help on usage or to discuss new features.

If you found a concrete issue in the codes or if you have code related questions please use the Github issue tracker of the corresponding repository, e.g. GitHub issue tracker of this repository.

Checkout the repositories

The SeisComP software collection is distributed among several repositories. This repository only contains the build environment, the runtime framework (seiscomp control script) and the documentation.

To checkout all repositories to build a complete SeisComP distribution the following script can be used:

#!/bin/bash

if [ $# -eq 0 ]
then
    echo "$0 <target-directory>"
    exit 1
fi

target_dir=$1
repo_path=https://github.com/SeisComP

echo "Cloning base repository into $target_dir"
git clone $repo_path/seiscomp.git $target_dir

echo "Cloning base components"
cd $target_dir/src/base
git clone $repo_path/seedlink.git
git clone $repo_path/common.git
git clone $repo_path/main.git
git clone $repo_path/extras.git

echo "Cloning external base components"
git clone $repo_path/contrib-gns.git
git clone $repo_path/contrib-ipgp.git
git clone https://github.com/swiss-seismological-service/sed-SeisComP-contributions.git contrib-sed

echo "Done"

cd ../../

echo "If you want to use 'mu', call 'mu register --recursive'"
echo "To initialize the build, run 'make'."

To keep track of the state of each subrepository, mu-repo is a recommended way.

Build

Prerequisites

The following packages should be installed to compile SeisComP:

  • g++
  • git
  • cmake + cmake-gui
  • libboost
  • libxml2-dev
  • flex
  • libfl-dev
  • libssl-dev
  • crypto-dev
  • python-dev (optional)
  • python-numpy (optional)
  • libqt4-dev (optional)
  • qtbase5-dev (optional)
  • libmysqlclient-dev (optional)
  • libpq-dev (optional)
  • libsqlite3-dev (optional)
  • ncurses-dev (optional)

The Python development libraries are required if Python wrappers should be compiled which is the default configuration. The development files must match the used Python interpreter of the system. If the system uses Python3 then Python3 development files must be present in exactly the same version as the used Python3 interpreter. The same holds for Python2.

Python-numpy is required if Numpy support is enable which is also the default configuration.

Configuration

The SeisComP build system provides several build options which can be controlled with a cmake gui or from the commandline passing -D[OPTION]=ON|OFF to cmake.

In addition to standard cmake options such as CMAKE_INSTALL_PREFIX the following global options are available:

Option Default Description
SC_GLOBAL_UNITTESTS ON Whether to build unittests or not. If enabled then use ctest in the build directory to run the unittests.
SC_GLOBAL_PYTHON_WRAPPER ON Build Python wrappers for the C++ libraries. You should not turn off this option unless you know exactly what you are doing.
SC_GLOBAL_PYTHON_WRAPPER_NUMPY ON Add Numpy support to Python wrappers. If enabled then all SeisComP arrays will provide a method numpy() which returns a Numpy array representation.
SC_ENABLE_CONTRIB ON Enable inclusion of external contributions into the build. This includes all directories in src/extras.
SC_GLOBAL_GUI ON Enables compilation of GUI components. This requires the Qt libraries to be installed. Either Qt4 or Qt5 are supported. The build will prefer Qt5 if found and will fallback to Qt4 if the Qt5 development libraries are not installed on the host system.
SC_GLOBAL_GUI_QT5 ON If SC_GLOBAL_GUI is enabled then Qt5 support will be enabled if this option is active. Otherwise only Qt4 will be supported.
SC_DOC_GENERATE OFF Enable generation of documentation
SC_DOC_GENERATE_HTML ON Enable generation of HTML documentation
SC_DOC_GENERATE_MAN ON Enable generation of MAN pages
SC_DOC_GENERATE_PDF OFF Enable generation of PDF documentation

Compilation

  1. Clone all required repositories (see above)
  2. Run make
  3. Configure the build
  4. Press 'c' as long as 'g' appears
  5. Press 'g' to generate the Makefiles
  6. Enter the build directory and run make

Installation

  1. Enter the build directory and run make install to install SeisComP

Contributing improvements and bug fixes

Please consider contributing to the code.

extras's People

Contributors

andres-h avatar fmassin avatar gempa-dirk avatar gempa-enrico avatar gempa-jabe avatar gempa-lukas avatar gempa-stephan avatar janisozaur avatar jsaul avatar marcelobianchi avatar mfrie87 avatar pevans-gfz avatar raciner avatar salichon avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

extras's Issues

Issue handling missing <symmetry> with inv2dlsv / fseed.py

We encountred an issue with inv2dlsv processing an xml file with missing symmetry tags in the FIR filter section of dataloggers. I think it is optional in the Seiscomp xml (according to seiscomp3_generic.xml), so not an error in the input file.

What happens: The generated dataless has an empty string for the symmetry. If I open it in PDCC, it gives a warning and replaces it with 'Z'. If I use rdseed to convert it to RESP files it will produce an invalid character for the symmerty in the RESP file.

For us I solved it with a small patch to fseed.py

class _Blockette61(object):
    def __init__(self, name, symmetry, input_units, output_units, ncoeff,
        coeff):

        #fix bug with empty symmetry (by Stefan Heimers)
        if (symmetry == ''):
            print ("Symmetry empty, assuming 'A'")
            symmetry = 'A'
        
        self.__stage = 0
        self.__name = _mkseedstring(61, 4, name, 1, 25, "UN")
        self.__symmetry = _mkseedstring(61, 5, symmetry, 1, 1, "U")

...and the same for Blockette41

Can one of the developpers please review this, and if considered useful maybe integrate it in a future version, or propose a better solution?

tabinvmodifier import error

Having trouble getting this to work in sc4. Default interpreter is py2 which gives

$ seiscomp exec tabinvmodifier
Traceback (most recent call last):
  File "/Rdata/seiscomp/bin/tabinvmodifier", line 19, in <module>
    from nettab.basesc3 import sc3
  File "/Rdata/seiscomp/lib/python/nettab/basesc3.py", line 2, in <module>
    import seiscomp.datamodel, seiscomp.core, seiscomp.config
  File "/Rdata/seiscomp/lib/python/seiscomp/datamodel.py", line 13, in <module>
    from . import _datamodel
ImportError: dynamic module does not define init function (init_datamodel)

Not sure if intentional. Changing this to py3 gives

$ seiscomp exec tabinvmodifier
Traceback (most recent call last):
  File "/Rdata/seiscomp/bin/tabinvmodifier", line 18, in <module>
    from nettab.lineType import Nw, Sa, Na, Ia
  File "/Rdata/seiscomp/lib/python/nettab/lineType.py", line 7, in <module>
    from helpers import parsers
ModuleNotFoundError: No module named 'helpers'

installed "helpers" but then helpers cannot import name 'parsers'...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.