Mondaic

Salvus 0.12.16

Released: 2024-02-26

This is a minor release with several quality of life improvements and minor bug fixes as listed below. New features include receiver channels for modeling ultrasonic sensors, better handling of volume and surface data, transformations for moment-tensor sources in UTM domains, and utilities to preprocess layered models.

Changes

SalvusFlow

Added spherical to UTM moment tensor transformations, both ways.

SalvusFlow

Added the option to combine data from several receivers into a single output channel. Each channel is a weighted sum of the individual, potentially time shifted, receiver signals.

SalvusFlow

Improve error messages in case retried operations fails.

SalvusFlow

Better surface and volume output handling by the EventData object for advanced usage patterns Salvus:

  • New EventData.get_wavefield_output() method parsing outputs to WavefieldOutput objects.
  • New EventData.get_associated_salvus_job() method returning a potentially still existing Salvus job for the EventData object.
  • New EventData.get_remote_extra_output_filenames() method to get paths of remote output files.
  • New EventData.download_extra_outputs() method to download remote wavefield output data.
  • New EventData.delete_associated_job_and_data() method to delete potentially still existing remote wavefield data.
SalvusFlow

Fix a bug in computing the suggested start and end times of analytic source wavelets (e.g. Ricker, GaussianRate) with time shifts. Previously, when specifying custom time shifts to analytic wavelets, the time shifts where not reflected in the auxiliary functions to plot the wavelet. This did not affect the actual start and end times used in the simulation.

SalvusMesh

This change brings in three utilities for working with layered models. In particular, they are:

  • split_layered_model: This function allows for a layered model to be split into two based on conditions targeting the model’s interfaces or materials.
  • flood: This function allows for a layer’s material parameters to be “flooded”, or extruded, in the vertical direction.
  • blend: This function supports the blending of two materials, and currently supports the averaging of constant parameters, as well as the linear or cosine-taper-based blending of discrete models along their vertical coordinate.

Additional details and documentation can be found along with the functions themselves in the salvus.mesh.layered_meshing.utils module.

SalvusMesh

Add support for numpy>=1.26.0 and xarray>=2023.10.

SalvusProject

Bugfixes and utility functions that simplify adding new events to ongoing inversions. Demonstrated in this tutorial.

SalvusProject

SalvusProject now tracks the extra_output_configuration argument passed to p.simulations.launch(). It will detect if the simulations have previously been run with different output settings and will optionally overwrite existing results.

SalvusProject

Add a check in the window picking algorithm to ensure the time axis of the observed data is consistent with the synthetics. Traces for which the observed data do not cover the entire simulated time interval will be ignored during window picking, and the stations will be written to a log file.

Such situations previously raised a ValueError which was hard to recover without manually removing the delinquent stations from the observed data.

SalvusProject

Fix a bug in get_misfit_comparison_table(), which would trigger an exception when passing the same data for comparison multiple times.