[gdal-dev] CADRG subdataset access help
Christiaan Janssen
cjanssen at iavo-rs.com
Mon Jul 28 07:57:28 EDT 2008
Your help is invaluable, thanks again.
Christiaan
-----Original Message-----
From: Frank Warmerdam [mailto:warmerdam at pobox.com]
Sent: Friday, July 25, 2008 4:54 PM
To: Christiaan Janssen
Cc: gdal-dev at lists.osgeo.org
Subject: Re: [gdal-dev] CADRG subdataset access help
Christiaan Janssen wrote:
> I'm working programmatically. I sort of understand the mechanism described in the suggested document but would greatly appreciate a short snippet to show how one goes about opening the subdataset. I'm guessing in the example described on the web page that to open the first dataset I would call GDALOpen as follows:
>
> GDALOpen("NITF_IM:0:multi_1b.ntf", GDALAccess::GA_ReadOnly);
Christiaan,
Yes, though you don't normally need to qualify GA_ReadOnly. The following code chunk out of gdal_translate (used to recurse over subdatasets) might also be helpful.
/* -------------------------------------------------------------------- */
/* Handle subdatasets. */
/* -------------------------------------------------------------------- */
if( CSLCount(GDALGetMetadata( hDataset, "SUBDATASETS" )) > 0 )
{
if( !bCopySubDatasets )
{
fprintf( stderr,
"Input file contains subdatasets. Please, select one of them for reading.\n" );
}
else
{
char **papszSubdatasets = GDALGetMetadata(hDataset,"SUBDATASETS");
char *pszSubDest = (char *) CPLMalloc(strlen(pszDest)+32);
int i;
int bOldSubCall = bSubCall;
argv[iDstFileArg] = pszSubDest;
bSubCall = TRUE;
for( i = 0; papszSubdatasets[i] != NULL; i += 2 )
{
argv[iSrcFileArg] = strstr(papszSubdatasets[i],"=")+1;
sprintf( pszSubDest, "%s%d", pszDest, i/2 + 1 );
if( ProxyMain( argc, argv ) != 0 )
break;
}
bSubCall = bOldSubCall;
CPLFree( pszSubDest );
}
GDALClose( hDataset );
if( !bSubCall )
{
GDALDumpOpenDatasets( stderr );
GDALDestroyDriverManager();
}
return 1;
}
--
---------------------------------------+--------------------------------
---------------------------------------+------
I set the clouds in motion - turn up | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | President OSGeo, http://osgeo.org
More information about the gdal-dev
mailing list