ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:23.29KB ,
资源ID:9028869      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9028869.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(shp文件格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

shp文件格式.docx

1、shp文件格式shp文件格式 发信人: liuwenjin (bull), 信区: GIS 标 题: shp文件格式 发信站: 两全其美 BBS (Mon Aug 29 23:36:04 2005), 本站() SHAPE 文件格式 SDE,ARC/INFO,PC ARC/INFO,Data Automation Kit(DAK)和ArcCAD软件提供了shape 到coverage的数据转换器,ARC/INFO同样提供了coverage到shape的转换器。为了和其他数据格式交换,shape文件的格式在本报告中被出版。其他数据流,比如来自全球定位系统(GPS)接收机的数据能同样被存为shap

2、e文件或X,Y事件表。 Shape文件技术描述计算机程序能通过使用本节的技术描述来产生,读,写shape文件。 一个ESRI的shape文件包括一个主文件,一个索引文件,和一个dBASE表。主文件是一个直接存取,变量记录长度文件,其中每个记录描述一个有它自己的vertices列表的shape。在索引文件中,每个记录包含对应主文件记录离主文件头开始的偏移,dBASE表包含一feature一个记录的feature的特征。几何和属性间的一一对应关系是基于记录数目的。在dBASE文件中的属性记录必须和主文件中的记录是相同顺序的。 命名习惯所有文件名都符合8.3命名习惯。主文件,索引文件和dBASE文件

3、有相同的前缀。前缀必须是由字符或数字(a-Z,0-9)开始,后跟0到7个字符(a-Z,0-9,_,)主文件的后缀是.shp,索引文件的后缀是.shx,dBASE表的后缀是.dbf。文件名中的所有字母在对文件名敏感的操作系统中都是小写的。 例子 主文件:counties.shp 索引文件:counties.shx dBASE表: ounties.dbf数字类型一个shape文件存储整数和双精度数,本文档的余数指以下类型: 整数:有符号32位整数(4字节) 双精度:有符号64位IEEE双精度浮点数(8字节)浮点数必须是数字的值。负无穷,正无穷和非数字(NaN)值在shape文件不被允许。然而sha

4、pe文件支持没有数据的值这样的概念,但是目前只用于衡量。某些小于1038被shape文件读取程序用来代表没有数据的值。 下面的第一节描述shape文件的总体结构和组织。第二节描述shape文件支持的每种shape类型的记录容。 主文件的组织 主文件(.shp)由固定长度的文件头和接着的变长度记录组成。每个变长度记录是由固定长度的记录头和接着的变长度记录容组成。图1图解了主文件的结构。 图 1 主文件的结构 文件头 记录头 记录容 记录头 记录容 记录头 记录容 记录头 记录容 …… …… 记录头 记录容 Shape文件中所有的容可以被分为二类:

5、与数据相关的: 。主文件记录容 。主文件头的数据描述域(Shape 类型,边界盒等) 与文件管理相关的: 。文件和记录长度 。记录偏移等 整数和双精度整数在文件头中组成数据描述域,在主文件的记录容是小ndian(PC或Intel)字节顺序。组成文件的其余部分和文件管理的整数和双精度浮点数是大endian(Sun或Motorola)字节顺序。 主文件头 主文件头100字节长。表1显示带有字节位置,值,类型和字节顺序的文件头中的域。 在此表中,位置是相对于文件的开始。 表 1 主文件头的描述 位置 域 值 类型 字节顺序 0字节 文件代码 9994 整数 大 4字节 未被使用 0 整数 大 8字节

6、 未被使用 0 整数 大 12字节 未被使用 0 整数 大 16字节 未被使用 0 整数 大 20字节 未被使用 0 整数 大 24字节 文件长度 文件长度 整数 大 28字节 版本 1000 整数 小 32字节 Shape类型 Shape类型 整数 小 36字节 边界盒 Xmin 双精度 小 44字节 边界盒 Ymin 双精度 小 52字节 边界盒 Xmax 双精度 小 60字节 边界盒 Ymax 双精度 小 68字节* 边界盒 Zmin 双精度 小 76字节* 边界盒 Zmax 双精度 小 84字节* 边界盒 Mmin 双精度 小 92字节* 边界盒 Mmax 双精度 小 *未被使用,值为

7、0.0,若没有被衡量或是Z轴。 文件长度的值是在16位字下文件的总长度(包括组成文件头的50个16位字)。在shape文件中的所有非空shape被需要是同种shape类型。Shape类型的值如下: 值 shape类型 0 空shape 1 点 3 多线 5 多边形 8 多点 11 点Z 13 多线Z 15 多边形Z 18 多点Z 21 点M 23 多线M 25 多边形M 28 多点M 31 多斑块 没有被定义的Shape 类型值(2,4,6等直到33)为将来可能的使用而保留。目前shape文件被局限于包含以上定义的同种shape类型。在将来shape文件可以被允许包含多于一种shape类型。若

8、混合shape类型被实现,文件头中的shape类型将标识该文件。 主文件头的边界盒存储文件中shape的实际幅度。最小边界X和Y直交的(潜在的M,Z)长方形包含了所有的shape。若shape文件是空的(没有记录),min,Ymin,Xmax,Ymax的值是未被定义的。Mmin和Mmax能包含shape文件用来衡量不包含衡量的shape类型的没有数据的值(参见2页的数字类型),记录头 每个记录的头存储了记录的数目和记录容的长度。记录头有一个固定长度8字节。表 2显示文件记录头中域的字节位置,值,类型和字节顺序。在表中,位置是相对于记录的开始的。 表 2 主文件记录头文件的描述 位置 域 值 类

9、型 字节顺序 0字节 记录数目 记录数目 整数 大 4字节 容长度 容长度 整数 大 记录数目从1开始。 一个记录的容长度是按16位字衡量的记录容长度。每个记录因此为文件的总长度贡献(4容长度)个16位字,正如文件头是24字节一样。 主文件记录容 Shape文件记录容包含一个shape类型和接着的该shape的几何数据。记录容的长度依赖于在一个shape中部分和vertices的数目。对每种shape类型,我们首先描述该shape然后是它在磁盘上的存储镜像。在表3到16,位置是相对于记录容的开始。 空shape shape类型为0指代一种不带几何数据的空shape,每种要素类型(点,线,多边形

10、等)都支持空,在同一个shape文件中有点和空的点是有效的。常常空shape是放东西的地方;在shape文件产生时被使用和在产生后更被广泛地使用。 表 3 空shape记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 0 整数 1 小 在X,Y位置的Shape类型 点 一个点包括一对以X,Y顺序排列的双精度的坐标 Point Double X /X坐标 Double Y /Y坐标 表 4 点记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 1 整数 1 小 4字节 X X 双精度 1 小 12字节 Y Y 双精度 1 小 多点 一个多点代表一个点的集合: M

11、ultiPoint Double4 Box /边界盒 Integer NumPoints /点的数目 PointNumPoints Points /在集合中的点 边界盒以Xmin,Ymin,Xmax,Ymax存储。 表 5 多点记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 8 整数 1 小 4字节 Box Box 双精度 4 小 36字节 NumPoints NumPoints 整数 1 小 40字节 Points Points 点 NumPoints 小 PolyLine 一条PolyLine是指一条包含一个或多个部分的有序的vertices的集合。一个部分是指二个或多

12、个点彼此连接的顺序。部分间彼此相连或不连。部分间彼此可能相交或不相交。 因为该定义没有禁止有确定坐标的连续点,shape文件的读程序必须掌握这样的情况。在另外,退化(degenerate)和可能导致零长度的结果是不被允许的。 PolyLine Double4 Box /边界盒 Integer NumParts /部分的数目 Integer NumPoints /点的总数目 IntegerNumParts Parts /在部分中第一个点的索引 PointNumPoints Points /所有部分的点 PolyLine的域在以下为更详细的描述: Box 被存储的PolyLine的边界盒,以Xmi

13、n,Ymin,Xmax,Ymax的顺序存储。 NumParts 在PolyLine中部分的数目。 NumPoints 所有部分的点的总数目。 Parts NumParts长度的数列。为每条PolyLine存储它在点数列中的第一个点的索引。数列索引是从0开始的。 Points NumPoints长度的数列。在PolyLine中的每一部分的点被尾到尾存储。部分2的点跟在部分1的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。 在部分间点之间没有界限。 表 6 PolyLine记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 3 整数 1 小 4字节 Box Box 双精

14、度 4 小 36字节 NumParts NumParts 整数 1 小 40字节 NumPoints NumPoints 整数 1 小 44字节 Parts Parts 整数 NumParts 小 X字节 Points Points 点 NumPoints 小 注意:X=44+4* NumParts多边形 一个多边形包含一个或多个环。一个环是四或多个点彼此相连组成的一个闭合的彼此不相交的环。一个多边形可能包括多个外环,一个环的vertices的顺序和方向指示环的哪一边是多边形的部。在多边形中的洞的环的vertices是逆时针方向的。一个环组成的多边形总是顺时针方向的。一个多边形的环是被做为它的

15、一部分的。因为该定义没有禁止有确定坐标的连续的点,shape文件读程序必须解决这种情况。在另外,退化(degenerate)和可能导致零长度的结果是不被允许的。多边形的结构被定义为PolyLine结构,正如下文: Polygon Double4 Box /边界盒 Integer NumParts /部分的数目 Integer NumPoints /点的总数目 IntegerNumParts Parts /在部分中第一个点的索引 PointNumPoints Points /所有部分的点 多边形的域在以下为更详细的描述: Box 被存储的多边形的边界盒,以Xmin,Ymin,Xmax,Ymax的

16、顺序存储。 NumParts 在多边形中环的数目。 NumPoints 所有环的点的总数目。 Parts NumParts长度的数列。为每条环存储它在点数列中的第一个点的索引。数列索引是从0开始的。 Points NumPoints长度的数列。在多边形中的每一个环的点被尾到尾存储。环2的点跟在环1的点之后,如此下去。部分数列对每一环保持开始点的数列索引。在环间点之间没有界限。 图 2中的例子图演示了多边形的表现。该图中的多边形有一个洞,总共是8个vertices。 关于多边形shape有以下重要注意事项: 环是闭合的(第一个和最后一个vetex必须是一样的)在点数列中环的顺序是不重要的。 存储

17、在shape文件中的多边形必须是clean,一个clean的多边形是指这样的一个多边形: 1 没有自交。这意味着属于一个环的一段可能不与另一个环的一段相交。一个多边形 的环可能在vetices处彼此相交,但不是在沿段处。重合的段被认为是相交的。 2 在定义多边形的线的正确一边有多边形的部。一个观察者以vertex顺序沿环走时,右边的邻居是多边形的部。一个独环的多边形的vertices因此都是顺时针的。在这些多边形中的洞有一个逆时针的方向。当定义在多边形中的洞同样是顺时针时,发生Dirty多边形错误。这会导致部的重叠。 图 2 一个多边形的实例 在此例中,NumParts等于2,NumPoint

18、s等于10。注意洞多边形的点的顺序是逆序的。 0 5 部 分 : 0 5 0 1 2 3 4 5 6 7 8 9 点 : v1 v2 v3 v4 v1 v5 v8 v7 v6 v5 表 7 多边形记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 5 整数 1 小 4字节 Box Box 双精度 4 小 36字节 NumParts NumParts 整数 1 小 40字节 NumPoints NumPoints 整数 1 小 44字节 Parts Parts 整数 NumParts 小 X字节 Points Points 点 NumPoints 小 注意:X=44+4* Num

19、Parts 在X,Y空间中衡量的shape类型该种shape有一个额外的坐标 M,注意没有数据的值可以被指定为M的一个值。 PointM 一个PointM包括一对以X,Y顺序排列的双精度的坐标,再加上衡量M。 PointM Double X /X 坐标 Double Y /Y 坐标 Double M /M 衡量 表 8 PointM记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 21 整数 1 小 4字节 X X 双精度 1 小 12字节 Y Y 双精度 1 小 20字节 M M 双精度 1 小 多PointM 一个多PointM代表一个PointM的集合: MultiPo

20、int Double4 Box /边界盒 Integer NumPoints /点的数目 PointNumPoints Points /在集合中的点 Double2 M Range /衡量M的上下界 DoubleNumPoints M Array /衡量 多PointM的域在以下为更详细的描述: Box 被存储的多PointM的边界盒,以Xmin,Ymin,Xmax,Ymax的顺序存储。 NumPoints 点的总数目。 Points NumPoints长的点的数列。 M Range 以Mmin,Mmax顺序存储的多PointM的最小,最大值。 M Array NumPoints长的衡量的数组

21、。 表 9 多PointM记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 28 整数 1 小 4字节 Box Box 双精度 4 小 36字节 NumPoints NumPoints 整数 1 小 40字节 Points Points 点 NumPoints 小 X*字节 Mmin Mmin 双精度 1 小 X+8*字节 Mmax Mmax 双精度 1 小 X+16*字节 Marry Marry 双精度 NumPoints 小 注意:X 40(16* NumPoints) *可选的 多LineM 一条shape文件的多LineM包含一个或多个部分。指一条包含一个或多个部分的

22、有序的vertices的集合。一个部分是指二个或多个点彼此连接的顺序。部分间彼此相连或不连。部分间彼此可能相交或不相交。 PolyLineM Double4 Box /边界盒 Integer NumParts /部分的数目 Integer NumPoints /点的总数目 IntegerNumParts Parts /在部分中第一个点的索引 PointNumPoints Points /所有部分的点 Double2 M Range /衡量M的上下界 DoubleNumPoints M Array /所有点的衡量 PolyLineM的域在以下为更详细的描述: Box 被存储的PolyLineM的

23、边界盒,以Xmin,Ymin,Xmax,Ymax的顺序存储。 NumParts 在PolyLineM中部分的数目。 NumPoints 所有部分的点的总数目。 Parts NumParts长度的数列。为每条PolyLineV存储它在点数列中的第一个点的索引。数列索引是从0开始的。 Points NumPoints长度的数列。在PolyLineM中的每一部分的点被尾到尾存储。部分2的点跟在部分1的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。 在部分间点之间没有界限。 M Range 以Mmin,Mmax顺序存储的多PointM的最小,最大值。 M Array NumPoints长的

24、衡量的数组,在多PointM每部分的衡量被被尾到尾存储部分2的点跟在部分1的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。在部分间点之间没有界限。 表 10 PolyLineM记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 23 整数 1 小 4字节 Box Box 双精度 4 小 36字节 NumParts NumParts 整数 1 小 40字节 NumPoints NumPoints 整数 1 小 44字节 Parts Parts 整数 NumParts 小 X字节 Points Points 点 NumPoints 小 Y*字节 Mmin Mmin 双精

25、度 1 小 Y+8*字节 Mmax Mmax 双精度 1 小 Y+16*字节 Marry Marry 双精度 NumPoints 小 注意:X=44+4* NumParts Y 40(16* NumPoints) *可选的 多边形M 一个多边形M包含一个或多个环。一个环是四或多个点彼此相连组成的一个闭合的彼此不相交的环。注意相交是在X,Y空间计算,而不是在X,Y,M空间。一个多边形可能包括多个外环,一个多边形的环是被做为它的一部分的。 多边形M的结构被定义为PolyLineM结构,正如下文: PolygonM Double4 Box /边界盒 Integer NumParts /部分的数目 I

26、nteger NumPoints /点的总数目 IntegerNumParts Parts /在部分中第一个点的索引 PointNumPoints Points /所有部分的点 Double2 M Range /衡量M的上下界 DoubleNumPoints M Array /所有点的衡量 多边形M的域在以下为更详细的描述: Box 被存储的多边形的边界盒,以Xmin,Ymin,Xmax,Ymax的顺序存储。 NumParts 在多边形M中环的数目。 NumPoints 所有环的点的总数目。 Parts NumParts长度的数列。为每条环存储它在点数列中的第一个点的索引。数列索引是从0开始的

27、。 Points NumPoints长度的数列。在多边形中的每一个环的点被尾到尾存储。环2的点跟在环1的点之后,如此下去。部分数列对每一环保持开始点的数列索引。在环间点之间没有界限。 M Range 以Mmin,Mmax顺序存储的多PointM的最小,最大值。 M Array NumPoints长的衡量的数组,在多PointM每部分的衡量被被尾到尾存储部分2的点跟在部分1的点之后,如此下去。部分数列对每一部分保持开始点的数列索引。在部分间点之间没有界限。 关于PolygonM shape有以下注意事项: 环是闭合的(第一个和最后一个vetex必须是一样的)在点数列中环的顺序是不重要的。 表 1

28、1 多边形M的记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 5 整数 1 小 4字节 Box Box 双精度 4 小 36字节 NumParts NumParts 整数 1 小 40字节 NumPoints NumPoints 整数 1 小 44字节 Parts Parts 整数 NumParts 小 X字节 Points Points 点 NumPoints 小 Y*字节 Mmin Mmin 双精度 1 小 Y+8*字节 Mmax Mmax 双精度 1 小 Y+16*字节 Marry Marry 双精度 NumPoints 小 注意:X=44+4* NumParts Y

29、 40(16* NumPoints) *可选的在X,Y,Z空间中衡量的shape类型该种shape有一个额外的坐标 M,注意没有数据的值可以被指定为M的一个值。 PointZ 一个PointZ包括一对以X,Y,Z顺序排列的双精度的坐标,再加上衡量M。 PointM Double X /X 坐标 Double Y /Y 坐标 Double Z /Z 坐标 Double M /M 衡量 表 12 PointZ记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 21 整数 1 小 4字节 X X 双精度 1 小 12字节 Y Y 双精度 1 小 20字节 Z Z 双精度 1 小 28

30、字节 Measure M 双精度 1 小 多PointZ 一个多PointZ代表一个PointZ的集合: MultiPoint Double4 Box /边界盒 Integer NumPoints /点的数目 PointNumPoints Points /在集合中的点 Double2 Z Range /Z的上下界 DoubleNumPoints Z Array /Z的值 Double2 M Range /衡量M的上下界 DoubleNumPoints M Array /衡量 边界盒是以Xmin,Ymin,Xmax,Ymax的顺序存储。Z Range是以Mmin,Mmax顺序存储的,M Range是以Mmin,Mmax顺序存储的。 表 9 多PointM记录容 位置 域 值 类型 数目 字节顺序 0字节 shape类型 28 整数 1 小 4字节 Box Box 双精度 4 小 36字节 NumPoints NumPoints 整

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1