File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
ExportDescription.cpp
1 
6 /* SPDX-License-Identifier: CC0-1.0 */
7 #include "ExportDescription.h"
8 
9 #include <float.h>
10 #include <QList>
11 
12 #include "CubeAttribute.h"
13 #include "FileName.h"
14 #include "IString.h"
15 #include "IException.h"
16 #include "PixelType.h"
17 
18 namespace Isis {
23  m_channels = NULL;
25 
26  m_type = Isis::None;
27 
28  m_outputPixelNull = 0.0;
30  m_outputPixelValidMax = 255.0;
33  }
34 
35 
41  m_channels = NULL;
42 
43  if(descriptionToCopy.m_channels) {
45  for (int i = 0; i < descriptionToCopy.channelCount(); i++) {
46  const ExportDescription::ChannelDescription &channel = descriptionToCopy.channel(i);
48  if (channel.hasCustomRange()) {
50  }
51  else {
52  addChannel(channel.filename(), att);
53  }
54  }
55  }
56 
57  setPixelType(descriptionToCopy.m_type);
58  }
59 
67  if (m_channels) {
68  delete m_channels;
69  m_channels = NULL;
70  }
71 
72  if(descriptionToCopy.m_channels) {
74  for (int i = 0; i < descriptionToCopy.channelCount(); i++) {
75  const ExportDescription::ChannelDescription &channel = descriptionToCopy.channel(i);
77  if (channel.hasCustomRange()) {
79  }
80  else {
81  addChannel(channel.filename(), att);
82  }
83  }
84  }
85 
86  setPixelType(descriptionToCopy.m_type);
87  return *this;
88  }
89 
94  for (int i = 0; i < m_channels->size(); i++) delete (*m_channels)[i];
95  delete m_channels;
96  m_channels = NULL;
97  }
98 
99 
107  m_type = type;
108  switch (type) {
109  case UnsignedByte:
110  m_outputPixelNull = 0.0;
111  m_outputPixelValidMin = 1.0;
112  m_outputPixelValidMax = 255.0;
113  break;
114  case SignedWord:
115  m_outputPixelNull = -32768.0;
116  m_outputPixelValidMin = -32767.0; // Changed from -32752.0 since this variable represents
117  // the smallest valid exported pixel value, not our
118  // special pixel min valid value
119  m_outputPixelValidMax = 32767.0;
120  break;
121  case UnsignedWord:
122  m_outputPixelNull = 0.0;
123  m_outputPixelValidMin = 1.0; // Changed from 3.0 since this variable is used to set the
124  // smallest valid exported pixel value, not our special pixel
125  // min valid value
126  m_outputPixelValidMax = 65535.0; // Changed from 65522.0 since this variable represents the
127  // largest valid exported pixel value, not our special
128  // pixel max valid value
129  break;
130  default:
132  "Invalid export pixel type [" + toString(type) + "]",
133  _FILEINFO_);
134  }
135  // in each case above, the smallest possible output pixel value is the null value
137  // in each case above, the largest possible output pixel value is the maximum value
139 
140  }
141 
142 
149  return m_type;
150  }
151 
152 
159  return m_outputPixelNull;
160  }
161 
162 
169  return m_outputPixelValidMin;
170  }
171 
172 
179  return m_outputPixelValidMax;
180  }
181 
182 
190  }
191 
192 
200  }
201 
202 
213 
214  m_channels->append(new ChannelDescription(filename, att));
215  return m_channels->size() - 1;
216  }
217 
218 
231  double min, double max) {
232 
233  ChannelDescription *desc = new ChannelDescription(filename, att);
234  desc->setInputRange(min, max);
235  m_channels->append(desc);
236  return m_channels->size() - 1;
237  }
238 
239 
248 
249  return *(*m_channels)[i];
250  }
251 
252 
259  return m_channels->size();
260  }
261 
262 
270  CubeAttributeInput &att) {
271 
273  m_att = att;
274 
275  m_customRange = false;
276  m_inputMin = DBL_MIN;
277  m_inputMax = DBL_MAX;
278  }
279 
280 
287  return m_filename;
288  }
289 
290 
297  return m_att;
298  }
299 
300 
310 
311  m_inputMin = min;
312  m_inputMax = max;
313  m_customRange = true;
314  }
315 
316 
324  return m_inputMin;
325  }
326 
327 
335  return m_inputMax;
336  }
337 
338 
346  return m_customRange;
347  }
348 };
349 
Isis::ExportDescription::channelCount
int channelCount() const
Count of the number of channels in the description.
Definition: ExportDescription.cpp:258
Isis::ExportDescription::outputPixelNull
double outputPixelNull() const
Returns the output pixel value for Null DNs.
Definition: ExportDescription.cpp:158
QList
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
Isis::ExportDescription::outputPixelAbsoluteMin
double outputPixelAbsoluteMin() const
Returns the absolute minimum value for output pixels.
Definition: ExportDescription.cpp:188
Isis::ExportDescription::addChannel
int addChannel(FileName filename, CubeAttributeInput &att)
Add an export color channel for the given input cube and attributes (typically band number).
Definition: ExportDescription.cpp:212
Isis::ExportDescription::m_outputPixelAbsoluteMax
double m_outputPixelAbsoluteMax
The largest allowed pixel value in the exported image file.
Definition: ExportDescription.h:122
Isis::ExportDescription::ChannelDescription
Describes how a cube as a single color channel to be exported.
Definition: ExportDescription.h:58
Isis::ExportDescription::channel
const ChannelDescription & channel(int i) const
Return the channels description at the given index.
Definition: ExportDescription.cpp:247
Isis::ExportDescription
Describes how a series of cubes should be exported.
Definition: ExportDescription.h:43
Isis::ExportDescription::ChannelDescription::m_att
CubeAttributeInput m_att
Attributes like which band to use from the input cube.
Definition: ExportDescription.h:78
Isis::ExportDescription::outputPixelAbsoluteMax
double outputPixelAbsoluteMax() const
Returns the absolute maximum value for output pixels.
Definition: ExportDescription.cpp:198
Isis::ExportDescription::ChannelDescription::m_inputMin
double m_inputMin
Minimum DN in the input, defaults to DBL_MIN.
Definition: ExportDescription.h:84
Isis::ExportDescription::operator=
ExportDescription & operator=(const ExportDescription &descriptionToCopy)
Assignment operator for the export description.
Definition: ExportDescription.cpp:66
Isis::ExportDescription::m_outputPixelValidMax
double m_outputPixelValidMax
Value to which maximum valid DNs will be mapped in the exported image file, defaults to 255....
Definition: ExportDescription.h:117
Isis::ExportDescription::ChannelDescription::filename
FileName filename() const
Returns a copy of the filename associated with this channel.
Definition: ExportDescription.cpp:286
Isis::ExportDescription::m_outputPixelNull
double m_outputPixelNull
Value to which Null DNs will be mapped in the exported image file, defaults to 0.0.
Definition: ExportDescription.h:113
Isis::ExportDescription::ChannelDescription::attributes
CubeAttributeInput attributes() const
Returns a copy of the input attributes associated with this channel.
Definition: ExportDescription.cpp:296
Isis::ExportDescription::m_outputPixelValidMin
double m_outputPixelValidMin
Value to which minimum valid DNs will be mapped in the exported image file, defaults to 0....
Definition: ExportDescription.h:115
Isis::toString
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition: IString.cpp:211
Isis::ExportDescription::ExportDescription
ExportDescription()
Construct the export description.
Definition: ExportDescription.cpp:22
Isis::ExportDescription::ChannelDescription::setInputRange
void setInputRange(double min, double max)
Sets the input range for this channel.
Definition: ExportDescription.cpp:309
Isis::ExportDescription::ChannelDescription::m_inputMax
double m_inputMax
Maximum DN in the input, defaults to DBL_MAX.
Definition: ExportDescription.h:87
Isis::ExportDescription::ChannelDescription::m_customRange
bool m_customRange
Whether or not the user has specified a custom input DN range.
Definition: ExportDescription.h:81
Isis::ExportDescription::pixelType
PixelType pixelType() const
Returns the pixel type.
Definition: ExportDescription.cpp:148
Isis::ExportDescription::setPixelType
void setPixelType(PixelType type)
Set the pixel type for the output image.
Definition: ExportDescription.cpp:106
Isis::ExportDescription::ChannelDescription::ChannelDescription
ChannelDescription(FileName &filename, CubeAttributeInput &att)
Construct the channel description with the given input name and attributes.
Definition: ExportDescription.cpp:269
Isis::ExportDescription::ChannelDescription::inputMinimum
double inputMinimum() const
Returns the input minimum for this channel.
Definition: ExportDescription.cpp:323
Isis::ExportDescription::ChannelDescription::hasCustomRange
bool hasCustomRange() const
Returns true if the user of this instance has set a custom input range for this channel.
Definition: ExportDescription.cpp:345
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::ExportDescription::outputPixelValidMax
double outputPixelValidMax() const
Returns the output pixel value for the valid maximum.
Definition: ExportDescription.cpp:178
Isis::ExportDescription::ChannelDescription::m_filename
FileName m_filename
Input filename of the cube to be treated as a color channel.
Definition: ExportDescription.h:75
Isis::ExportDescription::outputPixelValidMin
double outputPixelValidMin() const
Returns the output pixel value for the valid minimum.
Definition: ExportDescription.cpp:168
Isis::PixelType
PixelType
Enumerations for Isis Pixel Types.
Definition: PixelType.h:27
Isis::ExportDescription::~ExportDescription
virtual ~ExportDescription()
Destruct the export description.
Definition: ExportDescription.cpp:93
Isis::IException::Programmer
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
Isis::ExportDescription::ChannelDescription::inputMaximum
double inputMaximum() const
Returns the input maximum for this channel.
Definition: ExportDescription.cpp:334
Isis::CubeAttributeInput
Manipulate and parse attributes of input cube filenames.
Definition: CubeAttribute.h:381
Isis::ExportDescription::m_channels
QList< ChannelDescription * > * m_channels
List of color channels to be exported into the output image.
Definition: ExportDescription.h:127
Isis::ExportDescription::m_outputPixelAbsoluteMin
double m_outputPixelAbsoluteMin
The smallest allowed pixel value in the exported image file.
Definition: ExportDescription.h:119
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::ExportDescription::m_type
PixelType m_type
Pixel type to export the data to, defaults to None.
Definition: ExportDescription.h:111

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:26