Dlinet
Dlinet

Reputation: 1233

How to parse a .shp file?

I am interested in gleaning information from an ESRI .shp file. Specifically the .shp file of a polyline feature class.

When I open the .dbf of a feature class, I get what I would expect: a table that can open in excel and contains the information from the feature class' table.

However, when I try to open a .shp file in any program (excel, textpad, etc...) all I get is a bunch of gibberish and unusual ASCII characters.

I would like to use Python (2.x) to interpret this file and get information out of it (in this case the vertices of the polyline).

I do not want to use any modules or non built-in tools, as I am genuinely interested in how this process would work and I don't want any dependencies.

Thank you for any hints or points in the right direction you can give!

Upvotes: 2

Views: 3861

Answers (3)

rici
rici

Reputation: 241701

If you don't want to go to all the trouble of writing a parser, you should take look at pyshp, a pure Python shapefile library. I've been using it for a couple of months now, and have found it quite easy to use.

There's also a python binding to shapelib, if you search the web. But I found the pure Python solution easier to hack around with.

Upvotes: 3

Your question, basically, is "I have a file full of data stored in an arbitrary binary format. How can I use python to read such a file?"

The answer is, this link contains a description of the format of the file. Write a dissector based on the technical specification.

Upvotes: 3

TehTris
TehTris

Reputation: 3217

might be a long shot, but you should check out ctypes, and maybe use the .dll file that came with a program (if it even exists lol) that can read that type of file. in my experience, things get weird when u start digging around .dlls

Upvotes: 0

Related Questions