在PostGIS中进行点数据的栅格化(Rasterization of Point Data in PostGIS)

说明

介绍在PotGIS中将点数据转换为栅格数据。

关键字: rasterpointPostGIS

环境准备

  • Postgresql版本:PostgreSQL 14.0, 64-bit
  • PostGIS版本:POSTGIS="3.3.2"
  • QGIS版本:3.28.3-Firenze

基本步骤

一、数据准备

测试数据中有一张点数据表,坐标系3857

CREATE TABLE IF NOT EXISTS public.test_point
(
    geom geometry(Point,3857),
    id bigint,
    h numeric,--指定要转换为栅格值的列,如高程、温度、风速等
    CONSTRAINT test_point_pkey PRIMARY KEY (id)
)

TABLESPACE pg_default;

ALTER TABLE public.test_point
    OWNER to postgres;

二、二维点数据转换为三维点

DROP TABLE IF EXISTS test_point_3d;
CREATE TABLE test_point_3d
    as select h,ST_Force3D(ST_Transform(geom,3857),tp.h) as geom 
    from test_point tp;       

在这里插入图片描述

三、将三维点数据转换为栅格

WITH inputs AS 
    (SELECT 16::INTEGER AS pixelsize,'linear:radius:100' AS algorithm, 
    ST_Collect(geom) AS geom, ST_Expand(ST_Collect(geom), 10) AS ext
    FROM test_point_3d ),sizes AS 
    (SELECT ceil((ST_XMax(ext) - ST_XMin(ext))/pixelsize)::integer AS width,
         ceil((ST_YMax(ext) - ST_YMin(ext))/pixelsize)::integer AS height,
         ST_XMin(ext) AS upperleftx,ST_YMax(ext) AS upperlefty
    FROM inputs )SELECT 1 AS rid,
         ST_InterpolateRaster( geom,
         algorithm,
         ST_SetSRID(ST_AddBand(ST_MakeEmptyRaster(width,
         height,upperleftx,upperlefty,pixelsize),
         '32BF'), ST_SRID(geom)) ) AS rast FROM sizes, inputs;

在这里插入图片描述

其中ST_InterpolateRaster 参见:

https://postgis.net/docs/RT_ST_InterpolateRaster.html

其参数algorithm参见:

https://gdal.org/programs/gdal_grid.html#interpolation-algorithms

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PostGIS存储大型栅格数据,可以使用raster数据类型来处理。rasterPostGIS用于存储和处理栅格数据的特定数据类型。下面是一些存储大型栅格数据的步骤: 1. 创建一个raster列:首先,在你的表创建一个raster列,用于存储栅格数据。你可以使用以下命令在表添加一个raster列: ``` ALTER TABLE your_table ADD COLUMN raster_column raster; ``` 2. 导入栅格数据:使用raster2pgsql工具将栅格数据导入到PostGIS数据。该工具可以将栅格数据转换为SQL语句,然后将其插入到数据。例如,假设你有一个名为"your_raster.tif"的栅格文件,可以使用以下命令导入数据: ``` raster2pgsql -I -C -s <SRID> -t <tile_size> -F -Y your_raster.tif public.your_table | psql -d your_database ``` 其,`<SRID>`是你的数据的空间参考系统标识,`<tile_size>`是栅格数据的瓦片大小。 3. 索引栅格列:为了提高查询性能,你可以为raster列创建索引。在PostGIS,可以使用以下命令为raster列创建索引: ``` CREATE INDEX your_index ON your_table USING GIST (raster_column); ``` 这将为raster列创建一个GIST索引。 4. 查询和分析栅格数据:一旦栅格数据导入到PostGIS,你可以使用PostGISraster函数和操作符来查询和分析数据。例如,你可以使用`ST_Value`函数获取栅格某个像素的值,使用`ST_SummaryStats`函数计算栅格数据的统计信息等。 这些是在PostGIS存储和处理大型栅格数据的基本步骤。你还可以根据需要使用其他PostGIS的功能和工具来进行更复杂的操作和分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丷丩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值