PostGIS实现栅格数据导出TIFF应用实践【ST_AsTiff】
ST_AsTIFF 解析与应用实践
一、函数概述
ST_AsTIFF是 PostGIS 中用于将栅格数据(raster)转换为 TIFF(Tagged Image File Format)格式的工具函数。TIFF 是地理空间数据中最常用的栅格格式之一,支持多波段、无损压缩和地理参考信息嵌入,适用于高精度遥感影像、数字高程模型(DEM)等数据的存储与交换。该函数通过封装 GDAL 库功能,提供灵活的参数配置,满足不同场景下的 TIFF 导出需求。
二、核心参数解析
bytea ST_AsTIFF(raster rast, -- 输入栅格mixed compression/options, -- 压缩方式或GDAL选项数组integer[] nbands = NULL, -- 选择导出的波段数组integer srid = sameassource -- 空间参考ID
);
参数说明:
-
波段选择(nbands):
- 未指定时导出所有波段,多波段按顺序映射为 RGB(如ARRAY[3,2,1]将波段 3→红,波段 2→绿,波段 1→蓝)。
- TIFF 支持任意波段数,但常见遥感影像多为 3-4 波段(RGB + 近红外)。
-
压缩方式(compression):
- 无损压缩:LZW(推荐,平衡压缩率与画质)、DEFLATE(类似 ZIP)。
- 有损压缩:JPEG(如JPEG90表示 90% 质量),适用于非高精度影像。
- 特殊压缩:PACKBITS(适用于二值影像)、CCITT Group 4(传真压缩,适用于黑白影像)。
-
GDAL 选项(options):
- 常用选项:
- PHOTOMETRIC=RGB:设置色彩模式。
- TILED=YES:生成 tiled TIFF(便于分块读取)。
- BIGTIFF=YES:支持超过 4GB 的大文件。
- 完整选项见GDAL GTiff 驱动文档。
- 常用选项:
-
空间参考(srid):
- 默认为栅格自身 SRID,可显式指定(如导出时转换坐标系)。
三、典型用法示例
示例 1:导出多波段遥感影像(LZW 无损压缩)
SELECT ST_AsTIFF(rast, nbands := ARRAY[4,3,2], -- 近红外、红、绿波段→假彩色compression := 'LZW', -- 无损压缩srid := 3857 -- Web墨卡托坐标系
) AS tiff_data
FROM landsat_8
WHERE acquisition_date = '2023-07-15';
应用:生成用于植被分析的假彩色 TIFF,保留原始数据精度。
示例 2:导出单波段 DEM(JPEG 压缩)
SELECT ST_AsTIFF(rast, nband := 1, -- 第1波段(高程)compression := 'JPEG75', -- 75%质量有损压缩options := ARRAY['PHOTOMETRIC=GRAY'] -- 灰度模式
) AS dem_tiff
FROM dem_raster
WHERE region = 'mountainous';
效果:文件大小减少约 60%,适用于预览或非高精度分析。
示例 3:自定义 GDAL 选项(分块存储 + 元数据)
SELECT ST_AsTIFF(rast, nbands := ARRAY[1,2,3], -- RGB三波段options := ARRAY['TILED=YES', -- 分块存储(256×256像素)'COMPRESS=LZW', -- 无损压缩'METADATA=VAL1=value1,VAL2=value2' -- 自定义元数据],srid := 4326 -- WGS84坐标系
) AS tiled_tiff
FROM aerial_photography
WHERE flight_id = 'AP_2023';
优势:分块 TIFF 支持快速随机访问,适合 WebGIS 瓦片服务。
四、TIFF 格式与栅格转换规则
1. 波段映射规则:
- 多波段导出时,顺序决定色彩通道(如ARRAY[2,1,3]将波段 2→红,波段 1→绿,波段 3→蓝)。
- 4 波段时,第 4 波段自动映射为 Alpha 通道(透明)。
2. 数据类型转换:
- PostGIS 栅格类型(如16BSI)自动转换为 TIFF 支持的类型:
- 8BUI → Byte(0-255)
- 16BSI → Int16(-32768~32767)
- 32BF → Float32(浮点型)
3. 地理参考信息:
- TIFF 通过以下方式存储空间参考:
- SRID参数指定的坐标系(如 EPSG:4326)。
- 世界文件(.tfw)或 GeoTIFF 标签(包含仿射变换参数)。
五、性能与优化
1. 大文件处理:
… …
全部文章内容请转【PostGIS专栏】,原创不易,求关注支持,更多开源GIS相关知识技能分享,免费提供学习问答交流。