裁剪栅格 —(偏移、发布后服务样式解决)

发布时间 2023-03-22 19:06:59作者: 漠里

前言

应用场景:

  点值数据经过插值后形成栅格数据。对于结果中,需要把水体等地表要素不具备值的地方剔除。由此引出了一些列的问题。

问题:

  1、QGIS 中使用“按掩膜图层裁剪栅格”,裁剪完成在QGIS中查看是吻合的,但是在 Openlayer 中加载有偏移;

  2、ArcGIS 中使用“栅格—裁剪”,裁剪完成的是正确,但是GeoServer发布后“无数据值”的地方显示和“0”的值颜色一样;

下面就针对这两个具体的问题进行展开说下。

先放张插值后的图,下面是在这个图的基础上进行的处理(河道图层重叠的地方剔除掉)。

一、QGIS裁剪

  最近一直使用的都是 QGIS 进行数据的处理,所以首先就是使用 QGIS。QGIS中对栅格提取中有可以使用掩膜进行提取,具体工具如下图:

   处理的结果在 QGIS 中查看是对的,是吻合的(如下图,QGIS 中显示):

  但是在 Openlayer 中显示却偏移了很多(如下图 Openlayer 中显示):

   问题分析:

  1、最开始以为是参数设置的问题,重复裁剪多遍,“输入分辨率”、“输出分辨率”等都进行了设置,可是结果还是一样的(此思路不对)

  2、反反复复查看了裁剪前后的栅格详细信息,发现:范围、宽度、高度、分辨率等都不对(如下图)

  由此看来,QGIS 在处理过程中,改变了栅格的一些基础信息,导致显示有问题。

  下面就换了思路,换用 ArcGIS 做裁剪处理。

二、ArcGIS裁剪

  ArcGIS 中裁剪的功能界面如下,在使用过程中需要有几个点注意:

  1、勾选“使用输入要素裁剪几何”,如果不勾选,裁剪出的结果并不是输入范围内的;

  2、NoData 值设置问题,对于“无数据值”,ArcGIS、QGIS里面是可以作为透明的,但是在GeoServer里面不行,所以这里就根据自己需要填一个比较大或者比较小的值(我这里设置成 -10000,虽然设置了,在 ArcGIS 或者 QGIS 里面查看还是 “无数据值”,但是在 GeoServer 里面是可以读取这个值的);

  3、根据设置的值,在 GeoServer 里面设置对应样式;

  

  设置 GeoServer 样式问题。由于“无数据值”,显示的时候都和 0 显示一样的颜色,这里需要自己编辑下颜色,添加对应值为透明颜色:

<sld:ColorMapEntry label="-500" quantity="-500" color="#c70000" opacity="0"/>

  到这里最终效果终于成功了(摸索了挺久)。