45#include <highfive/highfive.hpp>
99 void writeImageBlock2Band(uint32_t band,
void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut, uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType);
128 void readImageBlock2Band(uint32_t band,
void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn, uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType);
140 void createMask(uint32_t band, uint32_t deflate=KEA_DEFLATE);
159 void writeImageBlock2BandMask(uint32_t band,
void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut, uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType);
180 void readImageBlock2BandMask(uint32_t band,
void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn, uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType);
312 void setGCPs(std::vector<KEAImageGCP*> *gcps,
const std::string &projWKT);
422 void createOverview(uint32_t band, uint32_t overview, uint64_t xSize, uint64_t ySize);
454 void writeToOverview(uint32_t band, uint32_t overview,
void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut, uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType);
472 void readFromOverview(uint32_t band, uint32_t overview,
void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn, uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType);
489 void getOverviewSize(uint32_t band, uint32_t overview, uint64_t *xSize, uint64_t *ySize);
544 virtual void addImageBand(
const KEADataType dataType,
const std::string &bandDescrip,
const uint32_t imageBlockSize = KEA_IMAGE_CHUNK_SIZE,
const uint32_t attBlockSize = KEA_ATT_CHUNK_SIZE,
const uint32_t deflate = KEA_DEFLATE);
594 static HighFive::File*
createKEAImage(
const std::string &fileName,
KEADataType dataType, uint32_t xSize, uint32_t ySize, uint32_t numImgBands, std::vector<std::string> *bandDescrips=NULL,
KEAImageSpatialInfo *spatialInfo=NULL, uint32_t imageBlockSize=KEA_IMAGE_CHUNK_SIZE, uint32_t attBlockSize=KEA_ATT_CHUNK_SIZE,
int mdcElmts=KEA_MDC_NELMTS, hsize_t rdccNElmts=KEA_RDCC_NELMTS, hsize_t rdccNBytes=KEA_RDCC_NBYTES,
double rdccW0=KEA_RDCC_W0, hsize_t sieveBuf=KEA_SIEVE_BUF, hsize_t metaBlockSize=KEA_META_BLOCKSIZE, uint32_t deflate=KEA_DEFLATE);
634 static HighFive::File*
openKeaH5RW(
const std::string &fileName,
int mdcElmts=KEA_MDC_NELMTS, hsize_t rdccNElmts=KEA_RDCC_NELMTS, hsize_t rdccNBytes=KEA_RDCC_NBYTES,
double rdccW0=KEA_RDCC_W0, hsize_t sieveBuf=KEA_SIEVE_BUF, hsize_t metaBlockSize=KEA_META_BLOCKSIZE);
659 static HighFive::File*
openKeaH5RDOnly(
const std::string &fileName,
int mdcElmts=KEA_MDC_NELMTS, hsize_t rdccNElmts=KEA_RDCC_NELMTS,
660 hsize_t rdccNBytes=KEA_RDCC_NBYTES,
double rdccW0=KEA_RDCC_W0, hsize_t sieveBuf=KEA_SIEVE_BUF,
661 hsize_t metaBlockSize=KEA_META_BLOCKSIZE, hid_t driver_id=0,
const void* driver_info=
nullptr);
746 static void addImageBandToFile(HighFive::File *keaImgH5File,
const KEADataType dataType,
const uint32_t xSize,
const uint32_t ySize,
const uint32_t bandIndex,
const std::string &bandDescrip,
const uint32_t imageBlockSize,
const uint32_t attBlockSize,
const uint32_t deflate);
808 void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn,
809 uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType,
831 void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut,
832 uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf,
KEADataType inDataType);
KEA_EXPORT double get_kealibversion()
Definition KEAAttributeTable.h:114
Definition KEACommon.h:348
Definition KEAImageIO.h:56
static HighFive::DataType convertDatatypeKeaToH5Native(const KEADataType dataType)
uint32_t getImageBlockSize(uint32_t band)
std::string getImageBandMetaData(uint32_t band, const std::string &name)
uint32_t getNumOfImageBands()
bool fileOpen
Definition KEAImageIO.h:839
static const std::string convertDatatypeKeaToCStdStr(const KEADataType dataType)
std::vector< std::pair< std::string, std::string > > getImageBandMetaData(uint32_t band)
KEAAttributeTable * getAttributeTable(KEAATTType type, uint32_t band)
void removeOverview(uint32_t band, uint32_t overview)
void setImageBandDescription(uint32_t band, const std::string &description)
void setImageMetaData(const std::vector< std::pair< std::string, std::string > > &data)
static HighFive::File * createKEAImage(const std::string &fileName, KEADataType dataType, uint32_t xSize, uint32_t ySize, uint32_t numImgBands, std::vector< std::string > *bandDescrips=NULL, KEAImageSpatialInfo *spatialInfo=NULL, uint32_t imageBlockSize=KEA_IMAGE_CHUNK_SIZE, uint32_t attBlockSize=KEA_ATT_CHUNK_SIZE, int mdcElmts=KEA_MDC_NELMTS, hsize_t rdccNElmts=KEA_RDCC_NELMTS, hsize_t rdccNBytes=KEA_RDCC_NBYTES, double rdccW0=KEA_RDCC_W0, hsize_t sieveBuf=KEA_SIEVE_BUF, hsize_t metaBlockSize=KEA_META_BLOCKSIZE, uint32_t deflate=KEA_DEFLATE)
void createMask(uint32_t band, uint32_t deflate=KEA_DEFLATE)
KEAImageSpatialInfo * spatialInfoFile
Definition KEAImageIO.h:841
KEAImageSpatialInfo * getSpatialInfo()
void getOverviewSize(uint32_t band, uint32_t overview, uint64_t *xSize, uint64_t *ySize)
KEALayerType getImageBandLayerType(uint32_t band)
void readImageFromDataset(const HighFive::DataSet &dataset, uint32_t band, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn, uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType, bool ismask=false)
void undefineNoDataValue(uint32_t band)
void setAttributeTable(KEAAttributeTable *att, uint32_t band, uint32_t chunkSize=KEA_ATT_CHUNK_SIZE, uint32_t deflate=KEA_DEFLATE)
HighFive::File * keaImgFile
Definition KEAImageIO.h:840
std::string getGCPProjection()
void createOverview(uint32_t band, uint32_t overview, uint64_t xSize, uint64_t ySize)
void writeImageBlock2Band(uint32_t band, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut, uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType)
static bool isKEAImage(const std::string &fileName)
uint32_t numImgBands
Definition KEAImageIO.h:842
void readFromOverview(uint32_t band, uint32_t overview, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn, uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType)
bool maskCreated(uint32_t band)
void setImageBandLayerType(uint32_t band, KEALayerType imgLayerType)
void readImageBlock2Band(uint32_t band, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn, uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType)
void getNoDataValue(uint32_t band, void *data, KEADataType inDataType)
static HighFive::CompoundType createGCPCompType()
static HighFive::File * openKeaH5RW(const std::string &fileName, int mdcElmts=KEA_MDC_NELMTS, hsize_t rdccNElmts=KEA_RDCC_NELMTS, hsize_t rdccNBytes=KEA_RDCC_NBYTES, double rdccW0=KEA_RDCC_W0, hsize_t sieveBuf=KEA_SIEVE_BUF, hsize_t metaBlockSize=KEA_META_BLOCKSIZE)
bool attributeTablePresent(uint32_t band)
KEADataType getImageBandDataType(uint32_t band)
void readImageBlock2BandMask(uint32_t band, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeIn, uint64_t ySizeIn, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType)
virtual void addImageBand(const KEADataType dataType, const std::string &bandDescrip, const uint32_t imageBlockSize=KEA_IMAGE_CHUNK_SIZE, const uint32_t attBlockSize=KEA_ATT_CHUNK_SIZE, const uint32_t deflate=KEA_DEFLATE)
void writeImageBlock2BandMask(uint32_t band, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut, uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType)
std::string getImageMetaData(const std::string &name)
void setGCPs(std::vector< KEAImageGCP * > *gcps, const std::string &projWKT)
std::string getImageBandDescription(uint32_t band)
static void addImageBandToFile(HighFive::File *keaImgH5File, const KEADataType dataType, const uint32_t xSize, const uint32_t ySize, const uint32_t bandIndex, const std::string &bandDescrip, const uint32_t imageBlockSize, const uint32_t attBlockSize, const uint32_t deflate)
std::vector< std::string > getImageBandMetaDataNames(uint32_t band)
std::vector< std::string > getImageMetaDataNames()
static HighFive::File * openKeaH5RDOnly(const std::string &fileName, int mdcElmts=KEA_MDC_NELMTS, hsize_t rdccNElmts=KEA_RDCC_NELMTS, hsize_t rdccNBytes=KEA_RDCC_NBYTES, double rdccW0=KEA_RDCC_W0, hsize_t sieveBuf=KEA_SIEVE_BUF, hsize_t metaBlockSize=KEA_META_BLOCKSIZE, hid_t driver_id=0, const void *driver_info=nullptr)
static void removeImageBandFromFile(HighFive::File *keaImgH5File, const uint32_t bandIndex, const uint32_t numImgBands)
void setNoDataValue(uint32_t band, const void *data, KEADataType inDataType)
static HighFive::DataType convertDatatypeKeaToH5STD(const KEADataType dataType)
uint32_t getAttributeTableChunkSize(uint32_t band)
std::vector< KEAImageGCP * > * getGCPs()
void setGCPProjection(const std::string &projWKT)
void setImageBandClrInterp(uint32_t band, KEABandClrInterp imgLayerClrInterp)
uint32_t getNumOfOverviews(uint32_t band)
void setImageBandMetaData(uint32_t band, const std::string &name, const std::string &value)
std::string getKEAImageVersion()
void setImageMetaData(const std::string &name, const std::string &value)
void openKEAImageHeader(HighFive::File *keaImgH5File)
void setImageBandMetaData(uint32_t band, const std::vector< std::pair< std::string, std::string > > &data)
void writeToOverview(uint32_t band, uint32_t overview, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut, uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType)
std::string keaVersion
Definition KEAImageIO.h:843
static void setNumImgBandsInFileMetadata(HighFive::File *keaImgH5File, const uint32_t numImgBands)
uint32_t getOverviewBlockSize(uint32_t band, uint32_t overview)
virtual void removeImageBand(const uint32_t bandIndex)
void setSpatialInfo(KEAImageSpatialInfo *spatialInfo)
KEABandClrInterp getImageBandClrInterp(uint32_t band)
std::vector< std::pair< std::string, std::string > > getImageMetaData()
void writeImageToDataset(HighFive::DataSet &dataset, void *data, uint64_t xPxlOff, uint64_t yPxlOff, uint64_t xSizeOut, uint64_t ySizeOut, uint64_t xSizeBuf, uint64_t ySizeBuf, KEADataType inDataType)
Definition KEAAttributeTable.h:45
KEALayerType
Definition KEACommon.h:173
KEAATTType
Definition KEAAttributeTable.h:48
KEABandClrInterp
Definition KEACommon.h:179
KEADataType
Definition KEACommon.h:158
Definition KEACommon.h:200