webgis中等值面生成技术之-arcgis 用自带工具生成等值面并其发布成gp服务

相对于等值线,等值面可以更加直观地展示不同值的分布区域。在webgis中等值面生成的方法可分成2种,一种是由后台生成结果,前端获取结果进行渲染。第二种是在web前端生成,然后渲染。从格式上看,也有分2种,一种是矢量多边形,一种是图片。

本文主要记录在实现由arcgis 工具生成等值面过程中遇到的一些问题,主要是采用模型构建器,利用现有的工具构建模型,总体流程是:输入点要素(带需要计算的字段,如雨量,水深)-【IDW】生成栅格-根据分类规则用【栅格计算器】对生成的栅格进行重分类,如0-10,10-20,最后使用【栅格转多边形】生成相应的多边形并输出。详细过程见参考博客。

本次实现过程采用的arcgis版本为10.4.1。不同版本可能会遇到不同的问题,仅供参考。

1.在完成IDW计算后,使用栅格计算器时报错:Python2.7未安装。解决方法:用arcgis-desktop的安装程序重新安装或者修复python27。

2.发布后,在前端调用服务时报错:“error 000867: output cell size: contains invalid cell size or dataset”。因为参考的博客中说到IDW中可以不必特意设置cell size。确实,在arcmap中运行时确实可以通过。但发布成服务由前端调用时出现该错误。解决方法:设置cell size 重新发布服务。

3.发布后,在前端调用时报错:‘the coordinates or measures are out of bounds.’参考博客中说到”“设定的输出范围要素放到左侧图层栏,这样可以在Environment Settings—Pricessing Extent中直接选择”。而一开始考虑到通用性,不想用因为某个范围限制了计算范围,所以没有设置,在arcmap中运行没有问题,但发布成服务后出错。解决方法:在【环境设置】-【处理范围】设置中设定相应的范围,测试发现选择【输入并集】或者【输入的交集】也会出错。

4.发布时,注意选择调用方式是同步还是异步,同时在前端调用时也应该注意是以相应的方式进行调用。在测试过程中发现使用异步会报错,内容大概就是“任务失败”但没有更详细的信息,所以后面主要采用的是同步的方式。

2020-7-6更新:

1.IDW生成栅格后也可以用Reclassify栅格【重分类工具】进行重分类,相比【栅格计算器】使用更加方便。

2.使用tif进行前端渲染。生成多边形因为需要重分类,栅格转矢量等步骤,所以相对比较耗时。而解决这个问题的一个办法就是把重分类及渲染都放在前端进行,即只需要将IDW工具发布成服务,然后调用IDW的服务生成插值后的tif,之后获取对应的tif,在前端根据要求进行动态重分类,并进行渲染。这边需要用到前端tif解析的库,详情参考tiff.js官网。具体渲染步骤是:

a.使用tiff.js获取栅格并将栅格转成png;因为生成的tif为单波段,而png为4波段,所以png中RGB的值一般相同,且A波段为255。

b.根据分类需求对png的值进行重新分类,比如当rgb的值在区间[0,10)内时,设置其颜色设置为蓝色。则只需判断0<=r=g=b<10,时,设置r=0;b=255;g=0;这样png中该点就由原来的值变成了相应的颜色值,还可以通过设置不同的a实现半透明效果。

c:将该图片作为图层加载到地图中,当然需要有相应的范围坐标,一般这个范围可以是固定的。将图片图层在常见的地图框架中都支持。最后完成将等值面叠加到地图中。

注意:tif的像素深度不能超过8位,如果超过255需要在服务中用【int】工具将其转成整形的栅格,否则tifjs无法解析。

参考博客:

https://blog.csdn.net/rrrrroy_ha/article/details/79461388

https://blog.csdn.net/rrrrroy_Ha/article/details/79451614

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值