PYPROJ(1)

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

πŸ’– NAME πŸ’–

pyproj β€” the pyproj CLI, bestie. it's literally the command-line glow-up of pyproj, no cap.

okay so before we go anywhere, vibe check: this is pyproj version 3.8.0 running on top of PROJ version 9.8.1. iconic combo fr fr 🫢

and here's how you summon it:

usage: pyproj [-h] [-v] {sync} ...

🌈 NAMED ARGUMENTS 🌈

  • -v, --verbose β€” spills the verbose debugging version info, like it's telling you its whole life story. ✨ Default: False

✨ SUB-COMMANDS ✨

sync πŸ¦‹

the tool for synchronizing PROJ datum and transformation support data. it's giving "let me go get your grids for you, queen" πŸ’…

pyproj sync [-h] [--bbox BBOX] [--spatial-test {intersects,contains}]
            [--source-id SOURCE_ID] [--area-of-use AREA_OF_USE] [--file FILE]
            [--exclude-world-coverage] [--include-already-downloaded]
            [--list-files] [--all] [--system-directory]
            [--target-directory TARGET_DIRECTORY] [-v]

πŸŽ€ Named Arguments πŸŽ€

  • --bbox β€” tell it the area of interest so it only grabs the resources you actually care about. you give it a bounding box in geographic coordinates, in degrees, in an unspecified geographic CRS. west_long and east_long gotta live in the [-180,180] range, and south_lat and north_lat in [-90,90]. west_long is usually lower than east_long β€” except when your area of interest crosses the antimeridian, in which case it's not, and that's valid, don't @ me. 🌍
  • --spatial-test β€” controls how the extent of the resource files gets compared to the area of use you set with --bbox. Possible choices: intersects, contains. by default, any resource file whose extent intersects what you put in --bbox gets selected. if you go with the contains strategy instead, only files whose extent is fully contained in the --bbox value get picked. no overlap, no entry. πŸ’€ Default: 'intersects'
  • --source-id β€” narrows the download down to only those resource files whose source_id property contains the ID value. default is all possible values, so it's not picky unless you make it picky. πŸ‘‘
  • --area-of-use β€” narrows the download down to only those resource files whose area_of_use property contains the AREA_OF_USE value. default is all possible values. πŸ—ΊοΈ
  • --file β€” narrows the download down to only those resource files whose name property (aka the file name) contains the FILE value. default is all possible values. πŸ“
  • --exclude-world-coverage β€” excludes files that have world coverage. bye bestie, you're too global for this. 🌐 Default: False
  • --include-already-downloaded β€” includes grids that are already downloaded. like yes, we know you have it, we're bringing it anyway. πŸ™ˆ Default: False
  • --list-files β€” lists the files without downloading them. window shopping, zero commitment. πŸ›οΈ Default: False
  • --all β€” downloads all the missing transform grids. go big or go home, periodt. πŸ”₯ Default: False
  • --system-directory β€” if you enable this, it syncs grids into the main PROJ data directory instead of the user writable directory. main character energy, system-wide. πŸ‘‘ Default: False
  • --target-directory β€” the directory to sync grids into, instead of the user writable directory. you pick where they land. πŸ“‚
  • -v, --verbose β€” prints download information so you can watch the whole thing go down in real time. πŸ’… Default: False

πŸ’œ Author πŸ’œ

Jeffrey Whitaker β€” the og, the legend, the blueprint. 🫢

2006-2018, Jeffrey Whitaker; 2019-2024, Open source contributors β€” the community kept the vibe alive, and we're all better for it. ✨


and that's the whole page, bestie! pyproj 3.8.0, dated Sep 26, 2026 β€” go forth and sync those grids, iykyk πŸ’–πŸ§šβ­
πŸ“¦ where this page comes from