Skip to content

Commit bf5b22e

Browse files
author
timlinux
committed
Added raster test for a multiband image
Added missing loadDefaultStyle to raster ctor (its not enabled in ui for 0.9.2 since its untested and unstable) Added test image for testing multiband raster images git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@8038 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 699f7d4 commit bf5b22e

File tree

4 files changed

+43
-12
lines changed

4 files changed

+43
-12
lines changed

src/core/raster/qgsrasterlayer.cpp

+13-1
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,10 @@ bool QgsRasterLayer::isValidRasterFileName(QString const & theFileNameQString)
380380
// Non Static methods now....
381381
//
382382
/////////////////////////////////////////////////////////
383-
QgsRasterLayer::QgsRasterLayer(QString const & path, QString const & baseName)
383+
QgsRasterLayer::QgsRasterLayer(
384+
QString const & path,
385+
QString const & baseName,
386+
bool loadDefaultStyleFlag)
384387
: QgsMapLayer(RASTER, baseName, path),
385388
// XXX where is this? popMenu(0), //popMenu is the contextmenu obtained by right clicking on the legend
386389
mRasterXDim( std::numeric_limits<int>::max() ),
@@ -390,6 +393,15 @@ QgsRasterLayer::QgsRasterLayer(QString const & path, QString const & baseName)
390393
mStandardDeviations(0),
391394
mDataProvider(0)
392395
{
396+
if ( loadDefaultStyleFlag )
397+
{
398+
bool defaultLoadedFlag = false;
399+
loadDefaultStyle( defaultLoadedFlag );
400+
if ( defaultLoadedFlag )
401+
{
402+
return;
403+
}
404+
}
393405
mUserDefinedRGBMinMaxFlag = false; //defaults needed to bypass stretch
394406
mUserDefinedGrayMinMaxFlag = false;
395407

src/core/raster/qgsrasterlayer.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,8 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer
202202
*
203203
* The main tasks carried out by the constructor are:
204204
*
205+
* -Load the rasters default style (.qml) file if it exists
206+
*
205207
* -Populate the RasterStatsVector with initial values for each band.
206208
*
207209
* -Calculate the layer extents
@@ -213,7 +215,8 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer
213215
* -
214216
* */
215217
QgsRasterLayer(const QString & path = QString::null,
216-
const QString & baseName = QString::null);
218+
const QString & baseName = QString::null,
219+
bool loadDefaultStyleFlag = true );
217220

218221
/** \brief The destuctor. */
219222
~QgsRasterLayer();

tests/src/core/testqgsrasterlayer.cpp

+26-10
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,12 @@ class TestQgsRasterLayer: public QObject
5252

5353
void isValid();
5454
void pseudoColor();
55+
void landsatBasic();
5556
void checkDimensions();
5657
private:
5758
bool render(QString theFileName);
5859
QgsRasterLayer * mpRasterLayer;
60+
QgsRasterLayer * mpLandsatRasterLayer;
5961
QgsMapRender * mpMapRenderer;
6062
QString mReport;
6163
};
@@ -77,13 +79,18 @@ void TestQgsRasterLayer::initTestCase()
7779
std::cout << "User DB PATH: " << QgsApplication::qgisUserDbFilePath().toLocal8Bit().data() << std::endl;
7880

7981
//create a raster layer that will be used in all tests...
80-
QString myFileName (TEST_DATA_DIR); //defined in CmakeLists.txt
81-
myFileName = myFileName + QDir::separator() + "tenbytenraster.asc";
82+
QString myTestDir (TEST_DATA_DIR); //defined in CmakeLists.txt
83+
QString myFileName = myTestDir + QDir::separator() + "tenbytenraster.asc";
84+
QString myLandsatFileName = myTestDir + QDir::separator() + "landsat_clip.tif";
8285
QFileInfo myRasterFileInfo ( myFileName );
8386
mpRasterLayer = new QgsRasterLayer ( myRasterFileInfo.filePath(),
8487
myRasterFileInfo.completeBaseName() );
88+
QFileInfo myLandsatRasterFileInfo ( myLandsatFileName );
89+
mpLandsatRasterLayer = new QgsRasterLayer ( myLandsatRasterFileInfo.filePath(),
90+
myLandsatRasterFileInfo.completeBaseName() );
8591
// Register the layer with the registry
8692
QgsMapLayerRegistry::instance()->addMapLayer(mpRasterLayer);
93+
QgsMapLayerRegistry::instance()->addMapLayer(mpLandsatRasterLayer);
8794
// add the test layer to the maprender
8895
mpMapRenderer = new QgsMapRender();
8996
QStringList myLayers;
@@ -109,20 +116,30 @@ void TestQgsRasterLayer::cleanupTestCase()
109116
void TestQgsRasterLayer::isValid()
110117
{
111118
QVERIFY ( mpRasterLayer->isValid() );
119+
mpMapRenderer->setExtent(mpRasterLayer->extent());
112120
QVERIFY ( render("raster") );
113121
}
114122

115123
void TestQgsRasterLayer::pseudoColor()
116124
{
117-
mpRasterLayer->setDrawingStyle(QgsRasterLayer::SINGLE_BAND_PSEUDO_COLOR);
118-
mpRasterLayer->setColorShadingAlgorithm(QgsRasterLayer::PSEUDO_COLOR);
119-
mpRasterLayer->setContrastEnhancementAlgorithm(
120-
QgsContrastEnhancement::STRETCH_TO_MINMAX, false);
121-
mpRasterLayer->setMinimumValue(mpRasterLayer->getGrayBandName(),0.0, false);
122-
mpRasterLayer->setMaximumValue(mpRasterLayer->getGrayBandName(),0.0);
123-
QVERIFY(render("raster_pseudo"));
125+
mpRasterLayer->setDrawingStyle(QgsRasterLayer::SINGLE_BAND_PSEUDO_COLOR);
126+
mpRasterLayer->setColorShadingAlgorithm(QgsRasterLayer::PSEUDO_COLOR);
127+
mpRasterLayer->setContrastEnhancementAlgorithm(
128+
QgsContrastEnhancement::STRETCH_TO_MINMAX, false);
129+
mpRasterLayer->setMinimumValue(mpRasterLayer->getGrayBandName(),0.0, false);
130+
mpRasterLayer->setMaximumValue(mpRasterLayer->getGrayBandName(),10.0);
131+
mpMapRenderer->setExtent(mpRasterLayer->extent());
132+
QVERIFY(render("raster_pseudo"));
124133
}
125134

135+
void TestQgsRasterLayer::landsatBasic()
136+
{
137+
QStringList myLayers;
138+
myLayers << mpLandsatRasterLayer->getLayerID();
139+
mpMapRenderer->setLayerSet(myLayers);
140+
mpMapRenderer->setExtent(mpLandsatRasterLayer->extent());
141+
QVERIFY(render("landsat_basic"));
142+
}
126143
void TestQgsRasterLayer::checkDimensions()
127144
{
128145
QVERIFY ( mpRasterLayer->getRasterXDim() == 10 );
@@ -135,7 +152,6 @@ void TestQgsRasterLayer::checkDimensions()
135152
bool TestQgsRasterLayer::render(QString theTestType)
136153
{
137154
mReport += "<h2>" + theTestType + "</h2>\n";
138-
mpMapRenderer->setExtent(mpRasterLayer->extent());
139155
QString myDataDir (TEST_DATA_DIR); //defined in CmakeLists.txt
140156
QString myTestDataDir = myDataDir + QDir::separator();
141157
QgsRenderChecker myChecker;

tests/testdata/landsat_clip.tif

352 KB
Binary file not shown.

0 commit comments

Comments
 (0)