分段拉伸渲染模板制作

分段拉伸渲染模板制作

  在“环境镶嵌数据集的渲染模板定制”一文中,我们分享了多种渲染模板的基本使用方法。在实际应用中,有的同学想实现能够进一步控制拉伸的分段颜色渲染方式,如下图右侧所示,那今天就来介绍具体的实现方法。
在这里插入图片描述
  如果我们想对镶嵌数据集中所有栅格数据采用统一标准的渲染模板,镶嵌数据集统计值计算出来的不是所有栅格数据的最大和最小值,那么首先我们可以生成一个模板的栅格文件(按照我们所指定的栅格数据范围),然后对模板的栅格文件进行分段的拉伸渲染,保存渲染模板文件,应用到镶嵌数据集发布的影像服务上。

  一、生成模板栅格文件

  采用桌面脚本工具,根据模板的预定最大和最小值,快速生成模板栅格文件。
在这里插入图片描述
  如下图所示,为使用上述工具生成的指定数值范围的栅格文件。
在这里插入图片描述
  上述生成模板栅格的脚本如下所示,利用构建的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技术与应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值