⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classgdalwarpkernel.html

📁 gdal库的学习文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>GDAL: GDALWarpKernel Class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.1 --><div class="tabs">  <ul>    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>    <li id="current"><a href="annotated.html"><span>Classes</span></a></li>    <li><a href="files.html"><span>Files</span></a></li>    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>  </ul></div><div class="tabs">  <ul>    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>  </ul></div><h1>GDALWarpKernel Class Reference</h1><!-- doxytag: class="GDALWarpKernel" --><code>#include &lt;<a class="el" href="gdalwarper_8h-source.html">gdalwarper.h</a>&gt;</code><p><a href="classGDALWarpKernel-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">CPLErr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#4e1dae4933b3aa3fe1b4c8528d320fcc">Validate</a> ()</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">CPLErr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#43c70072beacf62993b38b0aa745e630">PerformWarp</a> ()</td></tr><tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="094c574206c0fb84d8856874eca320b3"></a><!-- doxytag: member="GDALWarpKernel::papszWarpOptions" ref="094c574206c0fb84d8856874eca320b3" args="" -->char **&nbsp;</td><td class="memItemRight" valign="bottom"><b>papszWarpOptions</b></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gdalwarper_8h.html#4775b029869df1f9270ad554c0633843">GDALResampleAlg</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#235bf2537bae77434bd2eb9803e451b1">eResample</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gdal_8h.html#22e22ce0a55036a96f652765793fb7a4">GDALDataType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#46e9aa016494fcd80ef33d2e6881dee0">eWorkingDataType</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#36c4ce6aff78d00bcc1ced37aaff53f8">nBands</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#f0879fc547b62266f0748387ac4064f5">nSrcXSize</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#0458bc023ec1a065df714422a33c805f">nSrcYSize</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">GByte **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#fa3cc13ac7b215567b98222136378b5e">papabySrcImage</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">GUInt32 **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#8df0b81d44a6c5c1e231e2ff1b5c40c6">papanBandSrcValid</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">GUInt32 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#3159cc6bcf031b76a288f2c380936f84">panUnifiedSrcValid</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#a208b9321e1ba4fba7afd7f83f3d929e">pafUnifiedSrcDensity</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#12729bba83339095b7e42410d54b4017">nDstXSize</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#323e61928f42c71fb3079c3fe49c2ba3">nDstYSize</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">GByte **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#d8d4993befee8e0a631e08f9874fbafe">papabyDstImage</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">GUInt32 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#fa3d378ced7582208bcd2383a99c0963">panDstValid</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#b83a64a7241f0214339334b4221a9767">pafDstDensity</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#4be67aaba3185f65e83f857a01d3aa51">nSrcXOff</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#71e237558357f0bd4dc4af0ad2e51e12">nSrcYOff</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#22e26f62aae281d23d13d02f10284d25">nDstXOff</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#8682f0ed0266db88cfb764d1fcf2a4a9">nDstYOff</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="gdal__alg_8h.html#9ad4227ec5fd5b70637eeb6996172318">GDALTransformerFunc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#2f101096fda92d7d642d354aabd6d5ba">pfnTransformer</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#f4352e0b3d97f9e44c7656dbb7a5ca3a">pTransformerArg</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">GDALProgressFunc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#8a87cffc6776d1d165c477740ad09520">pfnProgress</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGDALWarpKernel.html#923d33138d70373a265cec48292cbca1">pProgress</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3c972b035201c33eb713e77682a5e8b0"></a><!-- doxytag: member="GDALWarpKernel::dfProgressBase" ref="3c972b035201c33eb713e77682a5e8b0" args="" -->double&nbsp;</td><td class="memItemRight" valign="bottom"><b>dfProgressBase</b></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e178549cef9b117f594a16e5193a4882"></a><!-- doxytag: member="GDALWarpKernel::dfProgressScale" ref="e178549cef9b117f594a16e5193a4882" args="" -->double&nbsp;</td><td class="memItemRight" valign="bottom"><b>dfProgressScale</b></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Low level image warping class.<p>This class is responsible for low level image warping for one "chunk" of imagery. The class is essentially a structure with all data members public - primarily so that new special-case functions can be added without changing the class declaration.<p>Applications are normally intended to interactive with warping facilities through the <a class="el" href="classGDALWarpOperation.html">GDALWarpOperation</a> class, though the <a class="el" href="classGDALWarpKernel.html">GDALWarpKernel</a> can in theory be used directly if great care is taken in setting up the control data.<p><h3>Design Issues</h3><p>My intention is that <a class="el" href="classGDALWarpKernel.html#43c70072beacf62993b38b0aa745e630">PerformWarp()</a> would analyse the setup in terms of the datatype, resampling type, and validity/density mask usage and pick one of many specific implementations of the warping algorithm over a continuim of optimization vs. generality. At one end there will be a reference general purpose implementation of the algorithm that supports any data type (working internally in double precision complex), all three resampling types, and any or all of the validity/density masks. At the other end would be highly optimized algorithms for common cases like nearest neighbour resampling on GDT_Byte data with no masks.<p>The full set of optimized versions have not been decided but we should expect to have at least:<ul><li>One for each resampling algorithm for 8bit data with no masks.</li><li>One for each resampling algorithm for float data with no masks.</li><li>One for each resampling algorithm for float data with any/all masks (essentially the generic case for just float data).</li><li>One for each resampling algorithm for 8bit data with support for input validity masks (per band or per pixel). This handles the common case of nodata masking.</li><li>One for each resampling algorithm for float data with support for input validity masks (per band or per pixel). This handles the common case of nodata masking.</li></ul><p>Some of the specializations would operate on all bands in one pass (especially the ones without masking would do this), while others might process each band individually to reduce code complexity.<p><h3>Masking Semantics</h3><p>A detailed explanation of the semantics of the validity and density masks, and their effects on resampling kernels is needed here. <p><hr><h2>Member Function Documentation</h2><a class="anchor" name="4e1dae4933b3aa3fe1b4c8528d320fcc"></a><!-- doxytag: member="GDALWarpKernel::Validate" ref="4e1dae4933b3aa3fe1b4c8528d320fcc" args="()" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">CPLErr GDALWarpKernel::Validate           </td>          <td>(</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p>Check the settings in the <a class="el" href="classGDALWarpKernel.html">GDALWarpKernel</a>, and issue a <a class="el" href="cpl__error_8h.html#ad2b98dd58e4de706a245faddac90403">CPLError()</a> (and return CE_Failure) if the configuration is considered to be invalid for some reason.<p>This method will also do some standard defaulting such as setting pfnProgress to GDALDummyProgress() if it is NULL.<p><dl class="return" compact><dt><b>Returns:</b></dt><dd>CE_None on success or CE_Failure if an error is detected. </dd></dl></div></div><p><a class="anchor" name="43c70072beacf62993b38b0aa745e630"></a><!-- doxytag: member="GDALWarpKernel::PerformWarp" ref="43c70072beacf62993b38b0aa745e630" args="()" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">CPLErr GDALWarpKernel::PerformWarp           </td>          <td>(</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p>This method performs the warp described in the <a class="el" href="classGDALWarpKernel.html">GDALWarpKernel</a>.<p><dl class="return" compact><dt><b>Returns:</b></dt><dd>CE_None on success or CE_Failure if an error occurs. </dd></dl></div></div><p><hr><h2>Member Data Documentation</h2><a class="anchor" name="235bf2537bae77434bd2eb9803e451b1"></a><!-- doxytag: member="GDALWarpKernel::eResample" ref="235bf2537bae77434bd2eb9803e451b1" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname"><a class="el" href="gdalwarper_8h.html#4775b029869df1f9270ad554c0633843">GDALResampleAlg</a> <a class="el" href="classGDALWarpKernel.html#235bf2537bae77434bd2eb9803e451b1">GDALWarpKernel::eResample</a>          </td>        </tr>      </table></div><div class="memdoc"><p>Resampling algorithm.<p>The resampling algorithm to use. One of GRA_NearestNeighbour, GRA_Bilinear, or GRA_Cubic.<p>This field is required. GDT_NearestNeighbour may be used as a default value. </div></div><p><a class="anchor" name="46e9aa016494fcd80ef33d2e6881dee0"></a><!-- doxytag: member="GDALWarpKernel::eWorkingDataType" ref="46e9aa016494fcd80ef33d2e6881dee0" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname"><a class="el" href="gdal_8h.html#22e22ce0a55036a96f652765793fb7a4">GDALDataType</a> <a class="el" href="classGDALWarpKernel.html#46e9aa016494fcd80ef33d2e6881dee0">GDALWarpKernel::eWorkingDataType</a>          </td>        </tr>      </table></div><div class="memdoc"><p>Working pixel data type.<p>The datatype of pixels in the source image (papabySrcimage) and destination image (papabyDstImage) buffers. Note that operations on some data types (such as GDT_Byte) may be much better optimized than other less common cases.<p>This field is required. It may not be GDT_Unknown. </div></div><p><a class="anchor" name="36c4ce6aff78d00bcc1ced37aaff53f8"></a><!-- doxytag: member="GDALWarpKernel::nBands" ref="36c4ce6aff78d00bcc1ced37aaff53f8" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int <a class="el" href="classGDALWarpKernel.html#36c4ce6aff78d00bcc1ced37aaff53f8">GDALWarpKernel::nBands</a>          </td>        </tr>      </table></div><div class="memdoc"><p>Number of bands.<p>The number of bands (layers) of imagery being warped. Determines the number of entries in the papabySrcImage, papanBandSrcValid, and papabyDstImage arrays.<p>This field is required. </div></div><p><a class="anchor" name="f0879fc547b62266f0748387ac4064f5"></a><!-- doxytag: member="GDALWarpKernel::nSrcXSize" ref="f0879fc547b62266f0748387ac4064f5" args="" -->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -