如何解析.shp文件?

时间:2013-05-03 17:15:25

标签: python parsing arcgis shapefile

我对从ESRI .shp文件中收集信息感兴趣。 特别是折线要素类的.shp文件。

当我打开要素类的.dbf时,我得到了我期望的结果:一个可以在Excel中打开并包含要素类表中信息的表。

然而,当我尝试在任何程序(excel,textpad等等)中打开.shp文件时,我得到的是一堆乱码且不寻常的ASCII字符。

我想使用Python(2.x)来解释这个文件并从中获取信息(在这种情况下是折线的顶点)。

我不想使用任何模块或非内置工具,因为我真的对这个过程如何工作感兴趣,而且我不想要任何依赖。

感谢您提供正确方向的任何提示或要点!

3 个答案:

答案 0 :(得分:3)

你的问题基本上是“我有一个文件,里面装满了以任意二进制格式存储的数据。我怎样才能用python来读取这样的文件?”

答案是,this link包含文件格式的描述。根据技术规范编写解剖器。

答案 1 :(得分:1)

如果你不想解决编写解析器的麻烦,你应该看看pyshp,一个纯Python shapefile库。我已经使用它几个月了,并且发现它很容易使用。

如果你在网上搜索,还有一个python绑定到shapelib。但我发现纯Python解决方案更易于破解。

答案 2 :(得分:0)

可能是一个很长的镜头,但你应该检查ctypes,并且可能使用程序附带的.dll文件(如果它甚至存在lol)可以读取该类型的文件。根据我的经验,当你开始挖掘.dll时,事情会变得奇怪。