uncertainty
cosmica.comm_link.uncertainty
Models for the uncertainty parameters in the communication link.
__all__
module-attribute
__all__ = [
"ApertureAveragedLogNormalScintillationModel",
"AtmosphericScintillationModel",
"BinaryCloudModel",
"CloudStates",
"EdgeFailureModel",
"ExpEdgeModel",
]
ApertureAveragedLogNormalScintillationModel
dataclass
ApertureAveragedLogNormalScintillationModel(
*,
default_rytov_variance: float,
wavelength: float,
aperture_diameter: float
)
Bases: AtmosphericScintillationModel[bool_]
aperture_diameter
instance-attribute
aperture_diameter: float
default_rytov_variance
instance-attribute
default_rytov_variance: float
k_number
cached
property
k_number: float
wavelength
instance-attribute
wavelength: float
sample
sample(
rng: Generator,
link_distance: float,
rytov_variance: float | None = None,
) -> float
Source code in src/cosmica/comm_link/uncertainty.py
170 171 172 173 174 175 176 177 | |
scaled_aperture
scaled_aperture(link_distance: float) -> float
Source code in src/cosmica/comm_link/uncertainty.py
146 147 | |
sigma2_scintillation
sigma2_scintillation(
link_distance: float,
ryotv_variance: float | None = None,
) -> float
| RETURNS | DESCRIPTION |
|---|---|
float
|
Float approximation for aperture averaged scintillation for a plane-wave in the absence of inner scale andouter scale effects as described by Larry C. Andrews and Ronald L. Phillips in the book "Laser BeamPropagation through Random Media" Chapter 10. |
Source code in src/cosmica/comm_link/uncertainty.py
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | |
AtmosphericScintillationModel
Bases: ABC
sample
abstractmethod
sample(
rng: Generator,
link_distance: float,
rytov_variance: float | None = None,
) -> float
Source code in src/cosmica/comm_link/uncertainty.py
127 128 129 130 131 132 133 | |
BinaryCloudModel
dataclass
BinaryCloudModel(
*,
initial_cloud: bool = False,
transition_p_0_to_1: float = 0.15,
transition_p_1_to_0: float = 0.4
)
Bases: CloudStates[bool_]
Binary Cloud Model.
Generate the state of clouds described by a Markov Chain by calling the 'simulate' method.
initial_cloud
class-attribute
instance-attribute
initial_cloud: bool = False
Initial state. True indicates cloudy and False indicates free-of-clouds.
transition_p_0_to_1
class-attribute
instance-attribute
transition_p_0_to_1: float = 0.15
transition_p_1_to_0
class-attribute
instance-attribute
transition_p_1_to_0: float = 0.4
simulate
simulate(
time: NDArray[datetime64], rng: Generator
) -> NDArray[bool_]
| PARAMETER | DESCRIPTION |
|---|---|
time
|
time_array as a np.ndarray with elements in the np.datetime64 format
TYPE:
|
rng
|
NumPy random number generator.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
NDArray[bool_]
|
time series of cloud states on given time frame (1|True = cloudy, 0|False = Free-of-clouds) |
Source code in src/cosmica/comm_link/uncertainty.py
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | |
CloudStates
Bases: ABC
simulate
abstractmethod
simulate(
time: NDArray[datetime64], rng: Generator
) -> NDArray[T]
Source code in src/cosmica/comm_link/uncertainty.py
22 23 | |
EdgeFailureModel
Bases: ABC
simulate
abstractmethod
simulate(
time: NDArray[datetime64], rng: Generator
) -> NDArray[T]
Source code in src/cosmica/comm_link/uncertainty.py
71 72 | |
ExpEdgeModel
dataclass
ExpEdgeModel(
*,
reliability: timedelta64 = (
lambda: timedelta64(15, "D")
)(),
recovery_time: timedelta64 = (
lambda: timedelta64(1800, "s")
)()
)
Bases: EdgeFailureModel[bool_]
Exponential Edge Model.
Generate the state of an edge following an exponential distribution by calling the 'simulate' method. An edge can be thought as the link between two nodes (e.g. terminals, satellites)
recovery_time
class-attribute
instance-attribute
recovery_time: timedelta64 = field(
default_factory=lambda: timedelta64(1800, "s")
)
Recovery time in seconds (expected)
reliability
class-attribute
instance-attribute
reliability: timedelta64 = field(
default_factory=lambda: timedelta64(15, "D")
)
time length in days which the edge is expected not to fail (Expected value of exponential distribution)
simulate
simulate(
time: NDArray[datetime64], rng: Generator
) -> NDArray[bool_]
| PARAMETER | DESCRIPTION |
|---|---|
time
|
time_array as a np.ndarray with elements in the np.datetime64 format
TYPE:
|
rng
|
NumPy random number generator
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
NDArray[bool_]
|
time series of edge states on given time frame (True = Failure, False= No-failure) |
Source code in src/cosmica/comm_link/uncertainty.py
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | |