pggeodb.nancy.inra.fr/db_robot - db_robot on pggeodb.nancy.inra.fr
Previous topic Chapter index Next topic

Function: __st_countagg_transfn

 

 

Schema

public

 

Owner

albenard

 

Descriptions

There is no description for function __st_countagg_transfn

 

Options

Option

Value

Returns

public.agg_count

Language

plpgsql

Parameters

agg public.agg_count

rast public.raster

nband integer = 1

exclude_nodata_value boolean = true

sample_percent double precision = 1

 

Definition

CREATE OR REPLACE FUNCTION public.__st_countagg_transfn (
 agg public.agg_count,
 rast public.raster,
 nband integer = 1,
 exclude_nodata_value boolean = true,
 sample_percent double precision = 1
)
RETURNS public.agg_count AS
$span$
DECLARE

_count bigint;
rtn_agg agg_count;
BEGIN

-- only process parameter args once
IF agg IS NULL THEN
rtn_agg.count := 0;

IF nband < 1 THEN
RAISE EXCEPTION
'Band index must be greater than zero (1-based)';
ELSE
rtn_agg.nband := nband;
END IF;

IF exclude_nodata_value IS FALSE THEN
rtn_agg.exclude_nodata_value := FALSE;
ELSE
rtn_agg.exclude_nodata_value := TRUE;
END IF;

IF sample_percent < 0. OR sample_percent > 1. THEN
RAISE EXCEPTION
'Sample percent must be between zero and one';
ELSE
rtn_agg.sample_percent := sample_percent;
END IF;
ELSE
rtn_agg := agg;
END IF;

IF rast IS NOT NULL THEN
IF
rtn_agg.exclude_nodata_value IS FALSE THEN
SELECT
width * height INTO _count FROM public.ST_Metadata(rast);
ELSE
SELECT count INTO
_count FROM public._ST_summarystats(
rast,
rtn_agg.nband, rtn_agg.exclude_nodata_value,
rtn_agg.sample_percent
);
END IF;
END IF;

rtn_agg.count := rtn_agg.count + _count;
RETURN rtn_agg;
END;
$span$
LANGUAGE
'plpgsql'
IMMUTABLE
CALLED ON NULL INPUT
SECURITY INVOKER
COST
100;

This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 26/02/2014 11:51
Previous topic Chapter index Next topic