The open-source JRG-VIewmat RG Seismic Processing System for Java is now archived and maintained at Zenodo. The archive has the latest version of the Java source codes, and compiled Java .class files.
The citation for the software is:
Louie, John N. (2020, February 2). JRG, the Resource Geology Seismic Processing System for Java, and Viewmat (Version 4.5.1). Zenodo. http://doi.org/10.5281/zenodo.4001379 . http://doi.org/10.5281/zenodo.4001378 cites all versions.
Additional software by John Louie is available from https://Louie.pub .
New features include
- relaxed-validation mode so that handler parameters can be changed slightly without redeploying the service
- the ability to create an IP white list per endpoint
- if errors occur while reading configuration files, continue to process respective files to facilitate problem resolution
Bug fixes include
- correcting the order of output fields in usage log output
- enable corsEnabled property for error handling in the same way as successful queries
- re-enable operation with Glassfish 4.x server
Please see the main documentation on the Wiki page for a complete list of changes.
Highlights of changes:
- Support for much larger range of sample rates. Outside of the range 32767 to 1/32767 integer sample rates are approximated whenever possible.
- Rewrite of all decoding and encoding routines to replace those used from qlib2, now the entire project is LGPL licensed.
ChangeLog since 2.17:
- Remove limitation on sample rate before calling ms_genfactmult()
in the normal path of packing records. Previously generating the
factor and multiplier was not attempted for rates higher than
32,767.
- ms_genfactmult() now support a much larger range of integer
sample rates and periods.
- ms_genfactmult() now sets the factor and multiplier using the
SECONDS/SAMPLE notation for sample rates less than 1.0 to retain
precision for low rates.
- ms_genfactmult() now assumes the specified rate is a sample
period in seconds if the samprate value is negative.
- Add ms_rsqrt64() as a general use reciprocal sqrt for doubles.
- Use memcpy() instead of assignment when unpacking float32 and
float64 samples to avoid problems with NaN's. Thanks Lion Krischer.
- Add test for reading records without Blockette 1000.
- Reformat all source code using included clang-format profile.
- A more elegant sanity check for output length in packing by mbyt.
- Improvements for test suite, more consistency.
- Remove msr_decode_steim? from libmseed.def, they are internal.
- Add sanity to length check before memset calls in packing functions.
- Check for environment variables ENCODE_DEBUG and DECODE_DEBUG
and set debugging output, at this point it is Steim frame details
and differences being encoded/decoded.
- Fix padding in steim[12] encoding routines.
- Remove unneeded output buffer checks in steim[12] decoding routines.
- Replace data sample packing and unpacking routines from qlib2 with
new routines developed from scratch. All code is now LGPL licensed.
- Add test suite with tests for encoding, decoding, parsing, etc.
- Update licensing to GNU-LGPL version 3 and include (L)GPL licenses
in LICENSE.txt.
- Define needed C99 int types for MSVC 2012 or earlier. Previously
this was only done for versions earlier than MSVC 2010.
Web Service Shell version 2 is a major update that adds the capability to define multiple endpoints and adds more flexibility in naming services. Incremental improvements include adding a new logging method and more consistent error messages. The core concept of providing a web service that can be configured via simple properties files to utilize external resources remains the same.
New Features
- Configure multiple, arbitrary endpoints. Previously, only one endpoint, “query” was provided. Now it is possible to define multiple endpoints and define endpoint names by configuration. Each endpoint may have its own list of supported media types and may include static or dynamic HTTP response header adjustments.
- The web service naming convention (and URL path) has been generalized to support simple or multi-level naming conventions while still supporting the original, three level FDSN standard of “/fdsnws/<service>/<majorversion>/“
- Endpoints that return content proxied from other resources (e.g. files or other endpoints) are supported. In version 1, only one endpoint, “application.wadl” was available to deliver XML content. In version 2, multiple proxy endpoints may be configured, along with respective media types. Also, endpoint “application.wadl” may be removed if it is not needed.
- A new loggingMethod to support RabbitMQ has been added.
- Time values in usage log messages are standardized to UTC time so that time is not affected by other system settings.
- Version 2 has improved consistency for error messages
- A few unused parameters are removed
Changes needed for upgrading a service from version 1 to version 2
- Configuration file naming conventions have changed slightly to support generalized service naming capability.
- Additional syntax is used to define endpoints plus their respective parameters see WSS 2.2 Documentation at https://seiscode.iris.washington.edu/projects/webserviceshell/wiki/Web_Service_Shell for details on naming conventions and configuration parameter changes.
Binaries are posted for the latest version (0.9) of Seismic Canvas. This is the last beta version before 1.0RC is released in January. Binaries are now available for both 32 and 64 bit Windows and some Linux distros.
- Issue 633 - Added a check for non-zero exit code from the command line handler after
stdout
is closed. Also added error text to stdout
stream if a non-zero exit code is encountered.
- Issue 631 - In the service parameter configuration file (servicename-1-param.cfg), the parameter
aliases
has been added to more easily define short-hand versions of parameter names (i.e. net/network). These identical parameters no longer need to be defined separately in the parameter configuration file.
- Issue 607 - In the service configuration file (servicename-1-service.cfg), the parameter
outputType
has been replaced with outputTypes
and now determines the MIME type returned to the HTTP header.
- Issue 606 - Various fixes to logging messages and content.
- Issue 473 – Update error response for service root documentation page. Now, information is more clearly displayed when the root documentation page is not available.
- Issue 688 – A new resource endpoint has been added (‘v2/swagger’). The respective parameter ‘swaggerV2URL’ has been added to the service configuration file (SERVICENAME-1-service.cfg).
- Issue 690 – Updated error handling when the service WADL is not found.
- Issue 707 – Fixed a bug where start and end times were not listed in the service usage logs if the times were not specified in the query.
- Issue 724 – Added the boolean parameter ‘corsEnabled’ to the service configuration file to include the Access-Control-Allow-Origin header in the HTTP response.
- Issue 733 – A new resource endpoint has been added (‘info’). The respective parameter ‘infoHandlerProgram’ has been added to the service configuration file (SERVICENAME-1-service.cfg)
Download: https://seiscode.iris.washington.edu/projects/libmseed/files
Change since 2.16m:
- Round Fixed Section Data Header start time values to the nearest
tenth of millisecond and restrict the microsecond offset value
to a range between -50 and +49 as recommended in SEED. Previously
start times were truncated at tenths of millisecond resolution
and the microsecond offset value was between 0 and +99. This also
addresses a bug where microsecond offsets were off by 100ms for times
before Jan 1 1970. Thanks to Lion Krischer for reporting.
2015.188:
- Fix parsing of MaxClientsPerIP configuration parameter when the
MaxClients parameter is also being specified.
- Allow connections from addresses that have write permission even
when the maximum number of connections has been reached. The reserve
space is currently 10 connections.
- Clarify in documentation that clients connecting from the localhost
loopback address (127.0.0.1) is only granted write permission if no
other addresses are explicitly granted write permission.