@@ -876,10 +876,10 @@ int QgsGdalProvider::yBlockSize() const
876
876
int QgsGdalProvider::xSize () const { return mWidth ; }
877
877
int QgsGdalProvider::ySize () const { return mHeight ; }
878
878
879
- QString QgsGdalProvider::generateBandName ( int BandNo ) const
879
+ QString QgsGdalProvider::generateBandName ( int theBandNumber ) const
880
880
{
881
881
#ifdef GDAL_COMPUTE_VERSION /* only available in GDAL 1.10 or later */
882
- #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(1,10,0)
882
+ #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(1,10,0)
883
883
if ( strcmp ( GDALGetDriverShortName ( GDALGetDatasetDriver ( mGdalDataset ) ), " netCDF" ) == 0 )
884
884
{
885
885
char ** GDALmetadata = GDALGetMetadata ( mGdalDataset , NULL );
@@ -890,60 +890,62 @@ QString QgsGdalProvider::generateBandName( int BandNo ) const
890
890
QStringList dimExtraValues;
891
891
QMap< QString, QString > unitsMap;
892
892
for ( QStringList::const_iterator i = metadata.begin ();
893
- i != metadata.end ();
894
- ++i )
893
+ i != metadata.end (); ++i )
895
894
{
896
- QString val (*i );
895
+ QString val ( *i );
897
896
if ( !val.startsWith ( " NETCDF_DIM_EXTRA" ) && !val.contains ( " #units=" ) )
898
897
continue ;
899
898
QStringList values = val.split ( " =" );
900
899
val = values.at ( 1 );
901
- if ( values.at ( 0 ) == " NETCDF_DIM_EXTRA" ) {
902
- dimExtraValues = val.replace (QString (" {" ), QString (" " )).replace (QString (" }" ), QString (" " )).split (" ," );
900
+ if ( values.at ( 0 ) == " NETCDF_DIM_EXTRA" )
901
+ {
902
+ dimExtraValues = val.replace ( QString ( " {" ), QString ( " " ) ).replace ( QString ( " }" ), QString ( " " ) ).split ( " ," );
903
903
// http://qt-project.org/doc/qt-4.8/qregexp.html#capturedTexts
904
- } else {
905
- unitsMap[ values.at (0 ).split ( " #" ).at (0 ) ] = val;
904
+ }
905
+ else
906
+ {
907
+ unitsMap[ values.at ( 0 ).split ( " #" ).at ( 0 )] = val;
906
908
}
907
909
}
908
910
if ( dimExtraValues.count () > 0 )
909
911
{
910
912
QStringList bandNameValues;
911
- GDALRasterBandH gdalBand = GDALGetRasterBand ( mGdalDataset , BandNo );
913
+ GDALRasterBandH gdalBand = GDALGetRasterBand ( mGdalDataset , theBandNumber );
912
914
GDALmetadata = GDALGetMetadata ( gdalBand, NULL );
913
915
914
916
if ( GDALmetadata )
915
917
{
916
918
metadata = cStringList2Q_ ( GDALmetadata );
917
919
for ( QStringList::const_iterator i = metadata.begin ();
918
- i != metadata.end ();
919
- ++i )
920
+ i != metadata.end (); ++i )
920
921
{
921
- QString val (*i );
922
+ QString val ( *i );
922
923
if ( !val.startsWith ( " NETCDF_DIM_" ) )
923
924
continue ;
924
925
QStringList values = val.split ( " =" );
925
926
for ( QStringList::const_iterator j = dimExtraValues.begin ();
926
- j != dimExtraValues.end ();
927
- ++j )
927
+ j != dimExtraValues.end (); ++j )
928
928
{
929
- QString dim = (*j );
930
- if ( values.at ( 0 ) != " NETCDF_DIM_" + dim )
929
+ QString dim = ( *j );
930
+ if ( values.at ( 0 ) != " NETCDF_DIM_" + dim )
931
931
continue ;
932
- if ( unitsMap.contains ( dim ) )
933
- bandNameValues.append ( values.at (1 )+ " " + unitsMap[ dim ] );
932
+ if ( unitsMap.contains ( dim ) && unitsMap[ dim ] != " " && unitsMap[ dim ] != " none " )
933
+ bandNameValues.append ( dim + " = " + values.at ( 1 ) + " ( " + unitsMap[ dim ] + " ) " );
934
934
else
935
- bandNameValues.append ( values.at (1 ) );
935
+ bandNameValues.append ( dim + " = " + values.at ( 1 ) );
936
936
}
937
937
}
938
938
}
939
+
939
940
if ( bandNameValues.count () > 0 )
940
- return bandNameValues.join (" " );
941
+ return tr ( " Band " ) + QString ( " %1 / %2 " ) . arg ( theBandNumber, 1 + ( int ) log10 (( float ) bandCount () ), 10 , QChar ( ' 0 ' ) ). arg ( bandNameValues.join ( " / " ) );
941
942
}
942
943
}
943
944
}
944
945
#endif
945
946
#endif
946
- return tr ( " Band" ) + QString ( " %1" ) .arg ( BandNo, 1 + ( int ) log10 (( float ) bandCount () ), 10 , QChar ( ' 0' ) );
947
+
948
+ return QgsRasterDataProvider::generateBandName ( theBandNumber );
947
949
}
948
950
949
951
QgsRasterIdentifyResult QgsGdalProvider::identify ( const QgsPoint & thePoint, QgsRaster::IdentifyFormat theFormat, const QgsRectangle &theExtent, int theWidth, int theHeight )
0 commit comments