37 static int CPL_STDCALL gdalProgressFunc(
double percentComplete,
44 percentComplete*100.0,
62 theDriver((GDALDriverH)0),
63 theDataset((GDALDatasetH)0),
64 theJpeg2000TileSize(),
65 theDriverOptionValues(),
66 theGdalDriverOptions(0),
67 theGdalOverviewType(ossimGdalOverviewType_NONE),
68 theColorLutFlag(false),
71 theNBandToIndexFilter(0)
126 const char* prefix)
const 132 <<
"ossimGdalWriter::saveState entered ..." 133 <<
"\nprefix: " << prefix << std::endl;
136 ossimString rrdOption = CPLGetConfigOption(
"HFA_USE_RRD",
"");
145 "gdal_overview_type",
189 const char* hfa_use_rrd = kwl.
find(prefix,
"HFA_USE_RRD");
193 CPLSetConfigOption(
"HFA_USE_RRD", hfa_use_rrd);
198 <<
"ossimGdalWriter::loadState entered ..." 199 <<
"\nprefix: " << (prefix?prefix:
"null")
200 <<
"\nregExpression: " << regExpression
201 <<
"\nkwl:" << kwl << std::endl;
203 const char* overviewType = kwl.
find(prefix,
"gdal_overview_type");
212 const char* colorLutFlag = kwl.
find(prefix,
"color_lut_flag");
250 <<
"ossimGdalWriter::loadState exiting..." << std::endl;
266 bool needColorLut =
false;
267 bool needLoop =
true;
270 if (imageInputs.size() > 0)
274 if (needLoop ==
false)
284 if (needLoop ==
false)
300 if (handler->
hasLut() != 0)
302 colorLut = handler->
getLut();
307 needColorLut =
false;
319 if (needColorLut && colorLut )
329 const char *MODULE =
"ossimGdalWriter::writeFile()";
333 CLOG <<
"entered..." << std::endl;
367 if(blockSize.
valid())
379 if(defaultSize.
y != defaultSize.
x)
381 defaultSize.
y = defaultSize.
x;
408 getOutputScalarType());
420 int nRasterBands = GDALGetRasterCount(
theDataset );
448 if ( (driverName !=
"HFA") && (driverName !=
"JP2MrSID") &&
449 (driverName !=
"JP2KAK") && (driverName !=
"JPEG2000") )
455 GDALRasterBandH aBand =
459 GDALSetRasterNoDataValue(
466 <<
"GDALSetRasterNoDataValue called for driver: " 467 << driverName << std::endl;
475 <<
"GDALSetRasterNoDataValue not called for driver: " 476 << driverName << std::endl;
484 GDALRasterBandH aBand =
489 GDALSetMetadataItem( aBand,
"AREA_OR_POINT",
"Area", 0 );
491 double minPix = (double)currentTile->
getMinPix( idx );
492 double maxPix = (double)currentTile->
getMaxPix( idx );
495 if ( maxPix > 0.0 && minPix < maxPix )
498 sprintf( szValue,
"%.14g", minPix );
499 GDALSetMetadataItem( aBand,
"STATISTICS_MINIMUM", szValue, 0 );
501 sprintf( szValue,
"%.14g", maxPix );
502 GDALSetMetadataItem( aBand,
"STATISTICS_MAXIMUM", szValue, 0 );
528 GDALRasterBandH aBand=0;
529 aBand = GDALGetRasterBand(
theDataset, band+1);
550 (
double)numberOfTiles)*100.0,
579 <<
"ossimGdalWriter::writeFile unable to create dataset" 596 CLOG <<
"Unable to open file for writing. Exiting ..." 635 if ( (driverName ==
"HFA") || (driverName ==
"JP2MrSID") ||
636 (driverName ==
"JP2KAK") || (driverName ==
"JPEG2000") )
645 driverName = GDALGetDriverShortName(
theDriver);
654 (GDALProgressFunc)&gdalProgressFunc,
690 for (
int band = 0; band < bands; band++)
692 GDALRasterBandH aBand=0;
693 aBand = GDALGetRasterBand(
theDataset, band+1);
696 bool hasEntryLabel =
false;
699 if (entryLabels.size() == entryNum)
701 hasEntryLabel =
true;
704 GDALColorTable* gdalColorTable =
new GDALColorTable();
705 for(
ossim_uint32 entryIndex = 0; entryIndex < entryNum; entryIndex++)
707 GDALColorEntry colorEntry;
708 colorEntry.c1 = (*theColorLut)[entryIndex][0];
709 colorEntry.c2 = (*theColorLut)[entryIndex][1];
710 colorEntry.c3 = (*theColorLut)[entryIndex][2];
711 colorEntry.c4 = hasAlpha ? (*theColorLut)[entryIndex][3] : 255;
715 char* labelName =
const_cast<char*
>(entryLabels[entryIndex].c_str());
716 colorEntry.poLabel = labelName;
720 colorEntry.poLabel = NULL;
724 gdalColorTable->SetColorEntry(entryIndex, &colorEntry);
727 GDALSetRasterColorTable(aBand, gdalColorTable);
728 delete gdalColorTable;
749 double geoTransform[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
775 geoTransform[1] = scale.
x;
776 geoTransform[5] = scale.
y;
777 geoTransform[0] = tiePoint.
x;
778 geoTransform[3] = tiePoint.
y;
784 geoTransform[0] -= fabs(scale.
x) / 2.0;
785 geoTransform[3] += fabs(scale.
y) / 2.0;
791 wktString =
"PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OSGB 1936\"," 792 "DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",6377563.396,299.3249646]],PRIMEM[\"" 793 "Greenwich\",0],UNIT[\"degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"]," 794 "PARAMETER[\"latitude_of_origin\",49],PARAMETER[\"central_meridian\",-2],PARAMETER[\"" 795 "scale_factor\",0.999601272],PARAMETER[\"false_easting\",400000],PARAMETER[\"false_" 796 "northing\",-100000],UNIT[\"meter\",1]]";
800 wktString =
"PROJCS[\"Albers Conical Equal Area\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\"," 801 "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]," 802 "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwich\",0," 803 "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]]," 804 "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\",29.5]," 805 "PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"latitude_of_center\",23],PARAMETER[\"longitude_of_center\",-96]," 806 "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"meters\",1]]";
816 GDALSetProjection(dataset, wktString.
c_str());
817 GDALSetGeoTransform(dataset, geoTransform);
856 GDALDataType dataType = GDT_Unknown;
868 dataType = GDT_UInt16;
873 dataType = GDT_Int16;
879 dataType = GDT_Float32;
885 dataType = GDT_Float64;
906 for(i = 0 ; i < keys.size(); ++i)
927 <<
"\nLossless quality not valid for non 8 bit data" 928 <<
"\nResetting to 99.0" 944 if ( (GDALGetDriverByName(
"HFA")) &&
945 (name ==
"FORCETOPESTRING") )
958 <<
"\nkey: " << keys[i]
959 <<
"\nname: " << name
960 <<
"\nvalue: " << value
961 <<
"\ngdal option: " <<
combine 979 for(i = 0 ; i < keys.size(); ++i)
1015 while(currentOption)
1018 delete [] currentOption;
1029 strippedName = strippedName.
substitute(
"gdal_",
"");
1030 if(GDALGetDriverByName(strippedName.
c_str()))
1032 return strippedName;
1037 if(imageTypeName ==
"image/jp2")
1039 if(GDALGetDriverByName(
"JP2KAK"))
1043 else if(GDALGetDriverByName(
"JPEG2000"))
1047 else if(GDALGetDriverByName(
"JP2MrSID"))
1052 if(imageTypeName ==
"image/png")
1056 if(imageTypeName ==
"image/wbmp")
1060 if(imageTypeName ==
"image/bmp")
1064 if(imageTypeName ==
"image/jpeg")
1068 if(imageTypeName ==
"image/gif")
1076 if( imageTypeName ==
"gdal_imagine_hfa")
1080 if(imageTypeName ==
"gdal_nitf_rgb_band_separate")
1084 if(imageTypeName ==
"gdal_jpeg2000")
1086 if(GDALGetDriverByName(
"JP2KAK"))
1090 else if(GDALGetDriverByName(
"JPEG2000"))
1094 else if(GDALGetDriverByName(
"JP2MrSID"))
1099 if(imageTypeName ==
"gdal_arc_info_aig")
1103 if(imageTypeName ==
"gdal_arc_info_gio")
1107 if(imageTypeName ==
"gdal_arc_info_ascii_grid")
1111 if(imageTypeName ==
"gdal_mrsid")
1115 if(imageTypeName ==
"gdal_jp2mrsid")
1119 if(imageTypeName ==
"gdal_png")
1123 if(imageTypeName ==
"gdal_jpeg")
1128 if(imageTypeName ==
"gdal_gif")
1132 if(imageTypeName ==
"gdal_dted")
1136 if(imageTypeName ==
"gdal_usgsdem")
1140 if(imageTypeName ==
"gdal_bmp")
1144 if(imageTypeName ==
"gdal_raw_envi")
1148 if(imageTypeName ==
"gdal_raw_esri")
1152 if(imageTypeName ==
"gdal_raw_pci")
1156 if(imageTypeName ==
"gdal_pcidsk")
1160 if(imageTypeName ==
"gdal_sdts")
1164 if(imageTypeName ==
"gdal_jp2ecw")
1168 if(imageTypeName ==
"gdal_ecw")
1172 return imageTypeName;
1177 int driverCount = GDALGetDriverCount();
1180 for(idx = 0; idx < driverCount; ++idx)
1182 GDALDriverH driver = GDALGetDriver(idx);
1187 const char* metaData = GDALGetMetadataItem(driver, GDAL_DCAP_CREATE, 0);
1190 imageTypeList.push_back(
"gdal_" +
ossimString(GDALGetDriverShortName(driver)));
1194 metaData = GDALGetMetadataItem(driver, GDAL_DCAP_CREATECOPY, 0);
1197 imageTypeList.push_back(
"gdal_" +
ossimString(GDALGetDriverShortName(driver)));
1209 if((imageType ==
"gdal_imagine_hfa") ||
1210 (imageType ==
"gdal_nitf_rgb_band_separate") ||
1211 (imageType ==
"gdal_jpeg2000") ||
1212 (imageType ==
"gdal_jp2ecw") ||
1213 (imageType ==
"gdal_arc_info_aig") ||
1214 (imageType ==
"gdal_arc_info_gio") ||
1215 (imageType ==
"gdal_arc_info_ascii_grid") ||
1216 (imageType ==
"gdal_mrsid") ||
1217 (imageType ==
"image/mrsid") ||
1218 (imageType ==
"gdal_jp2mrsid") ||
1219 (imageType ==
"image/jp2mrsid") ||
1220 (imageType ==
"gdal_png") ||
1221 (imageType ==
"image/png") ||
1222 (imageType ==
"image/bmp") ||
1223 (imageType ==
"image/wbmp") ||
1224 (imageType ==
"gdal_jpeg") ||
1225 (imageType ==
"image/jpeg") ||
1226 (imageType ==
"gdal_gif") ||
1227 (imageType ==
"image/gif") ||
1228 (imageType ==
"gdal_dted") ||
1229 (imageType ==
"image/dted") ||
1230 (imageType ==
"gdal_bmp") ||
1231 (imageType ==
"gdal_xpm") ||
1232 (imageType ==
"image/x-xpixmap") ||
1233 (imageType ==
"gdal_raw_envi") ||
1234 (imageType ==
"gdal_raw_esri") ||
1235 (imageType ==
"gdal_raw_esri") ||
1236 (imageType ==
"gdal_pcidsk") ||
1237 (imageType ==
"gdal_sdts"))
1250 GDALDriverH driver = GDALGetDriverByName(driverName.
c_str());
1254 result =
ossimString(GDALGetMetadataItem(driver, GDAL_DMD_EXTENSION, 0));
1255 std::vector<ossimString> splitString;
1256 result.
split(splitString,
"/");
1257 if(!splitString.empty()) result = splitString[0];
1267 if(imgTypeStr ==
"image/jp2")
1271 if(imgTypeStr ==
"image/png")
1275 if(imgTypeStr ==
"image/wbmp")
1279 if(imgTypeStr ==
"image/bmp")
1283 if(imgTypeStr ==
"image/jpeg")
1287 if(imgTypeStr ==
"image/gif")
1295 if( imgTypeStr ==
"gdal_imagine_hfa")
1299 if(imgTypeStr ==
"gdal_nitf_rgb_band_separate")
1303 if(imgTypeStr ==
"gdal_jpeg2000")
1307 if(imgTypeStr ==
"gdal_arc_info_aig")
1311 if(imgTypeStr ==
"gdal_arc_info_gio")
1315 if(imgTypeStr ==
"gdal_arc_info_ascii_grid")
1319 if(imgTypeStr ==
"gdal_mrsid")
1323 if(imgTypeStr ==
"gdal_jp2mrsid")
1327 if(imgTypeStr ==
"gdal_png")
1331 if(imgTypeStr ==
"gdal_jpeg")
1336 if(imgTypeStr ==
"gdal_gif")
1340 if(imgTypeStr ==
"gdal_dted")
1344 if(imgTypeStr ==
"gdal_usgsdem")
1348 if(imgTypeStr ==
"gdal_bmp")
1352 if(imgTypeStr ==
"gdal_raw_envi")
1356 if(imgTypeStr ==
"gdal_raw_esri")
1360 if(imgTypeStr ==
"gdal_raw_pci")
1364 if(imgTypeStr ==
"gdal_pcidsk")
1368 if(imgTypeStr ==
"gdal_sdts")
1372 if(imgTypeStr ==
"gdal_jp2ecw")
1376 if(imgTypeStr ==
"gdal_ecw")
1386 if(!property.
valid())
return;
1390 if(property->
getName() ==
"image_type")
1401 if(name ==
"HFA_USE_RRD")
1403 bool value =
property->valueToString().
toBool();
1404 CPLSetConfigOption(
"HFA_USE_RRD", value?
"YES":
"NO");
1406 else if(name ==
"gdal_overview_type")
1410 else if (name ==
"format")
1415 else if(name ==
"lut_file")
1420 else if(name ==
"color_lut_flag")
1445 if(name ==
"HFA_USE_RRD")
1449 else if(name ==
"gdal_overview_type")
1461 GDALDriverH driver = GDALGetDriverByName(driverName.
c_str());
1465 <<
"name = " << name << std::endl;
1468 bool storedValueFlag=
false;
1474 storedName = storedName.
substitute(driverName+
"_",
"");
1477 vector<ossimRefPtr<ossimXmlNode> > nodelist;
1480 for(idx = 0; idx < nodelist.size(); ++idx)
1483 if(nameAttribute.
valid())
1485 if((driverName+
"_"+nameAttribute->
getValue())== name)
1489 vector<ossimRefPtr<ossimXmlNode> > valuelist;
1494 nodelist[idx]->findChildNodes(
"Value",
1500 if(descriptionAttribute.
valid())
1502 description = descriptionAttribute->
getValue();
1504 if((typeValue ==
"int")||
1505 (typeValue ==
"integer"))
1513 else if(typeValue ==
"unsigned int")
1521 else if(typeValue ==
"float")
1529 else if(typeValue ==
"boolean")
1537 else if((typeValue ==
"string-select")||
1538 (typeValue ==
"string"))
1545 defaultValue = storedValue;
1547 else if(valuelist.size())
1549 defaultValue = valuelist[0]->getText();
1554 for(idx2 = 0; idx2 < valuelist.size();++idx2)
1573 defaultValue = storedValue;
1575 else if(valuelist.size())
1577 defaultValue = valuelist[0]->getText();
1582 for(idx2 = 0; idx2 < valuelist.size();++idx2)
1609 propertyNames.push_back(
"gdal_overview_type");
1610 propertyNames.push_back(
"HFA_USE_RRD");
1617 GDALDriverH driver = GDALGetDriverByName(driverName.
c_str());
1625 vector<ossimRefPtr<ossimXmlNode> > nodelist;
1631 << node.
get() << std::endl;
1634 for(idx= 0; idx < nodelist.size(); ++idx)
1658 GDALDriverH driver = GDALGetDriverByName(driverName.
c_str());
1662 const char* metaData = GDALGetMetadataItem(driver, GDAL_DMD_CREATIONOPTIONLIST, 0);
1667 vector<ossimRefPtr<ossimXmlNode> > nodelist;
1686 for(idx = 0; idx < keys.size(); ++idx)
1690 if(storedName == name)
1719 for(idx = 0; idx < keys.size(); ++idx)
1722 if(storedName == name)
1734 std::vector<ossimString> propertyNames;
1736 if((name ==
"gdal_overview_type")||
1737 (name ==
"HFA_USE_RRD") || name ==
"format")
1744 for(idx = 0; idx < propertyNames.size(); ++idx)
1746 if(name == propertyNames[idx])
1780 tempType = tempType.
trim();
1782 if(tempType ==
"nearest")
1786 else if(tempType ==
"average")
1806 int nLevels =
static_cast<int>(std::log((
double)minValue)/std::log(2.0));
1812 for(idx = 1; idx < nLevels;++idx)
1814 levelsPtr[idx] = levelsPtr[idx-1]*2;
1828 delete [] levelsPtr;
1845 if ( (driverName ==
"JP2MrSID") || (driverName !=
"JP2KAK") ||
1846 (driverName ==
"JPEG2000") )
1849 auxXmlFile +=
".aux.xml";
1850 if ( auxXmlFile.
exists() )
1852 if ( auxXmlFile.
remove() )
1855 <<
"ossimGdalWriter::postProcessOutput NOTICE:" 1856 <<
"\nFile removed: " << auxXmlFile << std::endl;
1865 bool result =
false;
void setLut(ossimNBandLutDataObject &lut)
virtual void valueToString(ossimString &valueResult) const =0
virtual ossim_uint32 getWidth() const
virtual const ossimDpt & getDecimalDegreesPerPixel() const
Returns decimal degrees per pixel as an ossimDpt with "x" representing longitude and "y" representing...
virtual void slaveProcessTiles()
virtual void setOutputImageType(ossim_int32 type)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
bool getStoredPropertyValue(const ossimString &name, ossimString &value) const
ossimString substitute(const ossimString &searchKey, const ossimString &replacementValue, bool replaceAll=false) const
Substitutes searchKey string with replacementValue and returns a string.
virtual bool isIndexedData() const
void stripPrefixFromAll(const ossimString ®ularExpression)
ossimRefPtr< ossimNBandToIndexFilter > theNBandToIndexFilter
std::vector< ossimString > getEntryLabels(ossim_uint32 band)
virtual const ossim_float64 * getMaxPix() const
static bool remove(const ossimFilename &pathname)
Removes pathname from filesystem if supported by platform.
RTTI_DEF1(ossimGdalWriter, "ossimGdalWriter", ossimImageFileWriter)
virtual ossim_uint32 getNumberOfBands() const
virtual ossimRefPtr< ossimNBandLutDataObject > getLut() const
ossim_uint32 getNumberOfBands() const
virtual void setImageRectangle(const ossimIrect &rect)
virtual void setProperty(ossimRefPtr< ossimProperty > property)
virtual void disconnect(ossimConnectableObject *object=0)
Will disconnect the object passed in.
ossimString theOutputImageType
bool needsAborting() const
virtual bool isMaster() const
void findChildNodes(const ossimString &rel_xpath, ossimXmlNode::ChildListType &nodelist) const
Represents serializable keyword/value map.
virtual void setToStartOfSequence()
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
const char * find(const char *key) const
virtual bool writeFile()
Write out the file.
virtual ossim_uint32 getPcsCode() const
Returns the EPSG PCS code or 32767 if the projection is a custom (non-EPSG) projection.
ossimString fromOssimKwl(const ossimKeywordlist &kwl, const char *prefix=NULL) const
void setLut(const ossimNBandLutDataObject &lut)
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
void combine(const std::string &left, const std::string &right, char separator, std::string &result)
ossim_int64 getNumberOfTiles() const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
ossim_uint32 height() const
bool contains(char aChar) const
virtual ossimRefPtr< ossimImageData > getNextTile(ossim_uint32 resLevel=0)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
ossimIrect theAreaOfInterest
virtual ossimConnectableObject::ConnectableObjectList findAllObjectsOfType(const RTTItypeid &typeInfo, bool recurse=true)=0
virtual void setOutputImageType(const ossimString &type)
static ossimString toString(bool aValue)
Numeric to string methods.
virtual bool isGeographic() const
void buildGdalOverviews()
void getGdalPropertyNames(std::vector< ossimString > &propertyNames) const
const ossimIpt & ul() const
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
virtual bool isOpen() const
virtual ~ossimGdalWriter()
virtual ossim_uint32 getHeight() const
virtual ossimString getExtension() const
Returns a 3-letter extension from the image type descriptor (theOutputImageType) that can be used for...
virtual void setOptions(ossimKeywordlist &kwl, const char *prefix=NULL)
void addConstraint(const ossimString &value)
Pure virtual base class for image file writers.
const ossimString & getValue() const
void setNoDataValueFlag(bool flag)
DRB - 20081020 If true (default) the no data value will be set to null pixel value.
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
ossimString convertToDriverName(const ossimString &imageTypeName) const
virtual void fireEvent(ossimEvent &event)
virtual void initialize()
Initialize the data buffer.
ossimFilename theLutFilename
virtual ossimObject * dup() const
void storeProperty(const ossimString &name, const ossimString &value)
ossimKeywordlist theDriverOptionValues
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
virtual void writeColorMap(int bands)
void push_back(char c)
Equivalent to insert(end(), c).
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual void loadTile(const void *src, const ossimIrect &src_rect, ossimInterleaveType il_type)
const ConnectableObjectList & getInputList() const
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
virtual ossimGpt lineSampleToWorld(const ossimDpt &projectedPoint) const
virtual void setAreaOfInterest(const ossimIrect &areaOfInterest)
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
virtual void setNumericType(ossimNumericPropertyType type)
virtual void lineSampleToEastingNorthing(const ossimDpt &liineSample, ossimDpt &eastingNorthing) const
ossimRefPtr< ossimImageSourceSequencer > theInputConnection
const ossimRefPtr< ossimXmlNode > getGdalOptions() const
ossimFilename theFilename
bool toBool() const
String to numeric methods.
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const
This will return the bounding rect of the source.
virtual ossimString getProjectionName() const
Returns the projection name.
ossim_uint32 getNumberOfEntries() const
ossimString gdalOverviewTypeToString() const
unsigned int ossim_uint32
32 bit normalized floating point
ossimGdalOverviewType theGdalOverviewType
bool isInputDataIndexed()
Check input to see if it's indexed.
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
#define STATIC_TYPE_INFO(T)
virtual bool writeBlockFile()
bool open(const ossimFilename &lutFile)
Reads in an external lut file.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
void extractKeysThatMatch(ossimKeywordlist &kwl, const ossimString ®ularExpression) const
void appendGdalOption(const ossimString &name, const ossimString &value, bool replaceFlag=true)
virtual ossimIrect getImageRectangle() const
ossimRefPtr< ossimNBandLutDataObject > theColorLut
static ossimString downcase(const ossimString &aString)
virtual ossim_int32 connectMyInputTo(ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
Will try to connect this objects input to the passed in object.
virtual void initialize()
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
ossim_uint32 width() const
ossimIrect clipToRect(const ossimIrect &rect) const
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
virtual ossimRefPtr< ossimImageGeometry > getImageGeometry()
Returns the image geometry object associated with this tile source or NULL if not defined...
ossimString theDriverName
virtual const ossim_float64 * getMinPix() const
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
std::vector< ossimString > getSubstringKeyList(const ossimString ®ularExpression) const
GDALDataType getGdalDataType(ossimScalarType scalar)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
bool isLutEnabled() const
64 bit normalized floating point
const ossimProjection * getProjection() const
Access methods for projection (may be NULL pointer).
16 bit unsigned integer (11 bits used)
virtual void writeProjectionInfo(GDALDatasetH dataset)
This class defines an abstract Handler which all image handlers(loaders) should derive from...
virtual void setProperty(ossimRefPtr< ossimProperty > property)
void setDescription(const ossimString &description)
virtual void setWriteExternalGeometryFlag(bool flag)
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
virtual const void * getBuf() const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
ossim_uint32 getSize() const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
class ossimNBandLutDataObject
static void getSupportedWriters(vector< ossimString > &writers)
virtual ossimIpt getTileSize() const
ossimGdalOverviewType gdalOverviewTypeFromString(const ossimString &typeString) const
virtual void initialize()
char ** theGdalDriverOptions
std::basic_istringstream< char > istringstream
Class for char input memory streams.
virtual ossimDpt getMetersPerPixel() const
ossimObject * dup() const
virtual void setTileSize(const ossimIpt &tileSize)
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
void deleteGdalDriverOptions()
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Loads the state of the object by reading in the keywords listed in the save state.
void postProcessOutput() const
Method called after good writeFile to clean up any unwanted files.
virtual bool setValue(const ossimString &value)=0
void allocateGdalDriverOptions()
bool validProperty(const ossimString &name) const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
const ossimString & getName() const
virtual bool hasLut() const