Isis 3 Programmer Reference
Isis::CubeAttributeOutput Class Reference

Manipulate and parse attributes of output cube filenames. More...

#include <CubeAttribute.h>

Inheritance diagram for Isis::CubeAttributeOutput:
Inheritance graph
Collaboration diagram for Isis::CubeAttributeOutput:
Collaboration graph

Public Member Functions

 CubeAttributeOutput ()
 Constructs an empty CubeAttributeOutput. More...
 
 CubeAttributeOutput (const FileName &fileName)
 Constructs a CubeAttributeOutput and initialized it with the contents of the string parameter. More...
 
 ~CubeAttributeOutput ()
 Destroys the object. More...
 
bool propagatePixelType () const
 Return true if the pixel type is to be propagated from an input cube. More...
 
bool propagateMinimumMaximum () const
 Return true if the min/max are to be propagated from an input cube. More...
 
Cube::Format fileFormat () const
 Return the file format an Cube::Format. More...
 
QString fileFormatString () const
 Return the file format as a string. More...
 
void setFileFormat (Cube::Format fmt)
 Set the format to the fmt parameter. More...
 
ByteOrder byteOrder () const
 Return the byte order as an Isis::ByteOrder. More...
 
QString byteOrderString () const
 Return the byte order as a string. More...
 
void setByteOrder (ByteOrder order)
 Set the order according to the parameter order. More...
 
double minimum () const
 Return the output cube attribute minimum. More...
 
double maximum () const
 Return the output cube attribute maximum. More...
 
void setMinimum (double min)
 Set the output cube attribute minimum. More...
 
void setMaximum (double max)
 Set the output cube attribute maximum. More...
 
PixelType pixelType () const
 Return the pixel type as an Isis::PixelType. More...
 
void setPixelType (PixelType type)
 Set the pixel type to that given by the parameter. More...
 
void setLabelAttachment (LabelAttachment attachment)
 Set the label attachment type to the parameter value. More...
 
LabelAttachment labelAttachment () const
 
QString toString () const
 Return a string-representation of this cube attributes. More...
 
void addAttribute (QString attribute)
 Add a single attribute to these attributes. More...
 
void addAttributes (const FileName &fileNameWithAtts)
 Append the attributes found in the filename to these cube attributes. More...
 
void addAttributes (const char *attributesString)
 Append the attributes in the string to these cube attributes. More...
 
void addAttributes (const QString &attributesString)
 Append the attributes in the string to these cube attributes. More...
 
void setAttributes (const FileName &fileName)
 Replaces the current attributes with the attributes in the given file name. More...
 

Protected Member Functions

QStringList attributeList (bool(CubeAttributeOutput ::*tester)(QString) const) const
 Get a list of attributes that the tester returns true on. More...
 
void setAttribute (QString newValue, bool(CubeAttributeOutput ::*tester)(QString) const)
 Set the attribute(s) for which tester returns true to newValue. More...
 

Private Types

enum  RangeType { PropagateRange, RangeSet }
 Output cube range tracker. More...
 

Private Member Functions

bool isByteOrder (QString attribute) const
 
bool isFileFormat (QString attribute) const
 
bool isLabelAttachment (QString attribute) const
 
bool isPixelType (QString attribute) const
 
bool isRange (QString attribute) const
 

Static Private Member Functions

static QString toString (Cube::Format)
 
static QList< bool(CubeAttributeOutput::*)(QString) const > testers ()
 

Detailed Description

Manipulate and parse attributes of output cube filenames.

This class provides parsing and manipulation of attributes associated with output cube filenames. Output cube filenames can have an attributes of "minimum:maximum", "pixel type", "file format", "byte order", and "label placement"

See also
IsisAml IsisGui
Author
2003-07-29 Stuart Sides
History:

2003-07-29 Stuart Sides - Separated the input and output attributes into two separated class deriving off a base class, instead of one class for all cases.

2003-10-03 Stuart Sides - Added members HasPixelType. It was needed by the IsisCube so it could do an easy check. Added IsMsb, IsLsb, HasOrder, ByteOrderStr, ByteOrderType, Order and Order. These were needed to allow users to specify a byte order for output cubes.

2004-02-03 Stuart Sides - Refactor for IsisProcess and cube changes

2004-03-03 Stuart Sides - Modified IsisCubeAttributeOutput::Write so min and max don't get written when the pixel type is real.

2012-07-02 Steven Lambright and Stuart Sides - Uses a refactored CubeAttribute parent class now. Updated to match current coding standards. Added the "+External+ attribute. Added safety checks for unrecognized attributes. References #961.

2018-07-27 Kaitlyn Lee - Added unsigned/signed integer handling.

Definition at line 489 of file CubeAttribute.h.

Member Enumeration Documentation

◆ RangeType

Output cube range tracker.

This enumeration and its functions are for the output range of a cube.

Enumerator
PropagateRange 

Propagate the range from an input cube.

RangeSet 

The range has been set.

Definition at line 580 of file CubeAttribute.h.

Constructor & Destructor Documentation

◆ CubeAttributeOutput() [1/2]

Isis::CubeAttributeOutput::CubeAttributeOutput ( )

Constructs an empty CubeAttributeOutput.

Definition at line 168 of file CubeAttribute.cpp.

◆ CubeAttributeOutput() [2/2]

Isis::CubeAttributeOutput::CubeAttributeOutput ( const FileName fileName)

Constructs a CubeAttributeOutput and initialized it with the contents of the string parameter.

The string is parased to obtain any min/max, pixel type, byte order, file format or label placement. Any attribute information that is not valie for an output cube will throw an error.

Parameters
attA string containing the file attributes. All characters before the first "+" are assumed to be the filename and are ignored.

Definition at line 172 of file CubeAttribute.cpp.

◆ ~CubeAttributeOutput()

Isis::CubeAttributeOutput::~CubeAttributeOutput ( )

Destroys the object.

Definition at line 177 of file CubeAttribute.cpp.

Member Function Documentation

◆ addAttribute()

void Isis::CubeAttribute< CubeAttributeOutput >::addAttribute ( QString  attribute)
inlineinherited

Add a single attribute to these attributes.

This attribute should NOT have a '+' in it. For example, if you wanted to add BandSequential to the CubeAttributeOutput class, you could call addAttribute("BSQ") or addAttribute("BandSequential") or any valid deviation of that string. This will preserve existing attributes unless it's of the same type (if Tile was already set, then this will overwrite Tile). If the attribute is unrecognized or ambiguous, then an exception will be thrown.

Parameters
attributeThe attribute we're adding to the current cube attributes

Definition at line 194 of file CubeAttribute.h.

◆ addAttributes() [1/3]

void Isis::CubeAttribute< CubeAttributeOutput >::addAttributes ( const FileName fileNameWithAtts)
inlineinherited

Append the attributes found in the filename to these cube attributes.

This will call addAttribute() for every attribute found in the file name.

See also
FileName::attributes()
Parameters
fileNameWithAttsA filename with attributes appended, for example FileName("out.cub+Bsq")

Definition at line 238 of file CubeAttribute.h.

◆ addAttributes() [2/3]

void Isis::CubeAttribute< CubeAttributeOutput >::addAttributes ( const char *  attributesString)
inlineinherited

Append the attributes in the string to these cube attributes.

This will call addAttribute() for every attribute in the string. The initial "+" is not expected but allowed. This should NOT be called with a file name.

Parameters
attributesStringA string of recognizable attributes, for example "+Bsq+Real" or "Bsq+Real"

Definition at line 251 of file CubeAttribute.h.

◆ addAttributes() [3/3]

void Isis::CubeAttribute< CubeAttributeOutput >::addAttributes ( const QString &  attributesString)
inlineinherited

Append the attributes in the string to these cube attributes.

See also
addAttributes(const char *)
Parameters
attributesStringA string of recognizable attributes, for example "+Bsq+Real" or "Bsq+Real"

Definition at line 264 of file CubeAttribute.h.

◆ attributeList()

QStringList Isis::CubeAttribute< CubeAttributeOutput >::attributeList ( bool(CubeAttributeOutput ::*)(QString) const  tester) const
inlineprotectedinherited

Get a list of attributes that the tester returns true on.

This is helpful for accessing the values of existing attributes. The strings will always be the UPPER CASE version of the attribute, i.e. not Bsq but BSQ. The returned attributes do not contain delimiters.

Parameters
testerA method that determines whether the attribute should be returned/is relevant
Returns
A list of attributes for which the tester returns true on.

Definition at line 296 of file CubeAttribute.h.

Referenced by byteOrder(), fileFormat(), maximum(), minimum(), pixelType(), propagateMinimumMaximum(), and propagatePixelType().

◆ byteOrder()

ByteOrder Isis::CubeAttributeOutput::byteOrder ( ) const

◆ byteOrderString()

QString Isis::CubeAttributeOutput::byteOrderString ( ) const

Return the byte order as a string.

Definition at line 485 of file CubeAttribute.cpp.

References byteOrder().

◆ fileFormat()

◆ fileFormatString()

QString Isis::CubeAttributeOutput::fileFormatString ( ) const

Return the file format as a string.

Definition at line 299 of file CubeAttribute.cpp.

References fileFormat(), and Isis::CubeAttribute< CubeAttributeOutput >::toString().

◆ maximum()

double Isis::CubeAttributeOutput::maximum ( ) const

◆ minimum()

double Isis::CubeAttributeOutput::minimum ( ) const

◆ pixelType()

PixelType Isis::CubeAttributeOutput::pixelType ( ) const

◆ propagateMinimumMaximum()

bool Isis::CubeAttributeOutput::propagateMinimumMaximum ( ) const

◆ propagatePixelType()

bool Isis::CubeAttributeOutput::propagatePixelType ( ) const

◆ setAttribute()

void Isis::CubeAttribute< CubeAttributeOutput >::setAttribute ( QString  newValue,
bool(CubeAttributeOutput ::*)(QString) const  tester 
)
inlineprotectedinherited

Set the attribute(s) for which tester returns true to newValue.

If multiple attributes match (tester returns true on them), only the first one is preserved and it's value becomes newValue. Subsequent matching attributes are removed/deleted. This is done to simplify the resulting attribute string to be minimal with this particular attribute.

Parameters
newValueThe string to set the attribute to... tester(newValue) really ought to return true.
testerA method that determines if an attribute is of the same type of newValue, so that existing attributes can be overwritten.

Definition at line 321 of file CubeAttribute.h.

Referenced by setByteOrder(), setFileFormat(), setLabelAttachment(), setMaximum(), setMinimum(), and setPixelType().

◆ setAttributes()

void Isis::CubeAttribute< CubeAttributeOutput >::setAttributes ( const FileName fileName)
inlineinherited

Replaces the current attributes with the attributes in the given file name.

This will call addAttribute() for every attribute in the file name.

See also
FileName::attributes()
addAttributes(const char *)
Parameters
fileNameA file name with (or without) attributes on the end, for example FileName("out.cub+Bsq")

Definition at line 278 of file CubeAttribute.h.

◆ setByteOrder()

void Isis::CubeAttributeOutput::setByteOrder ( ByteOrder  order)

Set the order according to the parameter order.

Definition at line 490 of file CubeAttribute.cpp.

References Isis::CubeAttribute< CubeAttributeOutput >::setAttribute().

◆ setFileFormat()

void Isis::CubeAttributeOutput::setFileFormat ( Cube::Format  fmt)

Set the format to the fmt parameter.

Definition at line 304 of file CubeAttribute.cpp.

References Isis::CubeAttribute< CubeAttributeOutput >::setAttribute(), and Isis::Cube::Tile.

◆ setLabelAttachment()

void Isis::CubeAttributeOutput::setLabelAttachment ( LabelAttachment  attachment)

Set the label attachment type to the parameter value.

Definition at line 411 of file CubeAttribute.cpp.

References Isis::LabelAttachmentName(), and Isis::CubeAttribute< CubeAttributeOutput >::setAttribute().

◆ setMaximum()

void Isis::CubeAttributeOutput::setMaximum ( double  max)

Set the output cube attribute maximum.

Definition at line 358 of file CubeAttribute.cpp.

References Isis::IsSpecial(), minimum(), Isis::CubeAttribute< CubeAttributeOutput >::setAttribute(), and Isis::toString().

Referenced by Isis::ProcessImport::SetOutputCube().

◆ setMinimum()

void Isis::CubeAttributeOutput::setMinimum ( double  min)

Set the output cube attribute minimum.

Definition at line 340 of file CubeAttribute.cpp.

References Isis::IsSpecial(), maximum(), Isis::CubeAttribute< CubeAttributeOutput >::setAttribute(), and Isis::toString().

Referenced by Isis::ProcessImport::SetOutputCube().

◆ setPixelType()

void Isis::CubeAttributeOutput::setPixelType ( PixelType  type)

Set the pixel type to that given by the parameter.

Definition at line 406 of file CubeAttribute.cpp.

References Isis::PixelTypeName(), and Isis::CubeAttribute< CubeAttributeOutput >::setAttribute().

Referenced by Isis::ProcessImport::SetOutputCube().

◆ toString()

QString Isis::CubeAttribute< CubeAttributeOutput >::toString ( ) const
inlineinherited

Return a string-representation of this cube attributes.

This will typically be exactl the string passed in if you used setAttributes(...). This can be an empty string ("") or if there are attributes then it will be +att1+att2+... The result of this method could be used to re-create this instance.

Returns
The cube attributes in string form

Definition at line 174 of file CubeAttribute.h.

Referenced by fileFormatString().


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