ArcGIS 数据建库
The following article is from gisoracle Author 闫磊ArcGIS
1.数据建库
在数据建库之前,应该先制定数据库的存放标准,任何行业或领域,有国家、省部和地方标准的,我们一定要参考这些标准,在此基础上再完善、扩充,依据特定的业务需求设计自己的数据标准。在数据库设计过程中具体应考虑以下内容:
1.定义有哪些图层。即要解决哪些空间数据的分层存储问题;
2.每个图层有哪些字段。即每个图层的基本属性有哪些;
3.图层属性字段的约束限制条件。即哪些字段是必填的,哪些是可填的;字段的值域范围等。针对不同行业或应用领域,其数据库标准也不一样,该部分内容的可参照各类业务数据库设计有关内容。
1.1要素类和数据集含义
要素类是具有相同空间几何类型对象的概括比如具有相同几何类型的点,在ArcGIS中要素类就是矢量数据图层,最常用的四个要素类分别是点、线、面和注记(地图文本的地理数据库名称,SHP不支持注记)。
要素数据集(也叫数据集、要素集)是共用一个相同坐标系要素类的集合。在ArcGIS中,相对与要素类而言,数据集是一个逻辑管理的概念,是将具有共同空间参考体系的多个要素类(图层)组织起来的一种管理方式。。存放在数据集中要素类,可用于构建拓扑、网络数据集、地形数据集(Terrain)或几何网络,如果认为要素类是文件,要素数据集就是文件夹目录。
一个数据库中可以有多个要素类,一个数据集下可以存放一个或多个要素类,要素数据集下不能再放要素数据集。在使用时,用户一般先建数据库,后建数据集,最后是把数据放在要素数据集中。放在同一数据集下的多个数据(要素类)的空间参考必须一致(含坐标系、投影方式、XY容差一致)。
1.2 数据库中命名的规定
1.要素类名称是标识要素类的唯一名称。为要素类命名时最常用的方式是可以大小写混写(不区分大小写),或使用下划线。
2.创建要素类时,应为其指定一个名称,以指明要素类中所存储的数据。要素类名称在数据库或地理数据库中必须唯一,不能存在多个同名的要素类。也就是说,不允许在同一地理数据库中存在具有相同名称的两个要素类,即使这两个要素类位于不同的要素数据集中。
3.名称可以字母开头,也可以汉字,但不能是数字开头。
4.名称不应包含空格、* 、%、$、@、#、!、~、^、.()、?^&-=+<>’”等特殊字符。如果表或要素类的名称包含两部分,则用下划线 (_) 连接各单词,如 hunan_road。
5.名称中不应包含SQL保留字或关键字,如 select 或 add。
6.要素类名称和表名称的长度取决于基础数据库。文件地理数据库中的要素类的最大名称长度为 160个字符。
7.不支持具有以下前缀的表名或要素类名:
1)gdb_
2)sde_
3)delta_
总结:在数据库中要素类、要素数据集、字段名都必须满足下面3个不要
1)不要使用数字开头,如123,111;
2)不要有特殊字符 ,更不能是.SHP;
3)不要使用SQL关键字和保留字,select,from,where,add,as,is,like,update,order,create,Table,delete,drop等。
1.3 字段类型
在ArcGIS中,可支持的数据字段类型包括文本型(字符型)、日期型、整数、浮点数、双精度等数据库基本类型。短整数是四位数以内(因为最大是32767,5位数只有一部分),长整数只有9位(因为最大是2 147 483 647,10位数只有一部分,所以在Oracle中如果定义Number(20,0),在ArcGIS字段转换为双精度),含小数的如面积,长度等字段务必定义成双精度(因为浮点数是单精度浮点数,支持小数位,在ArcGIS的MDB和GDB存储,由于计算机芯片的原因,位数最长只有6位,如果到时位数不够用或者丢失小数值,精度也有问题),双精度(双精度浮点,也是浮点数的一种,后面简称双精度)最长是15位,含整数位和小数位,小数点是一位,GDB和MDB在ArcCatalog中无法设置长度和小数位数,如图2-41所示。
图2-41 ArcCatalog中双精度字段定义
如果是MDB格式,可以在Access软件中设置,数据类型选数字,字段大小选小数,如图2-42所示。
图2-42 MDB定义双精度字段小数位数
Shapefile文件可以定义双精度的长度和小数位数,如图2-43所示。
图2-43 Shapefile定义双精度字段小数位数
文本就是字符串,需要定义长度,SHP文件文本最大长度是254,SHP中一个汉字是两位或三位(不同编码不一样),最多可以存放127个汉字,但计算字符串长度时汉字也是一位,MDB和GDB文本长度最大是2147483647,一个汉字是一位,如果定义长度为2,可以存放2个汉字,MDB中如果长度超过255,在Access就变成了备注类型(memo)。
1.4 修改字段
ArcGIS中属性通过字段区分,所有字段都有字段名,字段别名(SHP文件中没有别名,别名就是字段名),字段类型和字段长度,这些信息需要在创建表或者要素类时设置,也可以在后面修改。
字段名规定和2.5.2数据库中命名的规定一致,不能使用数字开头,不能使用特殊字符,不能使用数据库SQL的保留字。对于SHP文件,字段名最长10个英文,汉字理论上是5个;ArcGIS 10.2以上版本实际测试字段名只能是3个汉字,ArcGIS极力不推荐使用SHP;而MDB和GDB,字段名最长64个英文,汉字也是64个,MDB中字段个数最多255个,GDB的字段个数最多是65,534个。字段别名最长都是255个。
根据使用需要可以自己增加字段、删除字段或对字段重命名,系统中字段不能被删除的,按以下操作方法修改和删除字段:
1.在ArcCatalog中,连接到包含要修改字段属性的表或要素类的地理数据库;
2.选中要素类或表,右击要素类或表→属性;
3.单击字段选项标签页;
4.从字段名称列表中选择要修改的字段:
1)要重命名字段,可单击名称文本,然后输入新名称。SHP文件是不可以,该操作仅限于ArcGIS 10.1(含10.1以后版本,SHP文件修改字段见2.5.5修改字段高级方法)。
2)要更改数据类型,可从相应的数据类型下拉列表中选择一个新类型。该操作仅限于ArcGIS 10.1以后版本,要素类或表中没有数据记录时可以任意修改,如果表中有数据,即记录数大于0时无法修改,原因避免数据的丢失,如确实需修改,方法具体见2.5.5节修改字段高级方法。
3)要更改字段别名、默认值或长度,可双击字段属性列表中的值,然后输入一个新值,该操作仅限于ArcGIS 10.1以后版本,对于文本字段,只能改长,如原来8,现在修改10,不能修改成6。
4)要更改字段的空值或关联属性域,可从下拉列表中选择一个新值。
5.完成所有需要进行的修改后,请单击确定关闭表属性或要素类属性对话框,然后应用更改。
6.也可以使用“更改字段(AlterField)”工具,对字段重命名。该工具不能修改字段类型、字段长度,如图2-44所示。且只能是地理数据库中要素类或表。
图2-44 字段重命名
7.也可以使用“添加字段(AddField)”工具,添加字段,如图2-45所示。
图2-45 添加字段
8.也可以使用“删除字段(DeleteField)”工具,选中字段就是删除字段,可以用于批量删除字段,如图2-46所示。
图2-46批量删除字段
1.5 修改字段高级方法
我们在实际工作中,表中大多是已经有了数据,如最终该要素类或表中需要存储很多条记录时,就需要将个别字段从短整数修改为长整数,双精度类型修改成文本,文本字段长度缩短等修改。但切记有些修改是有条件,如文本字段长度缩短,一定确认字段内容,不要超过定义的长度,如果超过定义的长度,需先更新表中记录内容,让其长度满足修改后字段存储要求;如文本字段修改成双精度,确保数据中不含数字外的其他字符;双精度改成文本类型的,文本字段长度要大于等于最长数字长度。
操作方法:使用导入(出)单个要素类(或者表)功能修改字段;
测试数据:chp2\mydata.gdb\DLTB中DLMC字段由60修改32,字段内容不超过32个,操作步骤如下:
1.在ArcCatalog中,选中DLTB要素类,重命名为DLTB1,因为导出后的名字是DLTB。
2.右击DLTB1,导出→转出至地理数据库(单个),如图2-47所示。
图2-47使用导出修改字段类型和长度
3.导出位置,选择当前地理数据库,输出要素类是DLTB,如图2-48所示。
图2-48导出单个要素类界面
4.找到DLMC,在右键菜单中选“属性”,输入长度为32,如图2-49所示,如果需要修改字段类型,在类型中修改,选择其他类型。
图2-49导出单个修改字段长度
5.单击确定。
END