当前位置: 首页 > news >正文

PostGIS栅格数据类型解析【raster】

PostGIS 栅格数据类型解析:结构、转换与应用

一、栅格数据类型概述

在 PostGIS 中,raster 是用于存储和处理栅格数据的核心类型,支持从多种格式(如 JPEG、GeoTIFF、PNG、DEM)导入的数据。每个栅格由一个或多个波段(Band)组成,每个波段包含规则排列的像素值矩阵,且栅格可通过空间参考信息(SRID、原点坐标、像素尺寸)实现地理配准。

二、栅格数据结构核心要素

  • 波段(Band):

    • 栅格的基本组成单元,每个波段存储特定类型的数据(如 RGB 图像包含红、绿、蓝三个波段)。
    • 支持多种像素类型(如 8 位无符号整数、32 位浮点等),可通过ST_BandPixelType查询。
  • 空间参考:

    • SRID:定义坐标系(如 4326 代表 WGS84)。
    • 原点坐标(ULX/ULY):栅格左上角像素的地理坐标。
    • 像素尺寸(ScaleX/ScaleY):每个像素代表的地理单位(如 1 米、0.001 度)。
  • 元数据:

    • 存储于系统表 raster_columnsraster_overviews 中,包含栅格范围、波段数、NoData 值等信息。

三、栅格与几何类型的转换

1. 自动转换

-- 栅格自动转换为geometry(不推荐使用)
SELECT rast::geometry AS geom
FROM raster_table;-- 等价于,推荐使用ST_ConvexHull
SELECT ST_ConvexHull(rast) AS geom
FROM raster_table;

注意: 此自动转换可能在未来版本中移除,建议显式调用ST_ConvexHull或其他几何提取函数。

2. 显式转换函数

函数作用示例
ST_ConvexHull(rast)获取栅格外包络凸多边形SELECT ST_ConvexHull(rast) FROM …
ST_Envelope(rast)获取栅格外包矩形SELECT ST_Envelope(rast) FROM …
ST_AsRaster(geom)将几何转换为栅格(栅格化)SELECT ST_AsRaster(geom, 10, 10) …
ST_Polygon(rast)将栅格转换为等值面多边形SELECT ST_Polygon(rast, 1, 100) …

为了区分几个函数的区别,可以从下图直观感受到:
raster几个外包函数区别

四、栅格与几何交互操作

1. 空间查询

-- 查询与多边形相交的栅格
SELECT rast
FROM raster_table
WHERE ST_Intersects(rast, ST_GeomFromText('POLYGON(...)'));-- 裁剪栅格至指定区域
SELECT ST_Clip(rast, ST_GeomFromText('POLYGON(...)')) AS clipped_rast
FROM raster_table;

2. 栅格化几何对象

-- 将多边形转换为100x100像素的栅格,值为1
SELECT ST_AsRaster(ST_GeomFromText('POLYGON(...)'),100, 100,          -- 宽度和高度ARRAY['8BUI'],     -- 像素类型ARRAY[1],          -- 像素值ARRAY[0]           -- NoData值
) AS rasterized_polygon;

五、最佳实践与注意事项

  • 避免依赖自动转换:

    • 现有代码中若使用rast::geometry,应替换为显式函数调用(如ST_ConvexHull(rast))。
  • 栅格与几何性能差异(后续系列文章会讲到):

    • 栅格操作(如ST_MapAlgebra)适合并行计算,但存储空间需求大。
    • 几何操作(如ST_Buffer)适合精确分析,但处理大规模数据时性能较低。
  • 数据格式选择:

    • 连续表面数据(如 DEM、卫星影像)优先使用栅格存储。
    • 离散对象(如建筑物、道路)优先使用几何存储。
  • GDAL 依赖:

    • 需确保 PostGIS 编译时启用 GDAL 支持(通过 SELECT postgis_full_version() 检查)。

六、总结

raster 是作为PostGIS存储和处理栅格数据的核心类型,使得PostgreSQL可以存储处理栅格数据,也是GIS从业更偏向使用PostgreSQL的一大原因,可以方便实现从遥感影像到矢量分析的全流程空间数据处理,本系列文章也将深入分析PostGIS函数解析。

更多文章内容请转【PostGIS专栏】,原创不易,求关注支持,更多开源GIS相关知识技能分享,免费提供学习问答交流。

在这里插入图片描述

相关文章:

  • 通过 API 获取 1688 平台店铺所有商品信息的完整流程
  • 查看mysql配置文件my.cnf的位置
  • 小土堆pytorch--神经网路-卷积层池化层
  • C++中String类
  • JavaScript的Button的contentItem属性
  • 销售易史彦泽:从效率工具到增长引擎,AI加速CRM不断进化
  • 家电行业数字化实践案例 | 易趋携手某知名家电集团打造数字化项目管理系统
  • msq基础
  • Python 包管理工具 uv
  • 以太网口16路数字量DI输入采集模块 Modbus TCP协议
  • SkyReels-V2:开启无限时长电影生成新时代
  • [创业之路-369]:企业战略管理案例分析-8-战略制定-战略制定起点:差距分析
  • Visual Studio 2022 插件推荐
  • 张 推进对话式心理治疗:SOULSPEAK的聊天机器人
  • pytorch小记(二十四):PyTorch 中的 `torch.full` 全面指南
  • 每日算法刷题Day11 5.20:leetcode不定长滑动窗口求最长/最大6道题,结束不定长滑动窗口求最长/最大,用时1h20min
  • python-leetcode 69.最小栈
  • YOLO中model.predict方法返回内容Results详解
  • WSL虚拟机整体迁移教程(如何将WSL从C盘迁移到其他盘)
  • 物流项目第四期(运费模板列表实现)
  • 每天少看1小时手机,就可能有神奇效果
  • 雀巢中国回应“巴黎水”丑闻报告:在中国销售的产品均符合相关法律法规要求
  • 世卫大会连续9年拒绝涉台提案
  • 大学2025丨北大教授陈平原:当卷不过AI时,何处是归途
  • 家国万里·时光故事会|构筑中国船舰钢筋铁骨,她在焊花里展现工匠风范
  • 从良渚到三星堆:一江水串起了5000年的文明对话