跳转到主要内容

样式与波段计算

选择波段、拉伸数值、应用色带,并通过表达式生成派生波段。

Rust API 与示例服务的查询字符串使用同一个 TileStyle 模型。样式会在昂贵的 COG 读取和渲染工作之前完成校验。

常用配方

三波段自然色 RGB:

bidx=1&bidx=2&bidx=3&rescale=0,3000&rescale=0,3000&rescale=0,3000

单波段色带:

bidx=1&colormap_name=viridis&rescale=0,3000

百分位拉伸:

stretch=percent&pc=2,98

下采样使用 average,重投影使用 bilinear:

resampling=average&reproject=bilinear

拉伸行为

对于非 U8 数据,有效值域按以下优先级选择:

  1. 显式的 rescale=min,max
  2. 指定的 stretch 模式。
  3. 两者都不存在时使用 stretch=stddev&sigma=2.0

U8 RGB 保留 0–255 快速路径。数据统计优先来自内嵌 STATISTICS_* 标签;如果没有, 则采样最高概览层一次并缓存估算结果。

算术表达式

expression 生成一个派生输出波段,波段编号从 1 开始:

expression=(b5-b4)/(b5+b4)&rescale=-1,1&colormap_name=viridis

这个 NDVI 公式只适用于所选 COG 的第 5 波段为近红外、第 4 波段为红光的情况。库不会 根据波段编号推断光谱含义;使用前必须检查资产元数据并调整引用。预渲染的 STAC visual 资产也不会自动满足此示例。

放入 URL 时请对 /+ 进行百分号编码:

curl --output ndvi.png \
  'http://127.0.0.1:8080/tiles/WebMercatorQuad/0/0/0.png?expression=(b5-b4)%2F(b5%2Bb4)&rescale=-1,1&colormap_name=viridis'

语法支持有限十进制数、括号、二元 +-*/ 和一元负号。乘除优先于 加减,不支持科学计数法。

expression 不能与 bidxcolor_formula 同时使用,并且最多接受一个 rescale。nodata 输入、除零和其他非有限结果会变为透明像元。输入上限为 4096 字节、256 个 token 和 128 层嵌套。

颜色公式

支持的 rio-color 子集按从左到右的顺序应用:

  • gamma
  • sigmoidal
  • saturation

例如:

color_formula=gamma RGB 1.5

放入 URL 查询字符串时需要对空格编码。