Basic Sensor Model
The basic sensor model can be used to represent basic properties of an instrument: the field-of-view (FOV)/ scene-field-of-view (sceneFOV)/ field-of-regard (FOR) and the orientation. Coverage (i.e. finding the locations which can be seen by the sensor) can be evaluated and viewing geometry parameters can calculated.
The model also allows to configure a detector array geometry on a Focal Plane Array (FPA) which can be used to to simulate imagery by interpolating geo-physical data onto projected (ground) pixel positions.
Note that the coverage calculation and pixel-projection operations are available in the OrbitPy package.
Todo
Explain the synthetic data feature.
Model parameters
A BasicSensorModel object can be obtained from a json/ dict by using the from_json(.) or from_dict(.) functions. The expected key/value
pairs are described below:
Parameter |
Data type |
Units |
Description |
|---|---|---|---|
@type |
string |
Must be Basic Sensor |
|
@id |
string |
Unique identifier for the instrument. If |
|
name |
string |
Full name of the instrument |
|
mass |
float |
kilograms |
Total mass of this entity. |
volume |
float |
\(m^3\) |
Total volume of this entity. |
power |
float |
Watts |
Nominal operating power. |
orientation |
Orientation of the instrument. Default is alignment to the SC_BODY_FIXED frame. |
||
fieldOfViewGeometry |
Field of view spherical geometry specification of the instrument. |
||
sceneFieldOfViewGeometry |
The SceneFOV spherical geometry specification of the instrument. Default is the field-of-view spherical geometry. |
||
maneuver |
Maneuver specifications (see Maneuverability and Field Of Regard (FOR) calculations). |
||
pointingOption |
List of orientations to which the instrument axis can be maneuvered. |
||
syntheticDataConfig |
Synthetic data configuration. |
||
dataRate |
float |
Mega-bits-per-s |
Rate of data recorded during nominal operations. |
bitsPerPixel |
integer |
Bits encoded per pixel of image. |
|
numberDetectorRows |
integer |
Number of detector rows (along the Y-axis of the SENOR_BODY_FIXED frame). If the SENSOR_BODY_FIXED frame is aligned to the NADIR_POINTING frame; this direction corresponds to the along-track direction. |
|
numberDetectorCols |
integer |
Number of detector columns (along the X-axis of the SENOR_BODY_FIXED frame). If the SENSOR_BODY_FIXED frame is aligned to the NADIR_POINTING frame; this direction corresponds to the cross-track direction. |
Model results
Using the basic-sensor model, coverage calculations (using the OrbitPy package) can be carried out over a region of interest. Coverage calculations which involve a grid (list of grid-points)) evaluate to see if the grid-points fall within the instrument sceneFOV (sceneFOV = FOV in most cases) or the FOR. The pointing-options feature further allows to automate coverage calculations for numerous instrument orientations.
Once the coverage has been evaluated, the observable locations and the observer (satellite) locations is known. The following data metrics at the observable location on the surface of Earth can be calculated:
Metric |
Data Type |
Units |
Description |
|---|---|---|---|
incidence angle [deg] |
float |
degrees |
Incidence-angle at the target point calculated assuming spherical Earth. |
look angle [deg] |
float |
degrees |
Look-angle to the target point calculated assuming spherical Earth. Positive sign => look is in positive half-space made by the orbit-plane (i.e. orbit plane normal vector) and vice-versa. |
observation range [km] |
float |
kilometers |
Distance from satellite to ground-point during the observation. |
solar zenith [deg] |
float |
degrees |
Solar-zenith-angle during observation. |
Todo
Include AT, CT footprint size calculations.
Model description
\(\mathbf{R = T - S}\)
\(\gamma = \cos^{-1}(\mathbf{\dfrac{R}{|R|}} \cdot \mathbf{\dfrac{-S}{|S|}})\)
\(\theta_i = \sin^{-1}(\sin\gamma \hspace{1mm} \dfrac{R_E + h}{R_E})\)
Assuming spherical Earth of radius \(R_E\)
where,
\(\mathbf{S}\): Position-vector of the satellite in the EARTH_CENTERED_INERTIAL frame.
\(\mathbf{T}\): Position-vector of the target ground-point in the EARTH_CENTERED_INERTIAL frame.
\(\mathbf{R}\): Range vector from satellite to target ground point.
\(\gamma\): Look-angle to target ground point from satellite.
\(\theta_i\): Incidence-angle at the target ground point.
\(R_E\): Nominal equatorial radius of Earth.
\(h\): Altitude of satellite.
Please refer to the instrupy.util.GeoUtilityFunctions.compute_sun_zenith function for description of the calculation of the Sun-zenith angle.
Examples
Please see the examples folder.