projectionintro(1)

πŸ’… projectionintro(1) β€” GRASS GIS User's Manual

okay bestie, welcome to the projection page πŸ’– this is literally the main character of the GRASS GIS User's Manual when it comes to projections and spatial transformations. Sit down, grab a strawberry πŸ“, and let's get into it.


🌈 Projections and spatial transformations in GRASS GIS

πŸŽ€ Projection management in general

So here's the tea β˜•: a GRASS project is referenced with a single projection and coordinate system β€” or, if it's unreferenced, it's just an XY project. That's it. One vibe per project, no cap.

When you're creating a new project from an existing raster or vector map (using the tools on the startup screen or the map import commands), the projection and coordinate system get defined right then and there. ✨

And if you want to change the projection of maps? You don't just... edit them, bestie. 😭 You have to create a new project and reproject the desired maps into it from the source project. That's the whole process, explained below. πŸ‘‡


πŸ¦‹ Reprojecting raster maps

Rasters get reprojected with the raster projection tool r.proj. πŸ“

The way this works: you run the tool in the target project and it "pull"s a map from its source project. Both projects need to have a projection defined β€” meaning they cannot be XY (unprojected). No XY allowed, sorry not sorry. πŸ™ˆ


✨ Raster map transformation

Now, if you've got an unprojected map in a XY project and you want it in a projected project (or in another XY project), that's a forward transformation. πŸš€

Here's the routine:

  • The unreferenced map gets geocoded within the XY project by defining four corner points, or by seeking several ground control points β€” that's i.group, i.target, g.gui.gcp 🎯
  • Then it's transformed into the target project with i.rectify

Polynomial transformation of 1st, 2nd and 3rd order are supported. Iconic. πŸ‘‘

A graphical user interface is provided by wxGUI. πŸ–₯️

And if you just want to translate a raster map β€” like, no stretching, no rotation, just vibes β€” the r.region command is your girl. πŸ’…


πŸ’œ Vector map projections

Vectors are reprojected using the vector projection tool v.proj. πŸ“Œ

Same energy as the raster one: the tool is used in the target project to "pull" a map from its source project. And yep β€” both projects need to have a projection defined, i.e., they cannot be XY (unprojected). XY stays home. 🚫


🌸 Vector map transformation

Got an unprojected map (say, a CAD map) and want it in projected coordinates? Forward transformation time, babe. πŸ¦‹

So the unreferenced map is:

  1. imported into the project with projection, and
  2. geocoded within this project by defining four corner points or by seeking several ground control points

Those points get stored into an ASCII file, and then transformed within the same project with v.transform. πŸ“

Alternatively, v.rectify rectifies a vector by computing a coordinate transformation for each object in the vector, based on the control points. Two routes, both valid. 🫢

A graphical user interface is provided by wxGUI. πŸ–₯️


πŸ“š References

  • ASPRS Grids and Datum
  • Projections Transform List (PROJ)
  • Coordinate operations by PROJ (projections, conversions, transformations, pipeline operator)
  • MapRef - The Collection of Map Projections and Reference Systems for Europe
  • Information and Service System for European Coordinate Reference Systems - CRS

πŸ‘€ See also

  • Introduction into raster data processing
  • Introduction into 3D raster data (voxel) processing
  • Introduction into vector data processing
  • Introduction into image processing
  • Introduction into temporal data processing
  • Database management
  • Graphical User Interface

🧚 SOURCE CODE

Available at: Projections and spatial transformations in GRASS GIS source code (history)

Accessed: Friday Nov 21 14:02:57 2025

Main index | Topics index | Keywords index | Graphical index | Full index


Β© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual

and that's the whole page, bestie β€” this was GRASS 8.4.2 running projectionintro(1), no cap, ate and left no crumbs πŸ‘‘βœ¨πŸ’–

πŸ“¦ where this page comes from