shapefile 输出的地理处理注意事项

多年来,ESRI 为存储地理信息开发了三种主要数据格式 - coverage 格式、shapefile 格式及地理数据库格式。其中,所开发的 Shapefile 为存储地理及属性信息提供了一种简单的非拓扑格式。正由于 shapefile 的简易性,使其成为一种非常流行的开放式数据转换格式。凭借其简易性,shapefile 似乎已成为人们的必然选择,然而,在其地理数据库地址应用中仍存在局限性。因此,使用 shapefile 时,应注意其局限性。概括如下:

正因为存在这些(或更多)问题,如果选用 shapefile 进行活动数据库管理将显得捉衣见肘 - 它们无法处理当今数据创建、编辑、版本管理及存档的生命周期。

何时使用 shapefile?

何时不能使用 shapefile?

除以下列出的一些特例外,可以使用 shapefile 来存储简单的要素几何。不过,shapefile 的属性存在严重问题。例如,它们无法存储空值,无法向上舍入数字,对 Unicode 字符串的支持不足,字段名称最长只能为 10 个字符,且在同一字段中无法同时存储日期和时间。这些只是其中的主要问题。此外,它们不支持在地理数据库中发现的功能,如:域和子类型。因此,除非是简单的属性且不需要使用地理数据库功能,否则不得使用 shapefile。

Shapefile 组件与文件扩展名

Shapefile 存储在三个或更多个具有相同前缀的文件中,且位于同一系统文件夹(shapefile 工作空间)中。当您使用 Windows Explorer 而非 ArcCatalog 查看该文件夹时,可看到各文件。

扩展名

描述

必需的文件?

.shp

用于存储要素几何的主文件。此文件中未存储任何属性 - 仅有几何。

.shx

.shp 的配套文件,用于存储 .shp 文件中各个要素 ID 的位置。

.dbf

用于存储要素属性信息的 dBASE 表。

.sbn.sbx

用于存储要素空间索引的文件。

.atx

为各 dBASE 属性索引(建立于 ArcCatalog 中)而创建。

.ixs.mxs

读写 shapefile 的地理编码索引。

.prj

用于存储坐标系信息的文件。

.xml

ArcGIS 的元数据;用于存储 shapefile 的相关信息。

Shapefile 扩展名

几何限制

属性限制

包含空值的数据类型

Shapefile 制图表达

数字 - 当工具需要输出“空值”、无穷大值或 NaN(数字)时

-1.7976931348623158e+308(最大负值的 IEEE 标准)

数字(所有其他地理处理工具)

0

文本

“ ”(空白 - 无空格)

日期

存储为零,但显示为“<空>”

空值的 Shapefile 制图表达

不支持的功能

Shapefile 在工作空间或要素类级别无扩展数据类型,因此,从地理数据库要素类或其他格式转换为 shapefile 时会导致下列数据丢失:

Shapefile 和地理处理

可通过任何能够输出要素类的地理处理工具来选择 shapefile 或地理数据库要素类作为输出格式。同样,可通过表输出工具来选择 dBASE 文件 (.dbf) 或地理数据库表作为输出。您应始终了解所使用的格式,以及将地理数据库输入转换为 shapefile 输出的后果。

地理处理工具可自动生成输出要素类或表。自动生成的输出基于使用当前及临时工作空间环境中所述的许多因素。若您的临时工作空间环境未设置为某个地理数据库,而是设置为了某个系统文件夹,则自动生成的输出要素类将为 shapefile 或 dBASE 文件,如下图所示。

Shapefile 与 dBASE 输出

建议您将临时工作空间设置为某个文件地理数据库,以便自动生成的输出不会被写入 shapefile 或 .dbf 表中,而是被写入文件地理数据库中。

了解有关地理处理环境的详细信息

由于 shapefile 些入速度快,可加快模型执行速度,因此,通常用它写入模型的中间数据。不过,写入文件地理数据库与写入 shapefile 的速度几乎相同,所以除非对执行速度的要求较高,否则应始终使用文件地理数据库写入中间数据及输出数据。若您一定要使用 shapefile,请注意上述限制,且仅将 shapefile 用于简单要素和属性。将 shapefile 用于中间数据的替代方法是将要素写入 in_memory 工作空间。

了解有关 in_memory 工作空间的详细信息

空间参考和 shapefile

主题空间参考和地理处理阐述了使用地理处理工具时空间参考属性的重要性。提供了很多地理处理环境,用于控制工具所使用的空间参考。当工具的输出为 shapefile 时,“不”支持以下环境:


7/10/2012