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

#include <ossimAlphaSensorHRI.h>

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

Public Member Functions

 ossimAlphaSensorHRI ()
 
 ossimAlphaSensorHRI (const ossimAlphaSensorHRI &src)
 
virtual ossimObjectdup () const
 
virtual void imagingRay (const ossimDpt &image_point, ossimEcefRay &image_ray) const
 
virtual void worldToLineSample (const ossimGpt &world_point, ossimDpt &image_point) const
 
virtual void updateModel ()
 
virtual void initAdjustableParameters ()
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool initialize (const ossimAlphaSensorSupportData &supData)
 Initializes model from support data and calls update Model on success. More...
 
- Public Member Functions inherited from ossimAlphaSensor
 ossimAlphaSensor ()
 
 ossimAlphaSensor (const ossimAlphaSensor &src)
 
virtual void lineSampToWorld (const ossimDpt &image_point, ossimGpt &worldPoint) const
 
virtual void lineSampleHeightToWorld (const ossimDpt &image_point, const double &heightEllipsoid, ossimGpt &worldPoint) const
 
virtual bool useForward () 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 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...
 

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)
 
- Protected Member Functions inherited from ossimAlphaSensor
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 inherited from ossimAlphaSensor
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
 

Detailed Description

Definition at line 17 of file ossimAlphaSensorHRI.h.

Constructor & Destructor Documentation

◆ ossimAlphaSensorHRI() [1/2]

ossimAlphaSensorHRI::ossimAlphaSensorHRI ( )

Definition at line 27 of file ossimAlphaSensorHRI.cpp.

Referenced by dup().

28 {
29  if (traceDebug())
30  {
32  << "ossimAlphaSensorHRI::ossimAlphaSensorHRI DEBUG:" << std::endl;
33  }
35  theSensorID = "AlphaHRI";
36 }
ossimString theSensorID
virtual void initAdjustableParameters()
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ ossimAlphaSensorHRI() [2/2]

ossimAlphaSensorHRI::ossimAlphaSensorHRI ( const ossimAlphaSensorHRI src)

Definition at line 38 of file ossimAlphaSensorHRI.cpp.

39  :
40  ossimAlphaSensor(src)
41 {
42 }

Member Function Documentation

◆ dup()

ossimObject * ossimAlphaSensorHRI::dup ( ) const
virtual

Reimplemented from ossimAlphaSensor.

Definition at line 44 of file ossimAlphaSensorHRI.cpp.

References ossimAlphaSensorHRI().

45 {
46  return new ossimAlphaSensorHRI(*this);
47 }

◆ imagingRay()

void ossimAlphaSensorHRI::imagingRay ( const ossimDpt image_point,
ossimEcefRay image_ray 
) const
virtual

METHOD: imagingRay(image_point, &ossimEcefRay) Given an image point, returns a ray originating at some arbitrarily high point (ideally at the sensor position) and pointing towards the target. Implemented here but should be overriden for more efficient solution.

Reimplemented from ossimSensorModel.

Definition at line 49 of file ossimAlphaSensorHRI.cpp.

References ossimAlphaSensor::getPositionOrientation(), ossimAlphaSensor::m_adjustedFocalLength, ossimEcefRay::setDirection(), ossimEcefRay::setOrigin(), ossimSensorModel::theImageSize, ossimColumnVector3d::unit(), ossimIpt::x, ossimDpt::x, and ossimDpt::y.

51 {
52  ossim_float64 line = imagePoint.y;
53 
54  ossim_float64 samp = imagePoint.x - theImageSize.x/2;
55 
56  // Flip x because raw image is mirrored in sample direction
57  samp = -samp;
58 
59 
60  // Form camera frame LOS vector
61  ossimColumnVector3d camLOS(0.0, samp, -m_adjustedFocalLength);
62 
63  // Compute camera position & orientation matrix
64  ossimEcefPoint platPos;
65  NEWMAT::Matrix cam2EcfRot;
66  getPositionOrientation(line, platPos, cam2EcfRot);
67 
68  // Rotate camera vector to ECF
69  ossimColumnVector3d ecfLOS = cam2EcfRot * camLOS.unit();
70 
71  // Construct ECF image ray
72  imageRay.setOrigin(platPos);
73  ossimEcefVector ecfRayDir(ecfLOS);
74  imageRay.setDirection(ecfRayDir);
75 
76 
77  if (traceDebug())
78  {
80  << "ossimAlphaSensorHRI::imagingRay DEBUG:\n"
81  << " imagePoint = " << imagePoint << "\n"
82  << " imageRay = " << imageRay << "\n"
83  << " camLOS = " << camLOS << "\n"
84  << " platPos = " << platPos << "\n"
85  << std::endl;
86  }
87 
88 }
ossimColumnVector3d unit() const
double ossim_float64
void getPositionOrientation(const ossim_float64 &line, ossimEcefPoint &pos, NEWMAT::Matrix &cam2EcfRot) const
ossim_int32 x
Definition: ossimIpt.h:141
ossim_float64 m_adjustedFocalLength
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ initAdjustableParameters()

void ossimAlphaSensorHRI::initAdjustableParameters ( )
virtual

Reimplemented from ossimAlphaSensor.

Definition at line 186 of file ossimAlphaSensorHRI.cpp.

187 {
188  if (traceExec())
189  ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimAlphaSensorHRI::initAdjustableParameters: returning..." << std::endl;
190 
192 }
virtual void initAdjustableParameters()
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ initialize()

bool ossimAlphaSensorHRI::initialize ( const ossimAlphaSensorSupportData supData)
virtual

Initializes model from support data and calls update Model on success.

Parameters
supData
Returns
true on success, false on error.

Definition at line 226 of file ossimAlphaSensorHRI.cpp.

References ossimAlphaSensorSupportData::getAltPoly(), ossimAlphaSensorSupportData::getFov(), ossimAlphaSensorSupportData::getHeadingBias(), ossimAlphaSensorSupportData::getHeadingPoly(), ossimAlphaSensorSupportData::getImageSize(), ossimAlphaSensorSupportData::getLatPoly(), ossimAlphaSensorSupportData::getLonPoly(), ossimAlphaSensorSupportData::getPitchBias(), ossimAlphaSensorSupportData::getPitchPoly(), ossimAlphaSensorSupportData::getRollBias(), ossimAlphaSensorSupportData::getRollPoly(), ossimAlphaSensorSupportData::getScanPoly(), ossimAlphaSensorSupportData::getSlitRot(), ossimSensorModel::imageSize(), ossimAlphaSensor::setAltPoly(), ossimAlphaSensor::setFov(), ossimAlphaSensor::setHeadingBias(), ossimAlphaSensor::setHeadingPoly(), ossimSensorModel::setImageRect(), ossimSensorModel::setImageSize(), ossimAlphaSensor::setLatPoly(), ossimAlphaSensor::setLonPoly(), ossimAlphaSensor::setPitchBias(), ossimAlphaSensor::setPitchPoly(), ossimSensorModel::setRefImgPt(), ossimAlphaSensor::setRollBias(), ossimAlphaSensor::setRollPoly(), ossimAlphaSensor::setScanPoly(), ossimAlphaSensor::setSlitRot(), updateModel(), ossimDpt::x, and ossimDpt::y.

227 {
228  bool result = true; // Currently no error checking.
229 
230  ossimDpt imageSize = supData.getImageSize();
234 
235  setFov(supData.getFov());
236  setRollBias(supData.getRollBias());
237  setPitchBias(supData.getPitchBias());
238  setHeadingBias(supData.getHeadingBias());
239  setSlitRot(supData.getSlitRot());
240 
241  setRollPoly(supData.getRollPoly());
242  setPitchPoly(supData.getPitchPoly());
243  setHeadingPoly(supData.getHeadingPoly());
244  setLonPoly(supData.getLonPoly());
245  setLatPoly(supData.getLatPoly());
246  setAltPoly(supData.getAltPoly());
247  setScanPoly(supData.getScanPoly());
248 
249  updateModel();
250 
251  return result;
252 }
void setFov(const double fov)
const std::vector< ossim_float64 > & getLatPoly() const
void setSlitRot(const double slitRot)
const ossim_float64 & getSlitRot() const
double y
Definition: ossimDpt.h:165
const std::vector< ossim_float64 > & getLonPoly() const
void setHeadingBias(const double headingBias)
const ossim_float64 & getFov() const
void setPitchPoly(const std::vector< ossim_float64 > pitchPoly)
void setAltPoly(const std::vector< ossim_float64 > altPoly)
void setScanPoly(const std::vector< ossim_float64 > scanPoly)
ossimDpt imageSize() const
void setHeadingPoly(const std::vector< ossim_float64 > headingPoly)
void setLatPoly(const std::vector< ossim_float64 > latPoly)
const std::vector< ossim_float64 > & getAltPoly() const
const ossim_float64 & getHeadingBias() const
void setImageRect(const ossimDrect &imageRect)
void setPitchBias(const double pitchBias)
void setLonPoly(const std::vector< ossim_float64 > lonPoly)
void setRollBias(const double rollBias)
const ossim_float64 & getRollBias() const
double x
Definition: ossimDpt.h:164
const std::vector< ossim_float64 > & getScanPoly() const
void setRollPoly(const std::vector< ossim_float64 > rollPoly)
void setRefImgPt(const ossimDpt &pt)
Sets the center line sampe of the image.
const std::vector< ossim_float64 > & getPitchPoly() const
const std::vector< ossim_float64 > & getHeadingPoly() const
const ossim_float64 & getPitchBias() const
const std::vector< ossim_float64 > & getRollPoly() const
void setImageSize(const ossimDpt &size)

◆ loadState()

bool ossimAlphaSensorHRI::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 ossimAlphaSensor.

Definition at line 194 of file ossimAlphaSensorHRI.cpp.

195 {
196  if (traceDebug())
197  {
199  << "ossimAlphaSensorHRI::loadState DEBUG:" << std::endl;
200  }
201 
202  ossimAlphaSensor::loadState(kwl, prefix);
204  {
206  }
207 
208  updateModel();
209 
210  if (traceDebug())
211  {
213  << "ossimAlphaSensorHRI::loadState complete..." << std::endl;
214  }
215 
216  return true;
217 }
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void initAdjustableParameters()
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ saveState()

bool ossimAlphaSensorHRI::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 ossimAlphaSensor.

Definition at line 219 of file ossimAlphaSensorHRI.cpp.

References ossimAlphaSensor::saveState().

220 {
221  ossimAlphaSensor::saveState(kwl, prefix);
222 
223  return true;
224 }
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const

◆ updateModel()

void ossimAlphaSensorHRI::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 ossimAlphaSensor.

Definition at line 142 of file ossimAlphaSensorHRI.cpp.

Referenced by initialize().

143 {
144  if (traceDebug())
145  {
147  << "ossimAlphaSensorHRI::updateModel DEBUG:" << std::endl;
148  }
150 
151  try
152  {
153  computeGsd();
154  }
155  catch(...)
156  {
157 
158  }
159  if (traceDebug())
160  {
162  << "ossimAlphaSensorHRI::updateModel complete..." << std::endl;
163  }
164 
165  // Ref point
167 
168 
169  // Bounding rectangle
170  ossimGpt gpt;
172 
173  lineSampleToWorld(theImageClipRect.ul(),gpt); //+ossimDpt(-w, -h), gpt);
174  theBoundGndPolygon.addPoint(gpt.lond(), gpt.latd());
175 
176  lineSampleToWorld(theImageClipRect.ur(),gpt); //+ossimDpt(w, -h), gpt);
177  theBoundGndPolygon.addPoint(gpt.lond(), gpt.latd());
178 
179  lineSampleToWorld(theImageClipRect.lr(),gpt); //+ossimDpt(w, h), gpt);
180  theBoundGndPolygon.addPoint(gpt.lond(), gpt.latd());
181 
182  lineSampleToWorld(theImageClipRect.ll(),gpt); //+ossimDpt(-w, h), gpt);
183  theBoundGndPolygon.addPoint(gpt.lond(), gpt.latd());
184 }
double lond() const
Will convert the radian measure to degrees.
Definition: ossimGpt.h:97
const ossimDpt & ul() const
Definition: ossimDrect.h:339
void addPoint(const ossimDpt &pt)
virtual void lineSampleToWorld(const ossimDpt &image_point, ossimGpt &world_point) const
double latd() const
Will convert the radian measure to degrees.
Definition: ossimGpt.h:87
void computeGsd()
This method computes the ground sample distance(gsd) and sets class attributes theGSD and theMeanGSD ...
ossimPolygon theBoundGndPolygon
ossimDrect theImageClipRect
const ossimDpt & ur() const
Definition: ossimDrect.h:340
virtual void updateModel()
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ worldToLineSample()

void ossimAlphaSensorHRI::worldToLineSample ( const ossimGpt worldPoint,
ossimDpt lineSampPt 
) const
virtual

METHOD: worldToLineSample() Performs the forward projection from ground point to line, sample.

Reimplemented from ossimSensorModel.

Definition at line 90 of file ossimAlphaSensorHRI.cpp.

References ossimEcefPoint::data(), ossimAlphaSensor::getPositionOrientation(), ossimAlphaSensor::m_adjustedFocalLength, ossimSensorModel::theImageSize, ossimIpt::x, and ossimIpt::y.

92 {
93  // Initialize at middle
94  ossim_float64 refL = theImageSize.y/2;
95  ossim_float64 drefL = 5;
96  int nIter = 0;
97  ossimColumnVector3d camLOS;
98 
99  // Iterate using Newton's method
100  while (nIter<3)
101  {
102  ossim_float64 Fx[2];
103  ossim_float64 refl[2];
104  refl[0] = refL;
105  refl[1] = refL + drefL;
106 
107  for (int ll=0; ll<2; ++ll)
108  {
109  // Compute camera position & orientation matrix
110  ossimEcefPoint platPos;
111  NEWMAT::Matrix cam2EcfRot;
112  getPositionOrientation(refl[ll], platPos, cam2EcfRot);
113 
114  // Compute ECF vector
115  ossimEcefPoint worldPointECF = ossimEcefPoint(world_point);
116  ossimColumnVector3d ecfLOS = worldPointECF.data() - platPos.data();
117 
118  // Rotate to camera frame
119  camLOS = cam2EcfRot.t() * ecfLOS;
120 
121  // Set function value
122  Fx[ll] = camLOS[0];
123  }
124 
125  // Compute numeric 1st derivative & new estimate for reference line (refL)
126  ossim_float64 dFx = (Fx[1]-Fx[0]) / drefL;
127  refL -= Fx[0]/dFx;
128 
129  nIter++;
130  }
131 
132  ossim_float64 samp = -m_adjustedFocalLength*camLOS[1]/camLOS[2] + theImageSize.x/2;
133 
134  // Flip x because raw image is mirrored in sample direction
135  samp = theImageSize.x - samp;
136 
137  ossimDpt p(samp, refL);
138 
139  image_point = p;
140 }
const ossimColumnVector3d & data() const
double ossim_float64
ossim_int32 y
Definition: ossimIpt.h:142
void getPositionOrientation(const ossim_float64 &line, ossimEcefPoint &pos, NEWMAT::Matrix &cam2EcfRot) const
ossim_int32 x
Definition: ossimIpt.h:141
ossim_float64 m_adjustedFocalLength

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