SHPPROJ(1)

πŸ“¦
version 1.6.3 Β· 4 versions
, in fedora 44

πŸ’– SHPPROJ πŸ’–

okay bestie, sit down, hydrate, because we're about to talk about shpproj β€” the lil tool that Reprojects Shapefiles using PROJ. no cap, it's giving coordinate glow-up ✨


🌸 SYNOPSIS 🌸

shpproj in_shp_file out_shp_file [-i=in_proj_file |
   -i="in_params" | -i=geographic] [-o=out_info_file |
   -o="out_params" | -o=geographic]

✨ OPTIONS ✨

  • in_shp_file β€” the name of an existing shapefile. like, the one you already have, the source material, the main character 🫢
  • out_shp_file β€” the name of the new fixed shapefile that will be created. yes bestie, it makes a whole new file, it does not touch your original πŸ’…
  • -i β€” Input projection. and there are three ways to feed it in, pick one:
    • a projection parameter file
    • the parameters directly
    • geographic
⚠️ plot twist: if your shapefile has an associated prj file β€” same name as the shapefile but ending in ".prj" β€” that one gets used by default, ignoring all your other parameters. so rude but so true.

and if you just... omit the input entirely? it defaults to geographic, unless that default prj file exists. sneaky. πŸ™ˆ

  • -o β€” Output, same three-source situation: a projection parameter file, parameters directly, or geographic. if you omit it, it defaults to geographic. easy peasy πŸ“

πŸ”₯ PROJECTION DETAILS πŸ”₯

πŸŽ€ PROJECTION PARAMETER FILE πŸŽ€

okay so this file MUST end with the extension ".prj" β€” not optional, not negotiable, that's the vibe check it has to pass. the format? one projection parameter per line. Parameters can be in any order, so don't stress about lining them up. and the projection parameters are those used to define a PROJ projection. that's it, that's the whole thing ✨

πŸ¦‹ PROJECTION PARAMETERS πŸ¦‹

Are the same as used by proj and invproj. iconic crossover event 🌈

use: proj -lu to see available units proj -le to see available ellipsoid

Or visit the PROJ web page at http://www.remotesensing.org/proj for more details. go read, bestie, it's free education πŸ‘‘


πŸ’« EXAMPLE πŸ’«

The following example projects file rowtest to row3, moving data from Stateplane NAD83 zone 1002 to utm zone 16 in meters:

shpproj rowtest row -i="init=nad83:1002 units=us-ft" -o="proj=utm
zone=16 units=m"

shpproj rowtest row3 -o="proj=utm zone=18 units=m" -i="zone=16 proj=utm
units=us-ft"

shpproj rowtest row3 -o="proj=utm zone=18 units=m"

This example uses a prj file and converts to geographic. note that -o=geographic can be ommitted.

shpproj rowtest row3 -i=myfile.prj -o=geographic

πŸ‘‘ AUTHOR πŸ‘‘

shpproj 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. shoutout to the whole squad, we love a collaborative effort πŸ’œ


🌟 SEE ALSO 🌟

proj(1), 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), shprewind(1), shptest(1)

go read the whole family, they're all a little bit iconic in their own way 🧚


and that's the whole page, bestie!! this one's from the shapelib source, dated March 2026 β€” so go forth, reproject something, and remember: the prj file might be doing stuff behind your back. mwah πŸ’‹

πŸ“¦ where this page comes from
  • fedora 44: shapelib-tools 1.6.3-1.fc44 Β· (LGPL-2.0-or-later OR MIT) AND GPL-2.0-or-later AND LicenseRef-Fedora-Public-Domain
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms