Skip to content

laser.measles.mixing.radiation

laser.measles.mixing.radiation

laser.measles.mixing.radiation.RadiationMixing(scenario=None, params=None)

Bases: BaseMixing

Radiation migration model for spatial mixing.

Outbound migration from origin i to destination j is enhanced by the destination population and absorbed by the density of nearer destinations (intervening opportunities):

\[M_{i,j} = k \frac{p_i \, p_j}{(p_i + s_{ij})(p_i + p_j + s_{ij})}\]

where \(s_{ij} = \sum_{k \in \Omega(i,j)} p_k\) is the total population of patches closer to i than j.

Parameters:

Name Type Description Default
scenario DataFrame | None

Patch data. None when the model will set it automatically.

None
params RadiationParams | None

Model parameters. Uses RadiationParams defaults if None.

None

Example:

1
2
3
4
5
6
7
8
9
```python
from laser.measles.mixing.radiation import RadiationMixing, RadiationParams
from laser.measles.compartmental import components
from laser.measles import create_component

mixer = RadiationMixing(params=RadiationParams(k=0.01))
infection_params = components.InfectionParams(beta=0.8, mixer=mixer)
model.add_component(create_component(components.InfectionProcess, infection_params))
```

laser.measles.mixing.radiation.RadiationMixing.get_migration_matrix()

Compute the radiation-based migration matrix.

Returns:

Type Description
ndarray

Migration matrix of shape (N, N).

laser.measles.mixing.radiation.RadiationParams

Bases: BaseModel

Parameters for the radiation migration model.

Parameters:

Name Type Description Default
include_home bool

Whether to include home in the migration matrix

required
k float

Scale parameter (avg trip probability)

required

Example:

1
2
3
4
5
```python
from laser.measles.mixing.radiation import RadiationParams

params = RadiationParams(k=0.02, include_home=True)
```