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

#include <ossimNitfRsmModel.h>

Inheritance diagram for ossimNitfRsmModel:
ossimRsmModel ossimSensorModel ossimProjection ossimOptimizableProjection ossimAdjustableParameterInterface ossimObject ossimErrorStatusInterface ossimReferenced

Public Member Functions

 ossimNitfRsmModel ()
 default constructor More...
 
 ossimNitfRsmModel (const ossimNitfRsmModel &obj)
 copy constructor More...
 
const ossimNitfRsmModeloperator= (const ossimNitfRsmModel &rhs)
 assignment operator More...
 
virtual bool parseFile (const ossimFilename &nitfFile, ossim_uint32 entryIndex=0)
 
virtual bool parseImageHeader (const ossimNitfImageHeader *ih)
 
bool getRsmData (const ossimNitfImageHeader *ih)
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 saveState Fulfills ossimObject base-class pure virtuals. More...
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 loadState Fulfills ossimObject base-class pure virtuals. More...
 
virtual ossimObjectdup () const
 dup() Returns pointer to a new instance, copy of this. More...
 
bool initializeModel (const ossimNitfRsmecaTag *rsmecaTag)
 Initializes model from RSMECA tag. More...
 
- Public Member Functions inherited from ossimRsmModel
 ossimRsmModel ()
 default constructor More...
 
 ossimRsmModel (const ossimRsmModel &obj)
 copy constructor More...
 
const ossimRsmModeloperator= (const ossimRsmModel &rhs)
 assignment operator More...
 
virtual void worldToLineSample (const ossimGpt &world_point, ossimDpt &image_point) const
 worldToLineSample() Overrides base class implementation. More...
 
virtual void lineSampleToWorld (const ossimDpt &image_point, ossimGpt &world_point) const
 lineSampleToWorld() Overrides base class pure virtual. More...
 
virtual void lineSampleHeightToWorld (const ossimDpt &image_point, const double &heightEllipsoid, ossimGpt &worldPoint) const
 lineSampleHeightToWorld() Overrides base class pure virtual. More...
 
virtual void imagingRay (const ossimDpt &image_point, ossimEcefRay &image_ray) const
 imagingRay() Overrides base class pure virtual. More...
 
virtual void updateModel ()
 
virtual void initAdjustableParameters ()
 
virtual bool useForward () const
 
virtual std::ostream & print (std::ostream &out) const
 print() Extends base-class implementation. More...
 
- 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...
 
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

virtual ~ossimNitfRsmModel ()
 virtual destructor More...
 
- Protected Member Functions inherited from ossimRsmModel
ossim_uint32 getPcaIndex (const double &x, const double &y, const double &z) const
 Gets index into RSM Polynomial Coefficients(rsmpca) container array for a given ground point. More...
 
ossim_uint32 getPcaIndex (const ossimDpt &ipt, bool shiftPoint) const
 Gets index into RSM Polynomial Coefficients(rsmpca) container array for a given image point. More...
 
void lowOrderPolynomial (const double &x, const double &y, const double &z, ossimDpt &ipt) const
 Gets index into RSM Polynomial Coefficients(rsmpca) container array for a given ground point. More...
 
double polynomial (const double &x, const double &y, const double &z, const ossim_uint32 &maxx, const ossim_uint32 &maxy, const ossim_uint32 &maxz, std::vector< double > pcf) const
 
double dPoly_dLat (const double &x, const double &y, const double &z, const ossim_uint32 &maxx, const ossim_uint32 &maxy, const ossim_uint32 &maxz, std::vector< double > pcf) const
 
double dPoly_dLon (const double &x, const double &y, const double &z, const ossim_uint32 &maxx, const ossim_uint32 &maxy, const ossim_uint32 &maxz, std::vector< double > pcf) const
 
double dPoly_dHgt (const double &x, const double &y, const double &z, const ossim_uint32 &maxx, const ossim_uint32 &maxy, const ossim_uint32 &maxz, std::vector< double > pcf) const
 
bool validate () const
 Performs sanity check on key/required rsm data. More...
 
virtual ~ossimRsmModel ()
 virtual destructor More...
 
- 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...
 

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 Attributes inherited from ossimRsmModel
ossimRsmida m_ida
 
ossimRsmpia m_pia
 
std::vector< ossimRsmpcam_pca
 
- 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 18 of file ossimNitfRsmModel.h.

Constructor & Destructor Documentation

◆ ossimNitfRsmModel() [1/2]

ossimNitfRsmModel::ossimNitfRsmModel ( )

default constructor

Definition at line 38 of file ossimNitfRsmModel.cpp.

Referenced by dup().

39  : ossimRsmModel()
40 {
41 }
ossimRsmModel()
default constructor

◆ ossimNitfRsmModel() [2/2]

ossimNitfRsmModel::ossimNitfRsmModel ( const ossimNitfRsmModel obj)

copy constructor

Definition at line 43 of file ossimNitfRsmModel.cpp.

44  : ossimRsmModel(obj)
45 {
46 }
ossimRsmModel()
default constructor

◆ ~ossimNitfRsmModel()

ossimNitfRsmModel::~ossimNitfRsmModel ( )
protectedvirtual

virtual destructor

Definition at line 57 of file ossimNitfRsmModel.cpp.

58 {
59 }

Member Function Documentation

◆ dup()

ossimObject * ossimNitfRsmModel::dup ( ) const
virtual

dup() Returns pointer to a new instance, copy of this.

Reimplemented from ossimRsmModel.

Definition at line 332 of file ossimNitfRsmModel.cpp.

References ossimNitfRsmModel().

333 {
334  return new ossimNitfRsmModel(*this);
335 }
ossimNitfRsmModel()
default constructor

◆ getRsmData()

bool ossimNitfRsmModel::getRsmData ( const ossimNitfImageHeader ih)

Definition at line 193 of file ossimNitfRsmModel.cpp.

194 {
195  static const char MODULE[] = "ossimNitfRsmModel::getRsmData";
196  if (traceExec())
197  {
198  ossimNotify(ossimNotifyLevel_DEBUG) << MODULE << " entering..." << std::endl;
199  }
200 
201  bool status = false;
202 
203  if ( ih )
204  {
206 
207  // RSMECA:
208  const ossimString RSMECA_TAG = "RSMECA";
209  tag = ih->getTagData(RSMECA_TAG);
210  if (tag.valid())
211  {
213  dynamic_cast<ossimNitfRsmecaTag*>(tag.get());
214  if ( rsmecaTag.valid() )
215  {
216  if ( initializeModel( rsmecaTag.get() ) )
217  {
218  // RSMIDA:
219  ossimString RSMIDA_TAG = "RSMIDA";
220  tag = ih->getTagData(RSMIDA_TAG);
221  if (tag.valid())
222  {
224  dynamic_cast<ossimNitfRsmidaTag*>( tag.get() );
225  if ( rsmidaTag.valid() )
226  {
227  if ( m_ida.initialize( rsmidaTag.get() ) )
228  {
229  // RSMPIA:
230  const ossimString RSMPIA_TAG = "RSMPIA";
231  tag = ih->getTagData(RSMPIA_TAG);
232  if (tag.valid())
233  {
235  dynamic_cast<ossimNitfRsmpiaTag*>( tag.get() );
236  if ( rsmpiaTag.valid() )
237  {
238  if ( m_pia.initialize( rsmpiaTag.get() ) )
239  {
240  //---
241  // RSMPCA:
242  // Multiple tags if image is sectioned.
243  //---
244  const ossimString RSMPCA_TAG = "RSMPCA";
245  std::vector< const ossimNitfRegisteredTag* > tags;
246  ih->getTagData( RSMPCA_TAG, tags );
247 
248  if ( tags.size() == m_pia.m_tnis )
249  {
250  for ( ossim_uint32 tagIndex = 0;
251  tagIndex < m_pia.m_tnis;
252  ++tagIndex )
253  {
254  const ossimNitfRsmpcaTag* rsmpcaTag =
255  dynamic_cast<const ossimNitfRsmpcaTag*>( tags[tagIndex] );
256  if ( rsmpcaTag )
257  {
258  ossimRsmpca pca;
259  if ( pca.initialize( rsmpcaTag ) )
260  {
261  m_pca.push_back( pca );
262  }
263  else if (traceDebug())
264  {
266  << "WARNING! RSMPCA[" << tagIndex << "] intitialization failed!"
267  << std::endl;
268  }
269  }
270  }
271 
272  // Call base ossimRsmModel::validate() for sanity check:
273  status = validate();
274  }
275 
276  } // Matches: if ( m_pia.initialize( rsmpiaTag ) )
277  }
278  }
279  else if (traceDebug())
280  {
282  << "\nCould not find RSM tag: " << RSMPIA_TAG
283  << "\nAborting with error..."
284  << std::endl;
285  }
286  }
287  }
288  }
289  else if (traceDebug())
290  {
292  << "\nCould not find RSM tag: " << RSMIDA_TAG
293  << "\nAborting with error..." << std::endl;
294  }
295  }
296  }
297  }
298  else if (traceDebug())
299  {
301  << "ossimNitfRsmModel::getRsmData WARNING!"
302  << "\nCould not find RSM tag: " << RSMECA_TAG
303  << "\nAborting with error..." << std::endl;
304  }
305  }
306 
307  if (traceExec())
308  {
310  << MODULE << " exit status: " << ( status ? "true" : "false" ) << "\n";
311  }
312 
313  return status;
314 
315 } // End: ossimNitfRsmModel::getRsmData(const ossimNitfImageHeader* ih)
bool initialize(const ossimNitfRsmidaTag *rsmidaTag)
initialize Initializes from nitf rsmida tag.
bool validate() const
Performs sanity check on key/required rsm data.
bool valid() const
Definition: ossimRefPtr.h:75
ossim_uint32 m_tnis
Definition: ossimRsmpia.h:92
bool initializeModel(const ossimNitfRsmecaTag *rsmecaTag)
Initializes model from RSMECA tag.
RSM Identification: Id&#39;s, time-of-image model, optional illumination model, footprint information...
std::vector< ossimRsmpca > m_pca
bool initialize(const ossimNitfRsmpcaTag *rsmpcaTag)
initialize Initializes from nitf rsmpia tag.
unsigned int ossim_uint32
ossimRsmpia m_pia
return status
RSM Polynomial Coefficients: Polynomials coefficients for a section.
ossimRefPtr< ossimNitfRegisteredTag > getTagData(const ossimString &tagName)
ossimRsmida m_ida
bool initialize(const ossimNitfRsmpiaTag *rsmpiaTag)
initialize Initializes from nitf rsmpia tag.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ initializeModel()

bool ossimNitfRsmModel::initializeModel ( const ossimNitfRsmecaTag rsmecaTag)

Initializes model from RSMECA tag.

Parameters
rsmecaTag

Definition at line 318 of file ossimNitfRsmModel.cpp.

References status.

319 {
320  bool status = false;
321 
322  if ( rsmecaTag )
323  {
324  // TODO:
325  status = true;
326  }
327 
328  return status;
329 
330 } // End: ossimNitfRsmModel::initializeModel( rsmecaTag )
return status

◆ loadState()

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

loadState Fulfills ossimObject base-class pure virtuals.

Loads and saves geometry KWL files. Returns true if successful.

Reimplemented from ossimRsmModel.

Definition at line 363 of file ossimNitfRsmModel.cpp.

365 {
366  static const char MODULE[] = "ossimNitfRsmModel::loadState";
367  if (traceExec())
368  {
369  ossimNotify(ossimNotifyLevel_DEBUG) << MODULE << " entered...\n";
370  }
371 
372  bool status = false;
373 
374  // Check for type match before preceeding:
375  std::string myPrefix = ( prefix ? prefix : "" );
376  std::string type = kwl.findKey( myPrefix, std::string(ossimKeywordNames::TYPE_KW) );
377 
378  if ( type == "ossimNitfRsmModel" )
379  {
380  // Pass on to the base-class for parsing first:
381  status = ossimRsmModel::loadState(kwl, prefix);
382  }
383 
384  if (traceExec())
385  {
387  << MODULE << " exit status = " << (status?"true":"false") << "\n";
388  }
389 
390  return status;
391 }
const std::string & findKey(const std::string &key) const
Find methods that take std::string(s).
static const char * TYPE_KW
return status
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
loadState Fulfills ossimObject base-class pure virtuals.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ operator=()

const ossimNitfRsmModel & ossimNitfRsmModel::operator= ( const ossimNitfRsmModel rhs)

assignment operator

Definition at line 48 of file ossimNitfRsmModel.cpp.

References ossimRsmModel::operator=().

49 {
50  if (this != &rhs)
51  {
53  }
54  return *this;
55 }
const ossimRsmModel & operator=(const ossimRsmModel &rhs)
assignment operator

◆ parseFile()

bool ossimNitfRsmModel::parseFile ( const ossimFilename nitfFile,
ossim_uint32  entryIndex = 0 
)
virtual

Definition at line 61 of file ossimNitfRsmModel.cpp.

References ossimFilename::exists(), ossimRefPtr< T >::get(), ossimNitfFile::getNewImageHeader(), ossimNitfFile::parseFile(), parseImageHeader(), ossimErrorStatusInterface::setErrorStatus(), status, and ossimRefPtr< T >::valid().

63 {
64  bool status = false;
65 
66  if ( nitfFile.exists() )
67  {
69  if( file->parseFile(nitfFile) )
70  {
72  if ( ih.valid() )
73  {
74  status = parseImageHeader( ih.get() );
75  }
76  }
77  }
78 
79  if( !status )
80  {
82  }
83 
84  return status;
85 }
ossimNitfImageHeader * getNewImageHeader(ossim_uint32 imageNumber) const
bool valid() const
Definition: ossimRefPtr.h:75
bool exists() const
return status
bool parseFile(const ossimFilename &file)
virtual bool parseImageHeader(const ossimNitfImageHeader *ih)

◆ parseImageHeader()

bool ossimNitfRsmModel::parseImageHeader ( const ossimNitfImageHeader ih)
virtual

Definition at line 87 of file ossimNitfRsmModel.cpp.

Referenced by parseFile().

88 {
89  static const char MODULE[] = "ossimNitfRsmModel::getRsmData";
90  if (traceExec())
91  {
92  ossimNotify(ossimNotifyLevel_DEBUG) << MODULE << " entering..." << std::endl;
93  }
94 
95  bool status = false;
96 
97  if ( getRsmData(ih) )
98  {
99 
100  theImageID = m_pca[0].m_iid; // tmp drb...
102 
103  ossimIrect imageRect = ih->getImageRect();
104 
105  // Fetch Image Size:
106  theImageSize.line = static_cast<ossim_int32>(imageRect.height());
107  theImageSize.samp = static_cast<ossim_int32>(imageRect.width());
108 
109  // Assign other data members:
112 
113  // Assign the bounding image space rectangle:
115 
116  ossimGpt v0, v1, v2, v3;
117  ossimDpt ip0 (0.0, 0.0);
118  lineSampleHeightToWorld(ip0, m_pca[0].m_znrmo, v0);
119  ossimDpt ip1 (theImageSize.samp-1.0, 0.0);
120  lineSampleHeightToWorld(ip1, m_pca[0].m_znrmo, v1);
121  ossimDpt ip2 (theImageSize.samp-1.0, theImageSize.line-1.0);
122  lineSampleHeightToWorld(ip2, m_pca[0].m_znrmo, v2);
123  ossimDpt ip3 (0.0, theImageSize.line-1.0);
124  lineSampleHeightToWorld(ip3, m_pca[0].m_znrmo, v3);
125 
127 
128  updateModel();
129 
130  // Set the ground reference point.
132 
133  // Height could have nan if elevation is not set so check lat, lon individually.
134  if ( ( theRefGndPt.isLatNan() == false ) && ( theRefGndPt.isLonNan() == false ) )
135  {
136  //---
137  // This will set theGSD and theMeanGSD. This model doesn't need these but
138  // others do.
139  //---
140  try
141  {
142  computeGsd();
143 
144  // Set return status.
145  status = true;
146  }
147  catch (const ossimException& e)
148  {
149  if (traceDebug())
150  {
152  << "ossimNitfRpcModel::ossimNitfRpcModel DEBUG:\n"
153  << e.what() << std::endl;
154  }
155  setErrorStatus();
156  }
157  }
158  else
159  {
160  if (traceDebug())
161  {
163  << "ossimNitfRpcModel::ossimNitfRpcModel DEBUG:"
164  << "\nGround Reference Point not valid(has nans)."
165  << " Aborting with error..."
166  << std::endl;
167  }
168  setErrorStatus();
169  }
170  }
171  else
172  {
173  if (traceDebug())
174  {
176  << "ossimNitfRpcModel::parseFile DEBUG:"
177  << "\nError parsing rsm tags. Aborting with error."
178  << std::endl;
179  }
180  setErrorStatus();
181  }
182 
183  if (traceExec())
184  {
186  << MODULE << " exit status: " << ( status ? "true" : "false" ) << "\n";
187  }
188 
189  return status;
190 
191 } // End: ossimNitfRsmModel::parseImageHeader(const ossimNitfImageHeader* ih)
virtual void lineSampleHeightToWorld(const ossimDpt &image_point, const double &heightEllipsoid, ossimGpt &worldPoint) const
lineSampleHeightToWorld() Overrides base class pure virtual.
virtual void updateModel()
bool isLonNan() const
Definition: ossimGpt.h:140
ossimString theImageID
double samp
Definition: ossimDpt.h:164
ossim_uint32 height() const
Definition: ossimIrect.h:487
bool isLatNan() const
Definition: ossimGpt.h:139
void computeGsd()
This method computes the ground sample distance(gsd) and sets class attributes theGSD and theMeanGSD ...
double line
Definition: ossimDpt.h:165
std::vector< ossimRsmpca > m_pca
virtual const char * what() const
Returns the error message.
virtual ossimIrect getImageRect() const =0
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
ossimPolygon theBoundGndPolygon
ossim_uint32 width() const
Definition: ossimIrect.h:500
return status
ossimDrect theImageClipRect
ossim_int32 samp
Definition: ossimIpt.h:141
bool getRsmData(const ossimNitfImageHeader *ih)
ossim_int32 line
Definition: ossimIpt.h:142
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
int ossim_int32

◆ saveState()

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

saveState Fulfills ossimObject base-class pure virtuals.

Loads and saves geometry KWL files. Returns true if successful.

Reimplemented from ossimRsmModel.

Definition at line 337 of file ossimNitfRsmModel.cpp.

339 {
340 
341  static const char MODULE[] = "ossimNitfRsmModel::saveState";
342  if (traceExec())
343  {
344  ossimNotify(ossimNotifyLevel_DEBUG) << MODULE << " entered...\n";
345  }
346 
347  //---
348  // Hand off to base class for common stuff:
349  //
350  // Note: Class type "ossimKeywordNames::TYPE_KW" is saved in
351  // ossimOject::saveState.
352  //---
353  bool status = ossimRsmModel::saveState(kwl, prefix);
354 
355  if (traceExec())
356  {
357  ossimNotify(ossimNotifyLevel_DEBUG) << MODULE << " exited...\n";
358  }
359 
360  return status;
361 }
return status
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
saveState Fulfills ossimObject base-class pure virtuals.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

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