□ 樊剑锋(山西省测绘工程院,山西太原030002)
对ArcGIS在GIS数据管理中图幅结合表制作的研究
□ 樊剑锋
(山西省测绘工程院,山西太原030002)
如何利用GIS技术结合计算机技术快速有效实现对各类地理信息的组织管理,对地理信息进行有效的存储、管理、监测、模拟、分析和评价,为各行业提供全面、及时、准确和客观的信息服务和技术支撑,已成为地理信息电子数据化建设的主要目标。本文探讨研究了图幅结合表在ArcGIS中快速建立的技术设计与实现方法。
ArcGIS
地图制图在地理信息系统中占有一个非常重要的地位,而地形图图幅结合表更是从事测绘生产管理不可或缺的图件资料。随着计算机技术的发展,人们更渴望利用计算机实现自动化的、功能强大的智能化电脑管理代替繁杂的人工劳动。
本文主要研究在ArcGIS软件中利用Arc-Toolbox的相关工具快速实现中小比例尺地形图图幅结合表制作的方法,方便从事测绘生产管理人员的使用和管理。
1.国家基本比例尺地形图分幅和编号规则
我国使用的地形中小比例尺有8种,分别为1∶100万、1∶50万、1∶25万、1∶10万、1∶5万、1∶2.5万、1∶1万、1∶5000。
根据国家基本比例尺地形图分幅和编号标准(GB/T 13989-92)规定,各基本比例尺地形图均以1∶100万地形图为基础,按规定的经差和纬差划分图幅。
1∶100万地形图编号从赤道起算,至南、北纬88°以4°分为22行,用字母A、B、C……V表示行号;从180°经线起算,自西向东以6°分为60列,
用数字1、2、3……60表示其列号。其它比例尺地形图的编号均以1∶100万地形图为基础图,按相应的经纬差划分图幅,从左上角开始,逐行逐列地进行编号。前三位是1∶100万地形图行、列号,第四位是比例尺代码,第五至七位是行号数字码,第八位至十位是列号数字码,不足3位用0在左边补齐。
2.1 绘制格网(Fishnet)
应用ArcToolbox-〉Data Management Tools-〉Feature Class-〉Create Fishnet工具,根据生产数据所处位置计算格网的起始点坐标,根据地形图比例尺按相应的经、纬差设置行、列间隔等。以1∶100万图幅J50为基础绘制经度114°—117°、纬度38°—40°范围的1∶1万比例尺图幅结合表为例,设置参数如图1。
图1 格网参数设置
参数设置需要注意以下几点∶
(1)设置格网的四个边界时必须是各个比例尺对应的经、纬差倍数,否则生成的格网就会有偏差。
(2)Cell Width和Cell Height是各个比例尺对应的经差值和纬差值,必须换算成以度为单位的值。
(3)计算行列∶Number of Rows和Number of Columns的值均设为“0”,这样行列会自动计算。
(3)直接生成面要素∶Geometry Type(optional)选择“POLYGON”。
(4)同时标注每个面要素的点∶勾选“Create Label Points(optional)”。
参数设置时最好不要选择利用已有数据的范围读取四角坐标,因为这样会影响格网生成时的原点坐标参数,从而使生成格网数据产生位移。
创建格网结果“J50下1万图幅结合表”和“J50下1万图幅结合表_label”如图2。
图2 创建格网数据
2.2 计算图幅号
ArcGIS提供了Field Calculator工具可以帮助计算每幅图的图幅所在行及列。应用该功能结合VBcript函数,根据生成的图幅中心点X、Y坐标和分幅与编号规则可以计算出每幅图的图幅号。
(1)应用ArcToolbox-〉Data ManagementTools-〉Features-〉Add XY Coordinates工具在层“J50 下1万图幅结合表_label”中自动添加两个字段∶“POINT_X”、“POINT_Y”如图3。
图3 计算坐标
(2)应用ArcToolbox-〉Analysis Tools-〉Overrlay-〉Spatial Join工具将“J50下1万图幅结合表_label”与“J50下1万图幅结合表”合并连接,生成新层“J50下1万图幅结合表_SpatialJoin”如图4。
图4 图层合并
(3) 应用 ArcToolbox-〉Data Management Tools-〉Fields-〉Add Field工具在“J50下1万图幅结合表_SpatialJoin” 图层创建“图幅号”、“G1万行号”、“G1万列号”三个字段,字段类型(Field Type)分别为TEXT、SHORT、SHORT如图5。
图5 添加图层
(3)利用下列公式计算“J50下1万图幅结合表_SpatialJoin”图层里“图幅号”、“G1万行号”、“G1万列号”三个字段的值∶
φ—表示该图幅分幅的纬差值,此处为2′30″
在Field Calculator工具中VBscript里的公式表达式∶
G1万行号∶96-int(([POINT_Y]-int(int([POINT_Y])/ 4)*4)*60/2.5)
G1万列号∶int(([POINT_X]-int(int([POINT_X]) /6)*6)*60/3.75)+1
图幅号∶chr(int([POINT_Y]/4)+1+64)&int( [POINT_X]/6)+31&"G"&right(“0000”+cstr(G1万行号),3)&right(“0000”+cstr(G1万列号),3)|
首先计算“G1万行号”和“G1万列号”数值,再计算“图幅号”数值。
因为在添加字段“G1万行号”和“G1万列号”时设置其字段类型为SHORT,所以在转换为
图幅号的行、列号时必须将其转为字符串,而行、列号的数值是从1、2、3……96,数值长度不一致,所以将其转为字符串后在前面添加4个0,之后又从右侧开始取其三位,这样就解决了不足三位左边补0的问题。
表达式输入完成后,可以将计算公式保存为*.cal脚本文件,下次使用时直接在Field Calculator工具的VBscript里加载(load)即可使用。操作过程如图6、图7。
图6 计算图幅号
图7 保存脚本文件
(4)经过以上操作过程生成的图幅结合表属性字段中有些多余字段,应用ArcToolbox-〉Data Management Tools-〉Fields-〉Delete Field工具将多余字段删除,如图8。
2.3 定义坐标系统及投影
应用ArcToolbox-〉Data ManagementTools-〉Projections and Transformations-〉DefineProjection工具为图幅结合表定义投影及坐标系统,如∶CGCS2000系统。
图8 删除多余字段
创建图幅结合表的最终结果如图9。
图9 图幅结合表
在ArcMap中添加测绘数据覆盖的界线范围,应用ArcGIS层要素标注功能显示图幅结合表的图幅号,这样便于管理使用,如图10。
图10 图幅结合表数据管理
采用本文所述图幅结合表创建方法可以实现多种比例尺图幅结合表叠加管理使用,能够实现一张图幅结合表对多个测绘项目的管理。这不仅便于管理人员的管理使用,还便于数据分析人员对各种比例尺下的数据进行分析操作。
这种图幅管理方法对GIS地理信息的管理、存储、分析等提供了便捷方法,提高了测绘人员对项目的管理效率和能力。
∶
【1】丁国祥编译.2002.ArcGIS三维分析实用指南[M].北京:ArcInfo中国技术咨询与培训中心,2002.
【2】汤国安,杨昕.ArcGIS地理信息系统空间分析实验教程[M].北京∶科学出版社,2012.
【3】GB/T13989-92国家基本比例尺地形图分幅和编号[S].
P208
B
2095-7319(2015)03-0038-05
樊剑锋(1978—),男,汉族,山西黎城人,工程师,北京理工大学计算机科学与技术专业,主要从事工程测绘工作。