Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | List of all members
FileGeoTIFF Class Reference

#include <FileGeoTIFF.h>

Inheritance diagram for FileGeoTIFF:
Inheritance graph
[legend]
Collaboration diagram for FileGeoTIFF:
Collaboration graph
[legend]

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_tgetCompressionDict ()
 
static void write (const std::string &path, const drain::image::Image &src)
 Default implementation. More...
 

Detailed Description

Extends TIFF by adding geo information in the metadata

https://gdal.org/drivers/raster/gtiff.html

Member Enumeration Documentation

◆ TiffCompliance

Require strict GeoTIFF compliance.

TODO: consider TIFF,default,GTIFF,StrictGTIFF

Member Function Documentation

◆ setGdalNoData()

void setGdalNoData ( const std::string &  nodata)

This is between Tiff and GeoTiff?

Parameters
nodata- yes, string...

◆ setGdalScale()

void setGdalScale ( double  scale = 1.0,
double  offset = 0.0 
)
Parameters
nodata- yes, string...

◆ setProjection()

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.

◆ setProjectionEPSG()

void setProjectionEPSG ( short  epsg)

Set projection using EPSG code. This is the recommended way.

See also:

◆ writeMetadata()

void writeMetadata ( )

Completes GeoTIFF structure.

"Opens" a GeoTIFF structure inside an opened TIFF file.


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