[postgis-users] Raster pixel value
Andreas Forø Tollefsen
andreasft at gmail.com
Mon Dec 19 03:45:52 PST 2011
Thanks Tom,
I tried to select WHERE (ss).count > 0 and (ss).sum > 0, but i still got
the same error. I assume that this is something that need to be changed in
the script.
I will do some more testing.
Does anyone have an idea for something that could bypass this in my query?
SELECT foo2.gid, (ss).sum / 3600 AS meanttime
INTO accessgrid FROM (SELECT foo.gid, ST_SummaryStatsAgg(gv) ss
FROM (SELECT p.gid, ST_Clip(r.rast, p.cell) gv FROM access r,
priogrid_land p WHERE ST_Intersects(r.rast, p.cell)) foo
GROUP BY foo.gid) foo2
ORDER BY foo2.gid;
Thanks!
Andreas
2011/12/19 Tom van Tilburg <tom.van.tilburg at gmail.com>
> Yes, well found.
>
> I'm not familiar with plpgsql, but I'm sure it's easy to include some
> conditional statement. Just check the postgres documentation.
> You can also check if you can put the conditional into your SQL query
> (something like 'WHERE count(rast) > 0') so that you don't feed empty
> rasters to the function.
>
> all the best,
> Tom
>
>
> On 19-12-2011 11:13, Andreas Forø Tollefsen wrote:
>
> Line 59 to 77 in the st_summarystatsagg.sql.
> Could it be that line 69: ($1).sum / ($1).count leads to division by zero
> error if ($1).count is 0?
> How could i change this so this is not the case?
>
> -- raster_summarystatsfinal
> -- Final function used by the ST_SummaryStatsAgg aggregate
> CREATE OR REPLACE FUNCTION raster_summarystatsfinal(ss summarystats)
> RETURNS summarystats
> AS $$
> DECLARE
> ret summarystats;
> BEGIN
> ret := (($1).count,
> ($1).sum,
> ($1).sum / ($1).count,
> null,
> ($1).min,
> ($1).max
> )::summarystats;
> RETURN ret;
> END;
> $$
> LANGUAGE 'plpgsql';
>
> 2011/12/19 Andreas Forø Tollefsen <andreasft at gmail.com>
>
>> Updated to latest trunk, and now it works.
>> However, I ran into a new "division by zero" error. This halts the query.
>> Could it be that something is divided by integer rather than decimal in
>> the query, or what else causes this:
>>
>> ERROR: division by zero
>> CONTEXT: PL/pgSQL function "raster_summarystatsfinal" line 5 at
>> assignment
>>
>> ********** Error **********
>>
>> ERROR: division by zero
>> SQL state: 22012
>> Context: PL/pgSQL function "raster_summarystatsfinal" line 5 at assignment
>>
>> Best,
>> Andreas
>>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20111219/b2bbb5fc/attachment.html>
More information about the postgis-users
mailing list