Add v.rast.stats algorithm

This commit is contained in:
Médéric RIBREUX 2016-03-12 12:21:45 +01:00
parent 3f1445998a
commit 09b9a6246d
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,10 @@
v.rast.stats
Calculates univariate statistics from a raster map based on vector polygons and uploads statistics to new attribute columns.
Vector (v.*)
ParameterVector|map|Name of vector polygon map|-1|False
ParameterRaster|raster|Name of raster map to calculate statistics from|False
ParameterString|column_prefix|Column prefix for new attribute columns|None|False|False
ParameterString|method|The methods to use (comma separated)|number,minimum,maximum,range,average,stddev,variance,coeff_var,sum,first_quartile,median,third_quartile,percentile|False|True
ParameterNumber|percentile|Percentile to calculate|0|100|90|True
Hardcoded|-c
OutputVector|output|Rast stats

View File

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
"""
***************************************************************************
v_rast_stats.py
---------------
Date : March 2016
Copyright : (C) 2016 by Médéric Ribreux
Email : medspx 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__ = 'March 2016'
__copyright__ = '(C) 2016, Médéric Ribreux'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'
import os
def processCommand(alg):
# exclude output for from_output
output = alg.getOutputFromName('output')
alg.removeOutputFromName('output')
alg.processCommand()
alg.addOutput(output)
def processOutputs(alg):
# We need to add the vector layer to outputs:
out = alg.exportedLayers[alg.getParameterValue('map')]
from_out = alg.getOutputValue('output')
command = u"v.out.ogr -s -e input={} output=\"{}\" format=ESRI_Shapefile output_layer={}".format(
out, os.path.dirname(from_out),
os.path.splitext(os.path.basename(from_out))[0]
)
alg.commands.append(command)
alg.outputCommands.append(command)