导入时如何转换数据
如果要导入的数据具有地理数据库并不使用的格式,ArcGIS 会自动将其转换成地理数据库使用的数据类型。下面将介绍导入过程中如何转换不同的格式。
导入 ArcInfo coverage
将 coverage 和 INFO 表导入到地理数据库中时,ArcGIS 会自动将 coverage 几何及字段转换为地理数据库使用的类型。本部分介绍如何将 coverage 转换为地理数据库内容。
ArcInfo coverage 中的所有要素类类型会转换为地理数据库中四种基础几何类型中的一种(点、线、多边形或注记)。每个 coverage 要素类会变为一个新的地理数据库要素类。例如,点要素类、控制点要素类和节点要素类都会转换为地理数据库中独立的点要素类。下表说明了要素类类型如何转换为地理数据库几何类型。
Coverage 要素类 |
地理数据库几何 |
点 |
点 |
弧 |
线(多义线) |
多边形 |
多边形 |
节点 |
点 |
控制点 |
点 |
区域 |
多边形 |
路线 |
带测量值的线(多义线) |
注记 |
注记 |
Coverage 和 INFO 表中的所有属性类型都会转换为地理数据库中的字段类型。Coverage 和 INFO 表项目的转换方式由其类型和宽度共同决定。例如,根据宽度的不同,可将项目类型映射为短整型、长整型或双精度类型。下表概括了项目的转换方式。
INFO 项目类型 |
INFO 项目宽度 |
地理数据库字段类型 |
B |
4 |
长整型 |
C |
1–320 |
文本 |
D |
8 |
日期 |
F |
4 |
浮点型 |
F |
8 |
双精度 |
I |
1–4 |
短整型 |
I |
5–9 |
长整型 |
I |
10–16 |
双精度 |
N |
1–9 |
浮点型 |
N |
10–16 |
双精度 |
Coverage 包含若干个只与 coverage 数据模型相关且不通过地理数据库进行维护的字段,因此您需要决定是否导入这些字段。
下面给出了大多数情况下的建议:
- 导入多边形或点 coverage 时,不导入 <cover#>、AREA 或 PERIMETER。
- 导入线 coverage 时,不导入 <cover#>、RPOLY#、LPOLY#、FNODE、TNODE 或 LENGTH。
- 如果要导入的 coverage 不使用 <cover-ID> 字段来关联其他表,则不导入此字段。
导入 ESRI shapefile
将 shapefile 和 dBASE 表导入到地理数据库中时,ArcGIS 会自动将 shapefile 几何及字段转换为地理数据库使用的类型。本部分介绍如何将 shapefile 转换为地理数据库内容。
ESRI shapefile 中的点、线和多边形的几何类型与相应地理数据库要素类类型相似。因此,将 shapefile 数据集导入地理数据库相对简单。
shapefile 中的所有要素类型按下表所示方式转换为地理数据库中的几何类型。
Shapefile 要素类 |
地理数据库几何 |
点 |
点 |
点 M |
带测量值的点 |
点 Z |
带 z 值的点 |
多义线 |
线(多义线) |
多义线 M |
带测量值的线(多义线) |
多义线 Z |
带 z 值的线(多义线) |
多边形 |
多边形 |
多边形 M |
带测量值的多边形 |
多边形 Z |
带 z 值的多边形 |
多点 |
多点 |
多点 M |
带测量值的多点 |
多点 Z |
带 z 值的多点 |
多路径 |
多路径 |
除了数字类型的字段以外,每个 shapefile 和 dBASE 字段类型都会转换为一个地理数据库字段类型。下表概括了 shapefile 和 dBASE 字段类型的转换方式。
字段类型 |
字段宽度 |
地理数据库字段类型 |
日期 |
NA |
日期 |
字符串 |
1–255 |
文本 |
布尔 |
NA |
短整型 |
数字 |
1-4(小数位数=0) |
短整型 |
数字 |
5-9(小数位数=0) |
长整型 |
数字 |
10-19(小数位数=0) |
双精度 |
浮点型 |
1–13 |
浮点型 |
浮点型 |
14–19 |
双精度 |
数字 |
1-8(小数位数>0) |
浮点型 |
数字 |
9-19(小数位数>0) |
双精度 |
导入 CAD 数据
向地理数据库中导入计算机辅助绘图 (CAD) 数据文件时,ArcGIS 会自动将 CAD 几何及字段转换为地理数据库使用的类型。请参阅从 CAD 导入(转换)来了解 CAD 元素如何转换为地理数据库内容。
将现有的 ArcSDE 数据表导入地理数据库
如果您是长期使用 ArcSDE 的用户,则 ArcSDE 中可能会有需要导入地理数据库的旧数据集。例如,您之前可能已使用 shp2sde 之类的 ArcSDE 命令将数据加载到 ArcSDE 数据库中。
或者,可能已经编写了调用 ArcSDE C 应用程序编程接口 (API) 的 C 程序来加载数据。
将这些现有 ArcSDE 数据集添加到地理数据库所使用的过程很直接。与其说这是导入现有数据集的过程,不如说是将数据集注册到地理数据库的过程。
在 ArcCatalog 或 Catalog 窗口中注册现有的 ArcSDE 数据表
- 在 Catalog 目录树中,右键单击要注册到地理数据库的表或要素类。
- 单击注册到地理数据库。
注册 ArcSDE 图层或表会将 ObjectID 字段添加到表中。对于表,此字段名称为 OID;对于要素类,此字段名称为 FID。如果表或图层中已经存在 OID 或 FID 字段,则会向注册的表中自动添加其他名称。
将数据导入个人地理数据库
将要素类从 ArcSDE 地理数据库导入个人地理数据库时,所有包含超过 255 个字符的文本字段在 Microsoft Access 中都被创建为备注字段。个人地理数据库会将此备注字段解释为 BLOB,并在 ArcGIS 中将此字段长度设置为 2,147,483,647 个字符。如果以后要将此要素类从个人地理数据库复制到另一 ArcSDE 地理数据库,该长度可能会对其造成影响。大多数数据库管理系统不支持这种长度的文本字段。