This is the command shpdump that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
PROGRAM:
NAME
shpdump - dumps as text and/or validates the content of an ESRI shapefile
SYNOPSIS
shpdump [-validate] shp_file
DESCRIPTION
Prints the contents of the shapefile shp_file to standard output in textual format.
Shapefiles actually consist of two files with the same basename and extensions .shp and
.shx (or .SHP and .SHX) containing the shape data and shape index respectively. The files
to open are determined by first stripping any filename extension from shp_file and
attempting to open the files shp_file.shp or shp_file.SHP, and shp_file.shx or
shp_file.SHX for the respective data and index files.
Output consists of a header giving number and type of shapes in the file and the bounds
for the minimum and maximum X, Y, Z, and M values appearing in the shapes. The header is
followed by the geometric data for each shape in the file. All shapes in the file should
be of the same type, except that NullShape typed shapes may be intermixed with any other
type. The header has the form
Shapefile Type: type # of Shapes: count
File Bounds: (minX,minY,minZ,minM)
to (maxX,maxY,maxZ,maxM)
See section SHAPE TYPES below for the list of possible shape types.
Next for each shape in the file a header giving it´s shape_index, it´s type type, number
of vertices nVertices, number of parts nParts, and bounding box is given, followed by the
vertex data of each part.
Shape: shape_index (type) nVertices=nVertices, nParts=nParts
Bounds: (minX,minY,minZ,minM)
to (maxX,maxY,maxZ,maxM)
vertices of the first part
+ vertices of the second part...
+ vertices of the last part
The shape_index of a shape is the number of the shape starting from zero in the shape
file. Each vertex has the form
(X,Y,Z,M)
If there are multiple parts then the type of the part is appended appended to first vertex
of each part, and the first vertex of the second and following parts is preceded by a plus
(+) sign. The part type is Ring for all shape types except MultiPatch where it is the type
of a surface patch. See below for the description of possible part types.
SHAPE TYPES
Each type of shape except MultiPatch typed shapes comes in three flavours: The normal
unsuffixed type, where points lie in X/Y-space; a type with suffix M where points lie in
X/Y-space and additionally have a measure value in M-space; and finally a type with suffix
Z where points lie in X/Y/Z-space and also have a measure value in M-space.
NullShape
A shape without data. Shapes of this type may be intermixed with other shapes and
are sometimes used to represented deleted or missing geometric data for a shape.
Point or PointZ or PointM
A single point.
Arc or ArcZ or ArcM
Piecewise linear paths. Shapes of this type may consist of multiple parts which may
or may not intersect and/or connect. Arcs are called PolyLines in the shapefile
specification.
Polygon or PolygonZ or PolygonM
Polygon shapes consist of one or more parts, called rings, that each define a
closed path. Rings must contain at least four vertices with the first and last
vertices being equal, and must not self-intersect. For shapes of type Polygon, the
rings define a polygon with optional holes by giving the vertices of inner rings a
counterclockwise orientation and the vertices of outer rings a clockwise
orientation. Intersection and orientation is always computed in X/Y-space and never
in X/Y/M-space.
MultiPoint or MultiPointZ or MultiPointM
A set of points.
MultiPatch
A MultiPatch represents one or more surfaces in X/Y/Z-space, and consists of a
number of parts called it´s surface patches. Each surface patch describes a either
a surface or a hole in another surface, depending on the type of the patch. Patches
may share a common boundary but may not otherwise intersect. The type of a patch
may be one of
TriangleStrip: A set of connected triangles. The first three points define the
first triangle and every following point defines a new triangle using the new point
and the two previous points.
TriangleFan: A set of connected triangles. The first three points define the first
triangle and every following point defines a new triangle using the previous point,
the current point, and the first point, thus forming a fan of triangles around the
first point.
OuterRing: The outer ring of a sequence of rings defining a polygon with holes. All
following parts of type InnerRing are taken to be the holes of the polygon. The
sequence of rings ends with the first non-InnerRing typed part or the part of the
shape, whichever comes first.
InnerRing: An inner ring in a sequence of rings defining a polygon with holes. This
type of part may only follow an OuterRing or other InnerRing typed parts.
FirstRing: The first in a sequence of rings defining a polygon of unspecified type.
The following parts of type Ring defines the other rings in the polygon. This type
of part is used when the innerness or outerness of a polygon isn´t known or
applicable. The sequence of rings defining the polygon ends with the first non-Ring
typed part or the last part of the shape, whichever comes first.
Ring: A ring in a sequence of rings defining a polygon of unspecified type. It may
only follow a FirstRing or other Ring typed parts.
UknownPartType: This type is returned for parts whose type isn´t recognised.
UnknownShapeType
This type is returned for shapes whose type isn´t recognised.
OPTIONS
-validate
count the number of objects that have invalid ring ordenings
Performs validation on the orientation of inner and outer rings in Polygon,
PolygonZ, and PolygonM objects. According to the shapefile specification outer
rings should be given a clockwise orientation, and inner rings that define holes a
counterclockwise orientation. If some rings of a shape are oriented the wrong way
around then the following message is output after dumping that shape:
count rings wound in the wrong direction.
In addition the total number of shapes with problem rings is output after the last
shape has been dumped:
count object has invalid ring orderings.
shp_file
the name of an existing shapefile.
EXIT STATUS
0 Successful program execution.
1 No shapefile shp_file was given or it couldn´t be opened.
EXAMPLE
$ shpdump shapefile.shp
Shapefile Type: Arc # of Shapes: 3
File Bounds: ( 3531586.750, 7253086.100,0,0)
to ( 3536417.463, 7778375.875,0,0)
Shape:0 (Arc) nVertices=2, nParts=1
Bounds:( 3536397.797, 7253086.100, 0, 0)
to ( 3536417.463, 7253163.597, 0, 0)
( 3536397.797, 7253163.597, 0, 0) Ring
( 3536417.463, 7253086.100, 0, 0)
Shape:1 (Arc) nVertices=3, nParts=1
Bounds:( 3458966.390, 7373335.808, 0, 0)
to ( 3459141.856, 7373474.681, 0, 0)
( 3458966.390, 7373474.681, 0, 0) Ring
( 3458979.042, 7373466.273, 0, 0)
( 3459141.856, 7373335.808, 0, 0)
Shape:2 (Arc) nVertices=7, nParts=1
Bounds:( 3531586.750, 7777880.500, 0, 0)
to ( 3532930.206, 7778375.875, 0, 0)
( 3531586.750, 7777880.500, 0, 0) Ring
( 3532228.265, 7778072.455, 0, 0)
( 3532310.897, 7778119.445, 0, 0)
( 3532367.866, 7778144.877, 0, 0)
( 3532440.559, 7778168.920, 0, 0)
( 3532506.504, 7778190.785, 0, 0)
( 3532930.206, 7778375.875, 0, 0)
$
DIAGNOSTICS
The following diagnostics may be issued on stdout:
Unable to open:shp_file
Use shpdump online using onworks.net services