New release Jakarta 2017.334

Dear users,

we tagged a new release of SeisComP3 Jakarta: 2017.334. Binaries for various
operating systems have been built. The full source is available at Github
[1]. Please read the changelog [2] and some more info [3] for a list of fixes and changes. All gempa
GmbH customers will find binary packages in their repositories.

Breaking changes:

  • Database upgrade to version 0.10
    • Users who run scwfparam with the strong motion database extension have to upgrade their databases manually. The updated schema will reside in share/db/wfparam/mysql.sql.
  • Improved FDSN StationXML support
  • SC3 C++ API changes requires adoption and recompilation for custom magnitude and recordstream plugins, see [3].

Many thanks to:

  • Arnaud Lemarchand (IPGP) for his extensive support with StationXML conversion improvements
  • Jean-Marie Saurel (IPGP) for his important Hypo71 patches and code review
  • Luca Scarabello (SED) for the tremendous speedup when exporting data from an archive with scart
  • the community for their feedback and code patches
  • gempa customers for funding new features and extensions

Have fun,
Jan

[1] https://github.com/SeisComP3/seiscomp3/archive/release/jakarta/2017.334.zip
[2] https://github.com/SeisComP3/seiscomp3/blob/release/jakarta/2017.334/CHANGELOG.md
[3] http://www.gempa.de/news/2017/12/1/seiscomp3-release-jakarta-2017-334

I noticed that the sc3ml_0.10.xsd file is not available on your website. Can you add it?

hi!
What s the difference between:
http://geofon.gfz-potsdam.de/ns/seiscomp3-schema/
and
http://geofon.gfz-potsdam.de/schema/ ?

Both are looking exactly the same.
What would be the referenced one or they re just mirrors ?
Cheers
Jerome

Both links provide access to the same data. However, since the SC3 XSD and the SC3 to QuakeML XSLT scripts are now part of the SC3 source tree available on github, we plan to discontinue the URLs above.

Please use the files available at

Also please note that current release does not include the latest XSD. We will fix this.

Thanks a lot for this information Stephan!
and thumbs up to Gempa for the new version and all the changes btw, great!

Hi Jan, we are using the scwfparam database in production. Will there be an update script for this too or are we required to migrate everything manually

You would have to apply the changes yourself. If done then it would be nice if you can share the update script. But I don’t think that many users are running scwfparam with the strong motion database.

Hello!
Having compiled a latest version of seiscomp3 and updated successfully the data base to 0.1
I got a bit confused about this in the instruction :

‘mysql> source /home/sysop/seiscomp3/share/db/migrations/mysql/0_9_to_0_10.sql;’

in seiscomp3/CHANGELOG.md at master · SeisComP3/seiscomp3 · GitHub
I have done this instead

mysql -u root -p seiscomp3 < /home/salichon/seiscomp3/share/db/migrations/mysql/0_9_to_0_10.sql

I guess man has to select a database before something first like

‘mysql> USE seiscomp3’

I m not a big mysql user as you can see :slight_smile:
regards
Jerome

Something like this would suffice I guess?

UPDATE Meta SET value='0.10' WHERE name='Schema-Version';

ALTER TABLE FilterParameter
ADD value_pdf_variable_content BLOB,
ADD value_pdf_probability_content BLOB,
ADD value_pdf_used TINYINT(1) NOT NULL DEFAULT '0';

ALTER TABLE PeakMotion
ADD value_pdf_variable_content BLOB,
ADD value_pdf_probability_content BLOB,
ADD value_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD atTime_pdf_variable_content BLOB,
ADD atTime_pdf_probability_content BLOB,
ADD atTime_pdf_used TINYINT(1) NOT NULL DEFAULT '0';

ALTER TABLE Record
ADD value_pdf_variable_content BLOB,
ADD value_pdf_probability_content BLOB,
ADD value_pdf_used TINYINT(1) NOT NULL DEFAULT '0';

ALTER TABLE EventRecordReference
ADD value_pdf_variable_content BLOB,
ADD value_pdf_probability_content BLOB,
ADD value_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD ruptureToStationAzimuth_pdf_variable_content BLOB,
ADD ruptureToStationAzimuth_pdf_probability_content BLOB,
ADD ruptureToStationAzimuth_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD ruptureAreaDistance_pdf_variable_content BLOB,
ADD ruptureAreaDistance_pdf_probability_content BLOB,
ADD ruptureAreaDistance_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD JoynerBooreDistance_pdf_variable_content BLOB,
ADD JoynerBooreDistance_pdf_probability_content BLOB,
ADD JoynerBooreDistance_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD closestFaultDistance_pdf_variable_content BLOB,
ADD closestFaultDistance_pdf_probability_content BLOB,
ADD closestFaultDistance_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD width_pdf_variable_content BLOB,
ADD width_pdf_probability_content BLOB,
ADD width_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD displacement_pdf_variable_content BLOB,
ADD displacement_pdf_probability_content BLOB,
ADD displacement_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD riseTime_pdf_variable_content BLOB,
ADD riseTime_pdf_probability_content BLOB,
ADD riseTime_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD vt_to_vs_pdf_variable_content BLOB,
ADD vt_to_vs_pdf_probability_content BLOB,
ADD vt_to_vs_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD shallowAsperityDepth_pdf_variable_content BLOB,
ADD shallowAsperityDepth_pdf_probability_content BLOB,
ADD shallowAsperityDepth_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD slipVelocity_pdf_variable_content BLOB,
ADD slipVelocity_pdf_probability_content BLOB,
ADD slipVelocity_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD length_pdf_variable_content BLOB,
ADD length_pdf_probability_content BLOB,
ADD length_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD area_pdf_variable_content BLOB,
ADD area_pdf_probability_content BLOB,
ADD area_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD ruptureVelocity_pdf_variable_content BLOB,
ADD ruptureVelocity_pdf_probability_content BLOB,
ADD ruptureVelocity_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD stressdrop_pdf_variable_content BLOB,
ADD stressdrop_pdf_probability_content BLOB,
ADD stressdrop_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD momentReleaseTop5km_pdf_variable_content BLOB,
ADD momentReleaseTop5km_pdf_probability_content BLOB,
ADD momentReleaseTop5km_pdf_used TINYINT(1) NOT NULL DEFAULT '0',
ADD centroidReference VARCHAR(255);

Thanks. Have you tested it, does it store the parameters?

I haven’t tried it with the scwfparam module yet. Just updating the database schema first… might experiment some later.

For those of you who want to compile from source and update previous seiscomp3 installation to Jakarta 2017.334 I summarized the procedure which seemed to have worked for my system (Ubuntu 14.04).

I needed to install quite a number of Packages since my machine was just
a standard Ubuntu installation.

**Dependencies for Ubuntu 14.04 machine:**
Thiese commands I got from my command history; some packets were not found in the Ubuntu’s database. However, overall this were were the the apt-get commands I “fired” into the machine before successfully compiling: 

apt-get  install   libssl-dev   # For openssl
apt-get install libboost-all-dev
apt-get install libxml2-dev
apt-get install libxml2
apt-get install regex
apt-get install cmake
apt-get install software-properties-common
apt-get install checkinstall 
apt-get install git
apt-get install cmake
apt-get install ccmake
apt-get install ccmake-curses-gui
apt-get install cmake-curses-gui
apt-get install libqt4-designer libqt4-opengl libqt4-svg libqtgui4 libqtwebkit4 
apt-get install libqt4-core
apt-get install libncurses-dev
apt-get install qt4-dev-tools libqt4-dev libqt4-core libqt4-gui
apt-get  install  libmysqlclient-dev
apt-get  install  flex   
apt-get install libmysqlclient
apt-get install qt4-dev-tools libqt4-dev libqt4-core libqt4-gui
 apt-get install  build-essential
 apt-get install  libxml2-dev 
 apt-get install   libxml2
 apt-get install   libboost
 apt-get install   libboost-dev
 apt-get install   regex
 apt-get install boost
 apt-get install   libboost
 apt-get install   libboost-all-dev
 apt-get install  cmake-curses-gui 
 apt-get install libqt4-core 
 apt-get install libncurses-dev
 apt-get  install libmysqlclient libmysqlclient-dev

With this I could nicely configure and compile. I just followed the procedure in the Readme.md from the source code files.

In principle this was

$ make -f Makefile.cvs   
$ cd build
$ make
$ make install

I had a previous seiscomp installation on my machine. The Read.me did not mention if this will be a good idea to install the new binaries “into” this previous seiscomp installation. In particular after “make install” I noticed that also *.cfg files in my $HOME/seiscomp3 folder are changed, so I was a bit worried that my overall configuration might be changed or even damaged. This actually seem to happend …… I will summarise this in a separate threat. But this is what I did to make all models work again:

After my update to update Jakarta 2017.344 scmaster ( seiscomp start scmaster ) failed to start.

seiscomp exec scmaster --debug gave more insight in the problem:

 description: Database plugin for scmaster
       author: GFZ Potsdam
      version: 1.0.0
14:37:49 [debug/DbPlugin] Checking database 'mysql' and trying to connect with 'sysop:sysop@localhost/seiscomp3'
14:37:49 [debug/MYSQL] Connected to sysop:******@localhost:3306/seiscomp3 (Localhost via UNIX socket)
14:37:49 [info/DbPlugin] Database connection established
14:37:49 [debug/DatabaseArchive] Found database version v0.9
14:37:49 [warning/DbPlugin] Database schema v0.9 is older than schema v0.10 currently supported. Information will be lost when saving objects to the database! This should be fixed!
14:37:49 [error/DbPlugin] Strict version check is enabled and schema versions do not match.
14:37:49 [error/MASTER_COM_MODULE] Plugin dbplugin not operational. Bailing out
14:37:49 [info/MYSQL] Disconnecting from database

I followed then the procedure described in:
https://github.com/SeisComP3/seiscomp3/blob/master/CHANGELOG.md

As Jerome noticed already yesterday (see his text above) I used this
mysql -u root -p seiscomp3 < ~/seiscomp3/share/db/migrations/mysql/0_9_to_0_10.sql
I used the ~, so this should work with copy and paste for everybody. Jerome was right that a database needs to be defined, in this case seiscomp3, which is the standard seiscomp database. This solved the issue and scmaster turned green in scconfig window.

Then, I went to the scconfig window, updated the configuration. With this, all my previous bindings were accessible again and all modules started, wavforms come in on scttv and proesses show up in scmm. However, no events seem to be associated from the picks.

Good luck with your update. Actually I just wanted to to avoide a timeout issue from was fixed in the new version of scamp. Maybe it might have been more easy just to update scamp instead of the whole system… Any ideas on this are highly appreciated.

Kind regards
Dietrich

This must not happen. All shipped .cfg files will end up in seiscomp3/etc/defaults/*.cfg while you should have changed only files in seiscomp3/etc/*.cfg. Which configuration has been destroyed by the update?

If you are familiar with Git and compiling, you could do the following:

  • clone our repository
  • checkout the release branch that corresponds to your current release
  • cherry-pick the commit that adds a particular feature
  • compile and install

You could also just download the latest release, install it to another directory and just launch scamp from there while the other modules are running from your old installation. That is possible but probably more complicated to manage.

Dear Jan,

thank you very much for your fast reply.

Regarding the behaviour of make install you are right that this is working nicely. Since I updated as well the configuration its not easy to follow which files exactly changed.

The current problem after the installation of Jakarte 2017.334 is that so far the system does not generate events. P picks and waveforms show up nicley in scttv but no events are generated.

I tried to isolate the problem and have two candidates:

1.) When I do seiscomp update-config
I receive these warnings about API mismatch:

  * schema up-to-date
* configure inventory
16:38:44 [warning] API version mismatch (10.0 != 11.0) can lead to unpredicted behaviour: /home/sysop/seiscomp3/share/plugins/saic.so
16:38:44 [warning] API version mismatch (10.0 != 11.0) can lead to unpredicted behaviour: /home/sysop/seiscomp3/share/plugins/spickdbg.so
WARNING: etc/inventory/README ignored: wrong extension

2.) Further problems are that "l1scanloc" can be started only manually and dies one in a while.

seiscomp exec l1scanloc --debug
gives

16:47:40 [debug] LOCSAT: no station corrections used for profile iasp91
16:47:40 [info] Starting message thread
16:47:40 [warning] Could not dispatch objects
16:47:40 [warning] Could not dispatch objects
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument

If this cannot be fixed feasable I would go for the hybride approach, mixing binaries from the different versions.

Regards
Dietrich

The two additional issues are related to gempa modules. You have to upgrade them as well. You will find corresponding versions in your repository on our server.

Hello,

Could it be possible to have a binary for the latest Raspbian 9 Stretch ?

It becomes difficult to still find either SD card or images from the older Jessie distro.

Thanks.

You can get Jessie image from
https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2017-07-05/.
It is still an officially supported Debian distribution. Stretch is on
our TODO list.

@saurel, I am pretty sure that you know but you can always compile yourself. Doesn’t that work for you?

@jabe, yes, I know about that solution.
I’m just helping there some colleagues which have a brand new raspberry and doesn’t have as many experience as I have on SC3 compilation. That’s why I went to the easy way : ask you about a raspbian9 binary :wink:

@andres, thanks for the link, perfect for a quick solution.