GIS常用数据格式shp文件详解,一文带你全看懂。
·
Shapefile(SHP)简介
Shapefile(简称SHP)是由ESRI公司于1990年代推出的地理空间矢量数据格式,已成为GIS领域的行业标准之一。它通过多个关联文件共同存储空间几何数据与属性信息,广泛应用于地图制作、空间分析和数据交换。

1. 文件组成
Shapefile由至少三个必要文件构成,扩展名不同但文件名相同:
- .shp:主文件,存储几何实体(点、线、面等)的坐标数据。
- .shx:索引文件,记录几何数据的位置偏移,加速查询。
- .dbf:属性表文件(dBASE格式),存储每个几何要素的属性信息(如名称、面积等)。
可选辅助文件包括:
- .prj:定义坐标系和投影信息。
- .sbn/.sbx:空间索引文件,优化空间查询性能。
- .cpg:指定.dbf文件的字符编码(如UTF-8)。

2. 支持的几何类型
- 点(Point):单个坐标点。
- 多点(MultiPoint):一组离散的点。
- 线(Polyline):由多个线段组成的路径。
- 面(Polygon):闭合的多边形区域。
- 其他:支持Z(三维坐标)和M(测量值,如里程)属性,但实际应用较少。

3. 属性数据
- .dbf文件结构:类似表格,每行对应一个几何要素,列字段类型包括文本、数值、日期等。
- 限制:
-
- 字段名长度≤10字符。
- 最大字段数≤255。
- 文件大小上限通常为2GB。
4. 优点
- 广泛兼容性:几乎被所有GIS软件(如ArcGIS、QGIS)和库(GDAL、Geopandas)支持。
- 结构简单:文件分离便于部分修改和传输。
- 成熟稳定:历经多年验证,成为数据交换的通用格式。

5. 缺点
- 多文件管理:易遗漏附属文件(如.shx、.prj),导致数据不完整。
- 功能局限:
-
- 单文件仅支持一种几何类型。
- 无拓扑结构,相邻多边形边界冗余存储。
- 属性表功能较弱(如不支持二进制大对象)。
- 编码问题:早期版本.dbf默认编码可能引发乱码,需.cpg文件明确指定。
核心文件(必须存在)
(1) .shp(几何数据文件)
- 作用:存储地理要素的几何形状(如点、线、面的坐标数据)。
- 内容:二进制格式记录坐标点序列,例如:
-
- 点:
(x, y)坐标。 - 线:多个点按顺序连接。
- 面:闭合的多边形边界坐标。
- 点:
- 重要性:若缺失此文件,Shapefile将完全无法读取。
(2) .shx(索引文件)
- 作用:提供几何数据的快速访问索引。
- 内容:记录
.shp文件中每个几何要素的起始位置和长度(类似目录)。 - 重要性:
-
- 缺失
.shx时,GIS软件可能无法高效读取数据。 - 某些工具(如ArcGIS)可能直接报错,拒绝加载数据。
- 缺失
(3) .dbf(属性表文件)
- 作用:存储与几何要素关联的属性信息(如城市名称、人口数量)。
- 内容:类似电子表格,每行对应一个几何要素,列字段支持以下类型:
-
- 文本(字符型)
- 数值(整数、浮点数)
- 日期(格式如
YYYYMMDD)
- 限制:
-
- 字段名最长10字符(如
POP_2023)。 - 最多255个字段。
- 文件大小一般不超过2GB(取决于软件兼容性)。
- 字段名最长10字符(如

2. 辅助文件(可选但重要)
(1) .prj(坐标系文件)
- 作用:定义几何数据的坐标系和投影信息(如WGS84、UTM)。
- 内容:文本格式,使用
WKT(Well-Known Text)语法描述坐标系。
-
- 示例:
GEOGCS["GCS_WGS_1984", DATUM["D_WGS_1984", SPHEROID["WGS_1984",6378137,298.257223563]]]
- 示例:
- 重要性:
-
- 缺失时,GIS软件可能无法正确显示数据位置(需手动指定坐标系)。
- 跨区域数据交换必须保留此文件。
(2) .sbn & .sbx(空间索引文件)
- 作用:优化空间查询性能(如“查找某区域内的要素”)。
- 生成:由GIS软件(如ArcGIS)自动创建。
- 重要性:
-
- 缺失不影响数据加载,但大型数据集的查询速度会显著下降。
(3) .cpg(字符编码文件)
- 作用:指定
.dbf文件的字符编码(如UTF-8、GBK)。 - 内容:纯文本文件,仅一行编码名称(如
UTF-8)。 - 重要性:
-
- 缺失时,GIS软件可能默认使用本地编码(如中文Windows的
GBK),导致乱码。
- 缺失时,GIS软件可能默认使用本地编码(如中文Windows的
3. 其他罕见文件
(1) .xml(元数据文件)
- 作用:存储数据集的元信息(如作者、创建时间、数据来源)。
- 生成:通常由GIS软件手动导出,非必需。
(2) .aih & .ain(属性索引文件)
- 作用:加速属性查询(如“按名称搜索要素”)。
- 生成:由ArcGIS等软件创建,使用较少。

文件缺失的典型问题
|
缺失文件 |
后果 |
|
|
数据完全不可用,提示“找不到几何文件”。 |
|
|
GIS软件可能报错,或加载缓慢(需重新生成索引)。 |
|
|
几何数据可显示,但所有属性信息丢失。 |
|
|
数据坐标可能错位(如经纬度被误认为平面坐标)。 |
|
|
属性表中文显示乱码(需手动指定编码)。 |
操作建议
- 始终打包所有关联文件:压缩或复制时,确保文件名一致且包含所有相关后缀文件。
- 优先保留
.prj和.cpg:跨系统或跨国协作时,避免坐标系和乱码问题。 - 定期清理临时文件:GIS软件可能生成
.lock、.tmp等临时文件,无需保留。
如果需要处理Shapefile,推荐使用 QGIS 或 Python的geopandas库,它们能自动识别并管理多文件结构。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)