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

PostGIS实现栅格数据导出图片标准格式【ST_AsGDALRaster】

ST_AsGDALRaster 函数应用详解:将栅格数据导出为标准图片格式

[文章目录]

一、函数概述

二、函数参数详解

三、关键功能示例

四、GDAL 选项配置指南

五、性能优化建议

六、注意事项与限制

七、应用场景

八、总结


一、函数概述

ST_AsGDALRaster是PostGIS中用于将栅格数据转换为各种标准格式(如JPEG、GeoTIFF、PNG)的核心函数。它通过调用GDAL库的驱动程序,支持灵活的格式转换和参数配置,适用于栅格数据的导出、可视化和跨平台交换。

二、函数参数详解

bytea ST_AsGDALRaster(raster rast, text format, text[] options=NULL, integer srid=sameassource);

核心参数

  • rast:输入的PostGIS栅格对象(可通过ST_Union合并多个栅格)。
  • format:输出格式,依赖于系统中GDAL驱动的安装情况,常见值:
    • ‘JPEG’:无地理参考的压缩图像。
    • ‘GTiff’:带地理参考的GeoTIFF格式。
    • ‘PNG’:无损压缩图像。
    • 可通过ST_GDALDrivers()查看所有可用驱动。
  • options:GDAL 格式选项数组,用于控制输出细节(如压缩方式、质量等)。
  • srid:输出栅格的空间参考ID(默认与输入栅格相同)。

三、关键功能与示例

1. JPEG 输出示例(多栅格合并为单张图像)

SELECT ST_AsGDALRaster(ST_Union(rast),          -- 合并多个栅格为一个'JPEG',                  -- 输出格式为 JPEGARRAY['QUALITY=50']      -- 设置 JPEG 质量为 50%
) AS rastjpg
FROM dummy_rast
WHERE rast && ST_MakeEnvelope(10, 10, 11, 11);  -- 指定空间范围
  • 适用场景:生成无地理参考的缩略图或可视化图层。
  • 注意:JPEG是有损压缩,质量值范围为1-100。

2. GeoTIFF 输出示例

-- 示例 1:普通GeoTIFF输出
SELECT ST_AsGDALRaster(rast, 'GTiff') AS rasttiff
FROM dummy_rast WHERE rid=2;-- 示例 2:带JPEG压缩的GeoTIFF(适用于遥感影像)
SELECT ST_AsGDALRaster(rast, 'GTiff',ARRAY['COMPRESS=JPEG', 'JPEG_QUALITY=90'],  -- 设置压缩方式和质量4269                                          -- 指定空间参考(NAD83)
) AS rasttiff
FROM dummy_rast WHERE rid=2;
  • GeoTIFF优势:保留地理参考信息,支持专业GIS软件读取。
  • 常见选项:
    • COMPRESS=JPEG:使用JPEG压缩(适用于连续色调图像)。
    • TILED=YES:生成分块TIFF,提高大文件随机访问性能。
    • BIGTIFF=YES:支持大于4GB的超大型文件。

四、GDAL 选项配置指南

不同输出格式支持不同的选项参数,以下是常见配置:

格式常用选项示例值
JPEGQUALITY(质量)ARRAY[‘QUALITY=80’]
GTiffCOMPRESS(压缩方式)ARRAY[‘COMPRESS=DEFLATE’]
PREDICTOR(预测器,用于无损压缩)ARRAY[‘PREDICTOR=2’]
ZLEVEL(压缩级别)ARRAY[‘ZLEVEL=9’]
PNGZLEVEL(压缩级别)ARRAY[‘ZLEVEL=6’]
INTERLACE(交错方式)

五、性能优化建议

1. 大文件处理:

… …

查看全部文章内容请转【PostGIS专栏】,更多开源GIS相关知识技能分享,提供学习问答交流

在这里插入图片描述

相关文章:

  • JVM核心配置参数详解与调优指南
  • 《Head First 设计模式》第二章 - 笔记
  • go 与面向对象编程(OOP)
  • DTAS 3D多约束装配助力悬架公差分析尺寸链计算:麦弗逊/双叉臂/多连杆/H臂一网打尽
  • 机器学习第十七讲:PCA → 把100维数据压缩成3D视图仍保持主要特征
  • Ubuntu 20.04之Docker安装ES7.17.14和Kibana7.17.14
  • HarmonyOS Navigation组件深度解析与应用实践
  • 【强化学习】#6 n步自举法
  • 用户账号及权限管理:企业安全的基石与艺术
  • 工业自动化实践:机器人上料系统如何优化生产流程?
  • 对于程序员的个人理解
  • 软考教材重点内容 信息安全工程师 25章 移动安全 26章 大数据安全
  • C#学习9——接口、抽象类
  • 黄仁勋Computex演讲:将于三季度推出下一代GB300系统,个人AI计算机DGX Spark已全面投产
  • 【python】pyenv安装
  • HGDB中如何为表增加自增主键
  • InternLM 论文分类微调实践(XTuner 版)
  • docker安装Prometheus+Grafana
  • TeaType 奶茶性格占卜机开发记录:一场俏皮的 UniApp 单页奇遇
  • C++类与对象--4 友元
  • 中方是否担忧美国主权信用评级下调?外交部:美国应采取负责任的政策措施
  • 李公明 | 一周画记:德里达哲学还是接地气的
  • 世卫大会中国代表团:中国深入参与全球卫生治理,为构建人类卫生健康共同体贡献中国力量
  • 商务部:对原产于美国、欧盟、台湾地区和日本的进口共聚聚甲醛征收反倾销税
  • 广西北流出现强降雨,1人被洪水冲走已无生命体征
  • 流失79载,国宝文物“子弹库帛书”(二、三卷)回归祖国