# Change Log All notable changes for the ccloc package and its applications will be documented in this file. ## 2024.311 ### Changed - Ignore attributes of Picks in template events: backazimuth und horizontalSlowness, onset, polarity. - Ignore attributes of Arrivals in template events: timeResidual, backazimuthUsed, backazimuthResidual, horizontalSlownessUsed, horizontalSlownessResidual. - Ignore attributes of Origins in template events: quality.standardError. ## 2024.301 ### Fixed - Fix incorrectly reported count of matched stations. ## 2024.274 ### Added - evccloc plugin: Check distance to preferred origin and the origin evaluation status before setting event type as configured by the scevent configuration parameters `ccloc.maxDistToPrefOrigin` and `ccloc.ignoreStatus`, respectively. ## 2024.226 ### Changed - Code maintenance of evccloc plugin. ## 2024.129 ### Fixed - Fix incorrect handling of parameter `procMargin` in certain situations. - Fix missing publication of picks for single-pick templates. ### Changed - Remove option to dump individual steps. Parameters `output.dump.eachStep`, `output.dump.startTime` and `output.dump.endTime` have been removed from the configuration accordingly. ### Added - Add binding parameter `useAllC` used to enable matching on all channels of a station. - Introduce parameter `detector.minimumChannelsPerStationRatio` used to control the ratio at which a station is declared as matching. ## 2023.347 ### Added - Explain the relation between SeisComP filters and envelopes in ccloc in the documentation. ## 2023.341 ### Added - Support more time formats in parameters `output.dump.startTime` and `output.dump.endTime`. ## 2023.195 ### Changed - Update Getting started and Examples sections in documentation. - Update command-line help. ## 2023.192 ### Changed - Accelerate data setup and pre-processing especially in case of many event or pick templates. - Improve reading of template data. Channels are now cropped more precisely. This allows for shorter templates as no data padding is required. ### Added - Introduce parameter `procMargin` that allows to compensate for filter artefacts. ## 2023.164 ### Changed - Print number of published origins to stderr. ## 2023.136 ### Changed - Add support for SeisComP API >= 16.0.0. ## 2023.023 ### Fixed - Fix reading of origin from database. - Handle records with 0 samples correctly. ### Changed - Ignore duplicate entries in parameter `events`. ## 2022.354 ### Fixed - Fix ignored parameters in binding profiles. ## 2022.342 ### Important - Optimized overall speed of computation. The speed-up may be up to a factor of 3. However, cross-correlation coefficients/fit values may differ slightly w.r.t previous version. The difference are usually < 0.03. However, origins with detection values previously close to the configured threshold may be missed. Consider testing and adjustment of the configuration parameter `detector.threshold` or `event.$name.detector.threshold`, i.e. reducing slightly by 0.01 - 0.05. - Configuration parameter `processing.normalization` was ignored in previous versions and always set to "trace". The parameter is respected again. For consistency, its default configuration value was changed to "trace". If `processing.normalization` was previously configured with "total" you must change the value to "trace" in order to retain the same behavior. ### Added - Added support for multi-threading and GPU to speed up computation. New control parameters are `computeRessources.numThreads` and `computeRessources.useGPU`. - Added support of measuring backazimuth and slowness from arrays which can be defined per template event adding are reference stream in `event.$name.array.referenceLocation`. ### Changed - Previously the default configuration parameters `detector.threshold`, `detector.channelThreshold`, `detector.minimumChannelRatio` and `detector.minimumStationRatio` were different from the hard-coded values. When unconfigured and providing the configuration file using `--config-file` the result therefore differed from playbacks with standard configuration files. The hard-coded parameters now equal their default configurations. ## 2022.258 ### Changed - Minor improvements in documentation. ## 2022-06-30 ### Added - Add reference to cross correlation to documentation. ## 2022-01-28 ### Changed - Update documentation. ## 2021-10-07 ### Added - Add Method to pick object which is not ccloc. It can be viewed in the scolv arrival table - Print number of written origins to stderr when running in ep mode - Print to stderr the origin score and if it is sent or not ## 2021-05-13 ### Changed - Update documentation ## 2021-05-06 ### Added - Allow parameter `detector.fitWindow` to be overwritten per master event. ### Changed - Validate AIC filters only for relevant channels. - Adjust documentation of cross-correlation and getting started ### Fixed - Fix handling of binding parameter `use3C`. - Fix rare NaN-value generation during envelope computation. ## 2021-04-22 ### Added - Do not process events with evccloc plugin where the event type was set manually unless `ccloc.overwriteManual = true` in scevent.cfg. The feature requires SeisComP >= 5.0.0. ## 2021-02-05 ### Changed - Validate AIC filters only if repicking is enabled. ## 2021-01-15 ### Changed - AIC filters are now validated at startup. ## 2020-12-22 ### Changed - Adjusted documentation ## 2020-10-09 ### Fixed - Fix handling of large gaps if present on all channels. ## 2020-09-23 ### Fixed - Do not crash for very small values of parameter `detector.fitWindow`. ## 2020-09-09 ### Changed - Move parameter `detecEnable` into the binding profiles to allow control on channel level. - Move command line parameter `--before` into the configuration. ### Added - Send SNR amplitudes for all non-theoretical picks. - Extend AIC filter parameters to accept lists of filters. - Print processing speed in regular intervals and on application shutdown. ## 2020-09-01 ### Important - All new origins receive the status "preliminary" as their location is not defined by locating but by the template. To set no or a different status configure the parameter `output.origins.status`. ### Fixed - Do not crash when using unsupported configuration and using `--ep`. ## 2020-08-26 ### Added - The section "Getting started" of the documentation now contains an example script for generating the template event interactively from scolv. - More configuration parameters were added to the documentation. ## 2020-08-19 ### Added - The new module configuration parameter `repicking.sendAICPicks` allows to send AIC picks which do not exceed the configured minimum SNR separately from the T-type picks. ## 2020-01-23 ### Changed - Updated the documentation, especially the section Getting started to work with the new configuration. ## 2020-01-17 ### Added - Add command line parameter `--before`. This parameter can be used to start processing a given number of seconds in the past. ### Fixed - Fix wrong default value for parameter `processing.envelope.hiFreq`. - Improve time window handling in case of delayed or interrupted channel data. ## 2019-09-25 ### Changed - Channel parameters can now be configured in the bindings configuration for enhanced flexibility. - Improve best fit calculation to include more channels if possible. ### Added - Add a restart option that allows ccloc to seamlessly continue processing after module restart. ### Fixed - Fix silent misbehavior if the defined buffer size is too small. - Fix invalid total fit due to a single corrupted channel. - Allow to read magnitudes, origins and picks from the entire XML file. ## 2019-09-23 ### Added - Added the parameter `prefOriginsAuthors` for the plugin evccloc: if configured, the plugin for scevent only tests the preferred origin and the preferred origin must have one of the configured authors. ## 2019-09-04 ### Added - Add parameter `events.$name.magnitudeID` used to specify a custom magnitude. ## 2019-08-30 ### Fixed - Take noise window into account even if envelope is disabled. ## 2019-06-29 ### Added - Extend configuration options for improper event data. ## 2019-06-25 ### Fixed - Fix crash that may occur if the inventory has changed over time. ## 2019-05-16 ### Fixed - Do not crash if neither an XML file nor a baseID is given for a master event. ## 2019-05-06 ### Added - Add a score to control when an origin will be published. ### Changed - Send theoretical picks only if explicitly configured. ## 2019-01-31 ### Changed - Extend the set of errors tolerated by ccloc if enabled. ### Fixed - Fix crash that is caused by a missing complementary channel when repicking S. ## 2019-01-18 ### Added - Add the possibility to tolerate master templates with improper channel data. ## 2019-01-08 ### Fixed - Update evccloc plugin to read type comments correctly. ## 2018-12-20 ### Fixed - Fix crash if master template contains gaps or overlaps. ## 2018-12-18 ### Changed - Allow path variables in configuration parameter `events.$name.xml`. ## 2018-12-03 ### Changed - Extend waveform dumping to enable visual template verification. - Check picker settings on startup. ### Fixed - Fix misstated channel and station counts. - Improve handling of event groups. ## 2018-11-16 ### Fixed - Read event data from the configured record stream if not explicitly specified. ## 2018-10-12 ### Fixed - Fix time window issues in repicking step. ## 2018-10-08 ### Fixed - Improve detection of best overall match within the configured time window. - Do not crash if stream information is missing. ## 2018-10-04 ### Added - Added the documentation of result evaluation and ccloc custom column. ## 2018-09-27 ### Changed - Improved the documentation and the description of configuration parameters. - Read the master event from database if no XML file is configured. Otherwise read from XML file. In both cases the baseID is used to extract the event parameters. ### Fixed - Use the available horizontal components if `use3C` is enabled. Do not crash if data from one component is missing. ## 2018-09-25 ### Added - Added the evccloc plugin for scevent. If loaded by scevent, the plugin reads the type comment from the origins set by ccloc and sets the type of the detected event. The type comment contains the event type of the master event. In this way the master event type is propagated to the detected event. ## 2018-09-12 ### Changed - The parameter configuration was improved to account for new and deprecated parameters. The following parameters have been removed: - `events.$name.latitude` ... removed as the parameter is read from master event - `events.$name.longitude` ... removed as the parameter is read from master event - `events.$name.depth` ... removed as the parameter is read from master event - `events.$name.magnitude` ... removed as the parameter is read from master event - `events.$name.time` ... removed as the parameter is read from master event - `events.$name.place` ... removed as the parameter is read from master event - `output.waveforms.enable` ... a similar behavior can be achieved with `--dump` - `output.waveforms.mseed` - `output.waveforms.path` The following parameters have been renamed: ``` processing.maxAllowedGap -> processing.detector.maxAllowedGap processing.maxAllowedOverlap -> processing.detector.maxAllowedOverlap processing.filter.definition -> filter.definition processing.filter.bandstop -> filter.bandstop processing.envelope.enable -> envelope.enable processing.envelope.samplingFrequency -> envelope.samplingFrequency processing.envelope.hiFreq -> envelope.hiFreq processing.envelope.resampleAverage -> envelope.resampleAverage processing.logarithm.enable -> processing.logarithm detector.groupPublicationTimeout -> detector.publicationTimeout events.$name.maxAllowedGap -> events.$name.processing.detector.maxAllowedGap events.$name.maxAllowedOverlap -> events.$name.processing.detector.maxAllowedOverlap events.$name.processing.filter.definition -> events.$name.filter.definition events.$name.processing.filter.bandstop -> events.$name.filter.bandstop events.$name.processing.envelope.enable -> events.$name.envelope.enable events.$name.processing.envelope.samplingFrequency -> events.$name.envelope.samplingFrequency events.$name.processing.envelope.hiFreq -> events.$name.envelope.hiFreq events.$name.processing.envelope.resampleAverage -> events.$name.envelope.resampleAverage events.$name.processing.logarithm.enable -> events.$name.processing.logarithm ``` The following module configuration parameters have been added: - `repicking.enableAIC` - `detector.fitWindow` - `events.$name.originID` ... allow providing an origin ID. Otherwise the preferred origin is used. This origin may change by reprocessing. The following bindings configuration parameters have been added: - `use3C` ... Use all three components for processing. Otherwise, only the component is used for on which the pick in the master event is defined. - `ppicker.*` AIC parameter for refining the picks of P-phases - `spicker.*` AIC parameter for refining the picks of S-phases Command-line options: - `--ep` implies `--offline`. No connection to messaging is established.