arcgis作为GIS领域应用最广泛的软件,在GIS从业人员的日常工作中必不可少。本文主要介绍arcgis属性表属性通改的一个快捷方法,只需要简单的VB代码就能大幅度提高修改效率。下图所示为示例属性表:
某些时候我们需要修改某些字段的属性值或根据具体属性内容为其它字段赋值。本示例,我们根据NAME字段的属性为SIPNAME字段重新赋值:当NAME字段属性内容中含有“街道”时,为对应的SIPNAME赋值“street”;当NAME字段属性内容中含有“村”时,为对应的SIPNAME赋值“village”;当NAME字段属性内容中含有“超市”时,为对应的SIPNAME赋值“shop”;当NAME字段属性内容中含有“公司”时,为对应的SIPNAME赋值“company”;当NAME字段属性内容中含有“银行”时,为对应的SIPNAME赋值“bank”;
一般,我们通常的做法是,先利用筛选出NAME字段含有“街道”的内容,再用字段计算器为SIPNAME字段赋值“street”。同样方法再反复四次,执行其它情况。当有更多的赋值条件时,需要反复执行更多次。数据量小时还好,当数据量到几十万乃至百万级别时,每次执行都会耗费大量时间。
其实,arcgis的字段计算器有一种高级用法,代码块,在此我们选择VB代码块为例。如下图:
勾选“显示代码块”,在预逻辑脚本代码里编写:
DIM test
IF [NAME] LIKE '%街道%'
test=‘street’
ELSE IF [NAME] LIKE '%超市%'
test=‘shop’
ELSE IF [NAME] LIKE '%公司%'
test=‘company
ELSE IF [NAME] LIKE '%村%'
test=‘vilage’
ELSE IF [NAME] LIKE '%银行%'
test=‘bank’
上图,在本示例情况下,“地类名称=”应该为“SIPNAME=”,其下面方框填写“test”(即SIPNAME=test)。
此时,点击“确定”按钮,即可一次执行这五种赋值情况,而且执行速度和一般情况下执行一种赋值条件的速度基本一样。
数据量越大越能体现该种方法的效率优势。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26074267/viewspace-2128881/
,如需转载,请注明出处,否则将追究法律责任。