---
name: "shprewind"
section: "1"
platform: "linux"
package: "shapelib"
version: "1.6.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/shprewind"
---

# shprewind(1)

validates and resets the winding order of rings ##SYNOPSIS shprewind in\_shp\_file out\_shp\_file ##DESCRIPTION Validates and resets the winding order of rings in polygon geometries to match the ordering required by shapefile specification. This is useful for shapefiles having troubles when checked with a 'shpdump -validate'. Makes a copy of the shapefile in\_shp\_file to out\_shp\_file and fixes the orientation of points in the rings of Polygon, PolygonZ, and PolygonM typed shapes to conform to the shapefile specification. According to the specification, the vertices of outer rings should be oriented clockwise on the X/Y plane, and those of inner rings counterclockwise. 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 in\_shp\_file and attempting to open the files in\_shp\_file.shp or in\_shp\_file.SHP, and in\_shp\_file.shx or in\_shp\_file.SHX for the respective data and index files. The files to create from out\_shp\_file are determined by stripping any filename extension from out\_shp\_file and appending .shp and .shx suffixes for the respective data and index files. ##OPTIONS ##EXIT STATUS ##DIAGNOSTICS The following diagnostics may be issued on stdout: Unable to open:in\_shp\_file Unable to create:out\_shp\_file count objects rewound. ##EXAMPLE shprewind badshapefile newshapefile ##AUTHOR shprewind is part of shapelib, maintained by Frank Warmerdam. This guide was created by Eduardo Patoo Kanegae and converted to manpage by Johan Van de Wauw. It was further enhanced with the man page written by Joonas Pihlaja (jpihlaja@cc.helsinki.fi). ##BUGS The implementation assumes that there is at most one outer ring in each shape, that it is the first ring in a shape, and all other rings in a shape are inner rings. Polygons inside MultiPatch shape types aren't rewound. ##SEE ALSO dbfadd(1), dbfcat(1), dbfcreate(1), dbfdump(1), dbfinfo(1), shpadd(1), shpcat(1), shpcentrd(1), shpcreate(1), shpdump(1), shpdxf(1), shpfix(1), shpinfo(1), shpproj(1), shptest(1)

## NAME

**shprewind** - validates and resets the winding order of rings

\##SYNOPSIS **shprewind** *in\_shp\_file* *out\_shp\_file*

\##DESCRIPTION Validates and resets the winding order of rings in polygon geometries to match the ordering required by shapefile specification. This is useful for shapefiles having troubles when checked with a 'shpdump -validate'.

Makes a copy of the shapefile *in\_shp\_file* to *out\_shp\_file* and fixes the orientation of points in the rings of **Polygon**, **PolygonZ**, and **PolygonM** typed shapes to conform to the shapefile specification. According to the specification, the vertices of outer rings should be oriented clockwise on the *X/Y* plane, and those of inner rings counterclockwise.

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 *in\_shp\_file* and attempting to open the files *in\_shp\_file***.shp** or *in\_shp\_file***.SHP**, and *in\_shp\_file***.shx** or *in\_shp\_file***.SHX** for the respective data and index files. The files to create from *out\_shp\_file* are determined by stripping any filename extension from *out\_shp\_file* and appending **.shp** and **.shx** suffixes for the respective data and index files.

\##OPTIONS

- *in\_shp\_file*

  the name of an existing shapefile.

- *out\_shp\_file*

  the name of the new fixed shapefile that will be created.

\##EXIT STATUS

- **0**

  Successful program execution.

- **1**

  Missing *in\_shp\_file* or *out\_shp\_file* arguments, failed to open shapefile *in\_shp\_file* or create shapefile *out\_shp\_file*.

\##DIAGNOSTICS The following diagnostics may be issued on stdout:

Unable to open:*in\_shp\_file*

Unable to create:*out\_shp\_file*

*count* objects rewound.

\##EXAMPLE **shprewind** *badshapefile* *newshapefile*

\##AUTHOR **shprewind** is part of shapelib, maintained by Frank Warmerdam. This guide was created by Eduardo Patoo Kanegae and converted to manpage by Johan Van de Wauw. It was further enhanced with the man page written by Joonas Pihlaja (jpihlaja@cc.helsinki.fi).

\##BUGS The implementation assumes that there is at most one outer ring in each shape, that it is the first ring in a shape, and all other rings in a shape are inner rings. Polygons inside **MultiPatch** shape types aren't rewound.

\##SEE ALSO [**dbfadd**(1)](/dbfadd/1.md), [**dbfcat**(1)](/dbfcat/1.md), [**dbfcreate**(1)](/dbfcreate/1.md), [**dbfdump**(1)](/dbfdump/1.md), [**dbfinfo**(1)](/dbfinfo/1.md), [**shpadd**(1)](/shpadd/1.md), [**shpcat**(1)](/shpcat/1.md), [**shpcentrd**(1)](/shpcentrd/1.md), [**shpcreate**(1)](/shpcreate/1.md), [**shpdump**(1)](/shpdump/1.md), [**shpdxf**(1)](/shpdxf/1.md), [**shpfix**(1)](/shpfix/1.md), [**shpinfo**(1)](/shpinfo/1.md), [**shpproj**(1)](/shpproj/1.md), [**shptest**(1)](/shptest/1.md)
