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

#include <ossimNitfImageHeader.h>

Inheritance diagram for ossimNitfImageHeader:
ossimObject ossimPropertyInterface ossimReferenced ossimNitfImageHeaderV2_X ossimNitfImageHeaderV2_0 ossimNitfImageHeaderV2_1

Public Member Functions

 ossimNitfImageHeader ()
 
virtual ~ossimNitfImageHeader ()
 
virtual bool getTagInformation (ossimNitfTagInformation &tagInfo, ossim_uint32 idx) const
 
virtual std::vector< ossimNitfTagInformationgetAllTags ()
 
virtual void setAllTags (std::vector< ossimNitfTagInformation > tagList)
 
virtual bool getTagInformation (ossimNitfTagInformation &tagInfo, const ossimString &tagName) const
 
ossimRefPtr< ossimNitfRegisteredTaggetTagData (const ossimString &tagName)
 
const ossimRefPtr< ossimNitfRegisteredTaggetTagData (const ossimString &tagName) const
 
void getTagData (const ossimString &tagName, std::vector< const ossimNitfRegisteredTag *> &tags) const
 Returns all tags of type tagName. More...
 
virtual ossim_uint32 getNumberOfTags () const
 
virtual void addTag (const ossimNitfTagInformation &tag, bool unique=true)
 
virtual void removeTag (const ossimString &tagName)
 
virtual void parseStream (ossim::istream &in)=0
 
virtual void writeStream (ossim::ostream &out)=0
 
virtual bool isCompressed () const =0
 
virtual bool isEncrypted () const =0
 
virtual bool isValid () const =0
 isValid will test if the fields are valid and will return true or false. More...
 
virtual ossimString getCompressionCode () const =0
 
virtual ossimString getCompressionRateCode () const =0
 
virtual ossim_uint32 getDisplayLevel () const =0
 
virtual ossim_uint32 getAttachmentLevel () const =0
 
virtual ossim_int32 getNumberOfRows () const =0
 
virtual ossim_int32 getNumberOfBands () const =0
 
virtual ossim_int32 getNumberOfCols () const =0
 
virtual ossim_int32 getNumberOfBlocksPerRow () const =0
 
virtual ossim_int32 getNumberOfBlocksPerCol () const =0
 
virtual ossim_int32 getNumberOfPixelsPerBlockHoriz () const =0
 
virtual ossim_int32 getNumberOfPixelsPerBlockVert () const =0
 
virtual ossimString getImageId () const =0
 
virtual ossimString getTitle () const =0
 
virtual ossim_int32 getActualBitsPerPixelPerBand () const =0
 
virtual ossim_int32 getBitsPerPixelPerBand () const =0
 
virtual ossimIrect getImageRect () const =0
 
virtual ossimIrect getBlockImageRect () const =0
 Blocks might not be the same size as the significant rows and cols used by the getImageRect. More...
 
virtual ossimString getIMode () const =0
 
virtual ossim_uint64 getDataLocation () const =0
 
virtual ossimString getImageDateAndTime () const =0
 
virtual ossimString getAcquisitionDateMonthDayYear (ossim_uint8 separationChar='-') const =0
 
virtual ossimString getSecurityClassification () const =0
 
virtual ossimString getCategory () const =0
 
virtual ossimString getImageSource () const =0
 
virtual ossimString getRepresentation () const =0
 
virtual ossimString getCoordinateSystem () const =0
 
virtual ossimString getGeographicLocation () const =0
 
virtual ossimString getPixelValueType () const =0
 
virtual ossimString getImageMagnification () const =0
 
virtual void getImageLocation (ossimIpt &loc) const =0
 Gets the ILOC field as an ossimIpt. More...
 
virtual void getDecimationFactor (ossim_float64 &result) const
 Convenience method to get the decimation factor as a double from the string returned be the getImageMagnification() method. More...
 
virtual bool hasBlockMaskRecords () const =0
 
virtual bool hasPadPixelMaskRecords () const =0
 
virtual bool hasTransparentCode () const =0
 
virtual ossim_uint32 getTransparentCode () const =0
 
virtual ossim_uint32 getBlockMaskRecordOffset (ossim_uint32 blockNumber, ossim_uint32 bandNumber) const =0
 
virtual ossim_uint32 getPadPixelMaskRecordOffset (ossim_uint32 blockNumber, ossim_uint32 bandNumber) const =0
 
virtual const ossimRefPtr< ossimNitfCompressionHeadergetCompressionHeader () const =0
 
virtual const ossimRefPtr< ossimNitfImageBandgetBandInformation (ossim_uint32 idx) const =0
 
bool hasLut () const
 
ossimRefPtr< ossimNBandLutDataObjectcreateLut (ossim_uint32 bandIdx) const
 
virtual bool isSameAs (const ossimNitfImageHeader *hdr) const
 
virtual void setProperty (ossimRefPtr< ossimProperty > property)
 
virtual ossimRefPtr< ossimPropertygetProperty (const ossimString &name) const
 
virtual void getPropertyNames (std::vector< ossimString > &propertyNames) const
 
virtual ossim_uint32 getTotalTagLength () const
 
virtual std::ostream & printTags (std::ostream &out, const std::string &prefix=std::string()) const
 print method that outputs a key/value type format adding prefix to keys. More...
 
virtual void getMetadata (ossimKeywordlist &kwl, const char *prefix=0) const
 Populates keyword list with metadata. More...
 
virtual std::ostream & print (std::ostream &out, const std::string &prefix) const =0
 pure virtual print method that outputs a key/value type format adding prefix to keys. More...
 
virtual bool saveState (ossimKeywordlist &kwl, const ossimString &prefix="") const
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
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 bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) 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 ossimPropertyInterface
 ossimPropertyInterface ()
 
virtual ~ossimPropertyInterface ()
 
virtual void setProperty (const ossimString &name, const ossimString &value)
 
virtual ossimString getPropertyValueAsString (const ossimString &name) const
 
void getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &propertyList) const
 
void setProperties (std::vector< ossimRefPtr< ossimProperty > > &propertyList)
 

Protected Member Functions

void checkForGeographicTiePointTruncation (const ossimDpt &tie) const
 Method to check tie point to see if it will be truncated in field IGEOLO which has only arc second resolution. More...
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Protected Attributes

std::vector< ossimNitfTagInformationtheTagList
 

Detailed Description

Definition at line 31 of file ossimNitfImageHeader.h.

Constructor & Destructor Documentation

◆ ossimNitfImageHeader()

ossimNitfImageHeader::ossimNitfImageHeader ( )

Definition at line 32 of file ossimNitfImageHeader.cpp.

33 {
34 }

◆ ~ossimNitfImageHeader()

ossimNitfImageHeader::~ossimNitfImageHeader ( )
virtual

Definition at line 36 of file ossimNitfImageHeader.cpp.

37 {
38 }

Member Function Documentation

◆ addTag()

void ossimNitfImageHeader::addTag ( const ossimNitfTagInformation tag,
bool  unique = true 
)
virtual

Definition at line 128 of file ossimNitfImageHeader.cpp.

References ossimNitfTagInformation::getTagName(), removeTag(), and theTagList.

Referenced by ossimNitfWriterBase::addGeolobTag(), ossimNitf20Writer::addRegisteredTag(), ossimNitfWriter::addRegisteredTag(), and ossimNitfWriterBase::addRpcbTag().

129 {
130  if(unique)
131  {
132  removeTag(tag.getTagName());
133  }
134  theTagList.push_back(tag);
135 }
virtual void removeTag(const ossimString &tagName)
std::vector< ossimNitfTagInformation > theTagList

◆ checkForGeographicTiePointTruncation()

void ossimNitfImageHeader::checkForGeographicTiePointTruncation ( const ossimDpt tie) const
protected

Method to check tie point to see if it will be truncated in field IGEOLO which has only arc second resolution.

Spits out warning if tie does not evenly divide by an arc second.

Parameters
tieTie point to check.

Definition at line 332 of file ossimNitfImageHeader.cpp.

References ossimNotify(), ossimNotifyLevel_WARN, ossimDpt::x, x, ossimDpt::y, and y.

334 {
335  // One arc second in decimal degrees.
336  const ossim_float64 ARC_SECOND = 1.0/3600.0;
337 
338  // Very small number.
339  const ossim_float64 FUDGE_FACTOR = 0.000000001;
340 
341  // Remainder portion of latitude divided by an arc second.
342  ossim_float64 y = std::fmod(tie.y, ARC_SECOND);
343 
344  // Remainder portion of longitue divided by an arc second.
345  ossim_float64 x = std::fmod(tie.x, ARC_SECOND);
346 
347  if ( (std::fabs(y) > FUDGE_FACTOR) || (std::fabs(x) > FUDGE_FACTOR) )
348  {
350  << "ossimNitfImageHeader WARNING:\n"
351  << "Tie point will be truncated in image header: "
352  << tie
353  << std::endl;
354  }
355 }
ossim_uint32 x
ossim_uint32 y
double y
Definition: ossimDpt.h:165
double ossim_float64
double x
Definition: ossimDpt.h:164
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ createLut()

ossimRefPtr< ossimNBandLutDataObject > ossimNitfImageHeader::createLut ( ossim_uint32  bandIdx) const

Definition at line 290 of file ossimNitfImageHeader.cpp.

References ossimNBandLutDataObject::create(), getBandInformation(), ossimNitfImageBand::getLut(), getNumberOfBands(), ossimNitfImageBand::getNumberOfLuts(), ossimNitfImageLut::getValue(), and ossimRefPtr< T >::valid().

292 {
294 
295  if(bandIdx < (ossim_uint32)getNumberOfBands())
296  {
298  if(band.valid())
299  {
300  ossim_uint32 bands = band->getNumberOfLuts();
301  if(bands > 0)
302  {
303  if(band->getLut(0).valid())
304  {
305  ossim_uint32 entries = band->getLut(0)->getNumberOfEntries();
306 
307  result = new ossimNBandLutDataObject();
308  result->create(entries, band->getNumberOfLuts());
309  ossim_uint32 bIdx;
310  ossim_uint32 entryIdx;
311 
312  for(bIdx = 0; bIdx < bands; ++bIdx)
313  {
314  const ossimRefPtr<ossimNitfImageLut> lut = band->getLut(bIdx);
315  if(lut.valid())
316  {
317  for(entryIdx = 0; entryIdx < entries; ++entryIdx)
318  {
319  (*result)[entryIdx][bIdx] = (ossimNBandLutDataObject::LUT_ENTRY_TYPE)(lut->getValue(entryIdx));
320  }
321  }
322  }
323  }
324  }
325  }
326  }
327 
328  return result;
329 }
virtual ossim_uint8 getValue(ossim_uint32 idx) const =0
virtual ossim_int32 getNumberOfBands() const =0
virtual const ossimRefPtr< ossimNitfImageLut > getLut(ossim_uint32 idx) const =0
bool valid() const
Definition: ossimRefPtr.h:75
virtual const ossimRefPtr< ossimNitfImageBand > getBandInformation(ossim_uint32 idx) const =0
virtual ossim_uint32 getNumberOfLuts() const =0
unsigned int ossim_uint32
void create(ossim_uint32 numberOfEntries, ossim_uint32 numberOfBands=3)
class ossimNBandLutDataObject

◆ getAcquisitionDateMonthDayYear()

virtual ossimString ossimNitfImageHeader::getAcquisitionDateMonthDayYear ( ossim_uint8  separationChar = '-') const
pure virtual

◆ getActualBitsPerPixelPerBand()

virtual ossim_int32 ossimNitfImageHeader::getActualBitsPerPixelPerBand ( ) const
pure virtual

◆ getAllTags()

virtual std::vector<ossimNitfTagInformation> ossimNitfImageHeader::getAllTags ( )
inlinevirtual

Definition at line 41 of file ossimNitfImageHeader.h.

41 { return theTagList; }
std::vector< ossimNitfTagInformation > theTagList

◆ getAttachmentLevel()

virtual ossim_uint32 ossimNitfImageHeader::getAttachmentLevel ( ) const
pure virtual

Implemented in ossimNitfImageHeaderV2_X.

◆ getBandInformation()

virtual const ossimRefPtr<ossimNitfImageBand> ossimNitfImageHeader::getBandInformation ( ossim_uint32  idx) const
pure virtual

◆ getBitsPerPixelPerBand()

virtual ossim_int32 ossimNitfImageHeader::getBitsPerPixelPerBand ( ) const
pure virtual

◆ getBlockImageRect()

virtual ossimIrect ossimNitfImageHeader::getBlockImageRect ( ) const
pure virtual

Blocks might not be the same size as the significant rows and cols used by the getImageRect.

Implemented in ossimNitfImageHeaderV2_1, and ossimNitfImageHeaderV2_X.

Referenced by ossimNitfTileSource::initializeImageRect().

◆ getBlockMaskRecordOffset()

virtual ossim_uint32 ossimNitfImageHeader::getBlockMaskRecordOffset ( ossim_uint32  blockNumber,
ossim_uint32  bandNumber 
) const
pure virtual

◆ getCategory()

virtual ossimString ossimNitfImageHeader::getCategory ( ) const
pure virtual

◆ getCompressionCode()

virtual ossimString ossimNitfImageHeader::getCompressionCode ( ) const
pure virtual

◆ getCompressionHeader()

virtual const ossimRefPtr<ossimNitfCompressionHeader> ossimNitfImageHeader::getCompressionHeader ( ) const
pure virtual

◆ getCompressionRateCode()

virtual ossimString ossimNitfImageHeader::getCompressionRateCode ( ) const
pure virtual

◆ getCoordinateSystem()

virtual ossimString ossimNitfImageHeader::getCoordinateSystem ( ) const
pure virtual

◆ getDataLocation()

virtual ossim_uint64 ossimNitfImageHeader::getDataLocation ( ) const
pure virtual

◆ getDecimationFactor()

void ossimNitfImageHeader::getDecimationFactor ( ossim_float64 result) const
virtual

Convenience method to get the decimation factor as a double from the string returned be the getImageMagnification() method.

Parameters
resultInitialized with the decimation factor as a double. Will return an ossim::nan() if something bad happens like the string is empty so callers should check result with ossim::isnan(result).

Definition at line 357 of file ossimNitfImageHeader.cpp.

References ossimString::after(), ossimString::contains(), getImageMagnification(), ossim::nan(), ossimString::size(), ossimString::toFloat64(), and ossimString::trim().

Referenced by ossimNitfTileSource::establishDecimationFactors(), and ossimNitfFile::print().

358 {
359  //---
360  // Look for string like:
361  //
362  // "/2" = 1/2
363  // "/4 = 1/4
364  // ...
365  // "/16 = 1/16
366  //
367  // If it is full resolution it should be "1.0"
368  //
369  // or
370  //
371  // "0.5" which is the same as "/2"
372  // "0.25" which is the same as "/4"
373  //---
375 
376  // Spec says to fill with spaces so strip them.
377  os.trim(ossimString(" "));
378 
379  if (os.size())
380  {
381  if ( os.contains("/") )
382  {
383  os = os.after("/");
384  result = os.toFloat64();
385  if (result)
386  {
387  result = 1.0 / result;
388  }
389  }
390  else
391  {
392  result = os.toFloat64();
393  }
394  }
395  else
396  {
397  result = ossim::nan();
398  }
399 }
double nan()
Method to return ieee floating point double precision NAN.
Definition: ossimCommon.h:135
bool contains(char aChar) const
Definition: ossimString.h:58
virtual ossimString getImageMagnification() const =0
std::string::size_type size() const
Definition: ossimString.h:405
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
ossim_float64 toFloat64() const
ossimString after(const ossimString &str, std::string::size_type pos=0) const
METHOD: after(str, pos) Returns string immediately after the token str.

◆ getDisplayLevel()

virtual ossim_uint32 ossimNitfImageHeader::getDisplayLevel ( ) const
pure virtual

◆ getGeographicLocation()

virtual ossimString ossimNitfImageHeader::getGeographicLocation ( ) const
pure virtual

◆ getImageDateAndTime()

virtual ossimString ossimNitfImageHeader::getImageDateAndTime ( ) const
pure virtual
Returns
The IDATIM field unparsed.

Implemented in ossimNitfImageHeaderV2_0, and ossimNitfImageHeaderV2_1.

◆ getImageId()

virtual ossimString ossimNitfImageHeader::getImageId ( ) const
pure virtual

◆ getImageLocation()

virtual void ossimNitfImageHeader::getImageLocation ( ossimIpt loc) const
pure virtual

Gets the ILOC field as an ossimIpt.

Parameters
locInitialized with the field.
Note
: Do not confuse with "data location".

Implemented in ossimNitfImageHeaderV2_X.

◆ getImageMagnification()

virtual ossimString ossimNitfImageHeader::getImageMagnification ( ) const
pure virtual
Returns
IMAG field

Implemented in ossimNitfImageHeaderV2_X.

Referenced by getDecimationFactor().

◆ getImageRect()

virtual ossimIrect ossimNitfImageHeader::getImageRect ( ) const
pure virtual

◆ getImageSource()

virtual ossimString ossimNitfImageHeader::getImageSource ( ) const
pure virtual

◆ getIMode()

virtual ossimString ossimNitfImageHeader::getIMode ( ) const
pure virtual

◆ getMetadata()

void ossimNitfImageHeader::getMetadata ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Populates keyword list with metadata.

expample: country_code: US

Parameters
kwlKeywordlist to populate with metadata.
prefixOptional prefix to put in front of key, like: "image1.".

Definition at line 249 of file ossimNitfImageHeader.cpp.

References ossimKeywordlist::add(), getAcquisitionDateMonthDayYear(), getImageSource(), and getTitle().

251 {
252  kwl.add(prefix, "source",
253  getImageSource().c_str(),
254  false);
255  kwl.add(prefix,
256  "image_date",
258  false);
259  kwl.add(prefix,
260  "image_title",
261  getTitle().c_str(),
262  false);
263 }
virtual ossimString getTitle() const =0
virtual ossimString getImageSource() const =0
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual ossimString getAcquisitionDateMonthDayYear(ossim_uint8 separationChar='-') const =0

◆ getNumberOfBands()

virtual ossim_int32 ossimNitfImageHeader::getNumberOfBands ( ) const
pure virtual

◆ getNumberOfBlocksPerCol()

virtual ossim_int32 ossimNitfImageHeader::getNumberOfBlocksPerCol ( ) const
pure virtual

◆ getNumberOfBlocksPerRow()

virtual ossim_int32 ossimNitfImageHeader::getNumberOfBlocksPerRow ( ) const
pure virtual

◆ getNumberOfCols()

virtual ossim_int32 ossimNitfImageHeader::getNumberOfCols ( ) const
pure virtual

◆ getNumberOfPixelsPerBlockHoriz()

virtual ossim_int32 ossimNitfImageHeader::getNumberOfPixelsPerBlockHoriz ( ) const
pure virtual

◆ getNumberOfPixelsPerBlockVert()

virtual ossim_int32 ossimNitfImageHeader::getNumberOfPixelsPerBlockVert ( ) const
pure virtual

◆ getNumberOfRows()

virtual ossim_int32 ossimNitfImageHeader::getNumberOfRows ( ) const
pure virtual

◆ getNumberOfTags()

ossim_uint32 ossimNitfImageHeader::getNumberOfTags ( ) const
virtual

Definition at line 123 of file ossimNitfImageHeader.cpp.

References theTagList.

124 {
125  return static_cast<ossim_uint32>(theTagList.size());
126 }
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32

◆ getPadPixelMaskRecordOffset()

virtual ossim_uint32 ossimNitfImageHeader::getPadPixelMaskRecordOffset ( ossim_uint32  blockNumber,
ossim_uint32  bandNumber 
) const
pure virtual

◆ getPixelValueType()

virtual ossimString ossimNitfImageHeader::getPixelValueType ( ) const
pure virtual

◆ getProperty()

ossimRefPtr< ossimProperty > ossimNitfImageHeader::getProperty ( const ossimString name) const
virtual

Reimplemented from ossimPropertyInterface.

Reimplemented in ossimNitfImageHeaderV2_1, ossimNitfImageHeaderV2_X, and ossimNitfImageHeaderV2_0.

Definition at line 176 of file ossimNitfImageHeader.cpp.

Referenced by ossimNitfImageHeaderV2_X::getProperty(), and ossimNitfTileSource::getProperty().

177 {
178  ossimProperty* result = 0;
179 
180  if(name == TAGS_KW)
181  {
182  ossim_uint32 idxMax = getNumberOfTags();
183  if(idxMax > 0)
184  {
185  ossimContainerProperty* containerProperty = new ossimContainerProperty;
186  containerProperty->setName(name);
187  ossim_uint32 idx = 0;
188 
189  result = containerProperty;
190  for(idx = 0; idx < idxMax; ++idx)
191  {
192  ossimNitfTagInformation tagInfo;
193  getTagInformation(tagInfo, idx);
194 
195  const ossimRefPtr<ossimNitfRegisteredTag> tagData = tagInfo.getTagData();
196  if(tagData.valid())
197  {
198  ossimContainerProperty* containerPropertyTag = new ossimContainerProperty;
199  containerPropertyTag->setName(tagInfo.getTagName());
200  std::vector<ossimRefPtr<ossimProperty> > propertyList;
201  tagData->getPropertyList(propertyList);
202 
203  containerPropertyTag->addChildren(propertyList);
204  containerProperty->addChild(containerPropertyTag);
205  }
206  else
207  {
208  containerProperty->addStringProperty(tagInfo.getTagName(), "", true);
209  }
210  }
211  }
212  }
213 
214  return result;
215 }
void getPropertyList(std::vector< ossimRefPtr< ossimProperty > > &propertyList) const
bool valid() const
Definition: ossimRefPtr.h:75
virtual void addStringProperty(const ossimString &name, const ossimString &value, bool readOnlyFlag=false)
virtual ossim_uint32 getNumberOfTags() const
ossimRefPtr< ossimNitfRegisteredTag > getTagData()
unsigned int ossim_uint32
virtual void addChildren(std::vector< ossimRefPtr< ossimProperty > > &propertyList)
virtual bool getTagInformation(ossimNitfTagInformation &tagInfo, ossim_uint32 idx) const
void setName(const ossimString &name)
virtual void addChild(ossimProperty *propery)

◆ getPropertyNames()

void ossimNitfImageHeader::getPropertyNames ( std::vector< ossimString > &  propertyNames) const
virtual

Reimplemented from ossimPropertyInterface.

Reimplemented in ossimNitfImageHeaderV2_1, ossimNitfImageHeaderV2_X, and ossimNitfImageHeaderV2_0.

Definition at line 217 of file ossimNitfImageHeader.cpp.

Referenced by ossimNitfImageHeaderV2_X::getPropertyNames(), and ossimNitfTileSource::getPropertyNames().

218 {
219  propertyNames.push_back(TAGS_KW);
220 
221 }

◆ getRepresentation()

virtual ossimString ossimNitfImageHeader::getRepresentation ( ) const
pure virtual

◆ getSecurityClassification()

virtual ossimString ossimNitfImageHeader::getSecurityClassification ( ) const
pure virtual

◆ getTagData() [1/3]

ossimRefPtr< ossimNitfRegisteredTag > ossimNitfImageHeader::getTagData ( const ossimString tagName)

Definition at line 72 of file ossimNitfImageHeader.cpp.

References theTagList.

Referenced by ossimImageGeometryFactory::createTransformFromNitf(), ossimNitfProjectionFactory::getBlockaPoints(), ossimNitfRpcModel::getGsd(), ossimNitfRpcModel::getRpcData(), ossimNitfRpcModel::getSensorID(), and ossimQuickbirdRpcModel::parseNitfFile().

74 {
75  if(theTagList.size())
76  {
77  for(ossim_uint32 idx = 0; idx < theTagList.size(); ++idx)
78  {
79  if(theTagList[idx].getTagName() == tagName)
80  {
81  return theTagList[idx].getTagData();
82  }
83  }
84  }
85 
87 }
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32

◆ getTagData() [2/3]

const ossimRefPtr< ossimNitfRegisteredTag > ossimNitfImageHeader::getTagData ( const ossimString tagName) const

Definition at line 89 of file ossimNitfImageHeader.cpp.

References theTagList.

91 {
92  if(theTagList.size())
93  {
94  for(ossim_uint32 idx = 0; idx < theTagList.size(); ++idx)
95  {
96  if(theTagList[idx].getTagName() == tagName)
97  {
98  return theTagList[idx].getTagData();
99  }
100  }
101  }
102 
104 }
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32

◆ getTagData() [3/3]

void ossimNitfImageHeader::getTagData ( const ossimString tagName,
std::vector< const ossimNitfRegisteredTag *> &  tags 
) const

Returns all tags of type tagName.

Vector passed in "tags" is cleared, then initialized with all tags found of "tagName". Size of vector is returned.

Parameters
tagNameE.g. "RSMPCA"
tagsInitialized by this.

◆ getTagInformation() [1/2]

bool ossimNitfImageHeader::getTagInformation ( ossimNitfTagInformation tagInfo,
ossim_uint32  idx 
) const
virtual

Definition at line 58 of file ossimNitfImageHeader.cpp.

References theTagList.

60 {
61  bool result = false;
62 
63  if(idx < theTagList.size())
64  {
65  tagInfo = theTagList[idx];
66  result = true;
67  }
68 
69  return result;
70 }
std::vector< ossimNitfTagInformation > theTagList

◆ getTagInformation() [2/2]

bool ossimNitfImageHeader::getTagInformation ( ossimNitfTagInformation tagInfo,
const ossimString tagName 
) const
virtual

Definition at line 40 of file ossimNitfImageHeader.cpp.

References theTagList.

42 {
43  if(theTagList.size())
44  {
45  for(ossim_uint32 idx = 0; idx < theTagList.size(); ++idx)
46  {
47  if(theTagList[idx].getTagName() == tagName)
48  {
49  tagInfo = theTagList[idx];
50  return true;
51  }
52  }
53  }
54 
55  return false;
56 }
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32

◆ getTitle()

virtual ossimString ossimNitfImageHeader::getTitle ( ) const
pure virtual

Implemented in ossimNitfImageHeaderV2_X.

Referenced by getMetadata().

◆ getTotalTagLength()

ossim_uint32 ossimNitfImageHeader::getTotalTagLength ( ) const
virtual

Definition at line 223 of file ossimNitfImageHeader.cpp.

References theTagList.

Referenced by ossimNitfImageHeaderV2_1::writeStream(), and ossimNitfImageHeaderV2_0::writeStream().

224 {
225  ossim_uint32 tagLength = 0;
226 
227  for(ossim_uint32 i = 0; i < theTagList.size(); ++i)
228  {
229  tagLength += theTagList[i].getTotalTagLength();
230  }
231 
232  return tagLength;
233 }
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32

◆ getTransparentCode()

virtual ossim_uint32 ossimNitfImageHeader::getTransparentCode ( ) const
pure virtual

◆ hasBlockMaskRecords()

virtual bool ossimNitfImageHeader::hasBlockMaskRecords ( ) const
pure virtual

◆ hasLut()

bool ossimNitfImageHeader::hasLut ( ) const

Definition at line 265 of file ossimNitfImageHeader.cpp.

References getBandInformation(), ossimNitfImageBand::getLut(), getNumberOfBands(), ossimNitfImageBand::getNumberOfLuts(), and ossimRefPtr< T >::valid().

Referenced by ossimNitfTileSource::initializeLut().

266 {
267  bool result = false;
268 
269  const ossim_uint32 BANDS = static_cast<ossim_uint32>(getNumberOfBands());
270  for (ossim_uint32 band = 0; band < BANDS; ++band)
271  {
273  if(imgBand.valid())
274  {
275  ossim_uint32 luts = imgBand->getNumberOfLuts();
276  if(luts > 0)
277  {
278  if(imgBand->getLut(0).valid())
279  {
280  result = true;
281  break;
282  }
283  }
284  }
285  }
286 
287  return result;
288 }
virtual ossim_int32 getNumberOfBands() const =0
virtual const ossimRefPtr< ossimNitfImageLut > getLut(ossim_uint32 idx) const =0
bool valid() const
Definition: ossimRefPtr.h:75
virtual const ossimRefPtr< ossimNitfImageBand > getBandInformation(ossim_uint32 idx) const =0
virtual ossim_uint32 getNumberOfLuts() const =0
unsigned int ossim_uint32

◆ hasPadPixelMaskRecords()

virtual bool ossimNitfImageHeader::hasPadPixelMaskRecords ( ) const
pure virtual

◆ hasTransparentCode()

virtual bool ossimNitfImageHeader::hasTransparentCode ( ) const
pure virtual

◆ isCompressed()

virtual bool ossimNitfImageHeader::isCompressed ( ) const
pure virtual

◆ isEncrypted()

virtual bool ossimNitfImageHeader::isEncrypted ( ) const
pure virtual

◆ isSameAs()

bool ossimNitfImageHeader::isSameAs ( const ossimNitfImageHeader hdr) const
virtual

Definition at line 150 of file ossimNitfImageHeader.cpp.

References getBitsPerPixelPerBand(), getCoordinateSystem(), getGeographicLocation(), getImageRect(), getIMode(), getNumberOfBands(), getNumberOfBlocksPerCol(), getNumberOfBlocksPerRow(), getNumberOfCols(), getNumberOfPixelsPerBlockHoriz(), getNumberOfPixelsPerBlockVert(), getNumberOfRows(), and isCompressed().

151 {
152  if (!hdr) return false;
153 
154  return ( (isCompressed() == hdr->isCompressed()) &&
155  (getNumberOfRows() == hdr->getNumberOfRows()) &&
156  (getNumberOfBands() == hdr->getNumberOfBands()) &&
157  (getNumberOfCols() == hdr->getNumberOfCols()) &&
165  (getImageRect() == hdr->getImageRect()) &&
166  (getIMode() == hdr->getIMode()) &&
169 }
virtual ossim_int32 getNumberOfBands() const =0
virtual ossim_int32 getNumberOfBlocksPerRow() const =0
virtual ossim_int32 getNumberOfRows() const =0
virtual ossimString getCoordinateSystem() const =0
virtual ossimString getIMode() const =0
virtual ossimIrect getImageRect() const =0
virtual ossim_int32 getNumberOfCols() const =0
virtual ossimString getGeographicLocation() const =0
virtual ossim_int32 getNumberOfPixelsPerBlockVert() const =0
virtual ossim_int32 getBitsPerPixelPerBand() const =0
virtual ossim_int32 getNumberOfBlocksPerCol() const =0
virtual ossim_int32 getNumberOfPixelsPerBlockHoriz() const =0
virtual bool isCompressed() const =0

◆ isValid()

virtual bool ossimNitfImageHeader::isValid ( ) const
pure virtual

isValid will test if the fields are valid and will return true or false.

Implemented in ossimNitfImageHeaderV2_0, ossimNitfImageHeaderV2_X, and ossimNitfImageHeaderV2_1.

◆ parseStream()

virtual void ossimNitfImageHeader::parseStream ( ossim::istream in)
pure virtual

◆ print()

virtual std::ostream& ossimNitfImageHeader::print ( std::ostream &  out,
const std::string &  prefix 
) const
pure virtual

pure virtual print method that outputs a key/value type format adding prefix to keys.

Implemented in ossimNitfImageHeaderV2_0, and ossimNitfImageHeaderV2_1.

Referenced by ossimNitfFile::print().

◆ printTags()

std::ostream & ossimNitfImageHeader::printTags ( std::ostream &  out,
const std::string &  prefix = std::string() 
) const
virtual

print method that outputs a key/value type format adding prefix to keys.

Definition at line 235 of file ossimNitfImageHeader.cpp.

References ossimNitfRegisteredTag::print(), theTagList, and ossimRefPtr< T >::valid().

237 {
238  for(ossim_uint32 i = 0; i < theTagList.size(); ++i)
239  {
240  ossimRefPtr<ossimNitfRegisteredTag> tag = theTagList[i].getTagData();
241  if (tag.valid())
242  {
243  tag->print(out, prefix);
244  }
245  }
246  return out;
247 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual std::ostream & print(std::ostream &out, const std::string &prefix=std::string()) const
Pure virtual print method that outputs a key/value type format adding prefix to keys.
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32

◆ removeTag()

void ossimNitfImageHeader::removeTag ( const ossimString tagName)
virtual

Definition at line 137 of file ossimNitfImageHeader.cpp.

References theTagList.

Referenced by addTag(), and ossimNitfImageHeaderV2_1::takeOverflowTags().

138 {
139  ossim_uint32 idx = 0;
140  for(idx = 0; idx < theTagList.size(); ++idx)
141  {
142  if(theTagList[idx].getTagName() == tagName)
143  {
144  theTagList.erase(theTagList.begin() + idx);
145  return;
146  }
147  }
148 }
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32

◆ saveState()

bool ossimNitfImageHeader::saveState ( ossimKeywordlist kwl,
const ossimString prefix = "" 
) const
virtual

Reimplemented in ossimNitfImageHeaderV2_1, ossimNitfImageHeaderV2_X, and ossimNitfImageHeaderV2_0.

Definition at line 402 of file ossimNitfImageHeader.cpp.

References ossimObject::saveState(), ossimNitfRegisteredTag::saveState(), theTagList, and ossimRefPtr< T >::valid().

Referenced by ossimNitfCodecFactory::createCodec(), ossimNitfImageHeaderV2_X::saveState(), and ossimNitfFile::saveState().

403 {
404  if(!ossimObject::saveState(kwl, prefix)) return false;
405  ossimString tagsPrefix = prefix;
406 
407  for(ossim_uint32 i = 0; i < theTagList.size(); ++i)
408  {
409  ossimRefPtr<ossimNitfRegisteredTag> tag = theTagList[i].getTagData();
410  if (tag.valid())
411  {
412  if(!tag->saveState(kwl, tagsPrefix))
413  {
414  return false;
415  }
416  }
417  }
418  return true;
419 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Definition: ossimObject.cpp:95
std::vector< ossimNitfTagInformation > theTagList
unsigned int ossim_uint32
virtual bool saveState(ossimKeywordlist &kwl, const ossimString &prefix) const

◆ setAllTags()

virtual void ossimNitfImageHeader::setAllTags ( std::vector< ossimNitfTagInformation tagList)
inlinevirtual

Definition at line 43 of file ossimNitfImageHeader.h.

43 { theTagList = tagList; }
std::vector< ossimNitfTagInformation > theTagList

◆ setProperty()

void ossimNitfImageHeader::setProperty ( ossimRefPtr< ossimProperty property)
virtual

Reimplemented from ossimPropertyInterface.

Reimplemented in ossimNitfImageHeaderV2_1, ossimNitfImageHeaderV2_X, and ossimNitfImageHeaderV2_0.

Definition at line 172 of file ossimNitfImageHeader.cpp.

Referenced by ossimNitfImageHeaderV2_X::setProperty().

173 {
174 }

◆ writeStream()

virtual void ossimNitfImageHeader::writeStream ( ossim::ostream out)
pure virtual

Implemented in ossimNitfImageHeaderV2_0.

Member Data Documentation

◆ theTagList

std::vector<ossimNitfTagInformation> ossimNitfImageHeader::theTagList
protected

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