DEIMOS
Earth Observation Mission CFI Software
Visibility Software User Manual
ESA

EECFI::DRSVis Class Reference

Class for data relay satellite visibility. More...

Inheritance diagram for EECFI::DRSVis:
EECFI::CfiClass

List of all members.

Public Member Functions

 DRSVis ()
 Empty Class constructor.
 DRSVis (const OrbitId &orbitId, const SatNomTransId &satNomTransId, const SatTransId &satTransId, const InstrTransId &instrTransId) throw (CfiError)
 Class constructor with parameters.
void set (const OrbitId &orbitId, const SatNomTransId &satNomTransId, const SatTransId &satTransId, const InstrTransId &instrTransId) throw (CfiError)
 Class constructor with parameters, for swath generation.
 ~DRSVis () throw (CfiError)
 Class destructor.
VisibilityList drsVisTime (long startOrbit, long stopOrbit, double longitude, double minDuration) throw (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 constructor.

EECFI::DRSVis::DRSVis ( const OrbitId orbitId,
const SatNomTransId satNomTransId,
const SatTransId satTransId,
const InstrTransId instrTransId 
) throw (CfiError)

Class constructor with parameters.

Parameters:
orbitId Orbit Id.
satNomTransId Satellite Nominal Attitude frame data.
satTransId Satellite Attitude frame data.
instrTransId Instrument Attitude frame data.
EECFI::DRSVis::~DRSVis (  )  throw (CfiError)

Class destructor.


Member Function Documentation

VisibilityList EECFI::DRSVis::drsVisTime ( long  startOrbit,
long  stopOrbit,
double  longitude,
double  minDuration 
) throw (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.

References EECFI::CfiError::addMsg().

void EECFI::DRSVis::set ( const OrbitId orbitId,
const SatNomTransId satNomTransId,
const SatTransId satTransId,
const InstrTransId instrTransId 
) throw (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.

Generated on Thu Jul 15 2010 10:11:24 for by doxygen 1.7.1