# Change Log All notable changes to sceval and the evsceval plugin will be documented in this file. ## 2024.339 ### Fixed - Convert sensor location elevation to km for computing hypocentral distances if `mismatchScore.useHypocentral` is configured and true. ## 2024.319 ### Changed - Output unformatted XML in playbacks with `--ep` in order to reduce file size. - Add command-line option `--formatted` in order to output formatted XML which may be better readable for humans. ## 2024.310 ### Fixed - Correctly compute hypocentral distances for configured stations. ## 2024.218 ### Added - Support considering hypocentral distance for the station-distance evaluation by configuring `mismatchScore.useHypocentral = false`. Otherwise, epicentral distance is used. ## 2024.200 ### Changed - sceval-tune: Code linting supporting Python 3. - sceval: When checking if time, slowness or backazimuth parameters of a arrival is used an arrival is considered used, even if the used flag is not set for any of the parameters. This is special case may be relevant for arrivals from older SeisComP systems or arrivals from external applications. ## 2024.193 ### Fixed - Do not crash when event parameters without journal entries are read from file. ## 2023.325 ### Changed - Remove support for SeisComP3 C++ API since no packages will be provided for SeisComP3 anymore. ## 2023.244 ### Added - Documentation: - Section on filtering of origins and phase picks. - Section on fast setup. ### Changed - Corrected typos in changelog. ## 2022-07-25 ### Added - The configuration parameter `origin.agencyWhiteList` allows filtering of origins by agency ID, e.g., for confining evaluation to origins from own system. - The documentation section 'Pipelines, Redundancy/Import' describes the application of sceval in systems with pipelines or external origins. ## 2022-06-24 ### Added - Add tolerance for origins without 'usedPhaseCount'. Instead count the number of actually used arrivals considering arrivals if any pick parameter of time, slowness or backazimuth is used. - Do not consider the weight of an arrival but test if time, slowness or backazimuth have been used. The weight is typically read from locator output and if beyond control by scautoloc or scanloc. ## 2022-03-28 ### Changed - Update command-line help for sceval-tune. ## 2022-03-11 ### Added - evsceval plugin - Allow configuration of object cache size. - Print configuration summary in debug output during startup. ## 2022-01-12 ### Added - Add tuning option `--use-defaults` to consider some default parameters of sceval. Otherwise the actual configuration is used allowing a more precise tuning. Before, defaults were considered. ### Changed - Improved tuning mode and sceval-tune. - Remove tuning option `--min-phase`. ## 2021-11-22 ### Added - Support using "global" as a synonym for "default" in `setupName`. ### Changed ## 2021-11-17 ### Changed - Allow using multiple module names for `setupName`, e.g. supporting evaluation of origins for which the picks where provided by multiple picker modules. ## 2021-11-05 ### Added - evsceval plugin for scevent: - Do not set the eventTypeCertainty if it has been set before unless `sceval.overwriteManual = true`. The feature requires SeisComP in version >= 5.0.0. ## 2021-08-21 ### Added - Send a journal entry if the origin status is set to track the history. ## 2021-04-20 ### Added - evsceval plugin for scevent: - Do not ignore the plugin if the multiple-agency check has an invalid configuration. Just skip this check. - The new configuration parameters `sceval.overwriteEventType` and `sceval.overwriteManual` in scevent.cfg add control for overwriting event types and manual solutions by scevent. - Do not process events where the preferred origin is automatic but the event type was set by journaling unless `sceval.overwriteManual = true` in scevent.cfg. The feature requires SeisComP in version >= 5.0.0. ## 2021-02-14 ### Added - The new configuration parameter `minPhaseConfirm` allows confirmation of origins reaching or exceeding a number of arrivals - The new command-line option `--force` forces evaluation of origins without testing the original status, mode or author. Use the option for testing the configuration and for forcing evaluation. ## 2021-01-19 ### Added - The new command-line option `-O` allows filtering of origins by their ID in XML playbacks. - Added more details and examples to command-line help. ## 2020-09-02 ### Important - The new configuration parameter `origin.ignoreStatus` defines origin evaluation states for which origins are not evaluated. By default no origin which has already an evaluation status is evaluated. This parameter potentially changes the behavior of sceval if processed origins have a non-empty evaluation status. To restore the previous behavior, set `origin.ignoreStatus = ""`. ## 2020-07-27 ### Added - The configuration parameter `maxRMS` allows to reject origins with large RMS residual. The parameter may be important if locator modules do not check the origin RMS or if the check is very tolerant. - Re-design documentation. ### Fixed - In line with documentation reject origins with `depth < minDepth` and `depth > maxDepth` instead of `<= minDepth` and `>= minDepth`, respectively. ## 2020-03-06 ### Changed - Provide Python3 support for sceval-tune ## 2020-02-26 ### Changed - Improved documentation. ## 2020-02-21 ### Changed - So far only origins which belong to events were evaluated in XML playback mode. Now we evaluate all origins of the event parameter set. - Before we checked at start if a station has a valid epoch in the inventory for the current time. Some customers noticed that historical data could not be processed when the inventory did not contain such an epoch. Now we just check if the station is part of the inventory. ### Fixed - Use the configuration parameter `distanceProfilesMinPhase` correctly. - Do not apply `minPhase` if the number of `used phases >= distanceProfilesMinPhase` However, when `distanceProfilesMinPhase = 0`, minPhase is considered. ## 2019-11-09 ### Changed - Return the origin status and stop evaluations or origins whenever modified. - Use -1 as default for `gapMinPhase` which disables extended Gap criterion. - Every method adds the comment "scevalMethod" to identify the method which set the status - Executing extended GAP evaluation after station-distance evaluation allows to confirm origins rejected before by station-distance evaluation. - Do not set the maxGap comment by default if GAP = 360. The change will not comment single-stations observations, e.g. from arrays. Events may be located by single arrays with beam picks (arrival times, backazimuth, slowness). Solutions from single arrays have GAP = 360 degree. With this change, the sceval plugin will not set the event type, e.g. to "not locatable" even if the event was observed only at a single array unless specifically configured by `maxGap = 360`. ## 2019-11-01 ### Changed - Changed the name of configuration parameters `playback`/`--playback` to `sloppy`/`--sloppy`. ### Added - New option `--noQC` for running sceval without waveform QC parameters, e.g. in playbacks. - New configuration parameter `mismatchScore.use` to disable calculating the mismatch score without setting the origin status. Useful for testing and tuning. ## 2019-10-29 ### Fixed - When stations are unavailable during startup, the scqc does not deliver values. Therefore, all stations are inactive for evaluation during startup of sceval and are only activated by incoming waveform QC parameters which must be in range. This may delay the full functioning of sceval by some seconds. ### Added - Added the configuration parameter `qc.useDatabase` allowing to read waveform QC parameters from the database. Doing so may slow down sceval during startup. - Added availability to the default waveform QC parameters, `qc.parameters,` to be tested. - Added parameter `--playback` to facilitate sceval working on data even if QC parameters are missing due to short waveform time windows during playback. - If a station is inactive due to out-of-range QC parameters, is immediately activated when it provides an arrival to the evaluated origin. ## 2019-09-25 ### Fixed - Update origins and comments creation/modification time if the evaluation status or text was updated ## 2019-06-11 ### Added - The evsceval plugin for scevent does not set the event type if the event has manual origins or if the configuration parameter `sceval.rejected < 0`. ## 2019-04-05 ### Added - sceval now fully supports XML playbacks using the `--ep` option. Before, only the preferred origin of an event was evaluated. Now, all origins are evaluated. This allows to use sceval in XML-based offline playback on origins before involving scevent. ## 2019-01-09 ### Changed - Plugin evsceval: setting the event type may overwrite the event type set by other modules. Therefore, the operation is disabled by default configuration. ## 2018-11-12 ### Added - sceval-tune script checks the existence of the profile input file, provides more descriptive error output and considers events in a default time window if unset. ## 2018-09-18 ### Added - Check the depth of an origin and reject events shallower than `minDepth` or deeper than `maxDepth`. ## 2018-07-19 ### Fixed - Removed connection.username and connection.server from default configuration allowing for sceval alias modules to be executed in parallel with default configuration ## 2018-05-07 ### Fixed - Segmentation fault in offline mode ## 2018-04-27 ### Added - evsceval plugin for with multi-agency test for scevent: The contribution of several agencies to an event may be used as a criterion to set the status of origins contributed by one or more agencies. Setting the status is only available if the original origin status is neither final, confirmed or rejected. The description XML files have been uniquely renamed. To avoid duplicates, remove from `$SEISCOP_ROOT/etc/description/` the files `evalcomment.xml` and `evsceval.xml`. Only keep `scevent_evsceval.xml`. ## 2018-03-02 ### Fixed - Correct unit in description of `minGapPhase` configuration parameter. ## 2018-02-14 ### Fixed - Accept status from previous methods if station-distance test yields undefined ## 2017-11-30 ### Added - `distanceProfilesMinPhase` requiring a minimum number of phases for station-distance statistics, over-rules the `minPhase` parameter - Descriptive output for tuning mode ## 2017-11-30 ### Fixed - `setupName` considers the module for which a station has a binding profile - Fix database query ## 2017-09-18 ### Changed - Set origin comment: scevalMethod - Calculate mismatchScore even if origin was rejected or confirmed before by other method, but do not use the mismatchScore ## 2017-08-21 ### Fixed - Rounding error in distance comparison ## 2017-06-26 ### Added - Added support of alias module names in sceval-tune ## 2017-06-05 ### Changed - Consider used phases for minimum phase test ## 2017-03-24 ### Changed - evsceval plugin change default value of reject to 50% ## 2017-03-09 ### Fixed - Message group handling ## 2017-03-03 ### Fixed - evsceval plugin for scevent setting event type and certainty ## 2017-03-02 ### Added - evsceval plugin for scevent setting event type and certainty ## 2017-02-17 ### Fixed - Gap criterion: add `maxGap` comment but do not reject origin ### Added - Event IDs to plots in tuning mode ## 2016-09-12 ### Added - sceval-tuning mode: add support for distance profiles ## 2016-08-03 ### Added - Add sceval-tuning mode with python script and documentation ## 2016-06-16 ### Added - Add minimum station criterion - Add extended gap criterion ## 2016-04-20 ### Changed - Remove `minDist` ## 2016-03-15 ### Added - Fixed `streamMask` in description ## 2016-03-11 ### Added - Add GAP criterion - Support empty distance profiles - Ignore already rejected origins - Add documentation for QC ## 2016-02-11 ### Changed - The evaluation status of already rejected origins will no longer be changed ## 2015-10-22 ### Fixed - High CPU usage in case of manual origins ## 2016-02-25 ### Added - Add gap criterion to check the largest azimuthal gap of an origin ## 2016-03-11 ### Added - Allow empty distance profiles - Reject origins that are rejected once even when confirmed by another evaluation method