| 1577 | | if( ( !EQUAL( poDS->papszName[0], "NETCDF" ) ) ) { |
|---|
| | 1579 | /* -------------------------------------------------------------------- */ |
|---|
| | 1580 | /* Verify if only one variable has 2 dimensions */ |
|---|
| | 1581 | /* -------------------------------------------------------------------- */ |
|---|
| | 1582 | for ( j = 0; j < nvars; j++ ) { |
|---|
| | 1583 | |
|---|
| | 1584 | nc_inq_varndims ( cdfid, j, &ndims ); |
|---|
| | 1585 | if( ndims >= 2 ) { |
|---|
| | 1586 | nVarID=j; |
|---|
| | 1587 | nCount++; |
|---|
| | 1588 | } |
|---|
| | 1589 | } |
|---|
| | 1590 | |
|---|
| | 1591 | /* -------------------------------------------------------------------- */ |
|---|
| | 1592 | /* We have more than one variable with 2 dimensions in the file */ |
|---|
| | 1593 | /* -------------------------------------------------------------------- */ |
|---|
| | 1594 | if( (nCount > 1) && ( !EQUAL( poDS->papszName[0], "NETCDF" ) ) ) { |
|---|
| 1582 | | |
|---|
| | 1599 | /* -------------------------------------------------------------------- */ |
|---|
| | 1600 | /* If we have only one varialbe */ |
|---|
| | 1601 | /* Generate a new filename with format NETCDF:"filename":subdataset */ |
|---|
| | 1602 | /* -------------------------------------------------------------------- */ |
|---|
| | 1603 | if( ( nCount == 1 ) && ( !EQUAL( poDS->papszName[0], "NETCDF" ) ) ){ |
|---|
| | 1604 | CPLFree( poDS->pszFilename ); |
|---|
| | 1605 | CSLDestroy( poDS->papszName ); |
|---|
| | 1606 | |
|---|
| | 1607 | char pszNETCDFFilename[NC_MAX_NAME]; |
|---|
| | 1608 | char szVarName[NC_MAX_NAME]; |
|---|
| | 1609 | |
|---|
| | 1610 | nc_inq_varname( cdfid, nVarID, szVarName); |
|---|
| | 1611 | |
|---|
| | 1612 | strcpy( pszNETCDFFilename,"NETCDF:" ); |
|---|
| | 1613 | strcat( pszNETCDFFilename,poOpenInfo->pszFilename ); |
|---|
| | 1614 | strcat( pszNETCDFFilename,":" ); |
|---|
| | 1615 | strcat( pszNETCDFFilename, szVarName ); |
|---|
| | 1616 | |
|---|
| | 1617 | CPLDebug( "GDAL_netCDF", "NETCDFFilename = %s\n", |
|---|
| | 1618 | pszNETCDFFilename); |
|---|
| | 1619 | |
|---|
| | 1620 | poDS->papszName = CSLTokenizeString2( pszNETCDFFilename, |
|---|
| | 1621 | ":", CSLT_HONOURSTRINGS ); |
|---|
| | 1622 | poDS->pszFilename = strdup( pszNETCDFFilename ); |
|---|
| | 1623 | |
|---|
| | 1624 | |
|---|
| | 1625 | } |
|---|