/usr/include/terralib/kernel/TeRasterRemap.h is in libterralib-dev 4.3.0+dfsg.2-11.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | /************************************************************************************
TerraLib - a library for developing GIS applications.
Copyright © 2001-2007 INPE and Tecgraf/PUC-Rio.
This code is part of the TerraLib library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
You should have received a copy of the GNU Lesser General Public
License along with this library.
The authors reassure the license terms regarding the warranties.
They specifically disclaim any warranties, including, but not limited to,
the implied warranties of merchantability and fitness for a particular purpose.
The library provided hereunder is on an "as is" basis, and the authors have no
obligation to provide maintenance, support, updates, enhancements, or modifications.
In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
indirect, special, incidental, or consequential damages arising out of the use
of this library and its documentation.
*************************************************************************************/
/*! \file TeRasterRemap.h
\brief This file contains definitions the class and functions need to transform a raster geometry into another geometry
*/
#ifndef __TERRALIB_INTERNAL_RASTERREMAP_H
#define __TERRALIB_INTERNAL_RASTERREMAP_H
#include "TeRaster.h"
#include "TeGeometry.h"
#include "TeRasterTransform.h"
//! A functional class to transform a raster geometry into another geometry
/*!
RasterRemap class provides functions to remap a raster strtucture into another.
The two raster can have a different projections, different bounding boxes and/or
different resolutions.
\sa
TeRaster, TeRasterParams, TeRasterTransform, TeProjection, TeBox
\note Raster representation in TerraLib is under development, all files that deal
with raster representation should be considered as a beta version.
*/
class TL_DLL TeRasterRemap
{
protected:
TeRaster* rasterIn_; //!< input raster
TeRaster* rasterOut_; //!< output raster
TeRasterTransform* transformer_;
int interpolation_;
bool showProgress_;
bool useOptimizedReprojection_;
TeBox ROI_; // region of interest (from input) where the remmaping should be done
bool TeOptimizedInterpolateIn ( const TeBox &box );
bool TeInterpolateIn ( const TeBox &box );
bool remap ();
bool copy ();
bool resample ();
public:
//! Constructor
/*
\param rasterIn pointer to the input raster
\param rasterOut pointer to the output raster
\para showProgress flag to indicate that a progress status hould be reported
*/
TeRasterRemap (TeRaster* rasterIn=0, TeRaster* rasterOut=0,
bool showProgress = false);
//! Sets the input raster
void setInput(TeRaster* rasterIn)
{
rasterIn_ = rasterIn;
if (transformer_)
transformer_->setRasterIn(rasterIn_);
}
//! Sets the output raster
void setOutput(TeRaster* rasterOut)
{
rasterOut_ = rasterOut;
if (transformer_)
transformer_->setRasterOut(rasterOut_);
}
//! Sets the interpolation flag
void setInterpolation(int interpolation)
{ interpolation_ = interpolation; }
//! Sets the transformation to be used when doing remap
void setTransformer(TeRasterTransform* transf)
{
if (transf)
{
transformer_ = transf;
transformer_->setRasterOut(rasterOut_);
transformer_->setRasterIn(rasterIn_);
}
}
//! Returns the transformation to be used when doing remap
TeRasterTransform* transformer()
{ return transformer_; }
//! Applies the remaping
bool apply(bool showProgress = false);
//! Defines a region of interest where the remmaping should be done
/*
\par roi a box that represents the region of interest. It should
be inside the raster in bounding box;
\return false if the roi in invalid or it is not within the input
raster. True otherwise
*/
bool setROI(TeBox& roi);
//! Enable/disable the use of a opmized reprojection algorithm.
/*
\param enabled Enabled/disabled flag (default:enabled).
*/
void setOptmizedReprojection( bool enabled )
{
useOptimizedReprojection_ = enabled;
};
};
#endif
|