SeisComP3 release Jakarta-2017.124

May 8, 2017

Categories:
2017.124
SeisComP3

First some statistics for all changes and bugfixes:

We removed 47910 and added 31933 lines of code. 50% of those numbers are related to the generation of the Python wrappers with Swig.
500 files were changed whereas 152 files are related to the update of Spread from version 4.3 to version 4.4. 82 additional file changes were caused by the LocSAT cleanup.

scolv

This main data analysis tool in SeisComP3 has received the new Tools menu in the picker window as of release Jakarta-2016.161. Currently, the tools menu contains the function for spectral analyis. We have decided to give this popular topic a high priority and added more functionality to Fourier analysis. The new features include the computation of power spectra and selectable window functions with customizable taper lengths. The spectra can be exported to a file and used for further scientific analysis.

More new tools and features are expected to be integrated in the Tools menu in the future.

LocSAT

The default locator code SeisComP3 uses is rather old. It was Fortran code translated to C with f2c which dates back to 1990. Usually LocSAT is only used to locate events but for consistency with computed travel times it would be desirable to also use the travel time computation of LocSAT detached from the location process. LocSAT exposes an interface with compute_ttime and a SeisComP3 interface has been implemented in its early days.

Until now we haven't used that interface in favour of libtau which provides more information such as angular slowness and take-off angles. Now that we have developed a tool to evaluate the network performance (-> npeval) which depends on massive travel time computation calls, we have tried to use the LocSAT functions because they run much faster than their libtau countpart (for good reason and we are only interested in the first onset time) and vastly improve processing speed for npeval. We did it and found that each npeval call gave different results. We started to dig into the LocSAT code and while studying functions that were translated to C with f2c, we reformatted the code and cleaned up the sources files to get a better understanding of what is going on. It turned out that the initialization of the travel-time table arrays was missing. The travel-time arrays have a fixed size and are populated from the travel time table files. If the array was not completely used, the remaining entries were garbage (or random numbers) and led to unpredictable results. Initializing the arrays with the default value fixed the problem so that thousands of runs of npeval resulted in the same output.

With this fix, the LocSAT interface can now also be used in scanloc for phase association providing a performance speed-up.

In addition to the cleanup, unused C files have been removed. Most of them dealt with input/output operations for dates/times and stuff that we don't use. Removing all f2c dependencies from LocSAT code is still on the roadmap and might be finished in the next release.

scconfig

We added a documentation panel to scconfig which lists all installed documentations and changelogs. The changelogs are being read from $SEISCOMP_ROOT/share/doc/{name}/CHANGELOG. Help pages are expected to provide an index at $SEISCOMP_ROOT/share/doc/{name}/html/index.html or $SEISCOMP_ROOT/share/doc/{name}/index.html. That gives a user easy access to module changelogs and documentation pages which are otherwise spread over the file system, mail inbox and internet sites. We have also switched the packaging for all our customers that have access to our software repository to include the documentation. Now, no additional documentation packages need to be downloaded.

scevent - region check

A new plugin has been added for scevent to compare event locations with configured regions. Regions are defined by closed polygons in the local folder of bna files. Whenever an event lies outside regions then the event type is set to outside of network interest. If an event lies inside configured regions and the event type is already set to outside of network interest then the type is unset. In this way an automatic region-based event classification can be made for subsequent analysis or filtering. This plugin also provides another example on how to extend scevent.

scmv

After a long time the mapview got some attention as well. Now triggering event processing in scolv by selecting an event on the map is supported. A Show Details button was added to the event detail popup window.

Map widget

The map widget (as used in scmv, scesv, scolv and others) has always had the feature to measure distances by dragging the cursor with left mouse and CTRL key. It has shown the distance of two points and the azimuth. We have now improved that feature for allowing to draw polygons, measure the area and save the polygon to the clipboard or to a BNA file. Such a BNA file in turn can be shown in the map itself or be used as region configuration in the evrc plugin of scevent.

To draw a polygon, press and hold the CTRL key. Click in the map at the starting point of the polygon. When you now move the mouse you should notice a line drawn from the last clicked position to the current mouse position. Click again to fix the next position and so on. A dashed red line is drawn from the last position to the first. When you are done with the polygon, right click in the map at the last position and select Measurements -> Copy to Clipboard or Measurements -> Save as BNA File.

scrttv

We have added the option to load XML files containing picks in the trace view when using scrttv in offline mode. Now SeisComP3 users can load their miniSEED data and compare the waveforms with the picks from P and S phases that scautopick has found. In this way we give enhanced support for XML playbacks. Just load your waveforms in scrttv and open the pick XML file using the File menu.

Magnitudes

All local magnitudes are now configurable in scconfig. The configuration options include the calibration functions and magnitude corrections as well as the way the amplitudes are computed.