第四章 空间数据输入

建立数据库的下一步骤是自动化操作数据, 即将地图上的特征转换为存储于计算机中的数字形式. 在ArcInfo中, 数字地图被称为coverage, 而手工地捕捉空间数据的过程称为数字化. 要很好地进行数字化, 你必需学会用新的眼光来看地图. 一个湖泊将被数字化为一个多边形, 而最佳的数字化起始位置可能是某一溪口处.

将地图上的空间数据自动化需要你:

本节中, 你将学习在ARCEDIT下通过数字化建立一个新的coverage. ARCEDIT是ARCINFO的一个模块, 可以用来数字化和编辑数据.通过手工的捕捉数据, 你添加所见到的数据, 删除错误的数据.

项目的每个数据层都需要建立COVERAGE.如果这些数据已经数字化好了, 你需要检查其格式是否合适. 其它格式的数字化数据可以转换到需要的格式. 本章结束部分将讨论怎样利用其它格式的数字化数据来生成COVERAGE.

数据捕捉

地图上的数据可以通过手工一个一个地捕捉数字化或者通过扫描转换. 已知坐标值的数据也可以通过输入坐标值来进行.这些操作都需要你对数据进行一些前处理.本节将指导你准备数据然后数字化数据.

关键术语 在进行数字化之前, 先看一下数字化的专门术语以及其符号:

数字化: 数字化将地图上的空间特征转换为数字形式. 地图上的点线面都被转换为x,y坐标记录. 一个单独的x,y代表一个点, 一串点坐标代表一条线.一条或多条线勾画出一个多边形, 再用一个标签点标识.所以数字化过程就是捕捉一系列的点和线条的过程.

注意, 标签点有两个用途: 表示点状地物和标识多边形. 为避免混淆, 请不要把它们存放在同一COVERAGE中.

数字化的技巧: 常用的数字化仪面板内由细微的网线格构成. 要进行数字化, 底图必需固定在面板上, 用帕克的十字光标来跟踪点和线特征. 注意数字化板的有效范围, 超出这个范围是得不到数据的.

帕克上的键能够执行很多程序功能, 如记录点或开始数字化线条.当键按下的时候, 当前的x,y坐标就以数字化板单位(通常是厘米或英寸)记录下来.

两条弧段相交的地方形成一个交点. 在数字化中, 你可以决定是准确地输入每一个交点作为节点, 或者忽略这些交点而输入长的弧段. 两种方式都是可以接受的, 称为SPAGHETTI DIGITIZING 和 DISCRETE DIGITIZING.

在数字化过程中没有表明的节点可以在建立拓扑关系时候来自动处理生成.

数字化底图的步骤:

确保有效和准确地数字化你的底图, 你应该跟从以下四步:

  1. 采用好的底图
  2. 决定你数字化的过程
  3. 底图的准备
  4. 进行数字化

1. 采用好的底图

你用来进行数字化工作的底图质量直接决定你的数字数据的准确性. 你应该获取最准确, 最新的底图.

2. 决定你数字化的过程

决定你的底图将怎样数字化. 在开始一个大项目之前, 你可能需要先拿出一小块来数字化, 看看是否得到正确的结果. 基本的方针有:

3. 底图的准备

预先进行底图的准备可以减少数字化和编辑阶段出现问题的可能性. 总之, 目的在于减少数字化和编辑修改所耗费的时间. 基本准则有:

4. 进行数字化

数字化工作主要在ARCEDIT模块下进行.数字化,编辑修改都是在ARCEDIT下进行的. 下面你将学习使用ARCEDIT.

在ARCINFO中数字化地图

你已经准备好你的底图, 可以开始进行数字化工作了. 在开始之前, 你需要掌握一些ARCINFO命令的用法.

ARCINFO采用命令行输入方式. 基本的操作是你输入一个命令以及其需要的参数. 在执行一个你不熟悉的命令前, 你可以用USAGE命令显示一个命令的参数, 这样你就比较容易正确输入命令了.

ARC: USAGE  BUILD

Usage: BUILD <cover> {POLY | LINE | POINT | NONE | ANNO.<subclass> }

ARC:

规范: 命令用法解释的规范是:

< > 必需的参数

{ } 可选的参数

cover 小写字母的表示你要指定实际的名字

POLY 大写的表示你要照样输入, 大小写没有差别

| 相当于"或者", 你只需要选择其一

{ POLY | LINE |....} 当可选参数不止一个时, 第一个为缺省值.

# 用于跳过相应的可选项, 即该项用缺省值.

在线帮助: ARCINFO提供非常详细的在线帮助. 在ARC命令行输入HELP命令将启动在线帮助.

练习: 在ARCEDIT下数字化你的底图

ARC: &WORKSPACE  <driver>:\YOURNAME

ARC: CREATEWORKSPACE  LAND

ARC: &WORKSPACE  LAND

ARC: &STATION  9999

ARC: ARCEDIT

ARCEDIT: COORDINATE  DIGITIZER

ARCEDIT: CREATE  TICCOV

creating <driver>:\yourname\land\ticcov

digitize a minimum of 4 tics (from digitizer).

Signal end of tic input with Tic-ID = 0

TICCOV现在是一个空的COVERAGE. 一个COVERAGE命名后, 同一工作空间下就不允许有同名的COVERAGE存在.现在要求你输入TIC点. 这些TIC点将用于以后的坐标转换.

输入TIC点:你必需输入TIC点的编号以及其在底图上相应的位置.

1) 用数字键输入TIC点, 然后用A或*键表示输入完成.(B键相当于BACKSPACE)

2) 将十字丝对准相应的点位, 按下任意键

一旦你完成了第一点的输入, 系统将提示你输入下一TIC点:

TIC-ID:

重复刚才的步骤直到输入所有的TIC点, 最后:

TIC-ID: 0 *

结束TIC点的输入.系统提示输入边界范围:

Enter initial boundary

Define the box (from digitizer)

通常你将边界定义的稍微大于底图图幅范围一点. 用帕克定义左下角和右上角点, 按任意键即可.系统提示:

The edit coverage is now /yourname/land/ticcov

Defaulting the map extent to the BND of

<driver> :\yourname\land\ticcov

TICCOV现在成为编辑中的COVERAGE, 接下来添加的任何特征都被记录到TICCOV中.

边界文件: 在你定义边界的时候, 系统将生成TICCOV.BND这个边界文件, 其内容为底图的最大和最小X,Y坐标值.这个文件ARCINFO自动建立和维护.输入边界并没有将点加入到COVERAGE中, 它只是定义了包含所有数据的窗口大小.

保存你的工作:

ARCEDIT: SAVE

只有保存文件才能保存你所作的工作. 因此, 经常地保存文件是很有必要的. 同时注意, 没有保存的变动可以通过OOPS命令来取消, 而一旦保存后, 将不能再取消变动了. SAVE命令也允许你将目前的变动存为另外一个文件.

绘制显示COVERAGE

现在可以显示TICCOV来检查你所作的工作. 在发出DRAW命令之前, 你需要告诉ARCEDIT显示哪些特征:

ARCEDIT: DRAWENVIRONMENT  TIC  IDS

ARCEDIT: DRAW

主控COVERAGE一般都是在数字化工作最开始的时候进行, 你需要尽可能准确地输入TIC点的位置. 当然, 也可以用GENERATE命令来生成主控COVERAGE.

开始数字化底图

现在你准备开始进行土地利用图的数字化工作. 由于是多边形COVERAGE, 你应该: 1) 输入TIC点 2) 数字化弧段 3) 数字化标签点

首先生成新的COVERAGE, LANDDG01. 指定它的TIC点将由主控TICCOV拷贝而来.

ARCEDIT: CREATE  LANDDG01  TICCOV

注册TIC点: 将底图放置于数字化板上固定好,发出COORDINATE命令. ARCINFO提示你输入TIC点位.

ARCEDIT: COORDINATE  DIGITIZER  DEFAULT

Defaulting transformation coverage to<driver> :\yourname\land\landdg01

Digitize a minimum of 4 tics.

Signal end of tic input with Tic-ID = 0

Tic-ID: 22*.................

Tic-ID: 0*

Scale (x,y) = (1.000, 1,001) Skew (degrees) = (.019)

Rotation (degrees) = (-0.26) Transaction = (-.004, -.007)

RMS error (input, output) = (0.002, 0.002)

请注意所显示的均方差(RMS error)的大小. 它表明你这次所输入的TIC点与前面的TIC点之间配合的好坏.你必需自己确定你的容许的RMS有多大. 当以地图单位(英寸)时, 我们所容许的RMS一般不超过0.004. 你的容许值取决于你的数据性质,比例尺, 以及所用的材料.显然, 宗地边界要求比土壤类型边界精度高得多, 大比例尺地图精度也高于小比例尺地图, 聚酯薄膜的稳定性比纸张高.

如果你的均方差太大, 重新输入COORDINATE命令, 然后再次输入TIC点.

ARCEDIT: COORDONATE  DIGITIZER  LANDDG01

设置编辑环境:

ARCEDIT允许你控制编辑和添加特征. 下面讨论的是编辑环境的控制命令.

ARCEDIT: NODESNAP  CLOSEST  .05

节点捕捉命令, 即你的光标停在已有节点0.05 英寸的范围内时, 系统将认为你是要捕捉到这个节点位置, 这样可以使线条正确连接和闭合.

ARCEDIT: DRAWENVIRONMENT  ARC NODE  LABELS IDS

你需要显示弧段,标签点和点号来随时检查判断你的工作, 所以设置显示环境包括它们.

ARCEDIT: EDITFEATURE  ARC

现在你要准备数字化的是弧段, 所以发命令设置编辑特征为弧段.下面可以开始添加弧段了:

ARCEDIT: ADD

--------------------------------------------------------------

1) Vertex 2) Node 3) Curve

4) Delete Vertex 5) Delete Arc 6) Spline on/off

7) Square on/off 8) Digitizing option 9) Quit

(Line) User-ID; 1 points 0

现在可以开始添加弧段了. 弧段是以节点开始, 以节点结束的. 根据各键的功能定义, 按照预先制定的计划, 开始添加弧段.

对于形状复杂的曲线, 你需要尽量地数字化中间点来保证其形状不失真. 需要多少的中间点是没有固定标准的,而且并不是越多越好. 用你的头脑来判断, 标准是采集足够的点使你的COVERAGE能够和地图准确地重合.

在数字化过程中不可避免地会犯错误. 如果你刚刚错误地数字化了一个中间点, 用4键来删除它;如果你不知道自己数字化的位置了, 按0键后在屏幕上会显示目前光标的位置;如果你要重新数字化正在进行的弧段, 按5键可以删除这条弧段. 一旦一条弧段已经完成, 按5键将不能删除它.

点方式和流方式

刚才我们介绍的数字化方法称为点方式, 即每个点的输入都需要你来确认. 数字化仪还有一种工作方式, 称为流方式.在流方式下, 按住1键跟踪线条. 你也可以按C键后跟踪线条, 按2键结束. 系统自动以设定的时间间隔采样数据.

流方式下必需非常小心, 并且要设置好WEEDTOLERANCE来控制输入的中间点数量.

对两种方式的设置可以用DIGITIZER命令来进行.

保存你所作的工作. 然后, 开始添加标签点.

ARCEDIT: SAVE

ARCEDIT: EDITFEATURE  LABEL

ARCEDIT: ADD

指定标签点号:按8键, 然后输入起始标签点号.按A或*退出, 开始添加标签点.

完成后, 再次保存你的工作.检查结果:

ARCEDIT: SAVE

ARCEDIT: DRAW

ARCEDIT: DRAWENVIRONMENT  NODE  ERRORS  LABEL  OFF

ARCEDIT: DRAW

假节点和悬挂节点将以不同的符号显示出来: 假节点用菱形, 悬挂节点用矩形框.检查后, 退出:

ARCEDIT: QUIT

显示你工作空间下的COVERAGE信息:

ARC: LISTCOVERAGES

Listing for /yourname/land

Available Coverages:

LANDDG01 TICCOV

ARC: DESCRIBE  LANDDG01

Description of SINGLE precission coverage landdg01

feature classes

Feature Class Subclass Number of features Attribute Data (bytes) Spatial Index Topology
-----------------------------------------------------------------------------------------------------------------
Arcs   31      
Nodes   47      
Points   19      

SECONDARY FEATURES

Tics 6

Arc segments 248

TOLERANCE

Fuzzy = 0.002 N Dangle = 0.000 N

COVERAGE BOUNDARY

Xmin = 7.430 Xmax = 13.268

Ymin = 3.454 Ymax = 7.540

DESCRIBE是一条很有用的命令, 它能告诉你COVERAGE的内容, 地图投影信息, 帮助你了解COVERAGE的当前状态. 最后退出ARC:

ARC: QUIT

高级话题: 建立COVERAGE的其它方式

如果你的数据本身就已经是数字化格式, 那么你就不需要采用数字化的办法来生成COVERAGE了.通过文件格式的转换, 它们能够为ARCINFO所用.

ARCINFO能够接受包含X,Y坐标的文本文件格式. 在考虑采用哪种可得到的不同的数据源时, 应该考虑的因素有:

将文本数据转换到COVERAGE

ARC: &STATION  9999

ARC: &POPUP  STREAMS.LIN

273

6112.859863  4605.644043

6031.049316  4609.745117

5993.982910  4619.960449

END

274

.............

END

END

ARC: GENERATE  STREAMGN01

GENERATE: COMMANDS

GENERATE: USAGE  COPYTICS

USAGE: COPYTICS [COVER]

GENERATE: COPYTICS  TICCOV

GENERATE: INPUT  STREAM.LIN

GENERATE: LINES

CREATING lINES WITH COORDINATES LOADED FROM STREAMS.LIN

GENERATE: QUIT

EXTERNALLING BND ABD TIC...

ARC:

显示生成的地图:

ARC: ARCPLOT

ARCPLOT: MAPEXTENT  TICS  STREAMGN01

ARCPLOT: LINECOLOR  BLUE

ARCPLOT: ARCS STREAMGN01

ARCPLOT: QUIT

ARC: QUIT

 

本章结束