分段拉伸渲染模板製作

分段拉伸渲染模板製作

  在“環境鑲嵌數據集的渲染模板定製”一文中,我們分享了多種渲染模板的基本使用方法。在實際應用中,有的同學想實現能夠進一步控制拉伸的分段顏色渲染方式,如下圖右側所示,那今天就來介紹具體的實現方法。
在這裏插入圖片描述
  如果我們想對鑲嵌數據集中所有柵格數據採用統一標準的渲染模板,鑲嵌數據集統計值計算出來的不是所有柵格數據的最大和最小值,那麼首先我們可以生成一個模板的柵格文件(按照我們所指定的柵格數據範圍),然後對模板的柵格文件進行分段的拉伸渲染,保存渲染模板文件,應用到鑲嵌數據集發佈的影像服務上。

  一、生成模板柵格文件

  採用桌面腳本工具,根據模板的預定最大和最小值,快速生成模板柵格文件。
在這裏插入圖片描述
  如下圖所示,爲使用上述工具生成的指定數值範圍的柵格文件。
在這裏插入圖片描述
  上述生成模板柵格的腳本如下所示,利用構建的numpy數組轉換成柵格文件。

import numpy
import arcpy
#柵格模板最大值
maxValue = arcpy.GetParameterAsText(0)
#柵格模板最小值
minValue = arcpy.GetParameterAsText(1)
#輸出柵格的存儲路徑
filePath = arcpy.GetParameterAsText(2)
maxValue = int(maxValue)
minValue = int(minValue)

#這個函數求數字的中間約數
def showMiddleFactor(num):
	count=num/2
	factorList = []
	while count>1:
		if num%count==0:
			factorList.append(count)
		count-=1
	else:
		#如果是素數,則返回1
		factorList.append(1)
	#獲取中間的約數
	sortList = sorted(factorList)
	listLen = len(sortList)
	if listLen==1:
		return sortList[0]
	#基數和偶數個
	else:
		mid = sortList[(listLen+1)/2]
		return mid

#計算柵格模板的行列數		
valueInterval = maxValue - minValue
colNum = showMiddleFactor(valueInterval)
rowNum = valueInterval/colNum
rasterArr = numpy.arange(minValue,maxValue,1).reshape(rowNum,colNum)
rasterTemp = arcpy.NumPyArrayToRaster(rasterArr, arcpy.Point(0, 0),0.005,0.005)
rasterTemp.save(filePath)
arcpy.AddMessage("柵格模板生成!")

  二、分段拉伸渲染模板製作

  在生成的模板柵格文件上,右鍵單擊“屬性”,彈出的屬性框中,選擇拉伸的渲染方式,按照下圖中所示順序依次進行操作設置。
在這裏插入圖片描述
  1.默認情況下,最大最小值爲柵格文件的實際數值範圍最大和最小值,也可以進行編輯;

  2.選擇拉伸渲染的色帶;

  3.選擇“極值”拉伸方式;

  4.統計數值,選擇“From Custom Settings(below)”方式,保持下面統計值與模板柵格的最大和最小值一致;
在這裏插入圖片描述
  5.單擊“Labeling”按鈕,彈出如下窗口,進行分段設置。如下圖,輸入分段數10,單擊“Generate”按鈕,列表中自動生成分段,可以按照實際渲染標準,手動修改列表中的value值,單擊“OK”;
在這裏插入圖片描述
  6.單擊上述頁面的“應用”按鈕,單擊“保存模板”按鈕,彈出如下圖所示窗口,此處可以修改模板文件的名稱,單擊“保存”生成渲染模板文件。
在這裏插入圖片描述
注意:後續不要再修改此模板文件的名稱,在模板文件內部已經生成了相應的名稱,將模板配置到影像服務上時,顯示的是模板文件內部的名稱。

  如下圖所示,爲應用分段拉伸渲染樣式的柵格數據展示效果。上述渲染模板可以應用到鑲嵌數據集發佈的影像服務上。具體模板使用方法參見“環境鑲嵌數據集的渲染模板定製”。
在這裏插入圖片描述
如果各位環保的Giser有更多應用需求相關的解決方案問題,歡迎留言一起討論。

想了解ArcGIS最新的技術動態和環保最新的應用,請關注微信公衆號“環保GIS技術與應用”

環保gis技術與應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章