| Earth Observation Mission CFI Software Visibility Software User Manual for JAVA |

Public Member Functions

# EECFI.DRSVis Class Reference

Class for data relay satellite visibility. More...

Inheritance diagram for EECFI.DRSVis:

List of all members.

## Public Member Functions
| DRSVis ()
| Empty Class finalructor.
| DRSVis (final OrbitId orbitId, final SatNomTransId satNomTransId, final SatTransId satTransId, final InstrTransId instrTransId) throws CfiError
| Class constructor with parameters, for swath generation.
void | set (final OrbitId orbitIdIn, final SatNomTransId satNomTransIdIn, final SatTransId satTransIdIn, final InstrTransId instrTransIdIn) throws CfiError
| Set parameters.
native VisibilityList | drsVisTime (long startOrbit, long stopOrbit, double longitude, double minDuration) throws CfiError
| Calculate the visibility segments for which a satellite is visible from a data relay satellite.

## Detailed Description

Class for data relay satellite visibility.

## Constructor & Destructor Documentation

EECFI.DRSVis.DRSVis | ( |  | ) |

Empty Class finalructor.

EECFI.DRSVis::DRSVis | ( | final OrbitId | orbitId,
|  | final SatNomTransId | satNomTransId,
|  | final SatTransId | satTransId,
|  | final InstrTransId | instrTransId |
| ) |  |  | throws CfiError

Class constructor with parameters, for swath generation.

Parameters:

  | orbitId | Orbit Id.
  | satNomTransId | Satellite Nominal Attitude frame data.
  | satTransId | Satellite Attitude frame data.
  | instrTransId | Instrument Attitude frame data.

## Member Function Documentation

VisibilityList EECFI.DRSVis::drsVisTime | ( | long | startOrbit,
|  | long | stopOrbit,
|  | double | longitude,
|  | double | minDuration |
| ) |  |  | throws CfiError

Calculate the visibility segments for which a satellite is visible from a data relay satellite.

# Overview

The DRSVis::drsVisTime function computes all the orbital segments for which the satellite is visible from a data relay satellite located in a geostationary orbit.
An orbital segment is a time interval along the orbit, defined by start and stop times expressed as seconds elapsed since the ascending node crossing.
DRSVis::drsVisTime requires access to requires access to the orbitId (OrbitId class) data structure. This structure can be initialized using one of the following set of data or files (see [ORBIT_SUM]):

- data for an orbital change
- Orbit scenario files
- Predicted orbit files
- Orbit Event Files
- Restituted orbit files
- DORIS Preliminary orbit files
- DORIS Navigator files

The time intervals used by DRSVis::drsVisTime are expressed in absolute orbit numbers. To transform from relative to absolute orbits, RelANXTime::toAbsolute can be used. This is valid for both:

- input parameter "Orbit Range": first and last orbit to be considered.
- output parameter "Data Relay Satellite Visibility Segments": time segments with time expressed as {absolute orbit number, number of seconds since ANX, number of microseconds}

The output segments will be ordered chronologically.
Users who need to use processing times must make use of the conversion routines provided in EO_ORBIT ANXTime class (ANXTime::timeToOrbit and ANXTime::orbitToTime methods).
It is assumed that the DRS orbit has zero inclination.
The DRSVis::drsVisTime function considers the following sources of occultation:

- Earth plus 20 km of atmosphere
- Satellite dependant sources (Currently, only Envisat model is implemented):
  - Fixed appendages: 1 deg half cone around:
    - Service Module
    - Payload Module
    - Module Interface
    - ASAR antenna
    - AATSR Payload
    - ATSR Radiator
    - Mipas Payload
    - Mipas Electronics
    - Sciamachy Radiators A, B and C
    - UMI
    - Star Trackers, enlarged to have a 16 deg halfcone to protect against radiation.
    - S Band Antennas
  - Rotating appendices (solar array and its structure): 1 deg half cone around solar array and supporting structure
  - Azimuth Blockage (165 deg to 195 deg, MCD convenction for the azimuth and elevation angles)
  - Elevation Blockage (-86 deg to -90 deg, MCD convenction for the azimuth and elevation angles)

Operations of the antenna are also limited to the values (APM definition):

- Elevation from -30.0 deg to +90.0 deg
- Azimuth from -165.0 deg to +165.0 deg

These operations limitations are imposed considering margins of 1.0 deg.
In addition to these occultation sources, the function DRSVis::drsVisTime checks that the initial movement of the antenna (start-up trajectory) does not violate any mechanical constraints in order to reach the corresponding pointing to the DRS at the beginning time of the visibility segment. Similar computations are performed to be able to stop the antenna at the end point of the visibility segment.
In case the mechanical constraints are violated for a visibility segment, it is reduced by 1 second and the condition is checked again. The process is repeated until both trajectories are within the limits. A warning message is raised if the visibility segment duration comes to be smaller than the minimum duration defined by the user (min_duration).
The considerations assumed in the implementation of the start-up and stop trajectories are the following:

Concept | Start-up Trajectory | Stop Trajectory
--- | --- | ---
Angular movements | Common time for azimuth and elevation movement | No common time for azimuth and elevation movement
Azimuth acceleration | AZacc = 0.015 deg/sec2 | Low Velocity: AZacc = 0.023 deg/sec2
High Velocity: AZacc = 0.043 deg/sec2
Elevation acceleration | ELacc = 0.004 deg/sec2 | Low Velocity: ELacc = 0.02 deg/sec2
High Velocity: ELacc = 0.02 deg/sec2
Velocity limit | N/A | vellimit = 0.11459 deg/sec

Parameters:

  | startOrbit | First absolute orbit, segment filter; segments will be filtered as from the beginning of first orbit. First Orbit for the orbit initialization will be used when absolute orbit is set to zero. Allowed range: =0; or >=start_osf.
  | stopOrbit | Last absolute orbit, segment filter. For orbitId initialized with orbital changes, when stopOrbit = 0 the stopOrbit will be set to the minimum value between: the last orbit within the orbital change of the start_orbit. startOrbit+cycle_length-1 (i.e. the input orbit range will be a complete cycle) Allowed range: =0; or >=start_osf.
  | longitude | Longitude of data relay satellite [deg]. Allowed range: [0, 360].
  | minDuration | Minimum duration for segments; only segments with a duration longer than minDuration will be given as output [s]. Allowed range: >=0.

Returns:
  Visibility segments.

void EECFI.DRSVis::set | ( | final OrbitId | orbitId,
|  | final SatNomTransId | satNomTransId,
|  | final SatTransId | satTransId,
|  | final InstrTransId | instrTransId |
| ) |  |  | throws CfiError

Set parameters.

Parameters:

  | orbitId | Orbit Id.
  | satNomTransId | Satellite Nominal Attitude frame data.
  | satTransId | Satellite Attitude frame data.
  | instrTransId | Instrument Attitude frame data.