4.5. 栅格

最后,我们将研究使用ysld样式来描述栅格数据。

../../../_images/RasterSymbology.svg

栅格符号学

栅格符号学回顾:

  • 栅格数据是 网格覆盖率 其中值已记录在常规数组中。在OGC术语A中 新闻报道 可用于查找每个位置的值或度量值。

  • 使用“样本”位置查询时:

    • 网格覆盖率可以确定适当的数组位置并检索值。可以使用不同的技术从多个测量值(较高的质量)中插入适当的值,或者直接返回“最近的邻居”(更快)。

    • 矢量覆盖将使用多边形检查中的一个点并返回适当的属性值。

    • 科学模型可以计算每个样本位置的值。

  • 许多栅格格式将信息组织成内容带。这些带区中记录的值,可以映射到颜色以供显示(类似于为矢量数据的属性设置主题的过程)。

    对于图像,栅格数据已形成红色、绿色和蓝色条带以供显示。

  • 由于栅格数据没有固有的形状,因此格式负责描述用于记录测量值的网格的方向和位置。

这些栅格示例使用由单个高度测量带组成的数字高程模型。图像示例使用手工着色的RGB图像作为基础地图。

参考文献:

这个练习利用了 usgs:demne:ne1 层。

4.5.1. 图像

这个 栅格 符号控制栅格数据的显示。默认情况下,栅格符号自动选择适当的红色、绿色和蓝色通道进行显示。

  1. 导航到 风格 页。

  2. 点击 Add a new style 并选择以下选项:

    姓名:

    image_example

    工作区:

    No workspace

    格式:

    YSLD

  3. 选择 rasterGenerate a default style 下拉并单击 generate .

  4. 将初始ysld定义替换为:

    symbolizers:
    - raster:
        opacity: 1.0
    
  5. 并使用 Layer Preview 选项卡以预览结果。

    ../../../_images/raster_image_1.png
  6. 这个 channels 属性可用于提供三个波段编号的列表(对于以多个波长记录的图像),或可用于查看灰度图像的单个波段编号。

    symbolizers:
    - raster:
        opacity: 1.0
        channels:
          gray:
            name: '2'
    
  7. 仅隔离绿色带(它将绘制为灰度图像):

    ../../../_images/raster_image_2.png

4.5.2. DEM

数字高程模型是由测量而非颜色信息组成的栅格数据的示例。

这个 usgs:dem 本练习使用的图层:

  1. 返回到 Styles 佩奇。

  2. 点击 Add a new style 并选择以下选项:

    姓名:

    raster_example

    工作区:

    No workspace

    格式:

    YSLD

  3. 选择 rasterGenerate a default style 下拉并单击 generate .

  4. 渲染引擎将选择我们的单波段栅格内容,并尽最大努力将这些值映射到灰度图像中。将样式的内容替换为:

    symbolizers:
    - raster:
        opacity: 1.0
    
  5. 使用 Layer Preview 选项卡以预览结果。在这种情况下,从最高和最低值产生的范围。

    ../../../_images/raster_dem_1.png
  6. 我们可以利用一些图像处理来强调生成的颜色映射 contrast-enhancement .

    symbolizers:
    - raster:
        opacity: 1.0
        channels:
          gray:
            name: '1'
            contrast-enhancement:
              mode: histogram
    
  7. 这种类型的图像处理应该谨慎使用,因为它会扭曲表示(在这种情况下,使景观看起来比实际更为多样)。

    ../../../_images/raster_dem_2.png

4.5.2.1. 彩色地图

将数据通道直接映射到颜色通道的方法只适用于快速查看定量数据。

对于定性数据(如土地使用)或简单地使用颜色,我们需要一种不同的方法:

备注

我们可以使用色彩映射表为单波段栅格人工上色,为高程或温度模型引入平滑刻度,或为定性数据引入清晰的区分。

  1. 在我们的 usgs:DEM 层:

    symbolizers:
    - raster:
        opacity: 1.0
        color-map:
          type: ramp
          entries:
          - ['#9080DB', 1.0, 0, null]
          - ['#008000', 1.0, 1, null]
          - ['#105020', 1.0, 255, null]
          - ['#FFFFFF', 1.0, 4000, null]
    
  2. 产生这种人工彩色图像:

    ../../../_images/raster_dem_3.png
  3. 不透明度值也可以用于 color-map 条目。

    symbolizers:
    - raster:
        opacity: 1.0
        color-map:
          type: ramp
          entries:
          - ['#9080DB', 0.0, 0, null]
          - ['#008000', 1.0, 1, null]
          - ['#105020', 1.0, 255, null]
          - ['#FFFFFF', 1.0, 4000, null]
    
  4. 允许零高度区域透明:

    ../../../_images/raster_dem_4.png

备注

用于GIS工作的栅格格式通常提供“无数据”值,或包含一个遮罩,将数据集仅限于具有有效信息的位置。

4.5.2.2. 习俗

我们可以使用我们所学到的关于颜色地图的知识,将颜色酿造器调色板应用到我们的数据中。

这种探索的重点是准确地传达价值差异,而不是严格地描绘出一幅美丽的图画。在选择调色板时,应注意考虑目标受众和使用的媒介。

  1. 恢复 raster_example YSLD样式如下:

    symbolizers:
    - raster:
        opacity: 1.0
    
  2. 正在生成以下地图预览。

    ../../../_images/raster_01_auto.png
  3. 首先,我们可以使用两个颜色映射条目提供自己的灰度。

    symbolizers:
    - raster:
        opacity: 1.0
        color-map:
          type: ramp
          entries:
          - ['#000000', 1.0, 0, null]
          - ['#FFFFFF', 1.0, 4000, null]
    
  4. 使用 Layer Preview 选项卡放大并查看。

    这是源数据更直接的表示。我们利用我们对立面的知识来构建一种更精确的风格。

    ../../../_images/raster_02_straight.png
  5. 虽然我们的直截了当的风格很容易理解,但在清晰度方面还是有点欠缺。

    眼睛很难分辨黑色的暗色调(或白色的亮色调),很难理解这幅图像。为了解决这个限制,我们将切换到彩色啤酒厂。 9-class PuBuGn 调色板。这是一个顺序调色板,已手动调整,以传达值的稳定变化。

    ../../../_images/raster_03_elevation.png
  6. 使用以下内容更新您的样式:

    symbolizers:
    - raster:
        opacity: 1.0
        color-map:
          type: ramp
          entries:
          - ['#014636', 1.0, 0, null]
          - ['#016C59', 1.0, 500, null]
          - ['#02818A', 1.0, 1000, null]
          - ['#3690C0', 1.0, 1500, null]
          - ['#67A9CF', 1.0, 2000, null]
          - ['#A6BDDB', 1.0, 2500, null]
          - ['#D0D1E6', 1.0, 3000, null]
          - ['#ECE2F0', 1.0, 3500, null]
          - ['#FFF7FB', 1.0, 4000, null]
    
    ../../../_images/raster_04_PuBuGn.png
  7. 使用alpha(将海洋标记为无数据区)进行一些工作:

    symbolizers:
    - raster:
        opacity: 1.0
        color-map:
          type: ramp
          entries:
          - ['#014636', 0, 0, null]
          - ['#014636', 1.0, 1, null]
          - ['#016C59', 1.0, 500, null]
          - ['#02818A', 1.0, 1000, null]
          - ['#3690C0', 1.0, 1500, null]
          - ['#67A9CF', 1.0, 2000, null]
          - ['#A6BDDB', 1.0, 2500, null]
          - ['#D0D1E6', 1.0, 3000, null]
          - ['#ECE2F0', 1.0, 3500, null]
          - ['#FFF7FB', 1.0, 4000, null]
    
  8. 我们做到了:

    ../../../_images/raster_05_alpha.png

4.5.2.3. 奖金

4.5.3. 探索对比度增强

  1. 灰度信息的一个特殊效果是自动对比度调整。

  2. 使用简单的对比度增强 usgs:dem

symbolizers:
- raster:
    opacity: 1.0
    contrast-enhancement:
      mode: normalize
  1. 你能解释一下当放大到只显示一个陆地区域(如下面的边界框所示)时会发生什么吗?

    ../../../_images/raster_contrast_1.png

    备注

    讨论 provided 在工作簿的末尾。

4.5.4. 挑战间隔

  1. 彩色地图 type 属性指示如何使用值生成结果颜色。

    • ramp 用于定量数据,在提供的颜色值之间提供平滑的插值。

    • intervals 为定量数据提供分类,为每个值范围指定纯色。

    • values 用于定性数据,每个值都需要 color-map 否则将不显示条目。

  2. Challenge: 更新您的DEM示例以使用 intervals 以供演示。对高程数据使用此方法的优势是什么?

    备注

    回答 provided 在工作簿的末尾。

4.5.5. 探索图像处理

其他属性可用于在可视化过程中提供轻微的图像处理。

备注

在本节中,我们将讨论一个预览问题,在图像处理期间,只有栅格的左上角仍然可见。此问题已报告为 GEOS-6213 .

图像处理可用于增强输出以突出小细节或平衡来自不同传感器的图像,以便进行比较。

  1. 这个 contrast-enhancement 属性用于启用一系列后处理效果。为提供设置 normalizehistogramnone

symbolizers:
- raster:
    opacity: 1.0
    contrast-enhancement:
      mode: normalize
  1. 生成以下图像:

    ../../../_images/raster_image_3.png
  2. 这个 raster-gamma 属性用于调整 contrast-enhancement 输出。小于1的值用于使图像变亮,而大于1的值则使图像变暗。

symbolizers:
- raster:
    opacity: 1.0
    contrast-enhancement:
      gamma: 1.5
  1. 提供以下效果:

    ../../../_images/raster_image_4.png

4.5.6. 挑战清晰数字高程模型演示

  1. 既然您已经在屏幕上看到了数据,并且对如何修改最初的灰度示例有了更好的理解,那么您将如何修改这些数据呢?

  2. 挑战: 用你所学的来呈现 usgs:dem 很明显。

    备注

    回答 provided 在工作簿的末尾。

4.5.7. 挑战栅格不透明度

  1. 有一种快速的方法可以使栅格数据透明,栅格 不透明性 属性的工作方式与向量数据相同。栅格作为一个整体将被绘制为部分透明的,允许来自其他层的内容提供上下文。

  2. 挑战: 你能举出一个例子来说明这一点吗?

    备注

    讨论 provided 在工作簿的末尾。