📄 gdalinfo.c.html
字号:
<span class="stringliteral">" %.16g, %.16g, %.16g\n"</span>, adfGeoTransform[0], adfGeoTransform[1], adfGeoTransform[2], adfGeoTransform[3], adfGeoTransform[4], adfGeoTransform[5] ); }<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/* Report GCPs. */</span><span class="comment">/* -------------------------------------------------------------------- */</span> <span class="keywordflow">if</span>( bShowGCPs && <a class="code" href="gdal_8h.html#cb5f3db440085f54402d9ba842bf1fc3">GDALGetGCPCount</a>( hDataset ) > 0 ) { printf( <span class="stringliteral">"GCP Projection = %s\n"</span>, <a class="code" href="gdal_8h.html#9de50ea77a57cb6bc84afdc658288c08">GDALGetGCPProjection</a>(hDataset) ); <span class="keywordflow">for</span>( i = 0; i < <a class="code" href="gdal_8h.html#cb5f3db440085f54402d9ba842bf1fc3">GDALGetGCPCount</a>(hDataset); i++ ) { <span class="keyword">const</span> <a class="code" href="structGDAL__GCP.html">GDAL_GCP</a> *psGCP; psGCP = <a class="code" href="gdal_8h.html#c301b5c545843cf2ef672a831153d1e3">GDALGetGCPs</a>( hDataset ) + i; printf( <span class="stringliteral">"GCP[%3d]: Id=%s, Info=%s\n"</span> <span class="stringliteral">" (%.15g,%.15g) -> (%.15g,%.15g,%.15g)\n"</span>, i, psGCP->pszId, psGCP->pszInfo, psGCP->dfGCPPixel, psGCP->dfGCPLine, psGCP->dfGCPX, psGCP->dfGCPY, psGCP->dfGCPZ ); } }<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/* Report metadata. */</span><span class="comment">/* -------------------------------------------------------------------- */</span> papszMetadata = <a class="code" href="gdal_8h.html#25929a66e99d92c2788485ecf13e2e82">GDALGetMetadata</a>( hDataset, NULL ); <span class="keywordflow">if</span>( bShowMetadata && CSLCount(papszMetadata) > 0 ) { printf( <span class="stringliteral">"Metadata:\n"</span> ); <span class="keywordflow">for</span>( i = 0; papszMetadata[i] != NULL; i++ ) { printf( <span class="stringliteral">" %s\n"</span>, papszMetadata[i] ); } } <span class="keywordflow">for</span>( iMDD = 0; iMDD < CSLCount(papszExtraMDDomains); iMDD++ ) { papszMetadata = <a class="code" href="gdal_8h.html#25929a66e99d92c2788485ecf13e2e82">GDALGetMetadata</a>( hDataset, papszExtraMDDomains[iMDD] ); <span class="keywordflow">if</span>( bShowMetadata && CSLCount(papszMetadata) > 0 ) { printf( <span class="stringliteral">"Metadata (%s):\n"</span>, papszExtraMDDomains[iMDD]); <span class="keywordflow">for</span>( i = 0; papszMetadata[i] != NULL; i++ ) { printf( <span class="stringliteral">" %s\n"</span>, papszMetadata[i] ); } } }<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/* Report "IMAGE_STRUCTURE" metadata. */</span><span class="comment">/* -------------------------------------------------------------------- */</span> papszMetadata = <a class="code" href="gdal_8h.html#25929a66e99d92c2788485ecf13e2e82">GDALGetMetadata</a>( hDataset, <span class="stringliteral">"IMAGE_STRUCTURE"</span> ); <span class="keywordflow">if</span>( bShowMetadata && CSLCount(papszMetadata) > 0 ) { printf( <span class="stringliteral">"Image Structure Metadata:\n"</span> ); <span class="keywordflow">for</span>( i = 0; papszMetadata[i] != NULL; i++ ) { printf( <span class="stringliteral">" %s\n"</span>, papszMetadata[i] ); } }<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/* Report subdatasets. */</span><span class="comment">/* -------------------------------------------------------------------- */</span> papszMetadata = <a class="code" href="gdal_8h.html#25929a66e99d92c2788485ecf13e2e82">GDALGetMetadata</a>( hDataset, <span class="stringliteral">"SUBDATASETS"</span> ); <span class="keywordflow">if</span>( CSLCount(papszMetadata) > 0 ) { printf( <span class="stringliteral">"Subdatasets:\n"</span> ); <span class="keywordflow">for</span>( i = 0; papszMetadata[i] != NULL; i++ ) { printf( <span class="stringliteral">" %s\n"</span>, papszMetadata[i] ); } }<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/* Report geolocation. */</span><span class="comment">/* -------------------------------------------------------------------- */</span> papszMetadata = <a class="code" href="gdal_8h.html#25929a66e99d92c2788485ecf13e2e82">GDALGetMetadata</a>( hDataset, <span class="stringliteral">"GEOLOCATION"</span> ); <span class="keywordflow">if</span>( CSLCount(papszMetadata) > 0 ) { printf( <span class="stringliteral">"Geolocation:\n"</span> ); <span class="keywordflow">for</span>( i = 0; papszMetadata[i] != NULL; i++ ) { printf( <span class="stringliteral">" %s\n"</span>, papszMetadata[i] ); } }<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/* Report corners. */</span><span class="comment">/* -------------------------------------------------------------------- */</span> printf( <span class="stringliteral">"Corner Coordinates:\n"</span> ); GDALInfoReportCorner( hDataset, <span class="stringliteral">"Upper Left"</span>, 0.0, 0.0 ); GDALInfoReportCorner( hDataset, <span class="stringliteral">"Lower Left"</span>, 0.0, <a class="code" href="gdal_8h.html#e0c0af31441c6bac994f35ac26c82f99">GDALGetRasterYSize</a>(hDataset)); GDALInfoReportCorner( hDataset, <span class="stringliteral">"Upper Right"</span>, <a class="code" href="gdal_8h.html#4ef08b38a70b6e04f25a81bd82ef0138">GDALGetRasterXSize</a>(hDataset), 0.0 ); GDALInfoReportCorner( hDataset, <span class="stringliteral">"Lower Right"</span>, <a class="code" href="gdal_8h.html#4ef08b38a70b6e04f25a81bd82ef0138">GDALGetRasterXSize</a>(hDataset), <a class="code" href="gdal_8h.html#e0c0af31441c6bac994f35ac26c82f99">GDALGetRasterYSize</a>(hDataset) ); GDALInfoReportCorner( hDataset, <span class="stringliteral">"Center"</span>, <a class="code" href="gdal_8h.html#4ef08b38a70b6e04f25a81bd82ef0138">GDALGetRasterXSize</a>(hDataset)/2.0, <a class="code" href="gdal_8h.html#e0c0af31441c6bac994f35ac26c82f99">GDALGetRasterYSize</a>(hDataset)/2.0 );<span class="comment">/* ==================================================================== */</span><span class="comment">/* Loop over bands. */</span><span class="comment">/* ==================================================================== */</span> <span class="keywordflow">for</span>( iBand = 0; iBand < <a class="code" href="gdal_8h.html#1b9f888aac1cb4dbc99dc1dc023174b7">GDALGetRasterCount</a>( hDataset ); iBand++ ) { <span class="keywordtype">double</span> dfMin, dfMax, adfCMinMax[2], dfNoData; <span class="keywordtype">int</span> bGotMin, bGotMax, bGotNodata, bSuccess; <span class="keywordtype">int</span> nBlockXSize, nBlockYSize; <span class="keywordtype">double</span> dfMean, dfStdDev; GDALColorTableH hTable; CPLErr eErr; hBand = <a class="code" href="gdal_8h.html#2a74e5e34528589303c1521ebfb9c162">GDALGetRasterBand</a>( hDataset, iBand+1 ); <span class="keywordflow">if</span>( bSample ) { <span class="keywordtype">float</span> afSample[10000]; <span class="keywordtype">int</span> nCount; nCount = GDALGetRandomRasterSample( hBand, 10000, afSample ); printf( <span class="stringliteral">"Got %d samples.\n"</span>, nCount ); } <a class="code" href="gdal_8h.html#174cd06c70a4534f4f00d0427f77f45a">GDALGetBlockSize</a>( hBand, &nBlockXSize, &nBlockYSize ); printf( <span class="stringliteral">"Band %d Block=%dx%d Type=%s, ColorInterp=%s\n"</span>, iBand+1, nBlockXSize, nBlockYSize, <a class="code" href="gdal_8h.html#33b543bd0b1e36598abb7fa9fd39add7">GDALGetDataTypeName</a>( <a class="code" href="gdal_8h.html#2edba2a096915aa63e7ca0bf4c383bd0">GDALGetRasterDataType</a>(hBand)), <a class="code" href="gdal_8h.html#d22541da614932e0c34028fe6fc08074">GDALGetColorInterpretationName</a>( <a class="code" href="gdal_8h.html#ec13128878a5f4e4a96605c4b6c71d6f">GDALGetRasterColorInterpretation</a>(hBand)) ); <span class="keywordflow">if</span>( <a class="code" href="gdal_8h.html#cf7272f513f436a95572116ca9fb8885">GDALGetDescription</a>( hBand ) != NULL && strlen(<a class="code" href="gdal_8h.html#cf7272f513f436a95572116ca9fb8885">GDALGetDescription</a>( hBand )) > 0 ) printf( <span class="stringliteral">" Description = %s\n"</span>, <a class="code" href="gdal_8h.html#cf7272f513f436a95572116ca9fb8885">GDALGetDescription</a>(hBand) ); dfMin = <a class="code" href="gdal_8h.html#3a2e32244e8e906238171efa0af767ba">GDALGetRasterMinimum</a>( hBand, &bGotMin ); dfMax = <a class="code" href="gdal_8h.html#403a61b92434a77717488915a5e615cb">GDALGetRasterMaximum</a>( hBand, &bGotMax ); <span class="keywordflow">if</span>( bGotMin || bGotMax || bComputeMinMax ) { printf( <span class="stringliteral">" "</span> ); <span class="keywordflow">if</span>( bGotMin ) printf( <span class="stringliteral">"Min=%.3f "</span>, dfMin ); <span class="keywordflow">if</span>( bGotMax ) printf( <span class="stringliteral">"Max=%.3f "</span>, dfMax ); <span class="keywordflow">if</span>( bComputeMinMax ) { <a class="code" href="gdal_8h.html#2b36986db233e04861c43a6d3ae893e2">GDALComputeRasterMinMax</a>( hBand, FALSE, adfCMinMax ); printf( <span class="stringliteral">" Computed Min/Max=%.3f,%.3f"</span>, adfCMinMax[0], adfCMinMax[1] ); } printf( <span class="stringliteral">"\n"</span> ); } eErr = GDALGetRasterStatistics( hBand, FALSE, bStats, &dfMin, &dfMax, &dfMean, &dfStdDev ); <span class="keywordflow">if</span>( eErr == CE_None ) { printf( <span class="stringliteral">" Minimum=%.3f, Maximum=%.3f, Mean=%.3f, StdDev=%.3f\n"</span>, dfMin, dfMax, dfMean, dfStdDev ); } dfNoData = <a class="code" href="gdal_8h.html#087441349e8ce2285c405fabf662aeaf">GDALGetRasterNoDataValue</a>( hBand, &bGotNodata ); <span class="keywordflow">if</span>( bGotNodata ) { printf( <span class="stringliteral">" NoData Value=%.15g\n"</span>, dfNoData ); } <span class="keywordflow">if</span>( <a class="code" href="gdal_8h.html#16b185b8a771a65cc26077e3b54887bc">GDALGetOverviewCount</a>(hBand) > 0 ) { <span class="keywordtype">int</span> iOverview; printf( <span class="stringliteral">" Overviews: "</span> ); <span class="keywordflow">for</span>( iOverview = 0; iOverview < <a class="code" href="gdal_8h.html#16b185b8a771a65cc26077e3b54887bc">GDALGetOverviewCount</a>(hBand); iOverview++ ) { GDALRasterBandH hOverview; <span class="keywordflow">if</span>( iOverview != 0 ) printf( <span class="stringliteral">", "</span> ); hOverview = <a class="code" href="gdal_8h.html#00bba92f9b0c9e56e724ed07aca451b1">GDALGetOverview</a>( hBand, iOverview ); printf( <span class="stringliteral">"%dx%d"</span>, <a class="code" href="gdal_8h.html#25c74f44562ceb26b2efe2f1f28f9b5f">GDALGetRasterBandXSize</a>( hOverview ), <a class="code" href="gdal_8h.html#73b9be134e720404e06942dac6f4006e">GDALGetRasterBandYSize</a>( hOverview ) );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -