名称

ST_IntersectionFractions — 计算给定 geometry 覆盖到每个 raster 像元的比例。

大纲

raster ST_IntersectionFractions(raster rast, geometry geom);

Description

计算给定 geometry 覆盖每个 raster 像元的比例。第一个参数是 raster,定义用于计算的网格几何;第二个参数是 geometry,与网格叠加并据此为每个像元赋值:对 Polygon 返回像元面积中被 geometry 覆盖的比例,对 LineString 返回线在像元中所占的长度。

可用性:3.6.0 -- 需要 GEOS 3.14 或更高版本。

示例

This rotated square polygon covers half of each cell in the raster.

Code
CREATE TABLE raster_proportions_rast (
    name text,
    rast raster
);

INSERT INTO raster_proportions_rast (name, rast) VALUES (
  '2x2 raster covering 0,0 to 10,10',
  ST_MakeEmptyRaster(2, 2, -- raster width/height in pixels
    0, 10, -- upper-left corner x/y coordinates
    5, -5, -- pixel width/height in ground units
    0, 0, -- skew x/y
    0        -- SRID
  ));

SELECT name, ST_DumpValues(
    ST_IntersectionFractions(
        rast,
        'POLYGON((5 0,0 5,5 10,10 5,5 0))'::geometry),
    1)
FROM raster_proportions_rast;
栅格输出
2x2 raster covering 0,0 to 10,10
---------------------------------
 {{0.5,0.5},{0.5,0.5}}

相关信息

ST_MakeEmptyRaster