Property Computers¶
Property computers calculate additional measurements for access windows beyond basic visibility timing.
Configuration¶
SamplingConfig¶
SamplingConfig ¶
SamplingConfig(relative_times: list[float] = None, interval: float = None, offset: float = None, count: int = None)
Sampling configuration for access property computation.
Determines how many times and when to sample satellite states during an access window for property calculations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
relative_times | list[float] | Relative times from 0.0 (start) to 1.0 (end). If provided, uses relative points sampling. | None |
interval | float | Time between samples (seconds). If provided with offset, uses fixed interval sampling. | None |
offset | float | Time offset from window start (seconds). Used with interval. | None |
count | int | Number of evenly-spaced sample points. If provided, uses fixed count sampling. | None |
Note
If no parameters are provided, defaults to midpoint sampling. Parameters are checked in priority order: relative_times, interval+offset, count.
Example
Initialize instance.
fixed_count staticmethod ¶
fixed_count(count: int) -> SamplingConfig
Create a fixed count sampling configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
count | int | Number of evenly-spaced sample points (including endpoints) | required |
Returns:
| Name | Type | Description |
|---|---|---|
SamplingConfig | SamplingConfig | Fixed count sampling configuration |
fixed_interval staticmethod ¶
fixed_interval(interval: float, offset: float) -> SamplingConfig
Create a fixed interval sampling configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
interval | float | Time between samples (seconds) | required |
offset | float | Time offset from window start (seconds) | required |
Returns:
| Name | Type | Description |
|---|---|---|
SamplingConfig | SamplingConfig | Fixed interval sampling configuration |
midpoint staticmethod ¶
midpoint() -> SamplingConfig
Create a midpoint sampling configuration (single sample at window center).
Returns:
| Name | Type | Description |
|---|---|---|
SamplingConfig | SamplingConfig | Midpoint sampling configuration |
relative_points staticmethod ¶
relative_points(relative_times: list[float]) -> SamplingConfig
Create a relative points sampling configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
relative_times | list[float] | Relative times from 0.0 (window start) to 1.0 (window end) | required |
Returns:
| Name | Type | Description |
|---|---|---|
SamplingConfig | SamplingConfig | Relative points sampling configuration |
Built-in Computers¶
DopplerComputer¶
DopplerComputer ¶
Computes Doppler shift during access windows.
Calculates uplink and/or downlink Doppler shifts based on satellite velocity and line-of-sight geometry.
Example
Initialize instance.
RangeComputer¶
RangeRateComputer¶
Custom Property Computers¶
AccessPropertyComputer¶
AccessPropertyComputer ¶
Base class for custom access property computers.
Subclass this class and implement the compute and property_names methods to create custom property calculations that can be applied to access windows.
The compute method is called for each access window and should return a dictionary of property names to values. Properties can be scalars, vectors, time series, booleans, strings, or any JSON-serializable value.
Example
Notes
- The
computemethod receives ECEF coordinates in SI units (meters, m/s) - Property values are automatically converted to appropriate Rust types
- The window parameter provides access to timing via:
window.window_open: Start epochwindow.window_close: End epochwindow.midtime(): Midpoint epochwindow.duration(): Duration in seconds
Initialize instance.
compute method descriptor ¶
compute(window: AccessWindow, sample_epochs: ndarray, sample_states_ecef: ndarray, location_ecef: Union[ndarray, List], location_geodetic: Union[ndarray, List]) -> dict
Compute custom properties for an access window.
Override this method in your subclass to implement custom property calculations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
window | AccessWindow | Access window with timing information | required |
sample_epochs | ndarray | Sample epochs in MJD (Modified Julian Date) | required |
sample_states_ecef | ndarray | Satellite states in ECEF (N x 6) [x,y,z,vx,vy,vz] (meters, m/s) | required |
location_ecef | ndarray or list | Location position in ECEF [x,y,z] (meters) | required |
location_geodetic | ndarray or list | Location geodetic coordinates [lon,lat,alt] (radians, meters) | required |
Returns:
| Name | Type | Description |
|---|---|---|
dict | dict | Dictionary mapping property names (str) to values (scalar, list, dict, etc.) |
property_names method descriptor ¶
sampling_config method descriptor ¶
sampling_config() -> SamplingConfig
Return sampling configuration for this property computer.
Override this method to specify how you want the satellite states to be sampled during the access window.
Returns:
| Name | Type | Description |
|---|---|---|
SamplingConfig | SamplingConfig | The sampling configuration |
Property Storage¶
PropertiesDict¶
PropertiesDict ¶
A dictionary-like wrapper for Location properties that supports dict-style assignment.
This class provides a Pythonic dict interface for accessing and modifying location properties. Changes are automatically synchronized with the underlying Location object.
Example
Initialize instance.
clear method descriptor ¶
Remove all properties.
Returns:
| Type | Description |
|---|---|
None | None |