裁剪柵格—(偏移、釋出後服務樣式解決)

漠裡發表於2022-12-20

前言

應用場景:

  點值資料經過插值後形成柵格資料。對於結果中,需要把水體等地表要素不具備值的地方剔除。由此引出了一些列的問題。

問題:

  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 值,根據自己需要填一個比較大或者比較小的值(我這裡設定成 -10000,雖然設定了,在 ArcGIS 或者 QGIS 裡面檢視還是 “無資料值”,但是在 GeoServer 裡面是可以讀取這個值的),是為了下面設定 GeoServer 裡面樣式;

  

  設定 GeoServer 樣式問題。由於“無資料值”,顯示的時候都和 0 顯示一樣的顏色,這裡需要自己編輯下顏色,新增對應值為透明顏色:

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

  到這裡最終效果終於成功了(摸索了好幾天)。

相關文章