实现这个project,十进制度、渔网工具、Excel if/Text函数、挂接Excel表、空间连接、投影这些知识是必须的。看懂本篇博文也就意味着大概掌握了以上知识。
坐标数据设置与编号标准依据《国家基本比例尺地形图分幅和编号》GB/T 13989-2012。
有人问起,网络未寻得现成方法,自行根据GB/T 13989-2012试制,欢迎指正各种错误。
一、数据确定
区域范围:目的是做一个覆盖海南岛的1:5000比例尺标准分幅图。根据1:1000000地形图编号标准,海南岛主体所在图幅的编号应该是E49,其维度范围为16°N-20°N,其经度范围为108°E-114°E。
比例尺代码:1:5000比例尺代码为H
经差:1′52.5″,即1.875′,亦即0.03125°
纬差:1′15″,即1.25′,亦即0.02083333……°
划分行列:192行*192列
二、渔网工具绘制分幅网格
1.打开渔网工具,其位置在ArcToolbox\数据管理工具(data management tools)\要素类(feature class )\创建渔网(create fishnet)
2.设置参数
①设置输出要素类的输出路径、名称;
②设置渔网的初始坐标(采用十进制度,下同),使用左下角坐标108,16;
③设置y轴坐标,这是一个容易迷惑人的参数,它的作用是指引一个渔网从初始坐标开始行进创建的方向,这里设置为108,20,x值不变y值正方向增加,那么创建渔网时行列均向正方向增加;
④网格宽、网格高,宽是经差,高是纬差;
⑤行数、列数,均为192;
⑥创建点标记,标记每一个网格的中心点(生成一个点层,其属性包含点的xy坐标信息);
⑦几何要素的类型,这里用面polygon;
⑧-1环境environment参数设置,下续→
⑧-2 输出坐标系设置为“使用下述坐标系(as specified below)”,坐标系统选大地2000,注意是地理坐标系!
3.创建完渔网生成一个面层与一个点层,面要素类的左上角坐标应该是108,20。
三、Excel编号
1.编号方式在上图中给出了示例
2.导出点label要素的属性表为Excel(97-03.xls格式)进行编号,导出前先增加一个长整型(long integer)字段ID,将FID的值计算过来,以便挂接回表格。
ps:FID是Object类型,Excel表回挂市不能作为连接标准字段。
3.Excel编行、列号
①根据上面的示例以及GB标准,可以知道x方向编号应为升序列,y方向编号应为降序列;
②将x所在列升序排序,新添加一列进行编号,函数式如下图,请注意第一行的单元格要空着,具体自行理解;然后将生成的序号使用Text函数嵌套一下,使之为3位;
③具体嵌套起来的样子如下图,由于太简单了,不多啰嗦,操作完后选中整列,复制—黏贴值,x序值命名为xOrder,y序值命名为yOrder;
四、挂接Excel
1.挂接回Excel数据到label,使用图层右键连接与关联(joins and relates)\连接(join)或者属性表选项下的同名功能;
依据是导出前创建的ID字段,挂接表是Excel的对应表,连接依据是Excel表的ID列
2.label点要素类属性表新建xOrder与yOrder字段,分别计算过挂接Excel表的对应字段;
五、组合图幅编号
编号应为“E49H”+行+列,即"E49H"+ [yOrder]+ [xOrder]
六、空间连接
通过空间连接将点层数据匹配给所在的面层。
1.工具位置在ArcToolbox\分析工具(analysis tools)\空间连接(spatial join)
2.设置如下
① 目标要素,当然是面层(网格);
②连接要素,是点层;
③输出要素类的路径及名称;
④匹配选项,contains,即包含
七、投影
该分幅图目前是地理坐标系,可以投影为投影坐标系。随处可查,不讲。
原文地址:https://www.cnblogs.com/yzhyingcool/p/10328390.html