|
@@ -0,0 +1,35 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
+
|
|
|
+<mapper namespace="com.onemap.analyse.mapper.raster.DsmMapper">
|
|
|
+ <select id="getAveDsm" resultType="Double">
|
|
|
+ WITH poly AS (SELECT public.st_geomfromtext(#{geomWkt}, 4326) AS geom)
|
|
|
+ SELECT AVG((gv).val) AS avg_dsm
|
|
|
+ FROM (SELECT public.st_clip(rast, 1, geom, false) AS clipped_rast
|
|
|
+ FROM raster.sy_dsm,
|
|
|
+ poly
|
|
|
+ WHERE public.st_intersects(rast, geom)) AS clipped,
|
|
|
+ LATERAL public.st_pixelaspoints(clipped_rast) AS gv
|
|
|
+ WHERE (gv).val IS NOT NULL;
|
|
|
+ </select>
|
|
|
+ <select id="getMaxDsm" resultType="Double">
|
|
|
+ WITH poly AS (SELECT public.st_geomfromtext(#{geomWkt}, 4326) AS geom)
|
|
|
+ SELECT MAX((gv).val) AS max_dsm
|
|
|
+ FROM (SELECT public.st_clip(rast, 1, geom, false) AS clipped_rast
|
|
|
+ FROM raster.sy_dsm,
|
|
|
+ poly
|
|
|
+ WHERE public.st_intersects(rast, geom)) AS clipped,
|
|
|
+ LATERAL public.st_pixelaspoints(clipped_rast) AS gv
|
|
|
+ WHERE (gv).val IS NOT NULL;
|
|
|
+ </select>
|
|
|
+ <select id="getMinDsm" resultType="Double">
|
|
|
+ WITH poly AS (SELECT public.st_geomfromtext(#{geomWkt}, 4326) AS geom)
|
|
|
+ SELECT MIN((gv).val) AS min_dsm
|
|
|
+ FROM (SELECT public.st_clip(rast, 1, geom, false) AS clipped_rast
|
|
|
+ FROM raster.sy_dsm,
|
|
|
+ poly
|
|
|
+ WHERE public.st_intersects(rast, geom)) AS clipped,
|
|
|
+ LATERAL public.st_pixelaspoints(clipped_rast) AS gv
|
|
|
+ WHERE (gv).val IS NOT NULL;
|
|
|
+ </select>
|
|
|
+</mapper>
|