普绍林
(云南省易门县十街乡林业工作站,云南 易门 651100)
ArcGIS软件已广泛应用于林业制图工作,传统林业项目制图时,一般按照从北向南、从西向东的原则编小班号,人们一般凭面层(图斑)来判断,逐个编小班号,费时、费力,容易误编,效率低。ArcGIS软件没有现成的小班号编号工具,虽然可以用ArcGIS软件编写小班自动编号程序,但多数一线林业调查人员难以做到。经过多年的林业工程项目制图实践,总结出利用ArcGIS10.2和Excel2010相结合的方法,为林业项目制图按顶点小班号自动编号。
面层小班按顶点编号,即面层小班按折点纵坐标最大值、横坐标最小值编号。按人工编号的思路,每个小班需要找出纵坐标最大值、横坐标最小值的一个折点,每个小班均参照这个折点编号。添加Shape矢量面层图斑号字段值,用要素折点转点工具制作要素折点点层,导出折点点层Excel,制作面层小班折点纵坐标最大值、横坐标最小值极坐标Excel,在Excel中自动编小班号,Shape矢量面层连接Excel,面层小班自动编号实现。
现以易门县2015年新一轮退耕还林Shape矢量面层小班号自动编号为例,说明使用ArcGIS和Excel相结合的方法,为林业项目制图按顶点按村分组小班号自动编号的方法和步骤。
自动赋值图斑号是为了建立Shape矢量面层折点点层图斑号属性值和Shape矢量面层与Excel连接的连接字段值。图斑号不重复。
启动ArcMap,加载Shape矢量面层,打开属性表,添加X、Y、图斑号、编号、重复数字段,字段类型X、Y字段为双精度型,默认(下步要精确计算折点坐标),其余字段类型均为长整型,默认。可用字段计算器,图斑号=[FID]+1,自动赋值图斑号。
启动ArcMap,打开要素折点转点工具,输入要素选择编好图斑号的Shape矢量面层,选择保存路径,文件名,确定。打开折点点层属性表,计算几何,点的X坐标,点的Y坐标。
启动ArcMap,打开表转Excel工具,将Shape矢量面层折点点层属性表导出。
用上一步导出的折点点层属性表Excel表格,制作具有标题行的每个图斑含有图斑号、纵坐标最大值、横坐标最小值等属性的唯一一行的折点极坐标Excel表格。由于折点点层属性表列数较多,可用Excel函数COUNTIF制作。打开折点点层属性表Excel表格,全选表格,按图斑号升序、Y降序、X升序排序,在Z2单元格输入公式=COUNTIF(X$2:X2,X2),回车,下拉复制公式,计算图斑号第几次重复,再全选表格,按重复数升序排序,删除第几次重复数大于等于2的行,折点极坐标Excel表格制作完成(标题行除外,有几个图斑就有几行)。用Excel函数COUNTIF制作折点极坐标Excel表格界面(图1)。
图1 用Excel函数COUNTIF制作折点极坐标Excel表格界面
可用Excel函数COUNTIF自动赋值小班号。打开上一步制作的折点极坐标Excel表格,全选表格,按村升序、Y降序、X升序排序,在Y2单元格输入公式=COUNTIF(D$2:D2,D2),回车,下拉复制公式,Excel小班号自动编号完成。用Excel函数COUNTIF自动赋值小班号界面(图2)。
图2 用Excel函数COUNTIF自动赋值小班号界面
启动ArcMap,加载Shape矢量面层,在内容列表中右键单击Shape矢量面层,连接和关联,连接,连接上一步已赋值小班号的Excel,其扩展名为.xls,连接字段选择图斑号(连接字段类型相同,值相同),字段计算器,小班号=[编号],Shape矢量面层小班号自动赋值完成。
上一步自动赋值的小班号格式为整数(比如1),林业调查小班号的格式为文本(比如001)。启动ArcMap,加载上一步已赋值小班号的Shape矢量面层(小班号字段类型为文本),打开属性表,添加修改1字段(长整型)、修改2字段(文本)、修改3字段(文本),字段计算器,修改1=[小班号],打开属性表,按修改1字段升序排序,在属性表中选中修改1字段值为个位数的行,计段计算器,修改2=”00”(英文状态双引号),同样在属性表中选中修改1字段值为十位数的行,字段计算器,修改2=”0”,清除所选内容,字段计算器,修改3=[修改2]+[小班号]。修改3字段值即为修改好格式的小班号字段值。字段计算器,小班号=[修改3],用字段计算器自动修改小班号格式完成。用字段计算器自动修改小班号格式界面(图3)。
图3 用字段计算器自动修改小班号格式界面
小班号按顶点按村分组自动编号标注效果界面(图4)。
图4 小班号按顶点按村分组自动编号标注效果界面
利用ArcGIS10.2和Excel2010相结合的方法,无需编程,可实现林业项目制图严格按照从北向南、从西向东小班号快速准确自动编号,符合林业小班号编号规则。