Giter Site home page Giter Site logo

seedlink'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.

seedlink's People

Contributors

andres-h avatar filefolder avatar gempa-dirk avatar gempa-enrico avatar gempa-jabe avatar gempa-stephan avatar janisozaur avatar jsaul avatar luca-s avatar ozym avatar pevans-gfz avatar raciner avatar salichon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seedlink's Issues

standalone seedlink setup

Hi,

I compiled seiscomp including the seedlink service. When I check seiscomp I get the following on an entirely fresh ubuntu:

mariuskriegerowski@qs-test:/opt/seiscomp/bin$ ./seiscomp check
could not open file '/opt/seiscomp/var/run/seiscomp.pid': No such file or directory

Does var/run have to be created manually? Can this be fixed in the installation procedure?

Edit:
var/log apparently also needs to be created.

chain plugin: lost connection when trying to rename station

Hi all

I am noticing that when trying to rename the station parameter on the seedlink/chain plugin to anything but the station name the digitiser is programmed as, the seedlink buffer won't fill. For example the site name is "TIE03" but I am attempting to name it to "TEST"

Screenshot at 2024-02-02 14-54-38

The log doesn't show anything wrong as far as I can tell

Fri Feb  2 14:46:22 2024 - chain0: [10.232.1XX.15:18000] network socket opened
Fri Feb  2 14:46:22 2024 - chain0: [10.232.1XX.15:18000] connected to: SEEDLINK v3.1 (Nanometrics on centaur-3 4.6.16)
Fri Feb  2 14:46:22 2024 - chain0: [10.232.1XX.15:18000] organization: SerialNumber: 10012
Fri Feb  2 14:46:22 2024 - chain0: [M8_TEST] requesting next available data
Fri Feb  2 14:46:22 2024 - chain0: [10.232.1XX.15:18000] 1 station(s) accepted

If I disable the station parameter OR set it to the correct name, the buffer fills and archives as expected. Occurs with both Nanometrics and Guralp equipment. Seiscomp 5.10

Working for anyone else?

clang error for serial_plugin.cc

clang compiler gives me the following error for 'seedlink/plugins/serial_plugin/serial_plugin.cc'

error: cannot define or redeclare 'registered' here because namespace 'PluginModule' does not enclose namespace 'RegisteredModule<SeedlinkPlugin_private::Proto>'

for :

namespace PluginModule {

template<>
RegisteredModule<Proto>* RegisteredModule<Proto>::registered = NULL;

}

This works by taken out the template<> from 'namespace PluginModule{}`, like this

#ifdef __APPLE__
template<>
RegisteredModule<Proto>* RegisteredModule<Proto>::registered = NULL;
#else
namespace PluginModule {

template<>
RegisteredModule<Proto>* RegisteredModule<Proto>::registered = NULL;

}

#endif

But not sure if this is 100% correct...

Integration of raw plugin?

Would you be interested on a PR to integrate this plugin in seedlink?

The plugin allows to stream any data to seedlink so that a user doesn't need to worry about the SeisComP side of a custom data integration and they can focus only on their device side or special data situation. The plugin comes also with a client python module that facilitates the development of the device side of the data streaming.

I believe it could be useful for several use cases. Although I have to admit it would be more useful for special projects than mainstream applications.

seedlink: section 'seedlink' doesn't exist in file 'seedlink.cfg'

Hie guys,
i've some difficult to start the seedlink server after install seiscomp from pre-built binaries. Basically, when i try launch seedlink server from command line passing the '.cfg' file like argument, the following mesage appears: seedlink: section 'seedlink' doesn't exist in file '../etc/defaults/seedlink.cfg'. Also, I've to say that the '.cgf' file is based on provided from seiscomp project on github. What am I doing wrong?

The best regards, Cleir

"station NN.SSS is already defined" error

Dear developers,

I have a station 8D.BT176, which has two location codes A and B that I would like to map in Seiscomp to 2 separate station codes (BT176 and BT177), different network code (8R) and strip location codes. To summarize this is the mapping I would like to have:

  • 8D.BT176.A.FP[1,2,Z] - > 8R.BT176..FP[1,2,Z]
  • 8D.BT176.B.FP[1,2,Z] - > 8R.BT177..FP[1,2,Z]

The chain plugin seems to have all the options I need, but when I start seedlink I get the following error:

Fri Nov 11 14:06:22 2022 - seedlink: SeedLink v3.3 (2022.096) started
Fri Nov 11 14:06:24 2022 - chain0: SeedLink Chain Plugin v2.0 (2021.284) started
Fri Nov 11 14:06:24 2022 - chain0: /home/sysop/seiscomp/var/lib/seedlink/chain0.xml:24: station 8D.BT176 is already defined

I checked the code and I see why the error is raised. However I don't see why this configuration should be a problem, why cannot I have two seiscomp station codes that connect to the same physical station via seedlink? Shouldn't the code check for duplicate out_network, out_name instead of duplicated in_network, in_name ?

These are the seedlink bindings I used:

8R.BT176 station:
image

8R.BT177 station:
image

And this is the /home/sysop/seiscomp/var/lib/seedlink/chain0.xml file

<?xml version="1.0" standalone="yes"?>

<!-- Generated at Fri Nov 11 14:02:21 2022 - Do not edit! -->
<!-- template: /home/sysop/seiscomp/share/templates/seedlink/chain/chain_head.tpl -->

<chain
  timetable_loader="/home/sysop/seiscomp/bin/load_timetable 127.0.0.1:18000"
  overlap_removal="initial"
  multistation="yes"
  batchmode="yes"
  netto="300"
  netdly="10"
  standby="10"
  keepalive="0"
  seqsave="60">

  <group address="xxxxxxxx:18000"
         seqfile="/home/sysop/seiscomp/var/run/seedlink/xxxxxx:18000.seq"
         lockfile="/home/sysop/seiscomp/var/run/seedlink/xxxxxx:18000.pid"
         batchmode="yes">
    <station id="8R.BT176" name="BT176" network="8D" out_network="8R" selectors="A????">
      <rename from="A????" to="???"/>
    </station>
    <station id="8R.BT177" name="BT176" out_name="BT177" network="8D" out_network="8R" selectors="B????">
      <rename from="B????" to="???"/>
    </station>
  </group>
</chain>

modbus plugin compilation with g++ 4.8.2

The plugin does not compile with g++ 4.8.2 under Redhat 7.

src/base/seedlink/plugins/serial_plugin/proto_modbus.cc:332:25: error: ‘defaultfloat’ was not declared in this scope

The defaultfloat manipulator is available with C++11 and not supported with this g++ version.

END command is not sent and clients hang

Dear developers,

I am using seedlink shipped with Seiscomp v4.9.2 and I noticed in certain cases seedlink doesn't send a "END" command to the client at the end of the data transfer. That causes the client to hang forever or until a timeout expires, in case the latter is configured in the client.

This error happens both in BATCH mode and without it. I believe this scenario happens when, among the requested data, there is a station for which seedlink doesn't know anything (i can see "no such station" in the logs).

thanks
Luca

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.