栅格函数等值线
陈俊
1,研究背景
栅格函数功能强大,可以组合成函数链,实时分析,没有中间冗余数据,是栅格分析的一个重要方向。最近在研究这一块,并根据以前在多维数据处理方面的经验,发现等值线的生成,管理,发布比较繁琐。就开始公关这一需求,期望达到动态实时生成等值线的效果,减少生成,管理等繁琐步骤,提高arcgis的易用性和竞争力。
2,核心思想与技术
1, 栅格函数自定义开发
借助栅格函数的 python api,使用python开发一个栅格函数,并作用于一个影像服务,输出一个透明的图片,并且间隔点和颜色值可以作为栅格函数的参数从前端传过来,在python中解析,并应用于执行方法的函数体内。
2, scikit-image生成等值线
等值线的生成算法比较复杂,借助 scikit-image机器学习包进行等值线的生成,此计算过程耗时几十毫秒,并对结果数据做一些处理,返回给前端。
3, 颜色的自定义
使用mask进行遮盖,这样就全是透明的了,再应用colormap对线进行渲染。
3,安装部署
1, python编译器
这是编译c++代码所需要的.
Microsoft Visual C++ Compiler for Python 2.7
http://www.microsoft.com/en-us/download/details.aspx?id=44266
2,安装scikit-image包
这是安装的server的 python包,如果桌面也要使用 进入桌面的python目录,也执行此命令。
2, countour文件
把Contour.py 复制到
D:\Program Files\ArcGIS\Server\resources\Raster\Functions
这样的目录。
3, 发布服务的时候应用栅格函数
发布服务的使用应用contour.rft.xml
4,前端使用
主要设置renderRule即可,如果是多维数据集再设置下mosaicRule
其中value10就是你要设置的间隔点值,多个间隔点用逗号分隔,目前支持整数(包括负整数)。
customercolor10 就是对应间隔值的RGB颜色值。按照顺序对应20对应0,220,0这个值,50对应220,255,0这个值。
这2个参数都是string类型。
5,一些截图