Mondaic
This API reference is not for the latest stable Salvus version.

salvus.project.configuration.misfit_configuration

Classes

MisfitConfiguration

class MisfitConfiguration(
    salvus.flow.utils.serialization_helpers.SerializationMixin
):
    def __init__(
        self,
        name: str,
        observed_data: typing.Optional[str],
        misfit_function: typing.Union[
            str, typing.Dict[str, typing.Union[str, int]], typing.Callable
        ],
        extra_kwargs_misfit_function: typing.Optional[typing.Dict] = None,
        receiver_field: str,
        data_selection_configuration: typing.Optional[str] = None,
        max_samples_for_misfit_computation: typing.Optional[
            salvus._core.types.int_
        ] = None,
        normalization: (
            data_normalizations.TraceNormalization | str | None
        ) = None,
    ) -> None: ...

Misfit configuration object.

Parameters
  • name str — The name of the misfit configuration. Must be unique per project.
  • observed_data typing.Optional[str] — The observed data name. Can be None if the misfit function does not require observed_data.
  • misfit_function typing.Union[str, typing.Dict[str, typing.Union[str, int]], typing.Callable] — The misfit function or name of the function. Can be one of three things: 1. The of one of Salvus’ built-in misfit functions. In that case the latest available version will be chosen. 2. A dictionary of the form {"misfit_name": "L2", "version": 1} to directly select a specific version of a built-in misfit function. 3. A custom function that computes misfits and adjoint sources.
  • extra_kwargs_misfit_function typing.Optional[typing.Dict] — Any potentially extra misfit arguments.
  • receiver_field str — The receiver field to use.
  • data_selection_configuration typing.Optional[str] — Optional data selection configuration to be applied to all data sets during the misfit and adjoint source calculation.
  • max_samples_for_misfit_computation typing.Optional[salvus._core.types.int_] — If given, and if the number of samples in the data for the misfit and adjoint source computation is larger than the given number, synthetic and observed data will be downsampled to the chosen number of samples and the adjoint source will later be upsampled again. Very useful for some expensive to compute misfits with strongly oversampled signals. The adjoint source will be correctly scaled at the end. This does result in the adjoint source no longer being the exact discrete derivative of the misfit but in most cases this should not be a problem.
  • normalization data_normalizations.TraceNormalization | str | None — If given, normalize the observed and synthetic traces prior to misfit and adjoint source computations. This will be accounted for during the computation of the derivatives to ensure consistency. Useful for some problems but it does make them a bit more non-linear. Can be a string that will be mapped to a built-in normalization (See salvus.opt.data_normalizations. get_available_data_normalizations() for all available options) or a custom TraceNormalization object.
Methods
from_json()
def from_json(d: typing.Dict) -> "MisfitConfiguration": ...

Construct object from a JSON-serializable dictionary.

Parameters
  • d typing.Dict — JSON dictionary of the inverse problem.
Returns 'MisfitConfiguration'
to_json()
def to_json(self) -> typing.Dict: ...

Convert object to a JSON-serializable dictionary.

Returns typing.Dict