栅格

栅格是显示在网格中的地理数据。它们与图像文件(如PNG文件)类似,只是每个点不包含可视信息,而是以数字形式包含地理信息。栅格可以被认为是数值的地理参考表。

栅格的一个例子是数字高程模型(DEM)层,该层在每个地理参考数据点处对高程数据进行数字编码。

栅格示例

这个 raster layer 下面的例子中使用的是一个虚拟世界的高程数据。数据存储在epsg:4326(经度/纬度)中,数据范围为70到256。如果渲染为灰度,其中最小值为黑色,最大值为白色,则栅格将如下所示:

../../../_images/raster1.png

以灰度显示的栅格文件

Download the raster shapefile

双色渐变

这个例子显示了一个双色样式,低海拔为绿色,高海拔为棕色。

../../../_images/raster_twocolorgradient.png

双色渐变

代码

Download the "Two-color gradient" YSLD

title: 'YSLD Cook Book: Two color gradient'
feature-styles:
- name: name
  rules:
  - symbolizers:
    - raster:
        opacity: 1.0
        color-map:
          type: ramp
          entries:
          - ['#008000',1,70,'']
          - ['#663333',1,256,'']

细节

对于这个例子,一个特征样式中有一个规则,这是最简单的可能情况。随后的所有示例都将具有这一特性。栅格的样式是通过栅格符号完成的。( lines 2-7

此示例在对应于两个高程值的两种颜色之间创建平滑渐变。渐变是通过 color-maplines 8-12 .中的每个条目 color-map 表示渐变中的一个入口或锚点。 Line 11 将下限值设置为70,颜色设置为深绿色 ('#008000'第12行 将上限值设置为256,颜色设置为深棕色。 ('#663333'第9行 将类型设置为 ramp 这意味着这两个数量之间的所有数据值都将被线性插值:163(70到256之间的中点)的值将被着色为两种颜色之间的中点(在这种情况下,大约为 '#335717' 泥泞的绿色)。

透明渐变

此示例创建的双色渐变与 双色渐变 和上面的例子一样,但是通过设置30%的不透明度,使整个图层基本透明。

../../../_images/raster_transparentgradient.png

透明渐变

代码

Download the "Transparent gradient" YSLD

title: 'YSLD Cook Book: Transparent gradient'
feature-styles:
- name: name
  rules:
  - symbolizers:
    - raster:
        opacity: 0.3
        color-map:
          type: ramp
          entries:
          - ['#008000',1,70,'']
          - ['#663333',1,256,'']

细节

此示例类似于 双色渐变 示例中添加了 line 7 ,这会将层的不透明度设置为0.3(或30%不透明度)。不透明度值1表示绘制的形状100%不透明,而不透明度值0表示形状渲染为完全透明。值0.3表示栅格部分采用在其下方绘制的任何内容的颜色和样式。由于本例中的背景为白色,因此从 color-map 看起来较浅,但如果将栅格强加在较暗的背景上,所产生的颜色会更暗。

亮度和对比度

此示例规范化颜色输出,然后将亮度增加2倍。

../../../_images/raster_brightnessandcontrast.png

亮度和对比度

代码

Download the "Brightness and contrast" YSLD

title: 'YSLD Cook Book: Brightness and contrast'
feature-styles:
- name: name
  rules:
  - symbolizers:
    - raster:
        opacity: 1
        color-map:
          type: ramp
          entries:
          - ['#008000',1,70,'']
          - ['#663333',1,256,'']
        contrast-enhancement:
          mode: normalize
          gamma: 0.5

细节

此示例与 双色渐变 ,为添加 contrast-enhancement 参数对 lines 13-15 . 第14行 通过最大程度地增加对比度来规范化输出。 第15行 然后将亮度调整0.5倍。由于值小于1会使输出更亮,因此值为0.5会使输出亮度增加两倍。

和前面的例子一样, lines 8-12 确定 color-map第11行 将下限(70)设置为深绿色 ('#008000'第12行 将上限(256)设置为深棕色 ('#663333'

三色渐变

这个例子在原色中创建了一个三色渐变。

../../../_images/raster_threecolorgradient.png

三色渐变

代码

Download the "Three-color gradient" YSLD

title: 'YSLD Cook Book: Three color gradient'
feature-styles:
- name: name
  rules:
  - symbolizers:
    - raster:
        opacity: 1
        color-map:
          type: ramp
          entries:
          - ['#0000FF',1,150,'']
          - ['#FFFF00',1,200,'']
          - ['#FF0000',1,250,'']

细节

此示例基于 color-map 有三个条目 lines 8-13第11行 指定将下限(150)设置为蓝色样式 ('#0000FF'第12行 指定中间点(200)的样式为黄色 ('#FFFF00'第13行 指定上界(250)的样式为红色 ('#FF0000'

由于我们的数据值运行在70到256之间,因此某些数据点不属于这种类型。那些低于颜色映射中最低条目(范围从70到149)的值的样式与下限颜色相同,在本例中为蓝色。颜色映射中高于上限的值(范围从251到256)的样式与上界的颜色相同,在本例中为红色。

阿尔法通道

这个例子创建了一个“alpha通道”效果,使得更高的值变得越来越透明。

../../../_images/raster_alphachannel.png

阿尔法通道

代码

Download the "Alpha channel" YSLD

title: 'YSLD Cook Book: Alpha channel'
feature-styles:
- name: name
  rules:
  - symbolizers:
    - raster:
        opacity: 1
        color-map:
          type: ramp
          entries:
          - ['#008000',1,70,'']
          - ['#008000',0,256,'']

细节

alpha通道是指可变透明度的另一种方法。很像渐变如何将值映射到颜色,每个条目 color-map 可以具有不透明度值(默认值为1.0或完全不透明)。

在这个例子中,有一个 color-map 有两个条目: 第11行 指定70的下限为深绿色 ('#008000'第13行 指定256的上界也为深绿色,但不透明度值为0。这意味着256的值将以0%的不透明度(完全透明)呈现。与渐变颜色一样,不透明度也是线性内插的,使得值163(70到256之间的中点)以50%的不透明度呈现。

离散颜色

此示例显示的渐变不是线性内插的,而是精确映射到三种特定颜色之一的值。

../../../_images/raster_discretecolors.png

离散颜色

代码

Download the "Discrete colors" YSLD

title: 'YSLD Cook Book: Discrete colors'
feature-styles:
- name: name
  rules:
  - symbolizers:
    - raster:
        opacity: 1
        color-map:
          type: intervals
          entries:
          - ['#008000',1,150,'']
          - ['#663333',1,256,'']

细节

有时,离散步骤中的色带比颜色渐变更合适。这个 type: intervals 参数添加到 color-map第9行 将显示设置为输出离散颜色而不是渐变。每个条目中的值对应于色带的上界,这样颜色映射到的值小于一个条目的值,但大于或等于下一个较低条目。例如, 第11行 颜色所有值小于150到深绿色 ('#008000'第12行 将所有小于256但大于或等于150的值设置为深棕色 ('#663333'

多种颜色渐变

此示例显示了在八种不同颜色之间插入的渐变。

../../../_images/raster_manycolorgradient.png

多种颜色渐变

代码

Download the "Many color gradient" YSLD

title: 'YSLD Cook Book: Many color gradient'
feature-styles:
- name: name
  rules:
  - symbolizers:
    - raster:
        opacity: 1
        color-map:
          type: ramp
          entries:
          - ['#000000',1,95,'']
          - ['#0000FF',1,110,'']
          - ['#00FF00',1,135,'']
          - ['#FF0000',1,160,'']
          - ['#FF00FF',1,185,'']
          - ['#FFFF00',1,210,'']
          - ['#00FFFF',1,235,'']
          - ['#FFFFFF',1,256,'']

细节

A color-map 最多可包含255个条目。这个例子有八个条目( lines 11-18 ):

条目编号

价值

颜色

RGB代码

1

95

黑色

'#000000'

2

110

蓝色

'#0000FF'

3

135

绿色

'#00FF00'

4

160

红色

'#FF0000'

5

185

紫色

'#FF00FF'

6

210

黄色的

'#FFFF00'

7

235

青色

'#00FFFF'

8

256

白色

'#FFFFFF'

Previous: 多边形