Renderer#
- class scarlet2.renderer.Renderer(layers)[source]#
Bases:
ModuleRenderer base class
Renderers are (potentially parameterized) transformations between the model frame and the observation frame, or elements of such a transformation.
This class is almost a clone of eqx.nn.Sequential, but uses a different call signature.
Initialize the renderer with a sequence of layers
- Parameters:
layers (
sequenceofcallable) – The layers that make up the renderer. Each layer should be a callable that takes a model and returns a transformed model.
- __call__(model, **kwargs)[source]#
What to run when Renderer is called
- Parameters:
model (
array) – The hyperspectral modelkey (optional) – Key is needed to chain renderers with eqx.nn.Sequential
kwargs (
dict, optional) – Additional keyword arguments passed to the Renderer call
- Returns:
model_ – model after the transformation of the Renderer has been applied
- Return type:
array
- get(name=None)#
Get parameter(s) from this module
- Parameters:
name (
str, optional) – Name of parameter. If not set, returns all parameters.- Returns:
requested data arrays for parameters
- Return type:
dict
- layers: tuple#
Tuple of layers that make up the renderer. This is used to chain renderers together in a sequential manner.
- property parameters#
Parameters defined for this module
- Returns:
name: (node, param) mapping for all parameters
- Return type:
dict
- replace(name, value)#
Replace member attribuge name with value
- Parameters:
name (
str) – Name of member to replacevalue (
any) – Value to replace member with
- Returns:
The modified module.
- Return type:
Module
- replace_subtree(where, value, parameters=None)#
Replace the subtree where(self) with value and carry over all other parameters
Unlike
replace(), value does not need to have the same structure as the subtree it replaces, e.g. an array morphology can be replaced by aSersicMorphology. Parameters defined for this module remain attached to the same nodes, except those inside the replaced subtree, which are dropped.- Parameters:
where (
callable) – Function module -> node that selects the subtree to replace, as inequinox.tree_at()value (
any) – Replacement for the subtree. If this module has a frame, attributes of value given in sky coordinates are converted to pixel coordinates of that frame.parameters (
callable, optional) – Function module -> None that is called with the new module inside of aParameterscontext to define parameters for the replacement, e.g. by callingParameteron nodes of value.
- Returns:
The modified module.
- Return type:
Module
Examples
>>> sersic = SersicMorphology(n=jnp.array(2.), size=jnp.array(2.), shape=morph.shape) >>> def sersic_parameters(morph): >>> Parameter(morph.n, name="n:0", prior=dist.Uniform(0.5, 6)) >>> Parameter(morph.size, name="size:0", constraint=constraints.positive, stepsize=0.1) >>> >>> scene_ = scene.replace_subtree(lambda sc: sc.sources[0].morphology, sersic, sersic_parameters)
See also
- set(values)#
Set parameter(s) from this module with values
- Parameters:
values (
dict[str,jnp.array]) – values to replace parameters with, identified by their name- Returns:
new module with parameter(s) replaced by values
- Return type:
Module