Go to the documentation of this file.
26 #ifndef __TERRALIB_MEMORY_INTERNAL_EXPANSIBLERASTER_H
27 #define __TERRALIB_MEMORY_INTERNAL_EXPANSIBLERASTER_H
30 #include "../raster/BandProperty.h"
31 #include "../raster/Grid.h"
32 #include "../raster/Raster.h"
39 #include <boost/shared_ptr.hpp>
76 const std::vector<te::rst::BandProperty*> bandsProperties );
88 const std::vector<te::rst::BandProperty*> bandsProperties,
89 const unsigned int maxNumberOfRAMBlocks );
95 std::map<std::string, std::string>
getInfo()
const;
99 return m_bands.size();
104 assert( i < m_bands.size() );
105 return m_bands[ i ]->getProperty()->m_type;
110 assert( i < m_bands.size() );
116 assert( i < m_bands.size() );
122 assert( i < m_bands.size() );
123 return *(m_bands[ i ]);
128 assert( i < m_bands.size() );
129 return *(m_bands[ i ]);
233 void dummyFillBlocks(
const std::vector<ExpansibleBandBlocksManager::BlockIndex3D>& blocksCoords );
253 #endif //__TERRALIB_MEMORY_INTERNAL_EXPANSIBLERASTER_H
int getBandDataType(std::size_t i) const
Returns the data type in a particular band (or dimension).
bool createMultiResolution(const unsigned int levels, const te::rst::InterpolationMethod interpMethod)
Create a sub-sampled multi-resolution pyramid.
RAM cached and tiled raster band blocks manager.
A raster band description.
te::dt::AbstractData * clone() const
It returns a clone of this object.
std::map< std::string, std::string > m_rasterInfo
This instance info.
An abstract class for raster data strucutures.
void updateRasterInfo()
update This instance raster info.
void dummyFillAllBlocks()
Fill all blocks with dummy values.
void dummyFillBlocks(const std::vector< ExpansibleBandBlocksManager::BlockIndex3D > &blocksCoords)
Fill the required blocks with dummy values.
A raster (stored in memory and eventually swapped to disk) where it is possible to dynamically add li...
const te::rst::Band * getBand(std::size_t i) const
Returns the raster i-th band.
std::vector< boost::shared_ptr< ExpansibleRaster > > m_multiResRasters
Pointer to Multi-resolution versions of this raster instance.
void open(const std::map< std::string, std::string > &rinfo, te::common::AccessPolicy p=te::common::RAccess)
Opens a raster.
A rectified grid is the spatial support for raster data.
ExpansibleRaster(te::rst::Grid *grid, te::common::AccessPolicy p=te::common::RAccess)
te::rst::Band & operator[](std::size_t i)
Access band in i position.
InterpolationMethod
Allowed interpolation methods.
void free()
Free all allocated internal resources and go back to the initial state.
bool addRightColumns(const unsigned int number)
New columns will be added at the right of the raster (after the last column).
bool addBottomBands(const unsigned int number)
New bands will be added at the bottom of the raster (after de the last band).
ExpansibleRaster(te::rst::Grid *grid, const std::vector< te::rst::BandProperty * > bandsProperties, const unsigned int maxNumberOfRAMBlocks)
Constructor.
std::map< std::string, std::string > getInfo() const
It returns additional information about the raster.
bool addBottomLines(const unsigned int number)
New lines will be added at the bottom of the raster (after de the last line).
ExpansibleRaster(const unsigned char maxMemPercentUsed, te::rst::Grid *grid, const std::vector< te::rst::BandProperty * > bandsProperties)
Constructor.
te::rst::Band * getBand(std::size_t i)
Returns the raster i-th band.
bool removeMultiResolution()
Remove/Destroy a sub-sampled multi-resolution pyramid, if there is one.
A base class for values that can be retrieved from the data access module.
#define TEMEMORYEXPORT
You can use this macro in order to export/import classes and functions from this module.
boost::shared_ptr< ExpansibleBandBlocksManager > m_blocksManagerPtr
Internal blocks manager.
te::rst::Raster * getMultiResLevel(const unsigned int level) const
Returns the required level of a multi-resolution pyramid or NULL if that level does not exists.
ExpansibleRaster(const te::rst::Raster &rhs)
Constructor from other expansible raster instance.
ExpansibleRaster(ExpansibleRaster &rhs)
Constructor from other expansible raster instance.
Proxy configuration file for TerraView (see terraview_config.h).
bool addTopBands(const unsigned int number)
New bands will be added at the top of the raster (before the first band).
const te::rst::Band & operator[](std::size_t i) const
Access band in i position.
std::size_t getNumberOfBands() const
Returns the number of bands (dimension of cells attribute values) in the raster.
bool addLeftColumns(const unsigned int number)
New columns will be added at the left of the raster (before the first column).
AccessPolicy
Supported data access policies (can be used as bitfield).
unsigned int getMultiResLevelsCount() const
Returns the current number of multi-resolution pyramid levels.
bool addTopLines(const unsigned int number)
New lines will be added at the top of the raster (before the first line).
std::vector< ExpansibleBand * > m_bands
Internal raster bands.