Man Linux: Main Page and Category List

NAME

       shpdump - dump an ESRI shapefile as text

SYNOPSIS

       shpdump [-validate] file

DESCRIPTION

       Prints the contents of the shapefile 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 file and
       attempting to open the files file.shp  or  file.SHP,  and  file.shx  or
       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
              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.

EXIT STATUS

       0      Successful program execution.

       1      No shapefile 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:file

AUTHORS

       Frank Warmerdam (warmerdam@pobox.com) is the maintainer of the shapelib
       shapefile library.  Joonas Pihlaja (jpihlaja@cc.helsinki.fi) wrote this
       man page.

BUGS

       The  -validate option supports only one outer ring in a polygonal shape
       and assumes that the first ring in a  shape  is  the  outer  ring.   It
       doesn’t  support  polygons  inside  MultiPatch  shapes.   The  X  and Y
       coordinates of a point are printed to three decimal places only.

SEE ALSO

       dbfadd(1),   dbfcreate(1),    dbfdump(1),    dbf_dump(1),    shpadd(1),
       shpcreate(1), shprewind(1)