Provided by: shapelib_1.2.10-7_amd64 bug

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)