mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-13 00:03:09 -04:00
wcs test unit data
This commit is contained in:
parent
5d84b26006
commit
d1e7242255
@ -279,6 +279,7 @@ QgsRasterBandStats QgsRasterDataProvider::bandStatistics( int theBandNo )
|
||||
|
||||
int myBandXSize = xSize();
|
||||
int myBandYSize = ySize();
|
||||
int maxCount = xSize() * ySize();
|
||||
for ( int iYBlock = 0; iYBlock < myNYBlocks; iYBlock++ )
|
||||
{
|
||||
for ( int iXBlock = 0; iXBlock < myNXBlocks; iXBlock++ )
|
||||
@ -306,12 +307,15 @@ QgsRasterBandStats QgsRasterDataProvider::bandStatistics( int theBandNo )
|
||||
double myValue = readValue( myData, myDataType, iX + ( iY * myXBlockSize ) );
|
||||
QgsDebugMsgLevel( QString( "%1 %2 value %3" ).arg( iX ).arg( iY ).arg( myValue ), 10 );
|
||||
|
||||
if ( mValidNoDataValue && ( qAbs( myValue - myNoDataValue ) <= TINY_VALUE ) )
|
||||
if ( mValidNoDataValue &&
|
||||
( ( std::isnan( myNoDataValue ) && std::isnan( myValue ) ) || qAbs( myValue - myNoDataValue ) <= TINY_VALUE ) )
|
||||
{
|
||||
continue; // NULL
|
||||
}
|
||||
|
||||
myRasterBandStats.sum += myValue;
|
||||
// sum can easily run out of limits
|
||||
myRasterBandStats.mean += myValue / maxCount;
|
||||
++myRasterBandStats.elementCount;
|
||||
//only use this element if we have a non null element
|
||||
if ( myFirstIterationFlag )
|
||||
@ -342,7 +346,8 @@ QgsRasterBandStats QgsRasterDataProvider::bandStatistics( int theBandNo )
|
||||
//end of first pass through data now calculate the range
|
||||
myRasterBandStats.range = myRasterBandStats.maximumValue - myRasterBandStats.minimumValue;
|
||||
//calculate the mean
|
||||
myRasterBandStats.mean = myRasterBandStats.sum / myRasterBandStats.elementCount;
|
||||
//myRasterBandStats.mean = myRasterBandStats.sum / myRasterBandStats.elementCount;
|
||||
myRasterBandStats.mean = maxCount * ( myRasterBandStats.mean / myRasterBandStats.elementCount );
|
||||
|
||||
//for the second pass we will get the sum of the squares / mean
|
||||
for ( int iYBlock = 0; iYBlock < myNYBlocks; iYBlock++ )
|
||||
@ -373,21 +378,20 @@ QgsRasterBandStats QgsRasterDataProvider::bandStatistics( int theBandNo )
|
||||
double myValue = readValue( myData, myDataType, iX + ( iY * myXBlockSize ) );
|
||||
//QgsDebugMsg ( "myValue = " + QString::number(myValue) );
|
||||
|
||||
if ( mValidNoDataValue && ( qAbs( myValue - myNoDataValue ) <= TINY_VALUE ) )
|
||||
if ( mValidNoDataValue &&
|
||||
( ( std::isnan( myNoDataValue ) && std::isnan( myValue ) ) || qAbs( myValue - myNoDataValue ) <= TINY_VALUE ) )
|
||||
{
|
||||
continue; // NULL
|
||||
}
|
||||
|
||||
myRasterBandStats.sumOfSquares += static_cast < double >
|
||||
( pow( myValue - myRasterBandStats.mean, 2 ) );
|
||||
myRasterBandStats.sumOfSquares += static_cast < double >( pow( myValue - myRasterBandStats.mean, 2 ) );
|
||||
}
|
||||
}
|
||||
} //end of column wise loop
|
||||
} //end of row wise loop
|
||||
|
||||
//divide result by sample size - 1 and get square root to get stdev
|
||||
myRasterBandStats.stdDev = static_cast < double >( sqrt( myRasterBandStats.sumOfSquares /
|
||||
( myRasterBandStats.elementCount - 1 ) ) );
|
||||
myRasterBandStats.stdDev = static_cast < double >( sqrt( myRasterBandStats.sumOfSquares / ( myRasterBandStats.elementCount - 1 ) ) );
|
||||
|
||||
#ifdef QGISDEBUG
|
||||
QgsDebugMsg( "************ STATS **************" );
|
||||
|
@ -192,9 +192,27 @@ bool QgsWcsCapabilities::retrieveServerCapabilities( )
|
||||
clear();
|
||||
QStringList versions;
|
||||
|
||||
// 1.0.0 - VERSION
|
||||
// 1.1.0 - AcceptedVersions (not supported by UMN Mapserver 6.0.3 - defaults to 1.1.1
|
||||
versions << "AcceptVersions=1.1.0,1.0.0" << "VERSION=1.0.0";
|
||||
QString preferredVersion = mUri.param( "version" );
|
||||
|
||||
if ( !preferredVersion.isEmpty() )
|
||||
{
|
||||
// This is not
|
||||
if ( preferredVersion.startsWith ( "1.0" ) )
|
||||
{
|
||||
versions << "VERSION=" + preferredVersion;
|
||||
}
|
||||
else if ( preferredVersion.startsWith ( "1.1" ) )
|
||||
{
|
||||
// Ignored by UMN Mapserver 6.0.3, see below
|
||||
versions << "AcceptVersions=" + preferredVersion;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 1.0.0 - VERSION
|
||||
// 1.1.0 - AcceptVersions (not supported by UMN Mapserver 6.0.3 - defaults to latest 1.1
|
||||
versions << "AcceptVersions=1.1,1.0" << "VERSION=1.0";
|
||||
}
|
||||
|
||||
foreach( QString v, versions )
|
||||
{
|
||||
|
@ -22,6 +22,10 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
|
||||
ADD_DEFINITIONS(-DTEST_DATA_DIR="\\"${TEST_DATA_DIR}\\"")
|
||||
|
||||
ADD_DEFINITIONS(-DINSTALL_PREFIX="\\"${CMAKE_INSTALL_PREFIX}\\"")
|
||||
|
||||
SET(TEST_SERVER_URL "http://127.0.0.1/test/${COMPLETE_VERSION}")
|
||||
ADD_DEFINITIONS(-DTEST_SERVER_URL="\\"${TEST_SERVER_URL}\\"")
|
||||
|
||||
#############################################################
|
||||
# libraries
|
||||
|
||||
|
@ -43,11 +43,12 @@ class TestQgsWcsProvider: public QObject
|
||||
|
||||
void read();
|
||||
private:
|
||||
bool read( QString identifier, QString theFilePath, QString & theReport );
|
||||
bool read( QString theIdentifier, QString theWcsUri, QString theFilePath, QString & theReport );
|
||||
// Log error in html
|
||||
void error( QString theMessage, QString &theReport );
|
||||
// compare values and add table row in html report, set ok to false if not equal
|
||||
QString compareHead();
|
||||
bool compare ( double wcsVal, double gdalVal, double theTolerance );
|
||||
void compare( QString theParamName, int wcsVal, int gdalVal, QString &theReport, bool &theOk );
|
||||
void compare( QString theParamName, double wcsVal, double gdalVal, QString &theReport, bool &theOk, double theTolerance = 0 );
|
||||
void compareRow( QString theParamName, QString wcsVal, QString gdalVal, QString &theReport, bool theOk, QString theDifference = "", QString theTolerance = "" );
|
||||
@ -82,7 +83,7 @@ void TestQgsWcsProvider::initTestCase()
|
||||
mTestDataDir = QString( TEST_DATA_DIR ) + QDir::separator() + "raster";
|
||||
qDebug() << "mTestDataDir = " << mTestDataDir;
|
||||
|
||||
mUrl = "http://127.0.0.1//cgi-bin/wcstest";
|
||||
mUrl = QString( TEST_SERVER_URL ) + QDir::separator() + "wcs";
|
||||
}
|
||||
|
||||
//runs after all tests
|
||||
@ -102,39 +103,52 @@ void TestQgsWcsProvider::cleanupTestCase()
|
||||
void TestQgsWcsProvider::read( )
|
||||
{
|
||||
bool ok = true;
|
||||
QStringList versions;
|
||||
|
||||
versions << "1.0" << "1.1";
|
||||
|
||||
QStringList identifiers;
|
||||
|
||||
// identifiers in mapfile have the same name as files without .tif extension
|
||||
identifiers << "band1_byte_noct_epsg4326";
|
||||
identifiers << "band1_int16_noct_epsg4326";
|
||||
identifiers << "band1_float32_noct_epsg4326";
|
||||
identifiers << "band3_byte_noct_epsg4326";
|
||||
identifiers << "band3_int16_noct_epsg4326";
|
||||
identifiers << "band3_float32_noct_epsg4326";
|
||||
|
||||
// How to reasonably log multiple fails within this loop?
|
||||
foreach( QString identifier, identifiers )
|
||||
foreach( QString version, versions )
|
||||
{
|
||||
QString filePath = mTestDataDir + QDir::separator() + identifier + ".tif";
|
||||
if ( !read( identifier, filePath, mReport ) )
|
||||
foreach( QString identifier, identifiers )
|
||||
{
|
||||
ok = false;
|
||||
QString filePath = mTestDataDir + QDir::separator() + identifier + ".tif";
|
||||
|
||||
QgsDataSourceURI uri;
|
||||
uri.setParam( "url", mUrl );
|
||||
uri.setParam( "identifier", identifier );
|
||||
uri.setParam( "crs", "epsg:4326" );
|
||||
uri.setParam( "version", version );
|
||||
|
||||
if ( !read( identifier, uri.encodedUri(), filePath, mReport ) )
|
||||
{
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
QVERIFY2( ok, "Reading data failed. See report for details." );
|
||||
}
|
||||
|
||||
bool TestQgsWcsProvider::read( QString theIdentifier, QString theFilePath, QString & theReport )
|
||||
bool TestQgsWcsProvider::read( QString theIdentifier, QString theWcsUri, QString theFilePath, QString & theReport )
|
||||
{
|
||||
bool ok = true;
|
||||
QgsDataSourceURI uri;
|
||||
uri.setParam( "url", mUrl );
|
||||
uri.setParam( "identifier", theIdentifier );
|
||||
uri.setParam( "crs", "epsg:4326" );
|
||||
|
||||
theReport += QString( "<h2>Identifier (coverage): %1</h2>" ).arg( theIdentifier );
|
||||
|
||||
QgsRasterDataProvider* wcsProvider = QgsRasterLayer::loadProvider( "wcs", uri.encodedUri() );
|
||||
QgsRasterDataProvider* wcsProvider = QgsRasterLayer::loadProvider( "wcs", theWcsUri );
|
||||
if ( !wcsProvider || !wcsProvider->isValid() )
|
||||
{
|
||||
error( QString( "Cannot load WCS provider with URI: %1" ).arg( QString( uri.encodedUri() ) ), theReport );
|
||||
error( QString( "Cannot load WCS provider with URI: %1" ).arg( QString( theWcsUri ) ), theReport );
|
||||
ok = false;
|
||||
}
|
||||
|
||||
@ -147,7 +161,7 @@ bool TestQgsWcsProvider::read( QString theIdentifier, QString theFilePath, QStri
|
||||
|
||||
if ( !ok ) return false;
|
||||
|
||||
theReport += QString( "WCS URI: %1<br>" ).arg( QString( uri.encodedUri() ).replace( "&", "&" ) );
|
||||
theReport += QString( "WCS URI: %1<br>" ).arg( theWcsUri.replace( "&", "&" ) );
|
||||
theReport += QString( "GDAL URI: %1<br>" ).arg( theFilePath );
|
||||
|
||||
theReport += "<br>";
|
||||
@ -212,7 +226,7 @@ bool TestQgsWcsProvider::read( QString theIdentifier, QString theFilePath, QStri
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !statsOk || typesOk )
|
||||
if ( !statsOk || !typesOk )
|
||||
{
|
||||
allOk = false;
|
||||
// create values table anyway so that values are available
|
||||
@ -247,7 +261,7 @@ bool TestQgsWcsProvider::read( QString theIdentifier, QString theFilePath, QStri
|
||||
double gdalVal = gdalProvider->readValue( gdalData, gdalProvider->dataType( band ), row * width + col );
|
||||
|
||||
QString valStr;
|
||||
if ( wcsVal == gdalVal )
|
||||
if ( compare ( wcsVal, gdalVal, 0 ) )
|
||||
{
|
||||
valStr = QString( "%1" ).arg( wcsVal );
|
||||
}
|
||||
@ -299,10 +313,15 @@ void TestQgsWcsProvider::compare( QString theParamName, int wcsVal, int gdalVal,
|
||||
if ( !ok ) theOk = false;
|
||||
}
|
||||
|
||||
bool TestQgsWcsProvider::compare ( double wcsVal, double gdalVal, double theTolerance )
|
||||
{
|
||||
// values may be nan
|
||||
return ( std::isnan( wcsVal ) && std::isnan( gdalVal ) ) || ( qAbs( wcsVal - gdalVal ) <= theTolerance );
|
||||
}
|
||||
|
||||
void TestQgsWcsProvider::compare( QString theParamName, double wcsVal, double gdalVal, QString &theReport, bool &theOk, double theTolerance )
|
||||
{
|
||||
bool ok = ( qAbs( wcsVal - gdalVal ) <= theTolerance );
|
||||
|
||||
bool ok = compare ( wcsVal, gdalVal, theTolerance );
|
||||
compareRow( theParamName, QString::number( wcsVal ), QString::number( gdalVal ), theReport, ok, QString::number( wcsVal - gdalVal ), QString::number( theTolerance ) );
|
||||
if ( !ok ) theOk = false;
|
||||
}
|
||||
|
BIN
tests/testdata/raster/band1_byte_ct_epsg4326.tif
vendored
Normal file
BIN
tests/testdata/raster/band1_byte_ct_epsg4326.tif
vendored
Normal file
Binary file not shown.
13
tests/testdata/raster/band1_byte_ct_epsg4326.tif.aux.xml
vendored
Normal file
13
tests/testdata/raster/band1_byte_ct_epsg4326.tif.aux.xml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
<PAMDataset>
|
||||
<PAMRasterBand band="1">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">2.000000e+00 1.280000e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">1.280000e+02 2.540000e+02 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">254</MDI>
|
||||
<MDI key="STATISTICS_MEAN">135.53086419753</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">2</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">73.957459647589</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
BIN
tests/testdata/raster/band1_byte_noct_epsg4326.tif
vendored
Normal file
BIN
tests/testdata/raster/band1_byte_noct_epsg4326.tif
vendored
Normal file
Binary file not shown.
13
tests/testdata/raster/band1_byte_noct_epsg4326.tif.aux.xml
vendored
Normal file
13
tests/testdata/raster/band1_byte_noct_epsg4326.tif.aux.xml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
<PAMDataset>
|
||||
<PAMRasterBand band="1">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">2.000000e+00 1.280000e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">1.280000e+02 2.540000e+02 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">254</MDI>
|
||||
<MDI key="STATISTICS_MEAN">135.53086419753</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">2</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">73.957459647589</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
BIN
tests/testdata/raster/band1_float32_noct_epsg4326.tif
vendored
Normal file
BIN
tests/testdata/raster/band1_float32_noct_epsg4326.tif
vendored
Normal file
Binary file not shown.
12
tests/testdata/raster/band1_float32_noct_epsg4326.tif.aux.xml
vendored
Normal file
12
tests/testdata/raster/band1_float32_noct_epsg4326.tif.aux.xml
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
<PAMDataset>
|
||||
<PAMRasterBand band="1">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">0.000000e+00 0.000000e+00 255 127 0 255 127 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">1</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">3.3999999521444e+38</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2.4177777984595e+37</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-3.3319999287626e+38</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">1.9800745699579e+38</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
BIN
tests/testdata/raster/band1_int16_noct_epsg4326.tif
vendored
Normal file
BIN
tests/testdata/raster/band1_int16_noct_epsg4326.tif
vendored
Normal file
Binary file not shown.
13
tests/testdata/raster/band1_int16_noct_epsg4326.tif.aux.xml
vendored
Normal file
13
tests/testdata/raster/band1_int16_noct_epsg4326.tif.aux.xml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
<PAMDataset>
|
||||
<PAMRasterBand band="1">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">-3.211166e+04 3.276700e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">3.276700e+02 3.276700e+04 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">32767</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2330.024691358</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-32111</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">19082.231766347</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
BIN
tests/testdata/raster/band3_byte_noct_epsg4326.tif
vendored
Normal file
BIN
tests/testdata/raster/band3_byte_noct_epsg4326.tif
vendored
Normal file
Binary file not shown.
35
tests/testdata/raster/band3_byte_noct_epsg4326.tif.aux.xml
vendored
Normal file
35
tests/testdata/raster/band3_byte_noct_epsg4326.tif.aux.xml
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<PAMDataset>
|
||||
<PAMRasterBand band="1">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">2.000000e+00 1.280000e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">1.280000e+02 2.540000e+02 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">254</MDI>
|
||||
<MDI key="STATISTICS_MEAN">135.53086419753</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">2</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">73.957459647589</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="2">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">2.000000e+00 1.280000e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">1.280000e+02 2.540000e+02 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">254</MDI>
|
||||
<MDI key="STATISTICS_MEAN">135.53086419753</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">2</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">73.957459647589</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="3">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">2.000000e+00 1.280000e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">1.280000e+02 2.540000e+02 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">254</MDI>
|
||||
<MDI key="STATISTICS_MEAN">135.53086419753</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">2</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">73.957459647589</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
BIN
tests/testdata/raster/band3_float32_noct_epsg4326.tif
vendored
Normal file
BIN
tests/testdata/raster/band3_float32_noct_epsg4326.tif
vendored
Normal file
Binary file not shown.
32
tests/testdata/raster/band3_float32_noct_epsg4326.tif.aux.xml
vendored
Normal file
32
tests/testdata/raster/band3_float32_noct_epsg4326.tif.aux.xml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
<PAMDataset>
|
||||
<PAMRasterBand band="1">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">0.000000e+00 0.000000e+00 255 127 0 255 127 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">1</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">3.3999999521444e+38</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2.4177777984595e+37</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-3.3319999287626e+38</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">1.9800745699579e+38</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="2">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">0.000000e+00 0.000000e+00 255 127 0 255 127 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">1</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">3.3999999521444e+38</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2.4177777984595e+37</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-3.3319999287626e+38</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">1.9800745699579e+38</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="3">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">0.000000e+00 0.000000e+00 255 127 0 255 127 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">1</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">3.3999999521444e+38</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2.4177777984595e+37</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-3.3319999287626e+38</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">1.9800745699579e+38</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
BIN
tests/testdata/raster/band3_int16_noct_epsg4326.tif
vendored
Normal file
BIN
tests/testdata/raster/band3_int16_noct_epsg4326.tif
vendored
Normal file
Binary file not shown.
35
tests/testdata/raster/band3_int16_noct_epsg4326.tif.aux.xml
vendored
Normal file
35
tests/testdata/raster/band3_int16_noct_epsg4326.tif.aux.xml
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<PAMDataset>
|
||||
<PAMRasterBand band="1">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">-3.211166e+04 3.276700e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">3.276700e+02 3.276700e+04 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">32767</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2330.024691358</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-32111</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">19082.231766347</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="2">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">-3.211166e+04 3.276700e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">3.276700e+02 3.276700e+04 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">32767</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2330.024691358</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-32111</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">19082.231766347</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="3">
|
||||
<Metadata>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_0">-3.211166e+04 3.276700e+02 0 255 0 255 255 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULE_RGB_1">3.276700e+02 3.276700e+04 255 255 0 255 0 0</MDI>
|
||||
<MDI key="COLOR_TABLE_RULES_COUNT">2</MDI>
|
||||
<MDI key="STATISTICS_MAXIMUM">32767</MDI>
|
||||
<MDI key="STATISTICS_MEAN">2330.024691358</MDI>
|
||||
<MDI key="STATISTICS_MINIMUM">-32111</MDI>
|
||||
<MDI key="STATISTICS_STDDEV">19082.231766347</MDI>
|
||||
</Metadata>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
207
tests/testdata/raster/wcs.map
vendored
Normal file
207
tests/testdata/raster/wcs.map
vendored
Normal file
@ -0,0 +1,207 @@
|
||||
MAP
|
||||
NAME WCS
|
||||
STATUS ON
|
||||
SHAPEPATH "/path/to/qgis/tests/testdata/raster"
|
||||
|
||||
OUTPUTFORMAT
|
||||
# NAME is used in 1.0.0 as format in capabilities and describe coverage
|
||||
# in 1.1 the MIMETYPE is used instead
|
||||
NAME "GEOTIFFBYTE"
|
||||
DRIVER "GDAL/GTiff"
|
||||
MIMETYPE "image/tiff"
|
||||
# IMAGEMODE: standard modes: PC256, RGB, RGBA
|
||||
# WCS (GDAL) modes: BYTE, INT16, FLOAT32
|
||||
IMAGEMODE "BYTE"
|
||||
EXTENSION "tif"
|
||||
END
|
||||
|
||||
OUTPUTFORMAT
|
||||
NAME "GEOTIFFINT16"
|
||||
DRIVER "GDAL/GTiff"
|
||||
MIMETYPE "image/tiff16"
|
||||
IMAGEMODE "INT16"
|
||||
EXTENSION "tif"
|
||||
END
|
||||
|
||||
OUTPUTFORMAT
|
||||
NAME "GEOTIFFFLOAT32"
|
||||
DRIVER "GDAL/GTiff"
|
||||
MIMETYPE "image/tiff32"
|
||||
IMAGEMODE "FLOAT32"
|
||||
EXTENSION "tif"
|
||||
END
|
||||
|
||||
# Color table is not currently supported by UMN Mapserver
|
||||
#OUTPUTFORMAT
|
||||
#NAME "GEOTIFFINT8_COLORTABLE"
|
||||
#DRIVER "GDAL/GTiff"
|
||||
#MIMETYPE "image/tiff"
|
||||
#IMAGEMODE "PC256"
|
||||
#EXTENSION "tif"
|
||||
#END
|
||||
|
||||
WEB
|
||||
METADATA
|
||||
"wcs_label" "Quantum GIS WCS Test"
|
||||
"wcs_description" "Test server to be used by Quantum GIS test suite"
|
||||
#"wcs_onlineresource" "http://127.0.0.1/cgi-bin/mapserv?" ### recommended
|
||||
"wcs_crs" "EPSG:4326"
|
||||
"wcs_fees" "none"
|
||||
"wcs_accessconstraints" "none"
|
||||
"wcs_keywordlist" "qgis,wcs,test"
|
||||
"wcs_metadatalink_type" "TC211"
|
||||
"wcs_metadatalink_format" "text/plain"
|
||||
"wcs_metadatalink_href" "http://someurl.com"
|
||||
"wcs_address" "none"
|
||||
"wcs_city" "none"
|
||||
"wcs_stateorprovince" "none"
|
||||
"wcs_postcode" "none"
|
||||
"wcs_country" "none"
|
||||
"wcs_contactelectronicmailaddress" "blah@blah"
|
||||
"wcs_contactperson" "none"
|
||||
"wcs_contactorganization" "none"
|
||||
"wcs_contactposition" "none"
|
||||
"wcs_contactvoicetelephone" "none"
|
||||
"wcs_contactfacimiletelephone" "613-555-1235"
|
||||
"wcs_enable_request" "*"
|
||||
END
|
||||
END
|
||||
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
|
||||
LAYER
|
||||
NAME band3_int16_noct_epsg4326
|
||||
METADATA
|
||||
"wcs_label" "band3_int16_noct_epsg4326" ### required
|
||||
"wcs_rangeset_name" "Range1" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_nullvalue" "-32768"
|
||||
"wcs_srs" "EPSG:4326 EPSG:900913" # native must be first!
|
||||
"wcs_formats" "GEOTIFFINT16"
|
||||
#"wcs_nativeformat" "geotiff"
|
||||
END
|
||||
TYPE RASTER ### required
|
||||
STATUS ON
|
||||
DATA band3_int16_noct_epsg4326.tif
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
END
|
||||
|
||||
LAYER
|
||||
NAME band1_int16_noct_epsg4326
|
||||
METADATA
|
||||
"wcs_label" "band1_int16_noct_epsg4326" ### required
|
||||
"wcs_rangeset_name" "Range1" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_nullvalue" "-32768"
|
||||
"wcs_srs" "EPSG:4326 EPSG:900913" # native must be first!
|
||||
"wcs_formats" "GEOTIFFINT16"
|
||||
#"wcs_nativeformat" "geotiff"
|
||||
END
|
||||
TYPE RASTER ### required
|
||||
STATUS ON
|
||||
DATA band1_int16_noct_epsg4326.tif
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
END
|
||||
|
||||
LAYER
|
||||
NAME band1_float32_noct_epsg4326
|
||||
METADATA
|
||||
"wcs_label" "band1_float32_noct_epsg4326" ### required
|
||||
"wcs_rangeset_name" "Range1" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_nullvalue" "nan"
|
||||
"wcs_srs" "EPSG:4326 EPSG:900913" # native must be first!
|
||||
"wcs_formats" "GEOTIFFFLOAT32"
|
||||
#"wcs_nativeformat" "geotiff"
|
||||
END
|
||||
TYPE RASTER ### required
|
||||
STATUS ON
|
||||
DATA band1_float32_noct_epsg4326.tif
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
END
|
||||
|
||||
LAYER
|
||||
NAME band3_byte_noct_epsg4326
|
||||
METADATA
|
||||
"wcs_label" "band3_byte_noct_epsg4326" ### required
|
||||
"wcs_rangeset_name" "Range1" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_nullvalue" "255"
|
||||
"wcs_srs" "EPSG:4326 EPSG:900913" # native must be first!
|
||||
"wcs_formats" "GEOTIFFBYTE"
|
||||
#"wcs_nativeformat" "geotiff"
|
||||
END
|
||||
TYPE RASTER ### required
|
||||
STATUS ON
|
||||
DATA band3_byte_noct_epsg4326.tif
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
END
|
||||
|
||||
LAYER
|
||||
NAME band1_byte_ct_epsg4326
|
||||
METADATA
|
||||
"wcs_label" "band1_byte_ct_epsg4326" ### required
|
||||
"wcs_rangeset_name" "Range1" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_nullvalue" "255"
|
||||
"wcs_srs" "EPSG:4326 EPSG:900913" # native must be first!
|
||||
"wcs_formats" "GEOTIFFBYTE"
|
||||
#"wcs_nativeformat" "geotiff"
|
||||
END
|
||||
TYPE RASTER ### required
|
||||
STATUS ON
|
||||
DATA band1_byte_ct_epsg4326.tif
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
END
|
||||
|
||||
LAYER
|
||||
NAME band3_float32_noct_epsg4326
|
||||
METADATA
|
||||
"wcs_label" "band3_float32_noct_epsg4326" ### required
|
||||
"wcs_rangeset_name" "Range1" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_nullvalue" "nan"
|
||||
"wcs_srs" "EPSG:4326 EPSG:900913" # native must be first!
|
||||
"wcs_formats" "GEOTIFFFLOAT32"
|
||||
#"wcs_nativeformat" "geotiff"
|
||||
END
|
||||
TYPE RASTER ### required
|
||||
STATUS ON
|
||||
DATA band3_float32_noct_epsg4326.tif
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
END
|
||||
|
||||
LAYER
|
||||
NAME band1_byte_noct_epsg4326
|
||||
METADATA
|
||||
"wcs_label" "band1_byte_noct_epsg4326" ### required
|
||||
"wcs_rangeset_name" "Range1" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_label" "My Label" ### required to support DescribeCoverage request
|
||||
"wcs_rangeset_nullvalue" "255"
|
||||
"wcs_srs" "EPSG:4326 EPSG:900913" # native must be first!
|
||||
"wcs_formats" "GEOTIFFBYTE"
|
||||
#"wcs_nativeformat" "geotiff"
|
||||
END
|
||||
TYPE RASTER ### required
|
||||
STATUS ON
|
||||
DATA band1_byte_noct_epsg4326.tif
|
||||
PROJECTION
|
||||
"init=epsg:4326"
|
||||
END
|
||||
END
|
||||
END
|
||||
|
Loading…
x
Reference in New Issue
Block a user