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

📄 gdalinfo.c.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: Simple C Example: gdalinfo.c</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><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><h1><a class="anchor" name="gdalinfo.c">Simple C Example: gdalinfo.c</a></h1><div class="fragment"><pre class="fragment"><span class="comment">/******************************************************************************</span><span class="comment"> * $Id: gdalinfo.c 10646 2007-01-18 02:38:10Z warmerdam $</span><span class="comment"> *</span><span class="comment"> * Project:  GDAL Utilities</span><span class="comment"> * Purpose:  Commandline application to list info about a file.</span><span class="comment"> * Author:   Frank Warmerdam, warmerdam@pobox.com</span><span class="comment"> *</span><span class="comment"> * ****************************************************************************</span><span class="comment"> * Copyright (c) 1998, Frank Warmerdam</span><span class="comment"> *</span><span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a</span><span class="comment"> * copy of this software and associated documentation files (the "Software"),</span><span class="comment"> * to deal in the Software without restriction, including without limitation</span><span class="comment"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</span><span class="comment"> * and/or sell copies of the Software, and to permit persons to whom the</span><span class="comment"> * Software is furnished to do so, subject to the following conditions:</span><span class="comment"> *</span><span class="comment"> * The above copyright notice and this permission notice shall be included</span><span class="comment"> * in all copies or substantial portions of the Software.</span><span class="comment"> *</span><span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span><span class="comment"> * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span><span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL</span><span class="comment"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span><span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span><span class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</span><span class="comment"> * DEALINGS IN THE SOFTWARE.</span><span class="comment"> ****************************************************************************/</span><span class="preprocessor">#include "<a class="code" href="gdal_8h.html">gdal.h</a>"</span><span class="preprocessor">#include "ogr_srs_api.h"</span><span class="preprocessor">#include "<a class="code" href="cpl__string_8h.html">cpl_string.h</a>"</span><span class="preprocessor">#include "<a class="code" href="cpl__conv_8h.html">cpl_conv.h</a>"</span><span class="preprocessor">#include "cpl_multiproc.h"</span>CPL_CVSID(<span class="stringliteral">"$Id: gdalinfo.c 10646 2007-01-18 02:38:10Z warmerdam $"</span>);<span class="keyword">static</span> <span class="keywordtype">int</span> GDALInfoReportCorner( GDALDatasetH hDataset,                       <span class="keyword">const</span> <span class="keywordtype">char</span> * corner_name,                      <span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y );<span class="comment">/************************************************************************/</span><span class="comment">/*                               Usage()                                */</span><span class="comment">/************************************************************************/</span><span class="keywordtype">void</span> Usage(){    printf( <span class="stringliteral">"Usage: gdalinfo [--help-general] [-mm] [-stats] [-nogcp] [-nomd]\n"</span>            <span class="stringliteral">"                [-mdd domain]* datasetname\n"</span> );    exit( 1 );}<span class="comment">/************************************************************************/</span><span class="comment">/*                                main()                                */</span><span class="comment">/************************************************************************/</span><span class="keywordtype">int</span> main( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv ){    GDALDatasetH        hDataset;    GDALRasterBandH     hBand;    <span class="keywordtype">int</span>                 i, iBand;    <span class="keywordtype">double</span>              adfGeoTransform[6];    GDALDriverH         hDriver;    <span class="keywordtype">char</span>                **papszMetadata;    <span class="keywordtype">int</span>                 bComputeMinMax = FALSE, bSample = FALSE;    <span class="keywordtype">int</span>                 bShowGCPs = TRUE, bShowMetadata = TRUE ;    <span class="keywordtype">int</span>                 bStats = FALSE, iMDD;    <span class="keyword">const</span> <span class="keywordtype">char</span>          *pszFilename = NULL;    <span class="keywordtype">char</span>              **papszExtraMDDomains = NULL;    <a class="code" href="gdal_8h.html#9d40bc998bd6ed07ccde96028e85ae26">GDALAllRegister</a>();    argc = <a class="code" href="gdal_8h.html#2b7575efeff58aeafc3d8e9170ff902b">GDALGeneralCmdLineProcessor</a>( argc, &amp;argv, 0 );    <span class="keywordflow">if</span>( argc &lt; 1 )        exit( -argc );<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Parse arguments.                                                */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    <span class="keywordflow">for</span>( i = 1; i &lt; argc; i++ )    {        <span class="keywordflow">if</span>( EQUAL(argv[i], <span class="stringliteral">"-mm"</span>) )            bComputeMinMax = TRUE;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>( EQUAL(argv[i], <span class="stringliteral">"-stats"</span>) )            bStats = TRUE;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>( EQUAL(argv[i], <span class="stringliteral">"-sample"</span>) )            bSample = TRUE;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>( EQUAL(argv[i], <span class="stringliteral">"-nogcp"</span>) )            bShowGCPs = FALSE;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>( EQUAL(argv[i], <span class="stringliteral">"-nomd"</span>) )            bShowMetadata = FALSE;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>( EQUAL(argv[i], <span class="stringliteral">"-mdd"</span>) &amp;&amp; i &lt; argc-1 )            papszExtraMDDomains = CSLAddString( papszExtraMDDomains,                                                argv[++i] );        <span class="keywordflow">else</span> <span class="keywordflow">if</span>( argv[i][0] == <span class="charliteral">'-'</span> )            Usage();        <span class="keywordflow">else</span> <span class="keywordflow">if</span>( pszFilename == NULL )            pszFilename = argv[i];        <span class="keywordflow">else</span>            Usage();    }    <span class="keywordflow">if</span>( pszFilename == NULL )        Usage();<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Open dataset.                                                   */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    hDataset = <a class="code" href="gdal_8h.html#e97be045eb4701183ad332ffce29745b">GDALOpen</a>( pszFilename, <a class="code" href="gdal_8h.html#045e3967c208993f70257bfd40c9f1d75a021a550b9d5640307d3c0e7e35b732">GA_ReadOnly</a> );        <span class="keywordflow">if</span>( hDataset == NULL )    {        fprintf( stderr,                 <span class="stringliteral">"GDALOpen failed - %d\n%s\n"</span>,                 CPLGetLastErrorNo(), CPLGetLastErrorMsg() );        CSLDestroy( argv );            <a class="code" href="gdal_8h.html#2cdae7717eedb8be9a501eea37a2bbc9">GDALDumpOpenDatasets</a>( stderr );        <a class="code" href="gdal_8h.html#4769d3eda338f797b30405062deb9180">GDALDestroyDriverManager</a>();        CPLDumpSharedList( NULL );        exit( 1 );    }    <span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Report general info.                                            */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    hDriver = <a class="code" href="gdal_8h.html#115e56894fda0a51ad99820b1bc38391">GDALGetDatasetDriver</a>( hDataset );    printf( <span class="stringliteral">"Driver: %s/%s\n"</span>,            GDALGetDriverShortName( hDriver ),            GDALGetDriverLongName( hDriver ) );    printf( <span class="stringliteral">"Size is %d, %d\n"</span>,            <a class="code" href="gdal_8h.html#4ef08b38a70b6e04f25a81bd82ef0138">GDALGetRasterXSize</a>( hDataset ),             <a class="code" href="gdal_8h.html#e0c0af31441c6bac994f35ac26c82f99">GDALGetRasterYSize</a>( hDataset ) );<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Report projection.                                              */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    <span class="keywordflow">if</span>( <a class="code" href="gdal_8h.html#639a11014cf6c4ff30df6f21d5db9da2">GDALGetProjectionRef</a>( hDataset ) != NULL )    {        OGRSpatialReferenceH  hSRS;        <span class="keywordtype">char</span>                  *pszProjection;        pszProjection = (<span class="keywordtype">char</span> *) <a class="code" href="gdal_8h.html#639a11014cf6c4ff30df6f21d5db9da2">GDALGetProjectionRef</a>( hDataset );        hSRS = OSRNewSpatialReference(NULL);        <span class="keywordflow">if</span>( OSRImportFromWkt( hSRS, &amp;pszProjection ) == CE_None )        {            <span class="keywordtype">char</span>        *pszPrettyWkt = NULL;            OSRExportToPrettyWkt( hSRS, &amp;pszPrettyWkt, FALSE );            printf( <span class="stringliteral">"Coordinate System is:\n%s\n"</span>, pszPrettyWkt );            CPLFree( pszPrettyWkt );        }        <span class="keywordflow">else</span>            printf( <span class="stringliteral">"Coordinate System is `%s'\n"</span>,                    <a class="code" href="gdal_8h.html#639a11014cf6c4ff30df6f21d5db9da2">GDALGetProjectionRef</a>( hDataset ) );        OSRDestroySpatialReference( hSRS );    }<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Report Geotransform.                                            */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    <span class="keywordflow">if</span>( <a class="code" href="gdal_8h.html#df94718221d264fc798043e13adf8c8f">GDALGetGeoTransform</a>( hDataset, adfGeoTransform ) == CE_None )    {        <span class="keywordflow">if</span>( adfGeoTransform[2] == 0.0 &amp;&amp; adfGeoTransform[4] == 0.0 )        {            printf( <span class="stringliteral">"Origin = (%.15f,%.15f)\n"</span>,                    adfGeoTransform[0], adfGeoTransform[3] );            printf( <span class="stringliteral">"Pixel Size = (%.15f,%.15f)\n"</span>,                    adfGeoTransform[1], adfGeoTransform[5] );        }        <span class="keywordflow">else</span>            printf( <span class="stringliteral">"GeoTransform =\n"</span>                    <span class="stringliteral">"  %.16g, %.16g, %.16g\n"</span>

⌨️ 快捷键说明

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