|
#include <FileGeoTIFF.h>
Public Types | |
enum | TiffCompliance { UNDEFINED =0 , TIFF =1 , GEOTIFF =2 , EPSG =6 , STRICT =10 } |
Require strict GeoTIFF compliance. More... | |
typedef drain::EnumFlagger< drain::MultiFlagger< TiffCompliance > > | complianceFlagger |
Public Types inherited from FileTIFF | |
typedef drain::SingleFlagger< unsigned int >::dict_t | dict_t |
Public Member Functions | |
FileGeoTIFF (const std::string &path, const std::string &mode="w") | |
virtual void | open (const std::string &path, const std::string &mode="w") |
Opens a GeoTIFF file. | |
template<typename T > | |
void | setGeoTiffField (geokey_t tag, T value) |
void | writeMetadata () |
Completes GeoTIFF structure. More... | |
virtual void | close () |
virtual bool | isOpen () const |
Todo: subclass. | |
void | setGdalScale (double scale=1.0, double offset=0.0) |
void | setGdalNoData (const std::string &nodata) |
This is between Tiff and GeoTiff? More... | |
template<class T > | |
void | setGdal (const std::string &key, const T &value, int sample=-1, const std::string &role="") |
void | setGeoMetaData (const drain::image::GeoFrame &frame) |
Sets projection and bounding box. Adjusts spatial resolution accordingly. | |
void | setProjectionEPSG (short epsg) |
Set projection using EPSG code. This is the recommended way. More... | |
void | setProjection (const std::string &proj) |
Sets projection given in Proj.4 string format. More... | |
void | setProjection (const drain::Proj6 &proj) |
Sets projection, primarily using EPSG if found, else Proj.4 string format. | |
void | setProjectionLongLat () |
Sets projection to plain longitude-latitude mapping. | |
template<> | |
void | setGeoTiffField (geokey_t tag, const char *value) |
template<> | |
void | setGeoTiffField (geokey_t tag, const std::string &value) |
Public Member Functions inherited from FileTIFF | |
FileTIFF (const std::string &path="", const std::string &mode="w") | |
int | setField (int tag, const std::string &value) |
template<class T > | |
int | setField (int tag, const std::vector< T > &value) |
template<class T > | |
int | setField (int tag, T value) |
void | useDefaultTileSize () |
void | setTileSize (int tileWidth, int tileHeight=0) |
void | setTime (const drain::Time &time) |
void | setDefaults () |
void | writeImageData (const drain::image::Image &src) |
Public Attributes | |
TreeGDAL | gdalMetadata |
Use EPSG specific support only, if found. Else use also fromProj4Str(). | |
Static Public Attributes | |
static complianceFlagger | compliancyFlagger |
static std::string | compliancy |
Static Public Attributes inherited from FileTIFF | |
static const drain::FileInfo | fileInfo |
static dict_t::value_t | defaultCompression |
static drain::Frame2D< int > | defaultTile |
Protected Attributes | |
GTIF * | gtif |
Protected Attributes inherited from FileTIFF | |
TIFF * | tif |
drain::Frame2D< int > | tile |
Additional Inherited Members | |
Static Public Member Functions inherited from FileTIFF | |
static const dict_t & | getCompressionDict () |
static void | write (const std::string &path, const drain::image::Image &src) |
Default implementation. More... | |
Extends TIFF by adding geo information in the metadata
enum TiffCompliance |
Require strict GeoTIFF compliance.
TODO: consider TIFF,default,GTIFF,StrictGTIFF
void setGdalNoData | ( | const std::string & | nodata | ) |
This is between Tiff and GeoTiff?
nodata | - yes, string... |
void setGdalScale | ( | double | scale = 1.0 , |
double | offset = 0.0 |
||
) |
nodata | - yes, string... |
void setProjection | ( | const std::string & | proj | ) |
Sets projection given in Proj.4 string format.
If EPSG is detected (currently by +init=epsg:EPSG) and support configured for EPSG code, set it directly.
void setProjectionEPSG | ( | short | epsg | ) |
Set projection using EPSG code. This is the recommended way.
See also:
void writeMetadata | ( | ) |
Completes GeoTIFF structure.
"Opens" a GeoTIFF structure inside an opened TIFF file.