Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > d67485fb8ce60f8952179bbde3b5d022 > files > 37

libgdal0-devel-1.1.7-2mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>GDALRasterBand Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.3-20001105 on Thu Mar 28 09:47:32 2002 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>GDALRasterBand  Class Reference</h1>A single raster band (or channel). 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="gdal_priv_h-source.html">gdal_priv.h</a>&gt;</code>
<p>
<p>Inheritance diagram for GDALRasterBand:
<p><center><img src="class_GDALRasterBand.gif" usemap="#GDALRasterBand_map" border="0"></center>
<map name="GDALRasterBand_map">
</map>
<a href="class_GDALRasterBand-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a0">GDALRasterBand</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a1">~GDALRasterBand</a> ()</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a2">GetXSize</a> ()</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a3">GetYSize</a> ()</td></tr>
<tr><td nowrap align=right valign=top><a name="a4" doxytag="GDALRasterBand::GetBand"></a>
int&nbsp;</td><td valign=bottom><b>GetBand</b> ()</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="gdal_h.html#a141">GDALDataType</a>&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a5">GetRasterDataType</a> ( void )</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a6">GetBlockSize</a> ( int *, int * )</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="gdal_h.html#a142">GDALAccess</a>&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a7">GetAccess</a> ()</td></tr>
<tr><td nowrap align=right valign=top>CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a8">RasterIO</a> ( <a class="el" href="gdal_h.html#a143">GDALRWFlag</a>, int, int, int, int, void *, int, int, <a class="el" href="gdal_h.html#a141">GDALDataType</a>, int, int )</td></tr>
<tr><td nowrap align=right valign=top>CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a9">ReadBlock</a> ( int, int, void * )</td></tr>
<tr><td nowrap align=right valign=top>CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a10">WriteBlock</a> ( int, int, void * )</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_GDALRasterBlock.html">GDALRasterBlock</a>*&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a11">GetBlockRef</a> ( int, int )</td></tr>
<tr><td nowrap align=right valign=top>CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a12">FlushCache</a> ()</td></tr>
<tr><td nowrap align=right valign=top><a name="a13" doxytag="GDALRasterBand::FlushBlock"></a>
CPLErr&nbsp;</td><td valign=bottom><b>FlushBlock</b> ( int = -1, int = -1 )</td></tr>
<tr><td nowrap align=right valign=top>virtual const char*&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a14">GetDescription</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual char**&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a15">GetCategoryNames</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual double&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a16">GetNoDataValue</a> ( int *pbSuccess = NULL )</td></tr>
<tr><td nowrap align=right valign=top>virtual double&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a17">GetMinimum</a> ( int *pbSuccess = NULL )</td></tr>
<tr><td nowrap align=right valign=top>virtual double&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a18">GetMaximum</a> (int *pbSuccess = NULL )</td></tr>
<tr><td nowrap align=right valign=top>virtual double&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a19">GetOffset</a> ( int *pbSuccess = NULL )</td></tr>
<tr><td nowrap align=right valign=top>virtual double&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a20">GetScale</a> ( int *pbSuccess = NULL )</td></tr>
<tr><td nowrap align=right valign=top>virtual const char*&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a21">GetUnitType</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual <a class="el" href="gdal_h.html#a144">GDALColorInterp</a>&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a22">GetColorInterpretation</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual GDALColorTable*&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a23">GetColorTable</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a24">SetCategoryNames</a> ( char ** )</td></tr>
<tr><td nowrap align=right valign=top>virtual CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a25">SetNoDataValue</a> ( double )</td></tr>
<tr><td nowrap align=right valign=top>virtual CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a26">SetColorTable</a> ( GDALColorTable * )</td></tr>
<tr><td nowrap align=right valign=top>virtual int&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a27">HasArbitraryOverviews</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual int&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a28">GetOverviewCount</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual GDALRasterBand*&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a29">GetOverview</a> (int)</td></tr>
<tr><td nowrap align=right valign=top>virtual CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a30">BuildOverviews</a> ( const char *, int, int *, <a class="el" href="gdal_h.html#a10">GDALProgressFunc</a>, void * )</td></tr>
<tr><td nowrap align=right valign=top>CPLErr&nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBand.html#a31">GetHistogram</a> ( double dfMin, double dfMax, int nBuckets, int * panHistogram, int bIncludeOutOfRange, int bApproxOK, <a class="el" href="gdal_h.html#a10">GDALProgressFunc</a>, void *pProgressData )</td></tr>
<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="b0" doxytag="GDALRasterBand::IReadBlock"></a>
virtual CPLErr&nbsp;</td><td valign=bottom><b>IReadBlock</b> ( int, int, void * ) = 0</td></tr>
<tr><td nowrap align=right valign=top><a name="b1" doxytag="GDALRasterBand::IWriteBlock"></a>
virtual CPLErr&nbsp;</td><td valign=bottom><b>IWriteBlock</b> ( int, int, void * )</td></tr>
<tr><td nowrap align=right valign=top><a name="b2" doxytag="GDALRasterBand::IRasterIO"></a>
virtual CPLErr&nbsp;</td><td valign=bottom><b>IRasterIO</b> ( <a class="el" href="gdal_h.html#a143">GDALRWFlag</a>, int, int, int, int, void *, int, int, <a class="el" href="gdal_h.html#a141">GDALDataType</a>, int, int )</td></tr>
<tr><td nowrap align=right valign=top><a name="b3" doxytag="GDALRasterBand::OverviewRasterIO"></a>
CPLErr&nbsp;</td><td valign=bottom><b>OverviewRasterIO</b> ( <a class="el" href="gdal_h.html#a143">GDALRWFlag</a>, int, int, int, int, void *, int, int, <a class="el" href="gdal_h.html#a141">GDALDataType</a>, int, int )</td></tr>
<tr><td nowrap align=right valign=top><a name="b4" doxytag="GDALRasterBand::AdoptBlock"></a>
CPLErr&nbsp;</td><td valign=bottom><b>AdoptBlock</b> ( int, int, <a class="el" href="class_GDALRasterBlock.html">GDALRasterBlock</a> * )</td></tr>
<tr><td nowrap align=right valign=top><a name="b5" doxytag="GDALRasterBand::InitBlockInfo"></a>
void&nbsp;</td><td valign=bottom><b>InitBlockInfo</b> ()</td></tr>
<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="n0" doxytag="GDALRasterBand::poDS"></a>
<a class="el" href="class_GDALDataset.html">GDALDataset</a>*&nbsp;</td><td valign=bottom><b>poDS</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n1" doxytag="GDALRasterBand::nBand"></a>
int&nbsp;</td><td valign=bottom><b>nBand</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n2" doxytag="GDALRasterBand::nRasterXSize"></a>
int&nbsp;</td><td valign=bottom><b>nRasterXSize</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n3" doxytag="GDALRasterBand::nRasterYSize"></a>
int&nbsp;</td><td valign=bottom><b>nRasterYSize</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n4" doxytag="GDALRasterBand::eDataType"></a>
<a class="el" href="gdal_h.html#a141">GDALDataType</a>&nbsp;</td><td valign=bottom><b>eDataType</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n5" doxytag="GDALRasterBand::eAccess"></a>
<a class="el" href="gdal_h.html#a142">GDALAccess</a>&nbsp;</td><td valign=bottom><b>eAccess</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n6" doxytag="GDALRasterBand::nBlockXSize"></a>
int&nbsp;</td><td valign=bottom><b>nBlockXSize</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n7" doxytag="GDALRasterBand::nBlockYSize"></a>
int&nbsp;</td><td valign=bottom><b>nBlockYSize</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n8" doxytag="GDALRasterBand::nBlocksPerRow"></a>
int&nbsp;</td><td valign=bottom><b>nBlocksPerRow</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n9" doxytag="GDALRasterBand::nBlocksPerColumn"></a>
int&nbsp;</td><td valign=bottom><b>nBlocksPerColumn</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n10" doxytag="GDALRasterBand::papoBlocks"></a>
<a class="el" href="class_GDALRasterBlock.html">GDALRasterBlock</a>**&nbsp;</td><td valign=bottom><b>papoBlocks</b></td></tr>
<tr><td colspan=2><br><h2>Friends</h2></td></tr>
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="class_GDALDataset.html">GDALDataset</a></td></tr>
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="class_GDALRasterBlock.html">GDALRasterBlock</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A single raster band (or channel).
<p>

<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="GDALRasterBand::GDALRasterBand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
GDALRasterBand::GDALRasterBand (
          </b></td>
          <td valign="bottom"><b>
)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Constructor. Applications should never create GDALRasterBands directly.     </td>
  </tr>
</table>
<a name="a1" doxytag="GDALRasterBand::~GDALRasterBand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
GDALRasterBand::~GDALRasterBand (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Destructor. Applications should never destroy GDALRasterBands directly, instead destroy the <a class="el" href="class_GDALDataset.html">GDALDataset</a>.     </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a30" doxytag="GDALRasterBand::BuildOverviews"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::BuildOverviews (
          </b></td>
          <td valign="bottom"><b>
const char * <em>pszResampling</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nOverviews</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int * <em>panOverviewList</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="gdal_h.html#a10">GDALProgressFunc</a> <em>pfnProgress</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
void * <em>pProgressData</em>&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Build raster overview(s)
<p>
If the operation is unsupported for the indicated dataset, then  CE_Failure is returned, and CPLGetLastError() will return CPLE_NonSupported.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pszResampling</em>
&nbsp;</td><td>
 one of "NEAREST", "AVERAGE" or "MODE" controlling the downsampling method applied. </td></tr>
<tr><td valign=top><em>nOverviews</em>
&nbsp;</td><td>
 number of overviews to build.  </td></tr>
<tr><td valign=top><em>panOverviewList</em>
&nbsp;</td><td>
 the list of overview decimation factors to build.  </td></tr>
<tr><td valign=top><em>pfnProgress</em>
&nbsp;</td><td>
 a function to call to report progress, or NULL. </td></tr>
<tr><td valign=top><em>pProgressData</em>
&nbsp;</td><td>
 application data to pass to the progress function.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success or CE_Failure if the operation doesn't work. </dl>    </td>
  </tr>
</table>
<a name="a12" doxytag="GDALRasterBand::FlushCache"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::FlushCache (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Flush raster data cache.
<p>
This call will recover memory used to cache data blocks for this raster band, and ensure that new requests are referred to the underlying driver.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALFlushRasterCache</a>().
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success. </dl>    </td>
  </tr>
</table>
<a name="a7" doxytag="GDALRasterBand::GetAccess"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="gdal_h.html#a142">GDALAccess</a> GDALRasterBand::GetAccess (
          </b></td>
          <td valign="bottom"><b>
)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Find out if we have update permission for this band.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 Either GA_Update or GA_ReadOnly. </dl>    </td>
  </tr>
</table>
<a name="a11" doxytag="GDALRasterBand::GetBlockRef"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="class_GDALRasterBlock.html">GDALRasterBlock</a> * GDALRasterBand::GetBlockRef (
          </b></td>
          <td valign="bottom"><b>
int <em>nXBlockOff</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nYBlockOff</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch a pointer to an internally cached raster block.
<p>
Note that calling <a class="el" href="class_GDALRasterBand.html#a11">GetBlockRef</a>() on a previously uncached band will enable caching.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>nXBlockOff</em>
&nbsp;</td><td>
 the horizontal block offset, with zero indicating the left most block, 1 the next block and so forth.</td></tr>
<tr><td valign=top><em>nYBlockOff</em>
&nbsp;</td><td>
 the vertical block offset, with zero indicating the left most block, 1 the next block and so forth.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 pointer to the block object, or NULL on failure. </dl>    </td>
  </tr>
</table>
<a name="a6" doxytag="GDALRasterBand::GetBlockSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void GDALRasterBand::GetBlockSize (
          </b></td>
          <td valign="bottom"><b>
int * <em>pnXSize</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int * <em>pnYSize</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the "natural" block size of this band.
<p>
GDAL contains a concept of the natural block size of rasters so that applications can organized data access efficiently for some file formats. The natural block size is the block size that is most efficient for accessing the format. For many formats this is simple a whole scanline in which case *pnXSize is set to <a class="el" href="class_GDALRasterBand.html#a2">GetXSize</a>(), and *pnYSize is set to 1.
<p>
However, for tiled images this will typically be the tile size.
<p>
Note that the X and Y block sizes don't have to divide the image size evenly, meaning that right and bottom edge blocks may be incomplete. See <a class="el" href="class_GDALRasterBand.html#a9">ReadBlock</a>() for an example of code dealing with these issues.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pnXSize</em>
&nbsp;</td><td>
 integer to put the X block size into or NULL.</td></tr>
<tr><td valign=top><em>pnYSize</em>
&nbsp;</td><td>
 integer to put the Y block size into or NULL. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a15" doxytag="GDALRasterBand::GetCategoryNames"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
char ** GDALRasterBand::GetCategoryNames (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the list of category names for this raster.
<p>
The return list is a "StringList" in the sense of the CPL functions. That is a NULL terminated array of strings. Raster values without  associated names will have an empty string in the returned list. The first entry in the list is for raster values of zero, and so on.
<p>
The returned stringlist should not be altered or freed by the application. It may change on the next GDAL call, so please copy it if it is needed for any period of time.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 list of names, or NULL if none. </dl>    </td>
  </tr>
</table>
<a name="a22" doxytag="GDALRasterBand::GetColorInterpretation"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="gdal_h.html#a144">GDALColorInterp</a> GDALRasterBand::GetColorInterpretation (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
How should this band be interpreted as color?
<p>
CV_Undefined is returned when the format doesn't know anything about the color interpretation.
<p>
This method is the same as the C function  <a class="el" href="gdal_h.html">GDALGetRasterColorInterpretation</a>().
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 color interpretation value for band. </dl>    </td>
  </tr>
</table>
<a name="a23" doxytag="GDALRasterBand::GetColorTable"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
GDALColorTable * GDALRasterBand::GetColorTable (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the color table associated with band.
<p>
If there is no associated color table, the return result is NULL. The returned color table remains owned by the GDALRasterBand, and can't be depended on for long, nor should it ever be modified by the caller.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetRasterColorTable</a>().
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 internal color table, or NULL. </dl>    </td>
  </tr>
</table>
<a name="a14" doxytag="GDALRasterBand::GetDescription"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const char * GDALRasterBand::GetDescription (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return a description of this band.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 internal description string, or "" if none is available. </dl>    </td>
  </tr>
</table>
<a name="a31" doxytag="GDALRasterBand::GetHistogram"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::GetHistogram (
          </b></td>
          <td valign="bottom"><b>
double <em>dfMin</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
double <em>dfMax</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nBuckets</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int * <em>panHistogram</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>bIncludeOutOfRange</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>bApproxOK</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="gdal_h.html#a10">GDALProgressFunc</a> <em>pfnProgress</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
void * <em>pProgressData</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Compute raster histogram.
<p>
Note that the bucket size is (dfMax-dfMin) / nBuckets.
<p>
For example to compute a simple 256 entry histogram of eight bit data,  the following would be suitable. The unusual bounds are to ensure that bucket boundaries don't fall right on integer values causing possible errors due to rounding after scaling.  <pre>
    int anHistogram[256];

    poBand-&gt;GetHistogram( -0.5, 255.5, 256, anHistogram, FALSE, FALSE, 
                          GDALDummyProgress, NULL );
</pre>
<p>
Note that setting bApproxOK will generally result in a subsampling of the file, and will utilize overviews if available. It should generally  produce a representative histogram for the data that is suitable for use in generating histogram based luts for instance. Generally bApproxOK is much faster than an exactly computed histogram.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>dfMin</em>
&nbsp;</td><td>
 the lower bound of the histogram. </td></tr>
<tr><td valign=top><em>dfMax</em>
&nbsp;</td><td>
 the upper bound of the histogram. </td></tr>
<tr><td valign=top><em>nBuckets</em>
&nbsp;</td><td>
 the number of buckets in panHistogram. </td></tr>
<tr><td valign=top><em>panHistogram</em>
&nbsp;</td><td>
 array into which the histogram totals are placed. </td></tr>
<tr><td valign=top><em>bIncludeOutOfRange</em>
&nbsp;</td><td>
 if TRUE values below the histogram range will mapped into panHistogram[0], and values above will be mapped into  panHistogram[nBuckets-1] otherwise out of range values are discarded. </td></tr>
<tr><td valign=top><em>bApproxOK</em>
&nbsp;</td><td>
 TRUE if an approximate, or incomplete histogram OK. </td></tr>
<tr><td valign=top><em>pfnProgress</em>
&nbsp;</td><td>
 function to report progress to completion.  </td></tr>
<tr><td valign=top><em>pProgressData</em>
&nbsp;</td><td>
 application data to pass to pfnProgress.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success, or CE_Failure if something goes wrong. </dl>    </td>
  </tr>
</table>
<a name="a18" doxytag="GDALRasterBand::GetMaximum"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
double GDALRasterBand::GetMaximum (
          </b></td>
          <td valign="bottom"><b>
int * <em>pbSuccess</em> = NULL&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the maximum value for this band.
<p>
For file formats that don't know this intrinsically, the maximum supported value for the data type will generally be returned.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetRasterMaximum</a>().<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pbSuccess</em>
&nbsp;</td><td>
 pointer to a boolean to use to indicate if the returned value is a tight maximum or not. May be NULL (default).
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 the maximum raster value (excluding no data pixels) </dl>    </td>
  </tr>
</table>
<a name="a17" doxytag="GDALRasterBand::GetMinimum"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
double GDALRasterBand::GetMinimum (
          </b></td>
          <td valign="bottom"><b>
int * <em>pbSuccess</em> = NULL&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the minimum value for this band.
<p>
For file formats that don't know this intrinsically, the minimum supported value for the data type will generally be returned.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetRasterMinimum</a>().<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pbSuccess</em>
&nbsp;</td><td>
 pointer to a boolean to use to indicate if the returned value is a tight minimum or not. May be NULL (default).
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 the minimum raster value (excluding no data pixels) </dl>    </td>
  </tr>
</table>
<a name="a16" doxytag="GDALRasterBand::GetNoDataValue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
double GDALRasterBand::GetNoDataValue (
          </b></td>
          <td valign="bottom"><b>
int * <em>pbSuccess</em> = NULL&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the no data value for this band.
<p>
If there is no out of data value, an out of range value will generally be returned. The no data value for a band is generally a special marker value used to mark pixels that are not valid data. Such pixels should generally not be displayed, nor contribute to analysis operations.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetRasterNoDataValue</a>().<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pbSuccess</em>
&nbsp;</td><td>
 pointer to a boolean to use to indicate if a value is actually associated with this layer. May be NULL (default).
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 the nodata value for this band. </dl>    </td>
  </tr>
</table>
<a name="a19" doxytag="GDALRasterBand::GetOffset"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
double GDALRasterBand::GetOffset (
          </b></td>
          <td valign="bottom"><b>
int * <em>pbSuccess</em> = NULL&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the raster value offset.
<p>
This value (in combination with the <a class="el" href="class_GDALRasterBand.html#a20">GetScale</a>() value) is used to transform raw pixel values into the units returned by GetUnits().  For example this might be used to store elevations in GUInt16 bands with a precision of 0.1, and starting from -100.
<p>
Units value = (raw value * scale) + offset
<p>
For file formats that don't know this intrinsically a value of zero is returned.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pbSuccess</em>
&nbsp;</td><td>
 pointer to a boolean to use to indicate if the returned value is meaningful or not. May be NULL (default).
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 the raster offset. </dl>    </td>
  </tr>
</table>
<a name="a29" doxytag="GDALRasterBand::GetOverview"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
GDALRasterBand * GDALRasterBand::GetOverview (
          </b></td>
          <td valign="bottom"><b>
int <em>i</em>&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch overview raster band object.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetOverview</a>().<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>i</em>
&nbsp;</td><td>
 overview index between 0 and <a class="el" href="class_GDALRasterBand.html#a28">GetOverviewCount</a>()-1.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 overview GDALRasterBand. </dl>    </td>
  </tr>
</table>
<a name="a28" doxytag="GDALRasterBand::GetOverviewCount"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
int GDALRasterBand::GetOverviewCount (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return the number of overview layers available.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetOverviewCount</a>();
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 overview count, zero if none. </dl>    </td>
  </tr>
</table>
<a name="a5" doxytag="GDALRasterBand::GetRasterDataType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="gdal_h.html#a141">GDALDataType</a> GDALRasterBand::GetRasterDataType (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the pixel data type for this band.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 the data type of pixels for this band. </dl>    </td>
  </tr>
</table>
<a name="a20" doxytag="GDALRasterBand::GetScale"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
double GDALRasterBand::GetScale (
          </b></td>
          <td valign="bottom"><b>
int * <em>pbSuccess</em> = NULL&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch the raster value scale.
<p>
This value (in combination with the <a class="el" href="class_GDALRasterBand.html#a19">GetOffset</a>() value) is used to transform raw pixel values into the units returned by GetUnits().  For example this might be used to store elevations in GUInt16 bands with a precision of 0.1, and starting from -100.
<p>
Units value = (raw value * scale) + offset
<p>
For file formats that don't know this intrinsically a value of one is returned.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pbSuccess</em>
&nbsp;</td><td>
 pointer to a boolean to use to indicate if the returned value is meaningful or not. May be NULL (default).
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 the raster scale. </dl>    </td>
  </tr>
</table>
<a name="a21" doxytag="GDALRasterBand::GetUnitType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const char * GDALRasterBand::GetUnitType (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return raster unit type.
<p>
Return a name for the units of this raster's values. For instance, it might be "m" for an elevation model in meters, or "ft" for feet. If no  units are available, a value of "" will be returned. The returned string  should not be modified, nor freed by the calling application.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetRasterUnitType</a>().
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 unit name string. </dl>    </td>
  </tr>
</table>
<a name="a2" doxytag="GDALRasterBand::GetXSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
int GDALRasterBand::GetXSize (
          </b></td>
          <td valign="bottom"><b>
)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch XSize of raster.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetRasterBandXSize</a>().
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 the width in pixels of this band. </dl>    </td>
  </tr>
</table>
<a name="a3" doxytag="GDALRasterBand::GetYSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
int GDALRasterBand::GetYSize (
          </b></td>
          <td valign="bottom"><b>
)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Fetch YSize of raster.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALGetRasterBandYSize</a>().
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 the height in pixels of this band. </dl>    </td>
  </tr>
</table>
<a name="a27" doxytag="GDALRasterBand::HasArbitraryOverviews"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
int GDALRasterBand::HasArbitraryOverviews (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Check for arbitrary overviews.
<p>
This returns TRUE if the underlying datastore can compute arbitrary  overviews efficiently, such as is the case with OGDI over a network.  Datastores with arbitrary overviews don't generally have any fixed overviews, but the <a class="el" href="class_GDALRasterBand.html#a8">RasterIO</a>() method can be used in downsampling mode to get overview data efficiently.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALHasArbitraryOverviews</a>(),
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 TRUE if arbitrary overviews available (efficiently), otherwise FALSE. </dl>    </td>
  </tr>
</table>
<a name="a8" doxytag="GDALRasterBand::RasterIO"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::RasterIO (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="gdal_h.html#a143">GDALRWFlag</a> <em>eRWFlag</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nXOff</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nYOff</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nXSize</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nYSize</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
void * <em>pData</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nBufXSize</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nBufYSize</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="gdal_h.html#a141">GDALDataType</a> <em>eBufType</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nPixelSpace</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nLineSpace</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Read/write a region of image data for this band.
<p>
This method allows reading a region of a GDALRasterBand into a buffer, or writing data from a buffer into a region of a GDALRasterBand. It automatically takes care of data type translation if the data type (eBufType) of the buffer is different than that of the GDALRasterBand. The method also takes care of image decimation / replication if the buffer size (nBufXSize x nBufYSize) is different than the size of the region being accessed (nXSize x nYSize).
<p>
The nPixelSpace and nLineSpace parameters allow reading into or writing from unusually organized buffers. This is primarily used for buffers containing more than one bands raster data in interleaved format.
<p>
Some formats may efficiently implement decimation into a buffer by reading from lower resolution overview images.
<p>
For highest performance full resolution data access, read and write on "block boundaries" as returned by <a class="el" href="class_GDALRasterBand.html#a6">GetBlockSize</a>(), or use the <a class="el" href="class_GDALRasterBand.html#a9">ReadBlock</a>() and <a class="el" href="class_GDALRasterBand.html#a10">WriteBlock</a>() methods.
<p>
This method is the same as the C <a class="el" href="gdal_h.html">GDALRasterIO</a>() function.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>eRWFlag</em>
&nbsp;</td><td>
 Either GF_Read to read a region of data, or GT_Write to write a region of data.</td></tr>
<tr><td valign=top><em>nXOff</em>
&nbsp;</td><td>
 The pixel offset to the top left corner of the region of the band to be accessed. This would be zero to start from the left side.</td></tr>
<tr><td valign=top><em>nYOff</em>
&nbsp;</td><td>
 The line offset to the top left corner of the region of the band to be accessed. This would be zero to start from the top.</td></tr>
<tr><td valign=top><em>nXSize</em>
&nbsp;</td><td>
 The width of the region of the band to be accessed in pixels.</td></tr>
<tr><td valign=top><em>nYSize</em>
&nbsp;</td><td>
 The height of the region of the band to be accessed in lines.</td></tr>
<tr><td valign=top><em>pData</em>
&nbsp;</td><td>
 The buffer into which the data should be read, or from which it should be written. This buffer must contain at least nBufXSize * nBufYSize words of type eBufType. It is organized in left to right, top to bottom pixel order. Spacing is controlled by the nPixelSpace, and nLineSpace parameters.</td></tr>
<tr><td valign=top><em>nBufXSize</em>
&nbsp;</td><td>
 the width of the buffer into which the desired region is to be read, or from which it is to be written.</td></tr>
<tr><td valign=top><em>nBufYSize</em>
&nbsp;</td><td>
 the height of the buffer into which the desired region is to be read, or from which it is to be written.</td></tr>
<tr><td valign=top><em>eBufType</em>
&nbsp;</td><td>
 the type of the pixel values in the pData data buffer. The pixel values will automatically be translated to/from the GDALRasterBand data type as needed.</td></tr>
<tr><td valign=top><em>nPixelSpace</em>
&nbsp;</td><td>
 The byte offset from the start of one pixel value in pData to the start of the next pixel value within a scanline. If defaulted the size of the datatype eBufType is used.</td></tr>
<tr><td valign=top><em>nLineSpace</em>
&nbsp;</td><td>
 The byte offset from the start of one scanline in pData to the start of the next. If defaulted the size of the datatype eBufType * nBufXSize is used.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_Failure if the access fails, otherwise CE_None. </dl>    </td>
  </tr>
</table>
<a name="a9" doxytag="GDALRasterBand::ReadBlock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::ReadBlock (
          </b></td>
          <td valign="bottom"><b>
int <em>nXBlockOff</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nYBlockOff</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
void * <em>pImage</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Read a block of image data efficiently.
<p>
This method accesses a "natural" block from the raster band without resampling, or data type conversion. For a more generalized, but potentially less efficient access use <a class="el" href="class_GDALRasterBand.html#a8">RasterIO</a>().
<p>
This method is the same as the C <a class="el" href="gdal_h.html">GDALReadBlock</a>() function.
<p>
See the <a class="el" href="class_GDALRasterBand.html#a11">GetBlockRef</a>() method for a way of accessing internally cached block oriented data without an extra copy into an application buffer.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>nXBlockOff</em>
&nbsp;</td><td>
 the horizontal block offset, with zero indicating the left most block, 1 the next block and so forth.</td></tr>
<tr><td valign=top><em>nYBlockOff</em>
&nbsp;</td><td>
 the vertical block offset, with zero indicating the left most block, 1 the next block and so forth.</td></tr>
<tr><td valign=top><em>pImage</em>
&nbsp;</td><td>
 the buffer into which the data will be read. The buffer must be large enough to hold GetBlockXSize()*GetBlockYSize() words of type <a class="el" href="class_GDALRasterBand.html#a5">GetRasterDataType</a>().
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success or CE_Failure on an error.
<p>
</dl>The following code would efficiently compute a histogram of eight bit raster data. Note that the final block may be partial ... data beyond the edge of the underlying raster band in these edge blocks is of an undermined value.
<p>
<pre>
 CPLErr GetHistogram( GDALRasterBand *poBand, int *panHistogram )

 {
     int	nXBlocks, nYBlocks, nXBlockSize, nYBlockSize;
     int	iXBlock, iYBlock;

     memset( panHistogram, 0, sizeof(int) * 256 );

     CPLAssert( poBand-&gt;<a class="el" href="class_GDALRasterBand.html#a5">GetRasterDataType</a>() == GDT_Byte );

     poBand-&gt;GetBlockSize( &amp;nXBlockSize, &amp;nYBlockSize );
     nXBlocks = (poBand-&gt;<a class="el" href="class_GDALRasterBand.html#a2">GetXSize</a>() + nXBlockSize - 1) / nXBlockSize;
     nYBlocks = (poBand-&gt;<a class="el" href="class_GDALRasterBand.html#a3">GetYSize</a>() + nYBlockSize - 1) / nYBlockSize;

     pabyData = (GByte *) CPLMalloc(nXBlockSize * nYBlockSize);

     for( iYBlock = 0; iYBlock &lt; nYBlocks; iYBlock++ )
     {
         for( iXBlock = 0; iXBlock &lt; nXBlocks; iXBlock++ )
         {
             int	nXValid, nYValid;
             
             poBand-&gt;ReadBlock( iXBlock, iYBlock, pabyData );

             // Compute the portion of the block that is valid
             // for partial edge blocks.
             if( iXBlock * nXBlockSize &gt; poBand-&gt;<a class="el" href="class_GDALRasterBand.html#a2">GetXSize</a>() )
                 nXValid = poBand-&gt;<a class="el" href="class_GDALRasterBand.html#a2">GetXSize</a>() - iXBlock * nXBlockSize;
             else
                 nXValid = nXBlockSize;

             if( iYBlock * nYBlockSize &gt; poBand-&gt;<a class="el" href="class_GDALRasterBand.html#a3">GetYSize</a>() )
                 nYValid = poBand-&gt;<a class="el" href="class_GDALRasterBand.html#a2">GetXSize</a>() - iYBlock * nYBlockSize;
             else
                 nYValid = nYBlockSize;

             // Collect the histogram counts.
             for( int iY = 0; iY &lt; nXValid; iY++ )
             {
                 for( int iX = 0; iX &lt; nXValid; iX++ )
                 {
                     pabyHistogram[pabyData[iX + iY * nXBlockSize]] += 1;
                 }
             }
         }
     }
 }
 
</pre>     </td>
  </tr>
</table>
<a name="a24" doxytag="GDALRasterBand::SetCategoryNames"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::SetCategoryNames (
          </b></td>
          <td valign="bottom"><b>
char **&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the category names for this band.
<p>
See the <a class="el" href="class_GDALRasterBand.html#a15">GetCategoryNames</a>() method for more on the interpretation of category names.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALSetRasterCategoryNames</a>().<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>papszNames</em>
&nbsp;</td><td>
 the NULL terminated StringList of category names. May be NULL to just clear the existing list.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success of CE_Failure on failure. If unsupported by the driver CE_Failure is returned, but no error message is reported. </dl>    </td>
  </tr>
</table>
<a name="a26" doxytag="GDALRasterBand::SetColorTable"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::SetColorTable (
          </b></td>
          <td valign="bottom"><b>
GDALColorTable * <em>poCT</em>&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the raster color table.
<p>
The driver will make a copy of all desired data in the colortable. It remains owned by the caller after the call.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALSetRasterColorTable</a>().<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>poCT</em>
&nbsp;</td><td>
 the color table to apply.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success, or CE_Failure on failure. If the action is unsupported by the driver, a value of CE_Failure is returned, but no error is issued. </dl>    </td>
  </tr>
</table>
<a name="a25" doxytag="GDALRasterBand::SetNoDataValue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::SetNoDataValue (
          </b></td>
          <td valign="bottom"><b>
double&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the no data value for this band.
<p>
To clear the nodata value, just set it with an "out of range" value. Complex band no data values must have an imagery component of zero.
<p>
This method is the same as the C function <a class="el" href="gdal_h.html">GDALSetRasterNoDataValue</a>().<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>dfNoData</em>
&nbsp;</td><td>
 the value to set.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success, or CE_Failure on failure. If unsupported by the driver, CE_Failure is returned by no error message will have been emitted. </dl>    </td>
  </tr>
</table>
<a name="a10" doxytag="GDALRasterBand::WriteBlock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
CPLErr GDALRasterBand::WriteBlock (
          </b></td>
          <td valign="bottom"><b>
int <em>nXBlockOff</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>nYBlockOff</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
void * <em>pImage</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Write a block of image data efficiently.
<p>
This method accesses a "natural" block from the raster band without resampling, or data type conversion. For a more generalized, but potentially less efficient access use <a class="el" href="class_GDALRasterBand.html#a8">RasterIO</a>().
<p>
This method is the same as the C <a class="el" href="gdal_h.html">GDALWriteBlock</a>() function.
<p>
See <a class="el" href="class_GDALRasterBand.html#a9">ReadBlock</a>() for an example of block oriented data access.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>nXBlockOff</em>
&nbsp;</td><td>
 the horizontal block offset, with zero indicating the left most block, 1 the next block and so forth.</td></tr>
<tr><td valign=top><em>nYBlockOff</em>
&nbsp;</td><td>
 the vertical block offset, with zero indicating the left most block, 1 the next block and so forth.</td></tr>
<tr><td valign=top><em>pImage</em>
&nbsp;</td><td>
 the buffer from which the data will be written. The buffer must be large enough to hold GetBlockXSize()*GetBlockYSize() words of type <a class="el" href="class_GDALRasterBand.html#a5">GetRasterDataType</a>().
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 CE_None on success or CE_Failure on an error.
<p>
</dl>The following code would efficiently compute a histogram of eight bit raster data. Note that the final block may be partial ... data beyond the edge of the underlying raster band in these edge blocks is of an undermined value.     </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="gdal_priv_h-source.html">gdal_priv.h</a><li><a class="el" href="gdalrasterband_cpp-source.html">gdalrasterband.cpp</a><li><a class="el" href="rasterio_cpp-source.html">rasterio.cpp</a></ul>
<hr><address><small>Generated at Thu Mar 28 09:47:32 2002 for GDAL by
<a href="http://www.stack.nl/~dimitri/doxygen/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.3-20001105 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2000</small></address>
</body>
</html>