<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi there,</p>
<p><br>
</p>
<p>I am trying to use C API defined in gdal_utils.h.</p>
<p><br>
</p>
<p>By reading the RFC 59.1 I understand that the SWIG wrappers will have a nice interface to pass the parameters [1], ex.:</p>
<p></p>
<pre class="wiki">          format --- output format ("GTiff", etc...)
          outputType --- output type (gdal.GDT_Byte, etc...)
          bandList --- array of band numbers (index start at 1)
          srcWin --- subwindow in pixels to extract: [left_x, top_y, width, height]</pre>
<p>But it seems like for C, the only way to pass the parameters will be by passing "char** papszArgv" in the same fashion as GDAL command line.</p>
<p></p>
<br>
<p></p>
<p>That doesn't seems to be fair with poor C programmers like me. We would need to translate things like "format=XXX" to "-of XXX" and "outputType=XXX" to "-ot XXX" for all the options and all the utilities.</p>
<p><br>
</p>
<p>The GDALTranslateOptions is opaque [2], so we cannot access it's member either. See commented line and the error message:<br>
</p>
<p><br>
</p>
<p><span style="font-family: "Courier New",monospace;">       GDALTranslateOptions* psOptions = GDALTranslateOptionsNew( papszArgv, NULL );</span></p>
<p><span style="font-family: "Courier New",monospace;"></span><br>
</p>
<p><span style="font-family: "Courier New",monospace;">//     psOptions->pszFormat = pszOutDriver; // error: dereferencing pointer to incomplete type</span></p>
<p><span style="font-family: "Courier New",monospace;"></span><br>
</p>
<span style="font-family: "Courier New",monospace;">       hDstDataset = GDALTranslate(</span><br>
<span style="font-family: "Courier New",monospace;">           (const char*) pszOutFilename,</span><br>
<span style="font-family: "Courier New",monospace;">           (GDALDatasetH) hSrcDataset,</span><br>
<span style="font-family: "Courier New",monospace;">           (const GDALTranslateOptions*) psOptions,</span><br>
<p><span style="font-family: "Courier New",monospace;">           (int*) NULL );</span></p>
<p><span style="font-family: "Courier New",monospace;"></span><br>
</p>
<span style="font-family: "Courier New",monospace;">       GDALTranslateOptionsFree( psOptions );</span><br>
<br>
<p>Is there any other way to pass the parameters to the GDAL "Utilities as Libraries" in C?<br>
</p>
<br>
<p>Thanks,</p>
<p>Ivan<br>
</p>
<p><br>
</p>
<p>[1] - <a previewremoved="true" id="LPlnk994830" href="https://trac.osgeo.org/gdal/wiki/rfc59.1_utilities_as_a_library" class="OWAAutoLink">
https://trac.osgeo.org/gdal/wiki/rfc59.1_utilities_as_a_library</a></p>
<p>[2] - <a previewremoved="true" id="LPlnk685251" href="http://www.gdal.org/gdal__utils_8h.html" class="OWAAutoLink">
http://www.gdal.org/gdal__utils_8h.html</a><br>
</p>
<br>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
</div>
</body>
</html>