OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ossimAlphaSensor Class Reference

#include <ossimAlphaSensor.h>

Inheritance diagram for ossimAlphaSensor:
ossimSensorModel ossimProjection ossimOptimizableProjection ossimAdjustableParameterInterface ossimObject ossimErrorStatusInterface ossimReferenced ossimAlphaSensorHRI ossimAlphaSensorHSI

Public Member Functions

 ossimAlphaSensor ()
 
 ossimAlphaSensor (const ossimAlphaSensor &src)
 
virtual ossimObjectdup () const
 
virtual void lineSampToWorld (const ossimDpt &image_point, ossimGpt &worldPoint) const
 
virtual void lineSampleHeightToWorld (const ossimDpt &image_point, const double &heightEllipsoid, ossimGpt &worldPoint) const
 
virtual void updateModel ()
 
virtual bool useForward () const
 
virtual void initAdjustableParameters ()
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
void setFov (const double fov)
 
void setRollBias (const double rollBias)
 
void setPitchBias (const double pitchBias)
 
void setHeadingBias (const double headingBias)
 
void setSlitRot (const double slitRot)
 
void setRollPoly (const std::vector< ossim_float64 > rollPoly)
 
void setPitchPoly (const std::vector< ossim_float64 > pitchPoly)
 
void setHeadingPoly (const std::vector< ossim_float64 > headingPoly)
 
void setLonPoly (const std::vector< ossim_float64 > lonPoly)
 
void setLatPoly (const std::vector< ossim_float64 > latPoly)
 
void setAltPoly (const std::vector< ossim_float64 > altPoly)
 
void setScanPoly (const std::vector< ossim_float64 > scanPoly)
 
void getPositionOrientation (const ossim_float64 &line, ossimEcefPoint &pos, NEWMAT::Matrix &cam2EcfRot) const
 
ossimEcefPoint getCameraPosition (const ossim_float64 &line) const
 
NEWMAT::Matrix getPlatform2LocalRot (const ossim_float64 &line) const
 
ossim_float64 evalPoly (const std::vector< ossim_float64 > &polyCoef, const ossim_float64 &line) const
 
- Public Member Functions inherited from ossimSensorModel
 ossimSensorModel ()
 
 ossimSensorModel (const ossimSensorModel &copy_this)
 
 ossimSensorModel (const ossimKeywordlist &geom_kwl)
 
const ossimSensorModeloperator= (const ossimSensorModel &rhs)
 assignment operator More...
 
virtual ossimObjectgetBaseObject ()
 
virtual const ossimObjectgetBaseObject () const
 
virtual ossimGpt origin () const
 
virtual ossimDpt getMetersPerPixel () const
 
virtual const double & getNominalPosError () const
 Returns the estimated Absolute horizontal position error (CE90) of the sensor model. More...
 
virtual const double & getRelativePosError () const
 Returns the estimated RELATIVE horizontal position error (CE90) of the sensor model. More...
 
virtual void setNominalPosError (const double &ce90)
 Assigns the absolute image position error uncertainty (abs CE90) More...
 
virtual void setRelativePosError (const double &ce90)
 Assigns the relative image position error uncertainty (rel CE90) More...
 
virtual void lineSampleToWorld (const ossimDpt &image_point, ossimGpt &world_point) const
 
virtual void worldToLineSample (const ossimGpt &world_point, ossimDpt &image_point) const
 
virtual void imagingRay (const ossimDpt &image_point, ossimEcefRay &image_ray) const
 
virtual std::ostream & print (std::ostream &out) const
 
void setRefImgPt (const ossimDpt &pt)
 Sets the center line sampe of the image. More...
 
void setRefGndPt (const ossimGpt &pt)
 Sets the center latitude, longitude, height of the image. More...
 
void setImageRect (const ossimDrect &imageRect)
 
void setGroundRect (const ossimGpt &ul, const ossimGpt &ur, const ossimGpt &lr, const ossimGpt &ll)
 
ossimDpt imageSize () const
 
void setImageSize (const ossimDpt &size)
 
virtual void adjustableParametersChanged ()
 
virtual bool insideImage (const ossimDpt &p) const
 
virtual bool operator== (const ossimProjection &proj) const
 
const ossimStringgetImageID () const
 Access methods: More...
 
const ossimDrectgetImageClipRect () const
 
virtual ossim_uint32 degreesOfFreedom () const
 
virtual bool needsInitialState () const
 needsInitialState() More...
 
virtual double optimizeFit (const ossimTieGptSet &tieSet, double *targetVariance=0)
 
virtual ossimDpt getForwardDeriv (int parmIdx, const ossimGpt &gpos, double hdelta=1e-11)
 
virtual ossimGpt getInverseDeriv (int parmIdx, const ossimDpt &ipos, double hdelta=1e-11)
 
virtual ossimSensorModel::CovMatStatus getObsCovMat (const ossimDpt &ipos, NEWMAT::SymmetricMatrix &Cov, const ossim_float64 defPointingSigma=0.5) const
 Gives 2X2 covariance matrix of observations. More...
 
virtual bool isAffectedByElevation () const
 Implementation of pure virtual ossimProjection::isAffectedByElevation method. More...
 
void computeGsd ()
 This method computes the ground sample distance(gsd) and sets class attributes theGSD and theMeanGSD by doing a lineSampleHeightToWorld on four points and calculating the distance from them. More...
 
virtual bool getImageGeometry (const ossimString &, const ossimString &, ossimKeywordlist &) const
 Extracts geometry info from a non-ossim key,value pair to an ossim keyword list. More...
 
- Public Member Functions inherited from ossimProjection
 ossimProjection ()
 
virtual ~ossimProjection ()
 
virtual ossimDpt forward (const ossimGpt &wp) const
 
virtual ossimGpt inverse (const ossimDpt &pp) const
 
virtual void getRoundTripError (const ossimDpt &imagePoint, ossimDpt &errorResult) const
 
virtual void getRoundTripError (const ossimGpt &groundPoint, ossimDpt &errorResult) const
 
virtual void getGroundClipPoints (ossimGeoPolygon &gpts) const
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
virtual bool operator!= (const ossimProjection &projection) const
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getDescription () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 
- Public Member Functions inherited from ossimErrorStatusInterface
 ossimErrorStatusInterface ()
 
virtual ~ossimErrorStatusInterface ()
 
virtual ossimErrorCode getErrorStatus () const
 
virtual ossimString getErrorStatusString () const
 
virtual void setErrorStatus (ossimErrorCode error_status) const
 
virtual void setErrorStatus () const
 
virtual void clearErrorStatus () const
 
bool hasError () const
 
- Public Member Functions inherited from ossimOptimizableProjection
 ossimOptimizableProjection ()
 
 ossimOptimizableProjection (const ossimOptimizableProjection &source)
 
virtual ~ossimOptimizableProjection ()
 
virtual ossimOptimizableProjectionoperator= (const ossimOptimizableProjection &source)
 
virtual bool setupOptimizer (const ossimString &setup)
 setupFromString() Derived classes should implement as needed. Initialize parameters needed for optimizeFit and degreesOfFreedom More...
 
- Public Member Functions inherited from ossimAdjustableParameterInterface
 ossimAdjustableParameterInterface ()
 
 ossimAdjustableParameterInterface (const ossimAdjustableParameterInterface &rhs)
 
virtual ~ossimAdjustableParameterInterface ()
 
void newAdjustment (ossim_uint32 numberOfParameters=0)
 
void setAdjustmentDescription (const ossimString &description)
 
ossimString getAdjustmentDescription () const
 
ossimString getAdjustmentDescription (ossim_uint32 adjustmentIdx) const
 Returns adjustmentDescription of specific adjustmentInfo. More...
 
void setCurrentAdjustment (ossim_uint32 adjustmentIndex, bool notify=false)
 
bool setCurrentAdjustment (const ossimString &description, bool notify=false)
 Sets the current adjustment to the adjustment with a matching description. More...
 
void eraseAdjustment (bool notify)
 
void eraseAdjustment (ossim_uint32 idx, bool notify)
 
void resetAdjustableParameters (bool notify=false)
 
void copyAdjustment (ossim_uint32 idx, bool notify)
 
void copyAdjustment (bool notify=false)
 
void keepAdjustment (ossim_uint32 idx, bool createCopy)
 
virtual void keepAdjustment (bool createCopy=true)
 
const ossimAdjustableParameterInterfaceoperator= (const ossimAdjustableParameterInterface &rhs)
 
void removeAllAdjustments ()
 
ossim_uint32 getNumberOfAdjustableParameters () const
 
double getAdjustableParameter (ossim_uint32 idx) const
 
virtual void setAdjustableParameter (ossim_uint32 idx, double value, bool notify=false)
 
virtual void setAdjustableParameter (ossim_uint32 idx, double value, double sigma, bool notify=false)
 
double getParameterSigma (ossim_uint32 idx) const
 
void setParameterSigma (ossim_uint32 idx, double value, bool notify=false)
 
ossimUnitType getParameterUnit (ossim_uint32 idx) const
 
void setParameterUnit (ossim_uint32 idx, ossimUnitType unit)
 
void setParameterUnit (ossim_uint32 idx, const ossimString &unit)
 
void setParameterCenter (ossim_uint32 idx, double center, bool notify=false)
 
double getParameterCenter (ossim_uint32 idx) const
 
double computeParameterOffset (ossim_uint32 idx) const
 
void setParameterOffset (ossim_uint32 idx, ossim_float64 value, bool notify=false)
 
ossimString getParameterDescription (ossim_uint32 idx) const
 
void setParameterDescription (ossim_uint32 idx, const ossimString &descrption)
 
ossim_int32 findParameterIdxGivenDescription (ossim_uint32 adjustmentIdx, const ossimString &name) const
 
ossim_int32 findParameterIdxContainingDescription (ossim_uint32 adjustmentIdx, const ossimString &name) const
 
bool isParameterLocked (ossim_uint32 idx) const
 
void setParameterLockFlag (ossim_uint32 idxParam, bool flag)
 
bool getParameterLockFlag (ossim_uint32 idx) const
 
void lockAllParametersCurrentAdjustment ()
 
void unlockAllParametersCurrentAdjustment ()
 
void lockAllParameters (ossim_uint32 idxAdjustment)
 
void unlockAllParameters (ossim_uint32 idxAdjustment)
 
void resizeAdjustableParameterArray (ossim_uint32 numberOfParameters)
 
void setAdjustment (const ossimAdjustmentInfo &adj, bool notify=false)
 
void setAdjustment (ossim_uint32 idx, const ossimAdjustmentInfo &adj, bool notify=false)
 
void addAdjustment (const ossimAdjustmentInfo &adj, bool notify)
 
void getAdjustment (ossimAdjustmentInfo &adj) const
 
void getAdjustment (ossim_uint32 idx, ossimAdjustmentInfo &adj) const
 
ossim_uint32 getNumberOfAdjustments () const
 
ossim_uint32 getCurrentAdjustmentIdx () const
 
void setDirtyFlag (bool flag=true)
 
void setAllDirtyFlag (bool flag=true)
 
bool hasDirtyAdjustments () const
 
virtual void saveCurrentAdjustmentOnly (ossimKeywordlist &kwl, const ossimString &prefix=ossimString(""))
 Saves the current active adjustment to the KWL file. More...
 
bool saveAdjustments (ossimKeywordlist &kwl, const ossimString &prefix=ossimString("")) const
 Save all adjustments to the KWL file. More...
 
bool loadAdjustments (const ossimKeywordlist &kwl, const ossimString &prefix=ossimString(""))
 
std::ostream & print (std::ostream &out) const
 Dumps the currently active adjustment to ostream. More...
 

Protected Member Functions

NEWMAT::Matrix formHPRmat (const ossim_float64 &roll, const ossim_float64 &pitch, const ossim_float64 &heading) const
 
NEWMAT::Matrix formLLAmat (const ossim_float64 &lat, const ossim_float64 &lon, const ossim_float64 &az) const
 
- Protected Member Functions inherited from ossimSensorModel
virtual ~ossimSensorModel ()
 
virtual ossimDpt extrapolate (const ossimGpt &gp) const
 
virtual ossimGpt extrapolate (const ossimDpt &ip, const double &height=ossim::nan()) const
 
void buildNormalEquation (const ossimTieGptSet &tieSet, NEWMAT::SymmetricMatrix &A, NEWMAT::ColumnVector &residue, NEWMAT::ColumnVector &projResidue, double pstep_scale)
 
NEWMAT::ColumnVector getResidue (const ossimTieGptSet &tieSet)
 
NEWMAT::ColumnVector solveLeastSquares (NEWMAT::SymmetricMatrix &A, NEWMAT::ColumnVector &r) const
 
NEWMAT::Matrix invert (const NEWMAT::Matrix &m) const
 stable invert stolen from ossimRpcSolver More...
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 
- Protected Member Functions inherited from ossimAdjustableParameterInterface
bool paramChanged (ossim_uint32 param_idx) const
 Returns true if specified parameter has been modified since last setAllChangeFlag(false) call. More...
 
void setAllChangeFlags (bool areChanged)
 Sets all the change flags to the boolean indicated to indicate parameters are changed (TRUE) or not (FALSE). More...
 
void initChangeFlags ()
 Initializes the change flags to TRUE. More...
 

Protected Attributes

ossim_float64 m_rollBias
 
ossim_float64 m_pitchBias
 
ossim_float64 m_headingBias
 
ossim_float64 m_fov
 
ossim_float64 m_slitRot
 
ossim_float64 m_focalLength
 
std::vector< ossim_float64m_rollPoly
 
std::vector< ossim_float64m_pitchPoly
 
std::vector< ossim_float64m_headingPoly
 
std::vector< ossim_float64m_lonPoly
 
std::vector< ossim_float64m_latPoly
 
std::vector< ossim_float64m_altPoly
 
std::vector< ossim_float64m_scanPoly
 
NEWMAT::Matrix m_cam2Platform
 
ossim_float64 m_adjustedFocalLength
 
- Protected Attributes inherited from ossimSensorModel
ossimIpt theImageSize
 
ossimDpt theSubImageOffset
 
ossimString theImageID
 
ossimString theSensorID
 
ossimDpt theGSD
 
ossim_float64 theMeanGSD
 
ossimGpt theRefGndPt
 
ossimDpt theRefImgPt
 
ossimPolygon theBoundGndPolygon
 
ossimDrect theImageClipRect
 
ossim_float64 theRelPosError
 
ossim_float64 theNominalPosError
 
ossimDpt theParWRTx
 Partials for current point. More...
 
ossimDpt theParWRTy
 
ossimDpt theParWRTz
 
ossimDpt theObs
 Observations & residuals for current point. More...
 
ossimDpt theResid
 
ossimRefPtr< ossimProjectiontheSeedFunction
 Used as an initial guess for iterative solutions and a guess for points outside the support bounds. More...
 
bool theExtrapolateImageFlag
 
bool theExtrapolateGroundFlag
 
- Protected Attributes inherited from ossimErrorStatusInterface
ossimErrorCode theErrorStatus
 

Additional Inherited Members

- Public Types inherited from ossimSensorModel
enum  CovMatStatus { COV_INVALID = 0, COV_PARTIAL = 1, COV_FULL = 2 }
 
enum  DeriveMode {
  OBS_INIT =-99, EVALUATE =-98, P_WRT_X = -1, P_WRT_Y = -2,
  P_WRT_Z = -3
}
 
- Static Public Member Functions inherited from ossimSensorModel
static void writeGeomTemplate (ostream &os)
 

Detailed Description

Definition at line 15 of file ossimAlphaSensor.h.

Constructor & Destructor Documentation

◆ ossimAlphaSensor() [1/2]

ossimAlphaSensor::ossimAlphaSensor ( )

Definition at line 40 of file ossimAlphaSensor.cpp.

Referenced by dup().

41  :
42  m_rollBias(0.0),
43  m_pitchBias(0.0),
44  m_headingBias(0.0),
45  m_fov(0.0),
46  m_slitRot(0.0),
47  m_focalLength(0.0),
49 {
50 
51  if (traceDebug())
52  {
54  << "ossimAlphaSensor::ossimAlphaSensor DEBUG:" << std::endl;
55  }
56  m_cam2Platform.ReSize(3,3);
57  m_cam2Platform = 0.0;
58 
60 }
virtual void initAdjustableParameters()
NEWMAT::Matrix m_cam2Platform
ossim_float64 m_slitRot
ossim_float64 m_pitchBias
ossim_float64 m_fov
ossim_float64 m_headingBias
ossim_float64 m_rollBias
ossim_float64 m_adjustedFocalLength
ossim_float64 m_focalLength
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ ossimAlphaSensor() [2/2]

ossimAlphaSensor::ossimAlphaSensor ( const ossimAlphaSensor src)

Definition at line 62 of file ossimAlphaSensor.cpp.

63  :
64  ossimSensorModel(src),
68  m_fov(src.m_fov),
69  m_slitRot(src.m_slitRot),
74  m_lonPoly(src.m_lonPoly),
75  m_latPoly(src.m_latPoly),
76  m_altPoly(src.m_altPoly),
80 {
81 }
NEWMAT::Matrix m_cam2Platform
std::vector< ossim_float64 > m_rollPoly
ossim_float64 m_slitRot
std::vector< ossim_float64 > m_latPoly
std::vector< ossim_float64 > m_altPoly
std::vector< ossim_float64 > m_lonPoly
ossim_float64 m_pitchBias
ossim_float64 m_fov
std::vector< ossim_float64 > m_headingPoly
std::vector< ossim_float64 > m_pitchPoly
ossim_float64 m_headingBias
ossim_float64 m_rollBias
std::vector< ossim_float64 > m_scanPoly
ossim_float64 m_adjustedFocalLength
ossim_float64 m_focalLength

Member Function Documentation

◆ dup()

ossimObject * ossimAlphaSensor::dup ( ) const
virtual

Implements ossimProjection.

Reimplemented in ossimAlphaSensorHRI, and ossimAlphaSensorHSI.

Definition at line 83 of file ossimAlphaSensor.cpp.

References ossimAlphaSensor().

84 {
85  return new ossimAlphaSensor(*this);
86 }

◆ evalPoly()

ossim_float64 ossimAlphaSensor::evalPoly ( const std::vector< ossim_float64 > &  polyCoef,
const ossim_float64 line 
) const

Definition at line 231 of file ossimAlphaSensor.cpp.

Referenced by getCameraPosition(), getPlatform2LocalRot(), and ossimAlphaSensorHSI::getScanAngle().

233 {
234  int nCoef = polyCoef.size();
235 
236  ossim_float64 result = polyCoef[nCoef-1];
237 
238  if (nCoef > 1)
239  {
240  for(int i=nCoef-2; i >= 0 ; --i)
241  result = result * line + polyCoef[i];
242  }
243 
244  return result;
245 }
double ossim_float64

◆ formHPRmat()

NEWMAT::Matrix ossimAlphaSensor::formHPRmat ( const ossim_float64 roll,
const ossim_float64 pitch,
const ossim_float64 heading 
) const
protected

Definition at line 657 of file ossimAlphaSensor.cpp.

References ossimMatrix3x3::create().

Referenced by getPlatform2LocalRot().

660 {
661  ossim_float64 cp = cos(p);
662  ossim_float64 sp = sin(p);
663  ossim_float64 ch = cos(h);
664  ossim_float64 sh = sin(h);
665  ossim_float64 cr = cos(r);
666  ossim_float64 sr = sin(r);
667 
668  NEWMAT::Matrix rollM = ossimMatrix3x3::create( 1, 0, 0,
669  0, cr,-sr,
670  0, sr, cr);
671 
672  NEWMAT::Matrix pitchM = ossimMatrix3x3::create( cp, 0, sp,
673  0, 1, 0,
674  -sp, 0, cp);
675 
676  NEWMAT::Matrix hdgM = ossimMatrix3x3::create( ch,-sh, 0,
677  sh, ch, 0,
678  0, 0, 1);
679 
680  NEWMAT::Matrix body2LocalRot = hdgM * pitchM * rollM;
681 
682  return body2LocalRot;
683 }
double ossim_float64
static NEWMAT::Matrix create()

◆ formLLAmat()

NEWMAT::Matrix ossimAlphaSensor::formLLAmat ( const ossim_float64 lat,
const ossim_float64 lon,
const ossim_float64 az 
) const
protected

Definition at line 687 of file ossimAlphaSensor.cpp.

Referenced by getPositionOrientation().

690 {
691  ossim_float64 cp = cos(lat);
692  ossim_float64 sp = sin(lat);
693  ossim_float64 cl = cos(lon);
694  ossim_float64 sl = sin(lon);
695  ossim_float64 ca = cos(az);
696  ossim_float64 sa = sin(az);
697 
698  NEWMAT::Matrix ecf2LocalRot(3,3);
699  ecf2LocalRot(1,1) = -sl*sa - sp*cl*ca;
700  ecf2LocalRot(1,2) = cl*sa - sp*sl*ca;
701  ecf2LocalRot(1,3) = cp*ca;
702  ecf2LocalRot(2,1) = sl*ca - sp*cl*sa;
703  ecf2LocalRot(2,2) = -cl*ca - sp*sl*sa;
704  ecf2LocalRot(2,3) = cp*sa;
705  ecf2LocalRot(3,1) = cp*cl;
706  ecf2LocalRot(3,2) = cp*sl;
707  ecf2LocalRot(3,3) = sp;
708 
709  return ecf2LocalRot;
710 }
double ossim_float64

◆ getCameraPosition()

ossimEcefPoint ossimAlphaSensor::getCameraPosition ( const ossim_float64 line) const

Definition at line 195 of file ossimAlphaSensor.cpp.

References ossimAdjustableParameterInterface::computeParameterOffset(), evalPoly(), ossimGpt::height(), ossimGpt::latd(), ossimGpt::lond(), m_altPoly, m_latPoly, m_lonPoly, ossimGpt::metersPerDegree(), PARAM_ADJ_ALTITUDE_OFFSET, PARAM_ADJ_LAT_OFFSET, PARAM_ADJ_LON_OFFSET, ossimDpt::x, and ossimDpt::y.

Referenced by getPositionOrientation().

196 {
197  // Interpolate position at given line number
198  ossim_float64 lat = evalPoly(m_latPoly, line);
199  ossim_float64 lon = evalPoly(m_lonPoly, line);
200  ossim_float64 alt = evalPoly(m_altPoly, line);
201  ossimGpt cameraPositionEllipsoid(lat, lon, alt);
202 
203  // Update adjusted position
205  cameraPositionEllipsoid.metersPerDegree().y;
207  cameraPositionEllipsoid.metersPerDegree().x;
208 
209  ossimGpt adjustedCameraPosition = ossimGpt(cameraPositionEllipsoid.latd() + deltap,
210  cameraPositionEllipsoid.lond() + deltal,
211  cameraPositionEllipsoid.height() + computeParameterOffset(PARAM_ADJ_ALTITUDE_OFFSET));
212 
213  ossimEcefPoint pos(adjustedCameraPosition);
214 
215  return pos;
216 }
std::vector< ossim_float64 > m_latPoly
std::vector< ossim_float64 > m_altPoly
std::vector< ossim_float64 > m_lonPoly
double ossim_float64
ossim_float64 evalPoly(const std::vector< ossim_float64 > &polyCoef, const ossim_float64 &line) const

◆ getPlatform2LocalRot()

NEWMAT::Matrix ossimAlphaSensor::getPlatform2LocalRot ( const ossim_float64 line) const

Definition at line 218 of file ossimAlphaSensor.cpp.

References evalPoly(), formHPRmat(), m_headingPoly, m_pitchPoly, and m_rollPoly.

Referenced by getPositionOrientation().

219 {
220  // Interpolate orientation at given line number
221  ossim_float64 roll = evalPoly(m_rollPoly, line);
222  ossim_float64 pitch = evalPoly(m_pitchPoly, line);
223  ossim_float64 heading = evalPoly(m_headingPoly, line);
224 
225  // Form orientation matrix
226  NEWMAT::Matrix rmat = formHPRmat(-roll, -pitch, -heading);
227 
228  return rmat;
229 }
std::vector< ossim_float64 > m_rollPoly
NEWMAT::Matrix formHPRmat(const ossim_float64 &roll, const ossim_float64 &pitch, const ossim_float64 &heading) const
double ossim_float64
std::vector< ossim_float64 > m_headingPoly
std::vector< ossim_float64 > m_pitchPoly
ossim_float64 evalPoly(const std::vector< ossim_float64 > &polyCoef, const ossim_float64 &line) const

◆ getPositionOrientation()

void ossimAlphaSensor::getPositionOrientation ( const ossim_float64 line,
ossimEcefPoint pos,
NEWMAT::Matrix &  cam2EcfRot 
) const

Definition at line 177 of file ossimAlphaSensor.cpp.

References formLLAmat(), getCameraPosition(), getPlatform2LocalRot(), ossimGpt::latr(), ossimGpt::lonr(), and m_cam2Platform.

Referenced by ossimAlphaSensorHRI::imagingRay(), ossimAlphaSensorHSI::imagingRay(), ossimAlphaSensorHSI::worldToLineSample(), and ossimAlphaSensorHRI::worldToLineSample().

180 {
181  // Platform position
182  pos = getCameraPosition(line);
183 
184  // Local platform orientation
185  NEWMAT::Matrix platform2Local = getPlatform2LocalRot(line);
186 
187  // Form local<-ECF matrix
188  ossimGpt posG = ossimGpt(pos);
189  NEWMAT::Matrix local2Ecf = formLLAmat(posG.latr(), posG.lonr(), 0.0);
190 
191  // Form full ECF<-camera matrix
192  cam2EcfRot = local2Ecf.t() * platform2Local * m_cam2Platform;
193 }
NEWMAT::Matrix m_cam2Platform
ossimEcefPoint getCameraPosition(const ossim_float64 &line) const
NEWMAT::Matrix formLLAmat(const ossim_float64 &lat, const ossim_float64 &lon, const ossim_float64 &az) const
double lonr() const
Returns the longitude in radian measure.
Definition: ossimGpt.h:76
NEWMAT::Matrix getPlatform2LocalRot(const ossim_float64 &line) const
double latr() const
latr().
Definition: ossimGpt.h:66

◆ initAdjustableParameters()

void ossimAlphaSensor::initAdjustableParameters ( )
virtual

Reimplemented from ossimAdjustableParameterInterface.

Reimplemented in ossimAlphaSensorHRI, and ossimAlphaSensorHSI.

Definition at line 268 of file ossimAlphaSensor.cpp.

269 {
270  if (traceExec())
271  ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimAlphaSensor::initAdjustableParameters: returning..." << std::endl;
273 
278 
283 
288 
293 
298 
303 
308 }
void setParameterDescription(ossim_uint32 idx, const ossimString &descrption)
void setParameterUnit(ossim_uint32 idx, ossimUnitType unit)
virtual void setAdjustableParameter(ossim_uint32 idx, double value, bool notify=false)
void resizeAdjustableParameterArray(ossim_uint32 numberOfParameters)
void setParameterSigma(ossim_uint32 idx, double value, bool notify=false)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ lineSampleHeightToWorld()

void ossimAlphaSensor::lineSampleHeightToWorld ( const ossimDpt lineSampPt,
const double &  heightEllipsoid,
ossimGpt worldPt 
) const
virtual

METHOD: lineSampleHeightToWorld This is the pure virtual that performs the actual work of projecting the image point to the given elevation above Ellipsoid.

Implements ossimSensorModel.

Definition at line 96 of file ossimAlphaSensor.cpp.

References ossimSensorModel::imagingRay(), and ossimEcefRay::intersectAboveEarthEllipsoid().

99 {
100  ossimEcefRay ray;
101  imagingRay(imagePoint, ray);
102  ossimEcefPoint pecf(ray.intersectAboveEarthEllipsoid(heightEllipsoid));
103  worldPt = ossimGpt(pecf);
104 
105  if (traceDebug())
106  {
108  << "ossimAlphaSensorHSI::lineSampleHeightToWorld DEBUG:" << std::endl;
109  ossimNotify(ossimNotifyLevel_DEBUG) << " imagePoint = " << imagePoint << std::endl;
110  ossimNotify(ossimNotifyLevel_DEBUG) << " heightEllipsoid = " << heightEllipsoid << std::endl;
111  ossimNotify(ossimNotifyLevel_DEBUG) << " ray = " << ray << std::endl;
112  ossimNotify(ossimNotifyLevel_DEBUG) << " worldPt = " << worldPt << std::endl;
113  }
114 }
ossimEcefPoint intersectAboveEarthEllipsoid(const double &heightAboveEllipsoid, const ossimDatum *aDatum=ossimDatumFactory::instance() ->wgs84()) const
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ lineSampToWorld()

void ossimAlphaSensor::lineSampToWorld ( const ossimDpt image_point,
ossimGpt worldPoint 
) const
virtual

Definition at line 88 of file ossimAlphaSensor.cpp.

References ossimSensorModel::imagingRay(), ossimElevManager::instance(), and ossimElevSource::intersectRay().

90 {
91  ossimEcefRay ray;
92  imagingRay(imagePoint, ray);
94 }
bool intersectRay(const ossimEcefRay &ray, ossimGpt &gpt, double defaultElevValue=0.0)
METHOD: intersectRay()
static ossimElevManager * instance()
METHOD: instance() Implements singelton pattern.
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const

◆ loadState()

bool ossimAlphaSensor::loadState ( const ossimKeywordlist kwl,
const char *  prefix = 0 
)
virtual

Method to the load (recreate) the state of the object from a keyword list. Return true if ok or false on error.

Reimplemented from ossimSensorModel.

Reimplemented in ossimAlphaSensorHRI, and ossimAlphaSensorHSI.

Definition at line 310 of file ossimAlphaSensor.cpp.

311 {
312  if (traceDebug())
313  {
315  << "ossimAlphaSensor::loadState DEBUG:" << std::endl;
316  }
317 
318  theGSD.makeNan();
320  ossimSensorModel::loadState(kwl, prefix);
321 
322  ossimString fov = kwl.find(prefix, "fov");
323  ossimString number_samples = kwl.find(prefix, "number_samples");
324  ossimString number_lines = kwl.find(prefix, "number_lines");
325  ossimString rollBias = kwl.find(prefix, "roll_bias");
326  ossimString pitchBias = kwl.find(prefix, "pitch_bias");
327  ossimString headingBias = kwl.find(prefix, "heading_bias");
328  ossimString slitRot = kwl.find(prefix, "slit_rotation");
329 
330  ossim_uint32 pcount;
331  const char* lookup;
332 
333  // Roll polynomial
334  m_rollPoly.clear();
335  pcount = kwl.numberOf("roll_poly_coeff");
336  if (pcount>0)
337  {
338  ossim_uint32 found = 0;
339  ossim_uint32 count = 0;
340  while ( (found < pcount) && (count < 100) )
341  {
342  ossimString kw = "roll_poly_coeff";
343  kw += ossimString::toString(count);;
344  lookup = kwl.find(prefix, kw.c_str());
345  if (lookup)
346  {
347  ++found;
348  m_rollPoly.push_back(ossimString::toFloat64(lookup));
349  }
350  ++count;
351  }
352  }
353  else
354  {
355  if (traceDebug())
356  {
358  << "DEBUG ossimAlphaSensor::loadState() roll_poly_coeff lookup failure..."
359  << std::endl;
360  }
361  return false;
362  }
363 
364  // Pitch polynomial
365  m_pitchPoly.clear();
366  pcount = kwl.numberOf("pitch_poly_coeff");
367  if (pcount>0)
368  {
369  ossim_uint32 found = 0;
370  ossim_uint32 count = 0;
371  while ( (found < pcount) && (count < 100) )
372  {
373  ossimString kw = "pitch_poly_coeff";
374  kw += ossimString::toString(count);;
375  lookup = kwl.find(prefix, kw.c_str());
376  if (lookup)
377  {
378  ++found;
379  m_pitchPoly.push_back(ossimString::toFloat64(lookup));
380  }
381  ++count;
382  }
383  }
384  else
385  {
386  if (traceDebug())
387  {
389  << "DEBUG ossimAlphaSensor::loadState() pitch_poly_coeff lookup failure..."
390  << std::endl;
391  }
392  return false;
393  }
394 
395  // Heading polynomial
396  m_headingPoly.clear();
397  pcount = kwl.numberOf("heading_poly_coeff");
398  if (pcount>0)
399  {
400  ossim_uint32 found = 0;
401  ossim_uint32 count = 0;
402  while ( (found < pcount) && (count < 100) )
403  {
404  ossimString kw = "heading_poly_coeff";
405  kw += ossimString::toString(count);;
406  lookup = kwl.find(prefix, kw.c_str());
407  if (lookup)
408  {
409  ++found;
410  m_headingPoly.push_back(ossimString::toFloat64(lookup));
411  }
412  ++count;
413  }
414  }
415  else
416  {
417  if (traceDebug())
418  {
420  << "DEBUG ossimAlphaSensor::loadState() heading_poly_coeff lookup failure..."
421  << std::endl;
422  }
423  return false;
424  }
425 
426  // Latitude polynomial
427  m_latPoly.clear();
428  pcount = kwl.numberOf("lat_poly_coeff");
429  if (pcount>0)
430  {
431  ossim_uint32 found = 0;
432  ossim_uint32 count = 0;
433  while ( (found < pcount) && (count < 100) )
434  {
435  ossimString kw = "lat_poly_coeff";
436  kw += ossimString::toString(count);;
437  lookup = kwl.find(prefix, kw.c_str());
438  if (lookup)
439  {
440  ++found;
441  m_latPoly.push_back(ossimString::toFloat64(lookup));
442  }
443  ++count;
444  }
445  }
446  else
447  {
448  if (traceDebug())
449  {
451  << "DEBUG ossimAlphaSensor::loadState() lat_poly_coeff lookup failure..."
452  << std::endl;
453  }
454  return false;
455  }
456 
457  // Longitude polynomial
458  m_lonPoly.clear();
459  pcount = kwl.numberOf("lon_poly_coeff");
460  if (pcount>0)
461  {
462  ossim_uint32 found = 0;
463  ossim_uint32 count = 0;
464  while ( (found < pcount) && (count < 100) )
465  {
466  ossimString kw = "lon_poly_coeff";
467  kw += ossimString::toString(count);;
468  lookup = kwl.find(prefix, kw.c_str());
469  if (lookup)
470  {
471  ++found;
472  m_lonPoly.push_back(ossimString::toFloat64(lookup));
473  }
474  ++count;
475  }
476  }
477  else
478  {
479  if (traceDebug())
480  {
482  << "DEBUG ossimAlphaSensor::loadState() lon_poly_coeff lookup failure..."
483  << std::endl;
484  }
485  return false;
486  }
487 
488  // Altitude polynomial
489  m_altPoly.clear();
490  pcount = kwl.numberOf("alt_poly_coeff");
491  if (pcount>0)
492  {
493  ossim_uint32 found = 0;
494  ossim_uint32 count = 0;
495  while ( (found < pcount) && (count < 100) )
496  {
497  ossimString kw = "alt_poly_coeff";
498  kw += ossimString::toString(count);;
499  lookup = kwl.find(prefix, kw.c_str());
500  if (lookup)
501  {
502  ++found;
503  m_altPoly.push_back(ossimString::toFloat64(lookup));
504  }
505  ++count;
506  }
507  }
508  else
509  {
510  if (traceDebug())
511  {
513  << "DEBUG ossimAlphaSensor::loadState() alt_poly_coeff lookup failure..."
514  << std::endl;
515  }
516  return false;
517  }
518 
519  // Scan angle polynomial
520  m_scanPoly.clear();
521  pcount = kwl.numberOf("scan_poly_coeff");
522  if (pcount>0)
523  {
524  ossim_uint32 found = 0;
525  ossim_uint32 count = 0;
526  while ( (found < pcount) && (count < 100) )
527  {
528  ossimString kw = "scan_poly_coeff";
529  kw += ossimString::toString(count);;
530  lookup = kwl.find(prefix, kw.c_str());
531  if (lookup)
532  {
533  ++found;
534  m_scanPoly.push_back(ossimString::toFloat64(lookup));
535  }
536  ++count;
537  }
538  }
539  else
540  {
541  if (traceDebug())
542  {
544  << "DEBUG ossimAlphaSensor::loadState() scan_poly_coeff lookup failure..."
545  << std::endl;
546  }
547  return false;
548  }
549 
550 
551  if(!number_samples.empty())
552  {
553  theImageSize = ossimIpt(number_samples.toDouble(), number_lines.toDouble());
556  }
558  {
560  }
561  if(theRefImgPt.hasNans())
562  {
564  }
565  if(!fov.empty())
566  {
567  m_fov = fov.toDouble();
568  }
569  if(!rollBias.empty())
570  {
571  m_rollBias = rollBias.toDouble();
572  }
573  if(!pitchBias.empty())
574  {
575  m_pitchBias = pitchBias.toDouble();
576  }
577  if(!headingBias.empty())
578  {
579  m_headingBias = headingBias.toDouble();
580  }
581  if(!slitRot.empty())
582  {
583  m_slitRot = slitRot.toDouble();
584  }
585 
586  updateModel();
587 
588  if (traceDebug())
589  {
591  << "ossimAlphaSensor::loadState complete..." << std::endl;
592  }
593 
594  return true;
595 }
ossim_uint32 numberOf(const char *str) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
const char * find(const char *key) const
std::vector< ossim_float64 > m_rollPoly
ossim_float64 m_slitRot
static ossimString toString(bool aValue)
Numeric to string methods.
std::vector< ossim_float64 > m_latPoly
std::vector< ossim_float64 > m_altPoly
std::vector< ossim_float64 > m_lonPoly
ossim_float64 m_pitchBias
ossim_float64 m_fov
unsigned int ossim_uint32
double toDouble() const
ossim_float64 toFloat64() const
bool hasNans() const
Definition: ossimDrect.h:396
bool hasNans() const
Definition: ossimDpt.h:67
ossimDrect theImageClipRect
ossimDpt midPoint() const
Definition: ossimDrect.h:817
ossim_int32 y
Definition: ossimIpt.h:142
std::vector< ossim_float64 > m_headingPoly
std::vector< ossim_float64 > m_pitchPoly
ossim_float64 m_headingBias
virtual void updateModel()
ossim_float64 m_rollBias
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool empty() const
Definition: ossimString.h:411
ossim_int32 x
Definition: ossimIpt.h:141
std::vector< ossim_float64 > m_scanPoly
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
void makeNan()
Definition: ossimDpt.h:65

◆ saveState()

bool ossimAlphaSensor::saveState ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

METHODS: saveState, loadState Fulfills ossimObject base-class pure virtuals. Loads and saves geometry KWL files.

Reimplemented from ossimSensorModel.

Reimplemented in ossimAlphaSensorHRI, and ossimAlphaSensorHSI.

Definition at line 597 of file ossimAlphaSensor.cpp.

References ossimKeywordlist::add(), m_altPoly, m_fov, m_headingBias, m_headingPoly, m_latPoly, m_lonPoly, m_pitchBias, m_pitchPoly, m_rollBias, m_rollPoly, m_scanPoly, m_slitRot, ossimSensorModel::saveState(), ossimSensorModel::theImageSize, ossimIpt::toString(), and ossimString::toString().

Referenced by ossimAlphaSensorHRI::saveState(), and ossimAlphaSensorHSI::saveState().

598 {
599  ossimSensorModel::saveState(kwl, prefix);
600  kwl.add(prefix, "roll_bias", ossimString::toString(m_rollBias), true);
601  kwl.add(prefix, "pitch_bias", ossimString::toString(m_pitchBias), true);
602  kwl.add(prefix, "heading_bias", ossimString::toString(m_headingBias), true);
603  kwl.add(prefix, "fov", ossimString::toString(m_fov) ,true);
604  kwl.add(prefix, "slit_rotation", ossimString::toString(m_slitRot) ,true);
605  kwl.add(prefix, "image_size", theImageSize.toString() ,true);
606 
607  ossim_uint32 i;
608  for (i = 0; i < m_rollPoly.size(); ++i)
609  {
610  ossimString kw = "roll_poly_coeff";
611  kw += ossimString::toString(i);
612  kwl.add(prefix, kw, m_rollPoly[i]);
613  }
614  for (i = 0; i < m_pitchPoly.size(); ++i)
615  {
616  ossimString kw = "pitch_poly_coeff";
617  kw += ossimString::toString(i);
618  kwl.add(prefix, kw, m_pitchPoly[i]);
619  }
620  for (i = 0; i < m_headingPoly.size(); ++i)
621  {
622  ossimString kw = "heading_poly_coeff";
623  kw += ossimString::toString(i);
624  kwl.add(prefix, kw, m_headingPoly[i]);
625  }
626  for (i = 0; i < m_lonPoly.size(); ++i)
627  {
628  ossimString kw = "lon_poly_coeff";
629  kw += ossimString::toString(i);
630  kwl.add(prefix, kw, m_lonPoly[i]);
631  }
632  for (i = 0; i < m_latPoly.size(); ++i)
633  {
634  ossimString kw = "lat_poly_coeff";
635  kw += ossimString::toString(i);
636  kwl.add(prefix, kw, m_latPoly[i]);
637  }
638  for (i = 0; i < m_altPoly.size(); ++i)
639  {
640  ossimString kw = "alt_poly_coeff";
641  kw += ossimString::toString(i);
642  kwl.add(prefix, kw, m_altPoly[i]);
643  }
644  for (i = 0; i < m_scanPoly.size(); ++i)
645  {
646  ossimString kw = "scan_poly_coeff";
647  kw += ossimString::toString(i);
648  kwl.add(prefix, kw, m_scanPoly[i]);
649  }
650 
651  return true;
652 }
ossimString toString() const
Definition: ossimIpt.cpp:139
std::vector< ossim_float64 > m_rollPoly
ossim_float64 m_slitRot
static ossimString toString(bool aValue)
Numeric to string methods.
std::vector< ossim_float64 > m_latPoly
std::vector< ossim_float64 > m_altPoly
std::vector< ossim_float64 > m_lonPoly
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossim_float64 m_pitchBias
ossim_float64 m_fov
unsigned int ossim_uint32
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
std::vector< ossim_float64 > m_headingPoly
std::vector< ossim_float64 > m_pitchPoly
ossim_float64 m_headingBias
ossim_float64 m_rollBias
std::vector< ossim_float64 > m_scanPoly

◆ setAltPoly()

void ossimAlphaSensor::setAltPoly ( const std::vector< ossim_float64 altPoly)

Definition at line 167 of file ossimAlphaSensor.cpp.

References m_altPoly.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

168 {
169  m_altPoly = altPoly;
170 }
std::vector< ossim_float64 > m_altPoly

◆ setFov()

void ossimAlphaSensor::setFov ( const double  fov)

Definition at line 116 of file ossimAlphaSensor.cpp.

References DEG_PER_RAD, m_focalLength, m_fov, ossimSensorModel::theImageSize, and ossimIpt::x.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

117 {
118  m_fov = fov;
120 }
#define DEG_PER_RAD
ossim_float64 m_fov
ossim_int32 x
Definition: ossimIpt.h:141
ossim_float64 m_focalLength

◆ setHeadingBias()

void ossimAlphaSensor::setHeadingBias ( const double  headingBias)

Definition at line 132 of file ossimAlphaSensor.cpp.

References m_headingBias.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

133 {
134  m_headingBias = headingBias;
135 }
ossim_float64 m_headingBias

◆ setHeadingPoly()

void ossimAlphaSensor::setHeadingPoly ( const std::vector< ossim_float64 headingPoly)

Definition at line 152 of file ossimAlphaSensor.cpp.

References m_headingPoly.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

153 {
154  m_headingPoly = headingPoly;
155 }
std::vector< ossim_float64 > m_headingPoly

◆ setLatPoly()

void ossimAlphaSensor::setLatPoly ( const std::vector< ossim_float64 latPoly)

Definition at line 162 of file ossimAlphaSensor.cpp.

References m_latPoly.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

163 {
164  m_latPoly = latPoly;
165 }
std::vector< ossim_float64 > m_latPoly

◆ setLonPoly()

void ossimAlphaSensor::setLonPoly ( const std::vector< ossim_float64 lonPoly)

Definition at line 157 of file ossimAlphaSensor.cpp.

References m_lonPoly.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

158 {
159  m_lonPoly = lonPoly;
160 }
std::vector< ossim_float64 > m_lonPoly

◆ setPitchBias()

void ossimAlphaSensor::setPitchBias ( const double  pitchBias)

Definition at line 127 of file ossimAlphaSensor.cpp.

References m_pitchBias.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

128 {
129  m_pitchBias = pitchBias;
130 }
ossim_float64 m_pitchBias

◆ setPitchPoly()

void ossimAlphaSensor::setPitchPoly ( const std::vector< ossim_float64 pitchPoly)

Definition at line 147 of file ossimAlphaSensor.cpp.

References m_pitchPoly.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

148 {
149  m_pitchPoly = pitchPoly;
150 }
std::vector< ossim_float64 > m_pitchPoly

◆ setRollBias()

void ossimAlphaSensor::setRollBias ( const double  rollBias)

Definition at line 122 of file ossimAlphaSensor.cpp.

References m_rollBias.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

123 {
124  m_rollBias = rollBias;
125 }
ossim_float64 m_rollBias

◆ setRollPoly()

void ossimAlphaSensor::setRollPoly ( const std::vector< ossim_float64 rollPoly)

Definition at line 142 of file ossimAlphaSensor.cpp.

References m_rollPoly.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

143 {
144  m_rollPoly = rollPoly;
145 }
std::vector< ossim_float64 > m_rollPoly

◆ setScanPoly()

void ossimAlphaSensor::setScanPoly ( const std::vector< ossim_float64 scanPoly)

Definition at line 172 of file ossimAlphaSensor.cpp.

References m_scanPoly.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

173 {
174  m_scanPoly = scanPoly;
175 }
std::vector< ossim_float64 > m_scanPoly

◆ setSlitRot()

void ossimAlphaSensor::setSlitRot ( const double  slitRot)

Definition at line 137 of file ossimAlphaSensor.cpp.

References m_slitRot.

Referenced by ossimAlphaSensorHRI::initialize(), and ossimAlphaSensorHSI::initialize().

138 {
139  m_slitRot = slitRot;
140 }
ossim_float64 m_slitRot

◆ updateModel()

void ossimAlphaSensor::updateModel ( )
virtual

VIRTUAL METHOD: updateModel() Following a change to the adjustable parameter set, this virtual is called to permit instances to compute derived quantities after parameter change.

Reimplemented from ossimSensorModel.

Reimplemented in ossimAlphaSensorHRI, and ossimAlphaSensorHSI.

Definition at line 247 of file ossimAlphaSensor.cpp.

248 {
249  if (traceDebug())
250  {
252  << "ossimAlphaSensor::updateModel DEBUG:" << std::endl;
253  }
254 
255  // Apply bias corrections
259 
260  // Form bias rotation matrix
261  m_cam2Platform = formHPRmat(r, p, h);
262 
263  // Apply focal length correction
266 }
#define DEG_PER_RAD
NEWMAT::Matrix m_cam2Platform
NEWMAT::Matrix formHPRmat(const ossim_float64 &roll, const ossim_float64 &pitch, const ossim_float64 &heading) const
ossim_float64 m_pitchBias
double degreesToRadians(double x)
Definition: ossimCommon.h:258
ossim_float64 m_fov
ossim_float64 m_headingBias
ossim_float64 m_rollBias
ossim_int32 x
Definition: ossimIpt.h:141
ossim_float64 m_adjustedFocalLength
ossim_float64 m_focalLength
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ useForward()

virtual bool ossimAlphaSensor::useForward ( ) const
inlinevirtual

useForward() return true when it's better (more accurate / fast) to use forward (from ground to image) than inverse(from image to ground)

Implements ossimOptimizableProjection.

Definition at line 34 of file ossimAlphaSensor.h.

34 {return true;}

Member Data Documentation

◆ m_adjustedFocalLength

ossim_float64 ossimAlphaSensor::m_adjustedFocalLength
protected

◆ m_altPoly

std::vector< ossim_float64 > ossimAlphaSensor::m_altPoly
protected

Definition at line 87 of file ossimAlphaSensor.h.

Referenced by getCameraPosition(), saveState(), and setAltPoly().

◆ m_cam2Platform

NEWMAT::Matrix ossimAlphaSensor::m_cam2Platform
protected

Definition at line 91 of file ossimAlphaSensor.h.

Referenced by getPositionOrientation().

◆ m_focalLength

ossim_float64 ossimAlphaSensor::m_focalLength
protected

Definition at line 80 of file ossimAlphaSensor.h.

Referenced by setFov().

◆ m_fov

ossim_float64 ossimAlphaSensor::m_fov
protected

Definition at line 77 of file ossimAlphaSensor.h.

Referenced by saveState(), and setFov().

◆ m_headingBias

ossim_float64 ossimAlphaSensor::m_headingBias
protected

Definition at line 76 of file ossimAlphaSensor.h.

Referenced by saveState(), and setHeadingBias().

◆ m_headingPoly

std::vector< ossim_float64 > ossimAlphaSensor::m_headingPoly
protected

Definition at line 84 of file ossimAlphaSensor.h.

Referenced by getPlatform2LocalRot(), saveState(), and setHeadingPoly().

◆ m_latPoly

std::vector< ossim_float64 > ossimAlphaSensor::m_latPoly
protected

Definition at line 86 of file ossimAlphaSensor.h.

Referenced by getCameraPosition(), saveState(), and setLatPoly().

◆ m_lonPoly

std::vector< ossim_float64 > ossimAlphaSensor::m_lonPoly
protected

Definition at line 85 of file ossimAlphaSensor.h.

Referenced by getCameraPosition(), saveState(), and setLonPoly().

◆ m_pitchBias

ossim_float64 ossimAlphaSensor::m_pitchBias
protected

Definition at line 75 of file ossimAlphaSensor.h.

Referenced by saveState(), and setPitchBias().

◆ m_pitchPoly

std::vector< ossim_float64 > ossimAlphaSensor::m_pitchPoly
protected

Definition at line 83 of file ossimAlphaSensor.h.

Referenced by getPlatform2LocalRot(), saveState(), and setPitchPoly().

◆ m_rollBias

ossim_float64 ossimAlphaSensor::m_rollBias
protected

Definition at line 74 of file ossimAlphaSensor.h.

Referenced by saveState(), and setRollBias().

◆ m_rollPoly

std::vector< ossim_float64 > ossimAlphaSensor::m_rollPoly
protected

Definition at line 82 of file ossimAlphaSensor.h.

Referenced by getPlatform2LocalRot(), saveState(), and setRollPoly().

◆ m_scanPoly

std::vector< ossim_float64 > ossimAlphaSensor::m_scanPoly
protected

Definition at line 88 of file ossimAlphaSensor.h.

Referenced by ossimAlphaSensorHSI::getScanAngle(), saveState(), and setScanPoly().

◆ m_slitRot

ossim_float64 ossimAlphaSensor::m_slitRot
protected

Definition at line 78 of file ossimAlphaSensor.h.

Referenced by saveState(), and setSlitRot().


The documentation for this class was generated from the following files: