原文发布时间:2010-04-26
作者:毛毛虫
下面继续说一下转换器RasterExpressionEvaluator的用法。
下面讲一下设置条件的语法和应用:
条件语句if,例如if (A[0]>15, 100, 255),表示如果输入波段A[0]大于15,输出波段A[0]的值为100,否则为255。
示例一:颜色分类
使用可以对比单元格的简单条件来对颜色分类。如下图(google map):找出所有绿色单元格表示公园。
根据对数据的分析知道,满足绿色显示的条件是绿色波段与红色波段和蓝色波段的值大(这里设置为大于15)满足这个条件的单元格值为100,否则为255。条件语句为:if (A[1]-A[0]>15 && A[1]-A[2]>15, 100, 255),设置如图:
根据对数据的分析知道,满足绿色显示的条件是绿色波段与红色波段和蓝色波段的值大(这里设置为大于15)满足这个条件的单元格值为100,否则为255。条件语句为:if (A[1]-A[0]>15 && A[1]-A[2]>15, 100, 255),设置如图:
示例二:道路中心线提取
在转换器RasterExpressionEvaluator的用法(二)中提到道路中心线提取的例子,现在用RasterExpressionEvaluator转换器方法来处理,也跟上面的方法对比一下。原图(google map,png格式):
从前面的分析我们已经知道,白色道路的R、G和B相当接近,黄色道路的G波段很接近R波段,而蓝色波段要明显的小于B波段,根据这些条件来设置RasterExpressionEvaluator的条件语句:
if ((abs(A[0]-A[1])<=3 && abs(A[0]-A[2])<=3) || (abs(A[0]-A[1])<=4 && abs(A[0]-A[2])>10) , 0, 255)
也就是说,如果是灰色或黄色道路,波段赋值为0(黑色),否则为255(白色)。
转换后: