Merge pull request #3238 from medspx/processing_g7_raster_tests

[processing] more grass7 unit tests and their fixes
This commit is contained in:
Alexander Bruy 2016-06-29 19:49:58 +03:00 committed by GitHub
commit a12152c724
86 changed files with 2484 additions and 106 deletions

View File

@ -13,4 +13,5 @@ PyQgsVirtualLayerDefinition
PyQgsVirtualLayerProvider
qgis_composermapgridtest
qgis_composerutils
ProcessingGrass7AlgorithmsTest
ProcessingGrass7AlgorithmsImageryTest
ProcessingGrass7AlgorithmsRasterTest

View File

@ -472,11 +472,6 @@ class Grass7Algorithm(GeoAlgorithm):
self.commands.append(command)
self.outputCommands.append(command)
command = 'r.out.gdal --overwrite -c createopt="TFW=YES,COMPRESS=LZW"'
command += ' input='
command += 'correctedoutput' + self.uniqueSufix
command += ' output="' + filename + '"'
elif self.grass7Name == 'r.composite':
command = 'r.out.gdal --overwrite -c createopt="TFW=YES,COMPRESS=LZW"'
command += ' input='
command += 'correctedoutput' + self.uniqueSufix
@ -487,9 +482,6 @@ class Grass7Algorithm(GeoAlgorithm):
if self.grass7Name == 'r.horizon':
command += out.name + self.uniqueSufix + '_0'
elif self.grass7Name == 'r.composite':
self.commands.append(command)
self.outputCommands.append(command)
elif self.grass7Name == 'r.statistics':
self.commands.append(command)
self.outputCommands.append(command)

View File

@ -1,9 +1,9 @@
r.slope.aspect
r.aspect - Generates raster maps of aspect from a elevation raster map.
r.aspect - Generates raster maps of aspect from an elevation raster map.
Raster (r.*)
ParameterRaster|elevation|Elevation|False
ParameterSelection|precision|Data type|FCELL;CELL;DCELL
ParameterBoolean|-a|Do not align the current region to the elevation layer|True
ParameterNumber|zfactor|Multiplicative factor to convert elevation units to meters|None|None|1.0
ParameterSelection|precision|Data type|FCELL;CELL;DCELL|0
*ParameterBoolean|-a|Do not align the current region to the elevation layer|False
ParameterNumber|zscale|Multiplicative factor to convert elevation units to meters|None|None|1.0
ParameterNumber|min_slope|Minimum slope val. (in percent) for which aspect is computed|None|None|0.0
OutputRaster|aspect|Aspect

View File

@ -1,7 +1,11 @@
r.fillnulls
Fills no-data areas in a raster layer using v.surf.rst splines interpolation or v.surf.bspline interpolation
Fills no-data areas in raster maps using spline interpolation.
Raster (r.*)
ParameterRaster|input|Input raster layer to fill|False
ParameterSelection|method|Interpolation method to use|bilinear;bicubic;rst|2
ParameterNumber|tension|Spline tension parameter|None|None|40.0
ParameterNumber|smooth|Spline smoothing parameter|None|None|0.1
ParameterNumber|edge|Width of hole edge used for interpolation (in cells)|2|100|3|True
ParameterNumber|npmin|Minimum number of points for approximation in a segment (>segmax)|2|10000|600|True
ParameterNumber|segmax|Maximum number of points in a segment|2|10000|300|True
OutputRaster|output|Filled

View File

@ -4,7 +4,7 @@ Raster (r.*)
ParameterRaster|hue|Hue|False
ParameterRaster|intensity|Intensity|False
ParameterRaster|saturation|Saturation|False
ParameterBoolean|-n|Respect NULL values while drawing|False
ParameterBoolean|-c|Use colors from color tables for NULL values|False
OutputRaster|red|Red
OutputRaster|green|Green
OutputRaster|blue|Blue

View File

@ -4,5 +4,5 @@ Raster (r.*)
ParameterRaster|input|Name of input raster map|False
ParameterString|config_txt|Landscape structure configuration|None|True|True
ParameterFile|config|Landscape structure configuration file|False|True
ParameterFile|path|Name of file that contains the weight to calculate the index|False
ParameterFile|path|Name of file that contains the weight to calculate the index|False|False
OutputFile|output|CWED

View File

@ -4,5 +4,5 @@ Raster (r.*)
ParameterRaster|input|Name of input raster map|False
ParameterString|config_txt|Landscape structure configuration|None|True|True
ParameterFile|config|Landscape structure configuration file|False|True
ParameterFile|path|Name of file that contains the weight to calculate the index|False
ParameterFile|path|Name of file that contains the weight to calculate the index|False|False
OutputRaster|output|CWED

View File

@ -4,5 +4,5 @@ Raster (r.*)
ParameterRaster|input|Name of input raster map|False
ParameterString|config_txt|Landscape structure configuration|None|True|True
ParameterFile|config|Landscape structure configuration file|False|True
ParameterString|alpha|Alpha value is the order of the generalized entropy|None|False|True
ParameterString|alpha|Alpha value is the order of the generalized entropy|None|False|False
OutputFile|output|Renyi

View File

@ -4,5 +4,5 @@ Raster (r.*)
ParameterRaster|input|Name of input raster map|False
ParameterString|config_txt|Landscape structure configuration|None|True|True
ParameterFile|config|Landscape structure configuration file|False|True
ParameterString|alpha|Alpha value is the order of the generalized entropy|None|False|True
ParameterString|alpha|Alpha value is the order of the generalized entropy|None|False|False
OutputRaster|output|Renyi

View File

@ -1,9 +1,9 @@
r.slope.aspect
r.slope - Generates raster maps of slope from a elevation raster map.
r.slope - Generates raster maps of slope from an elevation raster map.
Raster (r.*)
ParameterRaster|elevation|Elevation|False
ParameterSelection|precision|Data type|FCELL;CELL;DCELL
ParameterBoolean|-a|Do not align the current region to the elevation layer|True
ParameterNumber|zfactor|Multiplicative factor to convert elevation units to meters|None|None|1.0
ParameterSelection|precision|Data type|FCELL;CELL;DCELL|0
*ParameterBoolean|-a|Do not align the current region to the elevation layer|False
ParameterNumber|zscale|Multiplicative factor to convert elevation units to meters|None|None|1.0
ParameterNumber|min_slope|Minimum slope val. (in percent) for which aspect is computed|None|None|0.0
OutputRaster|slope|Slope

View File

@ -1,4 +0,0 @@
r.sum
Sums up the raster cell values.
Raster (r.*)
ParameterRaster|rast|Name of incidence or density file|False

View File

@ -2,4 +2,4 @@ r.topidx
Creates topographic index layer from elevation raster layer
Raster (r.*)
ParameterRaster|input|Input elevation layer|False
OutputRaster|Topographic index
OutputRaster|output|Topographic index

View File

@ -2,9 +2,14 @@ r.viewshed
Computes the viewshed of a point on an elevation raster map.
Raster (r.*)
ParameterRaster|input|Elevation|False
ParameterString|coordinates|Coordinate identifying the viewing position|0,0
ParameterString|observer_elevation|Viewing position height above the ground|1.75
ParameterString|target_elevation|Offset for target elevation above the ground|0.0
ParameterString|max_distance|Maximum distance from the viewing point (meters)|10000
ParameterBoolean|-c|Consider earth curvature (current ellipsoid)|False
ParameterString|coordinates|Coordinate identifying the viewing position|0,0|False|False
ParameterString|observer_elevation|Viewing elevation above the ground|1.75|False|False
ParameterString|target_elevation|Offset for target elevation above the ground|0.0|False|False
ParameterString|max_distance|Maximum distance from the viewing point (meters)|-1|False|False
ParameterNumber|refraction_coeff|Refraction coefficient|0.0|1.0|0.14286|False
ParameterNumber|memory|Amount of memory to use in MB|1|None|500|False
*ParameterBoolean|-c|Consider earth curvature (current ellipsoid)|False
*ParameterBoolean|-r|Consider the effect of atmospheric refraction|False
*ParameterBoolean|-b|Output format is invisible = 0, visible = 1|False
*ParameterBoolean|-e|Output format is invisible = NULL, else current elev - viewpoint_elev|False
OutputRaster|output|Intervisibility

View File

@ -1,7 +1,7 @@
r.volume
Calculates the volume of data "clumps".
Raster (r.*)
ParameterRaster|data|Layer representing data that will be summed within clumps|False
ParameterRaster|input|Name of input raster map representing data that will be summed within clumps|False
ParameterRaster|clump|Clumps layer (preferably the output of r.clump)|False
*ParameterBoolean|-f|Generate unformatted report|False
OutputVector|centroids|Centroids

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -29,7 +29,7 @@ from r_li import checkMovingWindow, configFile
def checkParameterValuesBeforeExecuting(alg):
checkMovingWindow(alg)
return checkMovingWindow(alg)
def processCommand(alg):

View File

@ -26,6 +26,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
__revision__ = '$Format:%H$'
import os
import re
import yaml
import hashlib
@ -43,14 +44,18 @@ from processing.core.outputs import (
OutputString,
OutputRaster,
OutputVector,
OutputHTML
OutputHTML,
OutputFile
)
from processing.core.parameters import (
ParameterRaster,
ParameterVector,
ParameterMultipleInput,
ParameterFile
ParameterFile,
ParameterString,
ParameterNumber,
ParameterBoolean
)
@ -73,7 +78,7 @@ def extractSchemaPath(filepath):
path = filepath
part = True
while part:
while part and filepath:
(path, part) = os.path.split(path)
if part == 'testdata' and not localpath:
localparts = parts
@ -95,11 +100,39 @@ def extractSchemaPath(filepath):
return schema, localpath
def parseParameters(command):
"""
Parse alg string to grab parameters value.
Can handle quotes and comma.
"""
pos = 0
exp = re.compile(r"""(['"]?)(.*?)\1(,|$)""")
while True:
m = exp.search(command, pos)
result = m.group(2)
separator = m.group(3)
# Handle special values:
if result == 'None':
result = None
elif result.lower() == unicode(True).lower():
result = True
elif result.lower() == unicode(False).lower():
result = False
yield result
if not separator:
break
pos = m.end(0)
def createTest(text):
definition = {}
tokens = text[len('processing.runalg('):-1].split(',')
cmdname = (tokens[0])[1:-1]
tokens = list(parseParameters(text[len('processing.runalg('):-1]))
cmdname = tokens[0]
alg = Processing.getAlgorithm(cmdname)
definition['name'] = 'Test ({})'.format(cmdname)
@ -115,10 +148,12 @@ def createTest(text):
i += 1
token = tokens[i]
# Handle empty parameters that are optionals
if param.optional and token is None:
continue
if isinstance(param, ParameterVector):
filename = token[1:-1]
schema, filepath = extractSchemaPath(filename)
schema, filepath = extractSchemaPath(token)
p = {
'type': 'vector',
'name': filepath
@ -128,8 +163,7 @@ def createTest(text):
params[param.name] = p
elif isinstance(param, ParameterRaster):
filename = token[1:-1]
schema, filepath = extractSchemaPath(filename)
schema, filepath = extractSchemaPath(token)
p = {
'type': 'raster',
'name': filepath
@ -139,7 +173,7 @@ def createTest(text):
params[param.name] = p
elif isinstance(param, ParameterMultipleInput):
multiparams = token[1:-1].split(';')
multiparams = token.split(';')
newparam = []
# Handle datatype detection
@ -164,8 +198,7 @@ def createTest(text):
params[param.name] = p
elif isinstance(param, ParameterFile):
filename = token[1:-1]
schema, filepath = extractSchemaPath(filename)
schema, filepath = extractSchemaPath(token)
p = {
'type': 'file',
'name': filepath
@ -174,18 +207,21 @@ def createTest(text):
p['location'] = '[The source data is not in the testdata directory. Please use data in the processing/tests/testdata folder.]'
params[param.name] = p
else:
try:
elif isinstance(param, ParameterString):
params[param.name] = token
elif isinstance(param, ParameterBoolean):
params[param.name] = token
elif isinstance(param, ParameterNumber):
if param.isInteger:
params[param.name] = int(token)
except ValueError:
try:
params[param.name] = float(token)
except ValueError:
if token[0] == '"':
token = token[1:]
if token[-1] == '"':
token = token[:-1]
params[param.name] = token
else:
params[param.name] = float(token)
else:
if token[0] == '"':
token = token[1:]
if token[-1] == '"':
token = token[:-1]
params[param.name] = token
definition['params'] = params
@ -195,8 +231,7 @@ def createTest(text):
if isinstance(out, (OutputNumber, OutputString)):
results[out.name] = unicode(out)
elif isinstance(out, OutputRaster):
filename = token[1:-1]
dataset = gdal.Open(filename, GA_ReadOnly)
dataset = gdal.Open(token, GA_ReadOnly)
dataArray = nan_to_num(dataset.ReadAsArray(0))
strhash = hashlib.sha224(dataArray.data).hexdigest()
@ -205,17 +240,15 @@ def createTest(text):
'hash': strhash
}
elif isinstance(out, OutputVector):
filename = token[1:-1]
schema, filepath = extractSchemaPath(filename)
schema, filepath = extractSchemaPath(token)
results[out.name] = {
'type': 'vector',
'name': filepath
}
if not schema:
results[out.name]['location'] = '[The expected result data is not in the testdata directory. Please write it to processing/tests/testdata/expected. Prefer gml files.]'
elif isinstance(out, OutputHTML):
filename = token[1:-1]
schema, filepath = extractSchemaPath(filename)
elif isinstance(out, OutputHTML) or isinstance(out, OutputFile):
schema, filepath = extractSchemaPath(token)
results[out.name] = {
'type': 'file',
'name': filepath
@ -224,7 +257,6 @@ def createTest(text):
results[out.name]['location'] = '[The expected result file is not in the testdata directory. Please redirect the output to processing/tests/testdata/expected.]'
definition['results'] = results
dlg = ShowTestDialog(yaml.dump([definition], default_flow_style=False))
dlg.exec_()
@ -244,7 +276,8 @@ class ShowTestDialog(QDialog):
self.text = QTextEdit()
self.text.setFontFamily("monospace")
self.text.setEnabled(True)
self.text.setText(s)
# Add two spaces in front of each text for faster copy/paste
self.text.setText(' {}'.format(s.replace('\n', '\n ')))
layout.addWidget(self.text)
self.setLayout(layout)
QMetaObject.connectSlotsByName(self)

View File

@ -9,5 +9,6 @@ IF(ENABLE_TESTS)
ADD_PYTHON_TEST(ProcessingParametersTest ParametersTest.py)
ADD_PYTHON_TEST(ProcessingQgisAlgorithmsTest QgisAlgorithmsTest.py)
ADD_PYTHON_TEST(ProcessingGdalAlgorithmsTest GdalAlgorithmsTest.py)
ADD_PYTHON_TEST(ProcessingGrass7AlgorithmsTest Grass7AlgorithmsTest.py)
ADD_PYTHON_TEST(ProcessingGrass7AlgorithmsImageryTest Grass7AlgorithmsImageryTest.py)
ADD_PYTHON_TEST(ProcessingGrass7AlgorithmsRasterTest Grass7AlgorithmsRasterTest.py)
ENDIF(ENABLE_TESTS)

View File

@ -0,0 +1,58 @@
# -*- coding: utf-8 -*-
"""
***************************************************************************
Grass7AlgorithmsImageryTest.py
------------------------------
Date : May 2016
Copyright : (C) 2016 by Médéric Ribreux
Email : mederic dot ribreux at medspx dot fr
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
"""
__author__ = 'Médéric Ribreux'
__date__ = 'May 2016'
__copyright__ = '(C) 2016, Médéric Ribreux'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = ':%H$'
import AlgorithmsTestBase
import nose2
import shutil
from qgis.testing import (
start_app,
unittest
)
class TestGrass7AlgorithmsImageryTest(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
@classmethod
def setUpClass(cls):
start_app()
from processing.core.Processing import Processing
Processing.initialize()
cls.cleanup_paths = []
@classmethod
def tearDownClass(cls):
for path in cls.cleanup_paths:
shutil.rmtree(path)
def test_definition_file(self):
return 'grass7_algorithms_imagery_tests.yaml'
if __name__ == '__main__':
nose2.main()

View File

@ -2,8 +2,8 @@
"""
***************************************************************************
Grass7AlgorithmTests.py
-----------------------
Grass7AlgorithmsRasterTest.py
-----------------------------
Date : May 2016
Copyright : (C) 2016 by Médéric Ribreux
Email : mederic dot ribreux at medspx dot fr
@ -36,7 +36,7 @@ from qgis.testing import (
)
class TestGrass7Algorithms(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
class TestGrass7AlgorithmsRasterTest(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
@classmethod
def setUpClass(cls):
@ -51,7 +51,7 @@ class TestGrass7Algorithms(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest)
shutil.rmtree(path)
def test_definition_file(self):
return 'grass7_algorithm_tests.yaml'
return 'grass7_algorithms_raster_tests.yaml'
if __name__ == '__main__':

View File

@ -0,0 +1,103 @@
# Here is a list of grass7 algorithms without test units
## Raster algorithms
* r.basins.fill: needs different input rasters (result is always empty).
* r.carve: needs a vector input.
* r.colors: needs to handle output directories.
* r.colors.stddev: needs to find a way to test color table.
* r.contour.level: needs to export vector to GeoJSON (instead of Shapefile).
* r.contour.step: needs to export vector to GeoJSON (instead of Shapefile).
* r.drain: needs another dataset.
* r.flow.aspect.barrier: needs another dataset.
* r.flow.barrier: needs another dataset.
* r.grow: needs another dataset.
* r.grow.distance: needs another dataset.
* r.gwflow: needs another (huge) dataset.
* r.horizon
* r.horizon.height
* r.in.lidar: needs another dataset.
* r.in.lidar.info: needs another dataset.
* r.mapcalc
* r.mask.rast
* r.mask.vect
* r.median
* r.mfilter
* r.mfilter.fp
* r.mode
* r.neighbors
* r.null
* r.out.gridatb
* r.out.ppm
* r.out.vrml
* r.param.scale
* r.patch
* r.profile
* r.quant
* r.quantile
* r.random
* r.random.cells
* r.random.raster
* r.random.surface
* r.reclass.area.greater
* r.reclass.area.lesser
* r.recode
* r.regression.line
* r.regression.multi
* r.relief
* r.relief.scaling
* r.report
* r.resamp.bspline
* r.resamp.filter
* r.resamp.interp
* r.resamp.rst
* r.resamp.stats
* r.resample
* r.rescale
* r.rescale.eq
* r.rgb
* r.ros: too much input rasters !
* r.series.accumulate: can't reproduce same results !
* r.series.interp: needs to handle output directories
* r.sim.sediment: too much input rasters !
* r.sim.water: too much input rasters !
* r.solute.transport: too much input rasters !
* r.spreadpath: segfaults with test dataset !
* r.stats.quantile.rast: needs to handle output directories
* r.sunhours: can't reproduce same results !
* r.support: create a new test for raster: test after metadata.
* r.surf.fractal: random results !
* r.surf.gauss: random results !
* r.surf.random: random results !
* r.terraflow: can't produce output with test dataset !
* r.texture: needs to handle output directories
* r.tile: needs to handle output directories
* r.tileset: can't reproduce same results
* r.to.vect: needs a vector output in GML
* r.topmodel: too much manual inputs.
* r.uslek: can't produce output with test dataset (needs reclassified float rasters) !
* r.viewshed: can't produce output with test dataset !
* r.volume: needs a vector output in GML
## Imagery algorithms
* i.albedo
* i.aster.toar
* i.cca
* i.colors.enhance
* i.eb.evapfr
* i.evapo.time
* i.fft
* i.his.rgb
* i.ifft
* i.in.spotvgt
* i.landsat.acca
* i.landsat.toar
* i.pca
* i.rectify
* i.tasscap
* i.topo.corr
## Vector algorithms
We need to handle gml for output and input for GRASS7 algorithms before creating tests !

View File

@ -1,20 +0,0 @@
<PAMDataset>
<PAMRasterBand band="1">
<Histograms>
<HistItem>
<HistMin>-310.575</HistMin>
<HistMax>14854.575</HistMax>
<BucketCount>1000</BucketCount>
<IncludeOutOfRange>0</IncludeOutOfRange>
<Approximate>0</Approximate>
<HistCounts>8|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|15|15|15|16|15|15|8</HistCounts>
</HistItem>
</Histograms>
<Metadata>
<MDI key="STATISTICS_MAXIMUM">14847</MDI>
<MDI key="STATISTICS_MEAN">7272</MDI>
<MDI key="STATISTICS_MINIMUM">-303</MDI>
<MDI key="STATISTICS_STDDEV">4373.7169547194</MDI>
</Metadata>
</PAMRasterBand>
</PAMDataset>

Binary file not shown.

View File

@ -0,0 +1 @@
PROJCS["RGF93_Lambert_93",GEOGCS["GCS_RGF93",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],UNIT["Meter",1]]

View File

@ -0,0 +1 @@
PROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","2154"]]

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
PROJCS["RGF93_Lambert_93",GEOGCS["GCS_RGF93",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],UNIT["Meter",1]]

View File

@ -0,0 +1 @@
PROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","2154"]]

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
SAMPLINGFRAME 0|0|1|1
SAMPLEAREA 0.0|0.0|1.0|1.0

View File

@ -0,0 +1,3 @@
SAMPLINGFRAME 0.1223021582733813|0.14678899082568808|0.26605504587155965|0.39568345323741005
SAMPLEAREA -1|-1|0.09174311926605505|0.07194244604316546
MOVINGWINDOW

View File

@ -0,0 +1,4 @@
1,2,0.65
3,4,0.32
5,6,0.54
1 1 2 0.65
2 3 4 0.32
3 5 6 0.54

View File

@ -0,0 +1,5 @@
1
2
3
4
5

View File

@ -0,0 +1,35 @@
+------------------------------------------------------------------------------+
| COINCIDENCE TABULATION REPORT |
|------------------------------------------------------------------------------|
| Location: temp_location Mapset: PERMANENT Date: Sun Jun 26 11:43:50 |
| |
| Layer 1: tmp146693422996-- |
| Layer 2: tmp146693422996-- |
| Mask: Aucun |
| |
| Units: percent cover |
|------------------------------------------------------------------------------|
| Window: North: 6693700 |
| West: 344500 East: 358400 |
| South: 6682800 |
+------------------------------------------------------------------------------+
Panel #1 of 1
+--------------------------------------------------------------------------------+ +-----------------------+
| | tmp14669342299627 | Panel Row Total | | Table Row Total |
| cat# | 1 | 2 | 3 | 4 | w cat 0 | w/o cat 0 | | w cat 0 | w/o cat 0 |
|--------------------------------------------------------------------------------| |-----------------------|
|t 1 | 0.29 | 1.55 | 5.10 | 6.14 | 13.08 | 13.08 | | 13.08 | 13.08 |
|m 2 | 0.12 | 0.69 | 2.36 | 2.81 | 5.98 | 5.98 | | 5.98 | 5.98 |
|p 3 | 0.28 | 1.39 | 5.50 | 6.59 | 13.75 | 13.75 | | 13.75 | 13.75 |
|1 4 | 0.36 | 2.20 | 8.22 | 8.86 | 19.64 | 19.64 | | 19.64 | 19.64 |
|4 5 | 0.30 | 1.35 | 5.04 | 6.14 | 12.83 | 12.83 | | 12.83 | 12.83 |
|6 6 | 0.61 | 3.89 | 12.91 | 15.31 | 32.73 | 32.73 | | 32.73 | 32.73 |
|--------------------------------------------------------------------------------| |-----------------------|
|Total | | | | | | | | | |
|with 0 | 1.96 | 11.08 | 39.13 | 45.85 | 98.02 | 98.02 | | 98.02 | 98.02 |
|--------------------------------------------------------------------------------| |-----------------------|
|w/o 0 | 1.96 | 11.08 | 39.13 | 45.85 | 98.02 | 98.02 | | 98.02 | 98.02 |
+--------------------------------------------------------------------------------+ +-----------------------+

View File

@ -0,0 +1,4 @@
-303 0:0:0
14847 255:255:255
nv 255:255:255
default 255:255:255

View File

@ -0,0 +1,4 @@
N = 14743
3.032568 0.048485 -0.000132
0.048485 2.232202 -0.013692
-0.000132 -0.013692 0.561513

View File

@ -0,0 +1 @@
0 1-6

View File

@ -0,0 +1,4 @@
1:1:0:344550:6693650:344550:6693650
2:1:100:355550:6693650:355550:6693550
3:1:100:352750:6693650:352650:6693650
4:1:100:344650:6693650:344550:6693650

View File

@ -0,0 +1,29 @@
+----------------------------------------------------------------------------+
| Map: tmp14669386814521 Date: Sun Jun 26 12:58:01 2016 |
| Mapset: PERMANENT Login of Creator: medspx |
| Location: temp_location |
| DataBase: /tmp/processingd1287b3c04994d8a8ed29b67a67c13bb/grassdata |
| Title: ( tmp14669386814521 ) |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: raster Number of Categories: 0 |
| Data Type: FCELL |
| Rows: 109 |
| Columns: 139 |
| Total Cells: 15151 |
| Projection: unnamed |
| N: 6693700 S: 6682800 Res: 100 |
| E: 358400 W: 344500 Res: 100 |
| Range of data: min = -303 max = 14847 |
| |
| Data Description: |
| gnr par r.external |
| |
| Comments: |
| r.external --overwrite -o input="/home/medspx/projects/QGIS/code/pyt\ |
| hon/plugins/processing/tests/testdata/custom/grass7/float_raster.tif\ |
| " output="tmp14669386814521" band=1 |
| |
+----------------------------------------------------------------------------+

View File

@ -0,0 +1,59 @@
ACCURACY ASSESSMENT
LOCATION: temp_location Sun Jun 26 12:49:27 2016
MASK: none
MAPS: MAP1 = (untitled) (tmp14669381667410 in PERMANENT)
MAP2 = (untitled) (tmp1466938166749 in PERMANENT)
Error Matrix
Panel #1 of 2
MAP1
cat# 1 2 3 4 5
M 1 44 18 42 55 45
A 2 0 0 0 0 0
P 3 0 0 0 0 0
2 4 0 0 0 0 0
5 0 0 0 0 0
6 0 0 0 0 0
Col Sum 44 18 42 55 45
Panel #2 of 2
MAP1
cat# 6 Row Sum
M 1 93 297
A 2 0 0
P 3 0 0
2 4 0 0
5 0 0
6 0 0
Col Sum 93 297
Cats % Commission % Ommission Estimated Kappa
1 85.185185 0.000000 0.000000
2 NA NA NA
3 NA NA NA
4 NA NA NA
5 NA NA NA
6 NA NA NA
Kappa Kappa Variance
0.000000 0.005729
Obs Correct Total Obs % Observed Correct
44 297 14.814815
MAP1 Category Description
1: (no description)
2: (no description)
3: (no description)
4: (no description)
5: (no description)
6: (no description)
MAP2 Category Description
1: (no description)
2: (no description)
3: (no description)
4: (no description)
5: (no description)
6: (no description)

View File

@ -0,0 +1 @@
RESULT 1|1484.18

View File

@ -0,0 +1 @@
RESULT 1|0.121643391969718

View File

@ -0,0 +1 @@
RESULT 1|24.86

View File

@ -0,0 +1 @@
RESULT 1|4.13433333333333

View File

@ -0,0 +1 @@
RESULT 1|1.6642627316099

View File

@ -0,0 +1 @@
RESULT 1|102.492806034809

View File

@ -0,0 +1 @@
RESULT 1|36

View File

@ -0,0 +1 @@
RESULT 1|1.70574957341855

View File

@ -0,0 +1 @@
RESULT 1|60.0866666666667

View File

@ -0,0 +1 @@
RESULT 1|9013

View File

@ -0,0 +1 @@
RESULT 1|0.932109530291962

View File

@ -0,0 +1 @@
RESULT 1|1.47108219688802

View File

@ -0,0 +1 @@
RESULT 1|6

View File

@ -0,0 +1 @@
RESULT 1|1.67011607725834

View File

@ -0,0 +1 @@
RESULT 1|97.1875880278272

View File

@ -0,0 +1 @@
RESULT 1|0.790194657777778

View File

@ -0,0 +1,30 @@
1:0:16.666667:30.166667
1:1:33.333333:363.333333
1:2:50.000000:696.500000
1:3:66.666667:1029.666667
1:4:83.333333:1362.833333
2:0:16.666667:1899.666667
2:1:33.333333:2002.666667
2:2:50.000000:2156.000000
2:3:66.666667:2309.333333
2:4:83.333333:2462.666667
3:0:16.666667:2967.666667
3:1:33.333333:3319.333333
3:2:50.000000:3671.000000
3:3:66.666667:4022.666667
3:4:83.333333:4374.333333
4:0:16.666667:5561.000000
4:1:33.333333:5729.333333
4:2:50.000000:6231.000000
4:3:66.666667:6732.666667
4:4:83.333333:7234.333333
5:0:16.666667:8062.666667
5:1:33.333333:8389.333333
5:2:50.000000:8716.000000
5:3:66.666667:9042.666667
5:4:83.333333:9369.333333
6:0:16.666667:10529.500000
6:1:33.333333:11363.000000
6:2:50.000000:12613.000000
6:3:66.666667:13030.000000
6:4:83.333333:6931.500000

View File

@ -0,0 +1,188 @@
1 1 1 10
1 1 2 48
1 1 3 170
1 1 4 197
1 1 * 2
1 2 1 1
1 2 2 15
1 2 3 56
1 2 4 47
1 2 * 1
1 3 1 8
1 3 2 28
1 3 3 93
1 3 4 139
1 3 * 4
1 4 1 12
1 4 2 57
1 4 3 208
1 4 4 256
1 4 * 6
1 5 1 13
1 5 2 86
1 5 3 239
1 5 4 285
1 5 * 4
1 * 2 1
1 * 3 6
1 * 4 7
2 1 1 5
2 1 2 30
2 1 3 64
2 1 4 83
2 1 * 2
2 2 2 7
2 2 3 26
2 2 4 23
2 2 * 3
2 3 1 3
2 3 2 11
2 3 3 45
2 3 4 64
2 3 * 1
2 4 1 1
2 4 2 17
2 4 3 104
2 4 4 118
2 4 * 4
2 5 1 9
2 5 2 39
2 5 3 117
2 5 4 132
2 5 * 4
2 * 2 1
2 * 3 2
2 * 4 5
3 1 1 5
3 1 2 43
3 1 3 167
3 1 4 184
3 1 * 3
3 2 1 2
3 2 2 13
3 2 3 55
3 2 4 77
3 2 * 2
3 3 1 9
3 3 2 25
3 3 3 105
3 3 4 145
3 3 * 2
3 4 1 16
3 4 2 62
3 4 3 231
3 4 4 259
3 4 * 3
3 5 1 9
3 5 2 67
3 5 3 270
3 5 4 327
3 5 * 16
3 * 1 1
3 * 2 1
3 * 3 5
3 * 4 6
4 1 1 8
4 1 2 69
4 1 3 254
4 1 4 288
4 1 * 11
4 2 1 5
4 2 2 15
4 2 3 67
4 2 4 82
4 2 * 3
4 3 1 9
4 3 2 48
4 3 3 181
4 3 4 182
4 3 * 3
4 4 1 16
4 4 2 88
4 4 3 334
4 4 4 338
4 4 * 9
4 5 1 17
4 5 2 112
4 5 3 405
4 5 4 445
4 5 * 8
4 * 2 1
4 * 3 5
4 * 4 7
5 1 1 5
5 1 2 36
5 1 3 143
5 1 4 178
5 1 * 4
5 2 2 14
5 2 3 52
5 2 4 53
5 2 * 2
5 3 1 7
5 3 2 35
5 3 3 116
5 3 4 136
5 3 * 1
5 4 1 11
5 4 2 50
5 4 3 198
5 4 4 235
5 4 * 5
5 5 1 20
5 5 2 69
5 5 3 248
5 5 4 318
5 5 * 4
5 * 1 2
5 * 2 1
5 * 3 6
5 * 4 11
6 1 1 10
6 1 2 100
6 1 3 381
6 1 4 462
6 1 * 8
6 2 1 9
6 2 2 33
6 2 3 108
6 2 4 143
6 2 * 2
6 3 1 15
6 3 2 87
6 3 3 273
6 3 4 307
6 3 * 8
6 4 1 22
6 4 2 166
6 4 3 532
6 4 4 604
6 4 * 10
6 5 1 37
6 5 2 198
6 5 3 648
6 5 4 784
6 5 * 14
6 * 2 6
6 * 3 14
6 * 4 20
* 1 2 4
* 1 3 16
* 1 4 9
* 2 1 1
* 2 2 2
* 2 4 2
* 3 2 2
* 3 3 7
* 3 4 10
* 3 * 1
* 4 1 2
* 4 2 4
* 4 3 19
* 4 4 12
* 4 * 1
* 5 2 9
* 5 3 29
* 5 4 18
* * 3 1
* * 4 2

View File

@ -0,0 +1,6 @@
Null value area ignored in calculation: 1510000.000000
Plan area used in calculation: 149040000.000000
Surface area calculation(low, high, avg):
143171894.810657 143200607.945173 143186251.377915
Current region plan area: 151510000.000000
Estimated region Surface Area: 145559238.769913

View File

@ -0,0 +1 @@
Memory manager registering memory in MM_IGNORE_MEMORY_EXCEEDED mode.

View File

@ -0,0 +1 @@
-1.36308465|-5.98385631|-1.36301901|-5.98379059|2|2

View File

@ -0,0 +1,30 @@
1.485e+04 0.000e+00
1.432e+04 3.452e-02
1.380e+04 3.445e-02
1.328e+04 3.452e-02
1.276e+04 3.445e-02
1.223e+04 3.452e-02
1.171e+04 3.445e-02
1.119e+04 3.445e-02
1.067e+04 3.452e-02
1.015e+04 3.445e-02
9.623e+03 3.452e-02
9.100e+03 3.445e-02
8.578e+03 3.445e-02
8.056e+03 3.452e-02
7.533e+03 3.445e-02
7.011e+03 3.452e-02
6.488e+03 3.445e-02
5.966e+03 3.452e-02
5.444e+03 3.445e-02
4.921e+03 3.445e-02
4.399e+03 3.452e-02
3.876e+03 3.445e-02
3.354e+03 3.452e-02
2.831e+03 3.445e-02
2.309e+03 3.445e-02
1.787e+03 3.452e-02
1.264e+03 3.445e-02
7.418e+02 3.452e-02
2.194e+02 3.445e-02
-3.030e+02 3.452e-02

View File

@ -0,0 +1,10 @@
0.000000 11058.000000
100.000000 684.000000
200.000000 10791.000000
300.000000 328.000000
400.000000 13292.000000
500.000000 459.000000
600.000000 5546.000000
700.000000 12769.000000
800.000000 -160.000000
900.000000 9926.000000

View File

@ -0,0 +1,2 @@
non_null_cells|null_cells|min|max|range|mean|mean_of_abs|stddev|variance|coeff_var|sum|sum_abs
30040|262|1|6|5|3.80246338215712|3.80246338215712|1.65577930801025|2.7416051168349|43.5449113272179|114226|114226

View File

@ -0,0 +1,2 @@
14011: 255:0:71
6055: 0:230:255

View File

@ -0,0 +1 @@
348371|6688828||2

View File

@ -0,0 +1,3 @@
348815.70143898|6687991.90993828||3
354369.087594644|6689166.66470198||2
349100.490472604|6692050.15366742||3

File diff suppressed because it is too large Load Diff