public final class SensorModel extends Object implements PVCoordinatesProvider, Serializable
SensorProperty
,
Serialized FormThis class is a model for a generic sensor of the assembly : it uses a SensorProperty object. It provides computations using the tree of frames and some measures are available.
Constructor and Description |
---|
SensorModel(Assembly assembly,
String partName)
Constructor for a sensor model.
|
Modifier and Type | Method and Description |
---|---|
void |
addMaskingCelestialBody(GeometricBodyShape body)
Adds a celestial body shape to consider in maskings.
|
void |
addOwnMaskingParts(String[] partsNames)
Enables the masking by the considered spacecraft's own parts, by giving the names
of the parts that can cause maskings.
|
void |
addSecondaryMaskingSpacecraft(SecondarySpacecraft spacecraft,
String[] partsNames)
Enables the masking by a secondary spacecraft's parts, by giving the names
of the parts that can cause maskings.
|
double |
celestialBodiesMaskingDistance(AbsoluteDate date)
Computes the minimal euclidian distance to the celestial body shapes.
|
Assembly |
getAssembly() |
int |
getInhibitionFieldsNumber() |
PVCoordinatesProvider |
getInhibitionTarget(int inhibitionFieldNumber)
Returns inhibition field number #i.
|
double |
getInhibitionTargetAngularRadius(AbsoluteDate date,
int inhibitionFieldNumber)
Computes the angular radius from the sensor of the main target at a date.
|
double |
getInhibitTargetCenterToFieldAngle(AbsoluteDate date,
int inhibitionFieldNumber)
Computes the angular distance of the CENTER of an inhibition target to the border
of the associated inhibition field
at a date.
|
PVCoordinatesProvider |
getMainTarget()
Returns the main target.
|
double |
getMainTargetAngularRadius(AbsoluteDate date)
Computes the angular radius from the sensor of the main target at a date.
|
String |
getMaskingBodyName() |
String |
getMaskingSpacecraftName() |
String |
getMaskingSpacecraftPartName() |
Vector3D |
getNormalisedTargetVectorInSensorFrame(AbsoluteDate date)
Computes the target vector at a date in the sensor's frame.
|
PVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frame)
Get the
PVCoordinates of the sensor part in the selected frame. |
Vector3D[] |
getRefrenceAxis(Frame frame,
AbsoluteDate date)
Computes the reference axis of the sensor in a given frame at a date
|
Vector3D |
getSightAxis(Frame frame,
AbsoluteDate date)
Computes the sight axis of the sensor in a given frame at a date
|
double |
getTargetCenterFOVAngle(AbsoluteDate date)
Computes the angular distance of the CENTER of the main target to the border of the main field
of view at a date.
|
double[] |
getTargetDihedralAngles(AbsoluteDate date)
Computes the dihedral angles of the target at a date in the sensor's frame.
|
double |
getTargetRefAxisAngle(AbsoluteDate date,
int axisNumber) |
double |
getTargetRefAxisElevation(AbsoluteDate date,
int axisNumber) |
double |
getTargetSightAxisAngle(AbsoluteDate date) |
double |
getTargetSightAxisElevation(AbsoluteDate date) |
Vector3D |
getTargetVectorInSensorFrame(AbsoluteDate date)
Computes the target vector at a date in the sensor's frame.
|
boolean |
isMainTargetInField(AbsoluteDate date)
Checks if the main target at least partially is in the field of view at a date
|
boolean |
noInhibition(AbsoluteDate date)
Checks if at least an inhibition target is at least partially in its associated
inhibition field at a date
|
void |
resetProperty()
Resets the sensor property features.
|
void |
setMainTarget(PVCoordinatesProvider target,
LocalRadiusProvider radius)
Sets the main target of the sensor property.
|
double |
spacecraftsMaskingDistance(AbsoluteDate date)
Computes the minimal euclidian distance to the spacecraft's shapes (GEOMERTY properties).
|
boolean |
visibilityOk(AbsoluteDate date)
Checks if the main target is in the field of view and no inhibition target in its inhibition field
at a given date.
|
public void resetProperty()
public boolean isMainTargetInField(AbsoluteDate date) throws PatriusException
date
- the date of the computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public boolean noInhibition(AbsoluteDate date) throws PatriusException
date
- the date of the computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public boolean visibilityOk(AbsoluteDate date) throws PatriusException
date
- the date of the computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double getTargetCenterFOVAngle(AbsoluteDate date) throws PatriusException
date
- the date of the computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double getInhibitTargetCenterToFieldAngle(AbsoluteDate date, int inhibitionFieldNumber) throws PatriusException
date
- the date of the computationinhibitionFieldNumber
- number of the inhibition field to consider (first is 1)PatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public Vector3D getSightAxis(Frame frame, AbsoluteDate date) throws PatriusException
frame
- the frame of expressiondate
- the date of the computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public Vector3D[] getRefrenceAxis(Frame frame, AbsoluteDate date) throws PatriusException
frame
- the frame of expressiondate
- the date of the computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public Vector3D getTargetVectorInSensorFrame(AbsoluteDate date) throws PatriusException
date
- the computation datePatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public Vector3D getNormalisedTargetVectorInSensorFrame(AbsoluteDate date) throws PatriusException
date
- the computation datePatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double[] getTargetDihedralAngles(AbsoluteDate date) throws PatriusException
date
- the computation datePatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double getTargetSightAxisAngle(AbsoluteDate date) throws PatriusException
date
- the date of computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double getTargetRefAxisAngle(AbsoluteDate date, int axisNumber) throws PatriusException
date
- the date of computationaxisNumber
- the number of the reference axis for this computation (first is 1)PatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double getTargetSightAxisElevation(AbsoluteDate date) throws PatriusException
date
- the date of computationPatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double getTargetRefAxisElevation(AbsoluteDate date, int axisNumber) throws PatriusException
date
- the date of computationaxisNumber
- the number of the reference axis for this computation (first is 1)PatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public Assembly getAssembly()
public int getInhibitionFieldsNumber()
public void setMainTarget(PVCoordinatesProvider target, LocalRadiusProvider radius)
target
- the new main target centerradius
- the target's radiuspublic double getMainTargetAngularRadius(AbsoluteDate date) throws PatriusException
date
- the computation datePatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public double getInhibitionTargetAngularRadius(AbsoluteDate date, int inhibitionFieldNumber) throws PatriusException
date
- the computation dateinhibitionFieldNumber
- number of the inhibition field to consider (first is 1)PatriusException
- if some frame transformation problem occurs
(if the assembly is not linked to the tree of frame in witch the target is defined)public PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws PatriusException
PVCoordinates
of the sensor part in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
date
- current dateframe
- the frame where to define the positionPatriusException
- if position cannot be computed in given frame : occurs
if the assembly is not correctly linked to the main tree of frames.public double spacecraftsMaskingDistance(AbsoluteDate date) throws PatriusException
date
- the current computation datePatriusException
- if a problem occurs in frames transformationspublic double celestialBodiesMaskingDistance(AbsoluteDate date) throws PatriusException
date
- the current computation datePatriusException
- if a problem occurs in frames transformationspublic String getMaskingSpacecraftName()
public String getMaskingSpacecraftPartName()
public String getMaskingBodyName()
public void addOwnMaskingParts(String[] partsNames)
partsNames
- the names of the considered partspublic void addSecondaryMaskingSpacecraft(SecondarySpacecraft spacecraft, String[] partsNames)
spacecraft
- the secondary masking spacecraftpartsNames
- partsNames the names of the considered partspublic void addMaskingCelestialBody(GeometricBodyShape body)
body
- the celestial body shape to considerpublic PVCoordinatesProvider getMainTarget()
public PVCoordinatesProvider getInhibitionTarget(int inhibitionFieldNumber)
inhibitionFieldNumber
- number of the inhibition field to consider (first is 1)Copyright © 2021 CNES. All rights reserved.