# Change Log All notable changes to DeepC will be documented in this file. ## 2026.042 ### Important THIS IS A MAJOR UPGRADE. MANUAL SETUP IS REQUIRED. DeepC classification types have been split into 4 "sub-pickers": 1. DeepC-EC - event classifier 2. DeepC-PC - phase classifier 3. DeepC-PR - phase classifier and refiner (primary picker with optional reclassification of phases) 4. DeepC-SR - secondary picker for S phases - Binding parameter groups and parameters have changed - While the first three sub-pickers are configured in the global bindings under "picker.deepc.{deepcEC,deepcPC,deepcPR}", you will find DeepC-SR's binding configuration under "spicker.deepcSR". - Each sub-picker can now be configured individually, common options are found on the highest level and are valid for all sub-pickers of the same group (picker or spicker). - Check descriptions for new semantics and default values, especially for: - threshold - reclassify Subgroup names changed: - "phaseRefinement" was eliminated, parameters P/S.signalBegin/signalEnd are in the sub-picker's root group - "evaluationStatus" => "pickFalsification" - Check the new parameters: - addComment - sendNoise - sendRejected ### Changed #### Parameters - Comments are now switched off by default, use addComment to acitvate - Noise picks are not sent by default, use sendNoise to send them with evaluationStatus "rejected". - Picks rejected by pickFalsification are not sent, use sendReject to force sending them with evaluationStatus "rejected". - Parameters "threshold_p" and "threshold_s" are removed, parameter "threshold" can be used to define individual thresholds using special syntax (see description). #### Functions - "DeepC-SR" (former "DeepC-S") now uses the first pick exceeding the threshold right after the trigger, instead of searching for the argmax within the whole trace, additional picks are shown in the debug log. ### Added - Parameters "addComment", "sendNoise", "sendRejected" - "MethodID" now shows the sub-picker applied. ### Fixed - Some traces weren't processed because the resampler returned too short time windows. - Some predictions were garbage because the resampler returned too short time windows and their times weren't checked. - Some traces weren't processed because a condition didn't tolerate rounding errors. - "DeepC-PR" (former "DeepC-P") didn't use the specified range for S phases when doing reclassification. ## 2025.303 ### Changed - Parameter `model` was replaced by `modelWeights` for consistency with other gempa Deep Learning modules. In addition, dlmodels_maps.json will be read in order to parse the value. ### Added - Parameters `threshold_p` and `threshold_s` allow independent control of PhasePickingClassification models. - Comply with new config_format_version 0.2: Reading values `threshold_p` and `threshold_s` from model config file, if they are present. ## 2025.198 ### Important - The deep learning models that are used by this plugin have been removed from this repository. They are now part of the GSM packages `dlmodels-pick` and `dlmodels-class`, which must be installed separately. ## 2025.119 ### Changed - Universal configuration format for all models: Change the path where models are read from to default to `/home/data/dlmodels/` ### Added - Universal configuration format for all models: Add parameter `modelsPath` to customize the path where models are read from. ### Fixed - Add API version check to make DeepC compatible with seiscomp 17.0.0 API and below. - Fix wrong prediction index calculation which always was calculated as 0,1,2 == PSN. ## 2025.031 ### Changed - Scolv: A new parameter phaseRefinement.publishConfidenceAsSnr was added to support scolv. By default, the parameter is set to true, which allows to publish the confidence of the pick in the SNR label in the picker view of scolv. ### Fixed - Scolv: DeepC didn't evaluate the pick's confidence on the threshold. ## 2025.029 ### Changed - Scolv: A new parameter phaseRefinement.reclassify was added to support scolv. By default, the parameter is set to false, which allows to use the DeepC plugin in scolv for exact P phase picking, while any better ranked potential S pick in the same time window is ignored. Note that this means, that DeepC in scolv can no longer be used to refine S picks. Further, make sure that all three components are loaded in scolv, otherwise DeepC won't be called. The parameter only applies to models of category pick-phase-classification. E.g., turn it on if you want a P detection reclassified using scautopick. ## 2025.028 ### Added - Filters: Although most models expect raw data, a filter can boost a model's performance. In rare cases, a model wants filtered data. This is now considered and, in addition, a user can set a filter (overriding the model's own filter) to use before feeding the data to the model. ## 2025.022 ### Added - New parameter `threshold` to override model config's own parameter, which now functions as recommended, model-specific default value. The threshold refers to the confidence of the model above which a pick is considered to be legit. Allowed vales are between 0 and 1. ### Fixed - Fixed deepC didn't send out SNR calculated by the wrapped picker. - Fixed deepC didn't work with scolv because the trigger wasn't updated. ## 2025.015 ### Added - Added feature pick refinement and re-classification. Now, it's possible to use a DL model as refinement picker and re-classifier. ## 2024.292 ### Fixed - Fixed crashes related to resampling thread. ## 2024.291 ### Fixed - Fixed crashes related to gaps in data. ## 2024.290 ### Fixed - Fixed crashes that sometimes occurred in the context of the resampling thread. ## 2024.289 ### Added - Timeout for resampler. ## 2024.288 ### Changed - Zero checking now uses parameter `evaluationStatus.zeros` = -1 instead of 0 to deactivate the status test. ### Fixed - Fixed the small time differences between using deepC with AIC or AIC alone. ## 2024.276 ### Changed - Zero checking now for an adjacent number of zeros in a window before the pick - Picks that are rejected due to zero checking are no longer sent. ### Fixed - Now, the component as subscribed with `detecStream` parameter is provided to the wrapped picker as well as to DeepC. ## 2024.219 ### Added - Added this changelog.