Keeps track of the initial arguments passed to an objects and can later
on serialize them to JSON document.
It will only consider whatever is passed in the init.
Define processing within SalvusProject with a function. Any function
with a suitable signature is acceptable.
For block processing, the function must take the following arguments:
data_array: An xarray.DataArray object with the data.
event: The corresponding event.
Or, if the processing should be applied per receiver:
st: An obspy.Stream object with the data.
receiver: The receiver object for the receiver.
sources: All sources for the event.
In the case of seismological data it can also optionally take:
inv: An obspy.Inventory object for the station in case it is
stored in an ASDF file. Might be None.
The function must return the processed xarray.DataArray or
obspy.Stream object which must contain exactly the same number
of traces.