i.ortho.rectify(1)

πŸ’– i.ortho.rectify β€” the GRASS GIS glow-up page πŸ’–

okay bestie, so this is i.ortho.rectify, and it lives in the GRASS GIS User's Manual. Keywords for the vibe: imagery, orthorectify. Let's get into it ✨

🌸 NAME 🌸

i.ortho.rectify β€” orthorectifies an image by using the image to photo coordinate transformation matrix. that's the whole job. she does one thing and she does it well πŸ’…


✨ SYNOPSIS ✨

i.ortho.rectify
i.ortho.rectify --help
i.ortho.rectify [-cap] group=name  [input=name[,name,...]]
extension=string  [resolution=float]   [memory=memory in MB]
[method=string]   [angle=name]   [--overwrite]  [--help]  [--verbose]
[--quiet]  [--ui]

πŸŽ€ FLAGS πŸŽ€

  • -c β€” use the current region settings in the target project (location) instead of the default, which is to calculate the smallest area. lowkey the "just trust the window you already set" option 🫢
  • -a β€” rectify all the raster maps in the group. she's an overachiever, we love that πŸ’–
  • -p β€” enable panorama camera correction. for the panoramic girlies 🌈
  • --overwrite β€” allow output files to overwrite existing files. use this responsibly bestie, it will not ask twice πŸ’€
  • --help β€” print usage summary
  • --verbose β€” verbose module output. she tells you everything πŸ—£οΈ
  • --quiet β€” quiet module output. she says nothing. mysterious. iconic.
  • --ui β€” force launching GUI dialog. for when you want buttons instead of vibes πŸ–±οΈ

πŸ’œ PARAMETERS πŸ’œ

  • group=name [required] β€” name of input imagery group. mandatory, no skips βœ‹
  • input=name[,name,...] β€” name of input raster map(s). you can pass a whole lil list, comma-separated, she can handle it πŸ’…
  • extension=string [required] β€” output raster map(s) suffix. every output needs its own little name tag 🏷️
  • resolution=float β€” target resolution. heads up: it's ignored if the -c flag is used πŸ™ˆ
  • memory=memory in MB β€” maximum memory to be used (in MB), aka the cache size for raster rows. Default: 300
  • method=string β€” interpolation method to use. Options: nearest, linear, cubic, lanczos, linear_f, cubic_f, lanczos_f. Default: nearest
  • angle=name β€” raster map with camera angle relative to ground surface πŸ“

πŸ¦‹ DESCRIPTION πŸ¦‹

so i.ortho.rectify rectifies an image by using the image to photo coordinate transformation matrix created by g.gui.photo2image, plus the rectification parameters created by g.gui.image2target. rectification is literally the process where the geometry of an image gets made planimetric β€” which is just fancy speak for mapping an image from one coordinate system into another. 🌍

in i.ortho.rectify, the parameters computed by g.gui.photo2image and g.gui.image2target get plugged into equations that convert x,y image coordinates into standard map coordinates for every single pixel in the image. the result? an image with a standard map coordinate system, compensated for relief distortions and photographic tilt. and once the program finishes, the rectified image gets deposited into a previously targeted GRASS project (location). periodt πŸ’…

images can be resampled with various different interpolation methods: nearest neighbor assignment, bilinear interpolation and bicubic interpolation. the bilinear and bicubic interpolation methods are also available with a fallback option, and these methods "fall back" to simpler interpolation methods along NULL borders. so it goes bicubic β†’ bilinear β†’ nearest. the way she just gracefully downgrades 😭

heads up bestie: this process may take an hour or more depending on the size of the image, the speed of the computer, the number files, and the size and resolution of the selected window. bring a snack. or three. πŸ“

the rectified image will be located in the target project when the program is completed. and no worries β€” the original unrectified files are not modified or removed. she's respectful like that 🫢

the optional angle output holds the camera angle in degrees to the local surface, considering local slope and aspect. so:

  • a value of 90 degrees means the camera angle was orthogonal to the local surface βœ…
  • a value of 0 degrees means the camera angle was parallel to the local surface
  • negative values mean the surface was invisible to the camera πŸ‘»

as a rule of thumb, values below 30 degrees indicate problem areas where the orthorectified output will appear blurred. and because terrain shadowing effects are not considered, areas with high camera angles may also appear blurred if they are located (viewed from the camera position) behind mountain ridges or peaks. it's giving "not her fault, it's the terrain" πŸ˜”

i.ortho.rectify can be run directly, specifying options in the command line or the GUI, or it can be invoked as OPTION 8 through i.ortho.photo. if invoked through i.ortho.photo, an interactive terminal is used to determine the options. choose your own adventure ✨


🌸 Interactive mode 🌸

first thing, you're asked if all images within the imagery group should be rectified. if you don't pick that option, you get asked to specify for each image within the imagery group whether it should be rectified or not. one by one. every single one. πŸ’€

more than one file may be rectified at a time β€” and each file should have a unique output file name. the next prompt asks you for an extension to be appended to the rectified images. 🏷️

then the next prompt will ask you whether a camera angle map should be produced, and if yes, what should be its name. πŸ“

after that you're asked if overwriting existing maps in the target project and mapset should be allowed. (say yes carefully bestie πŸ™ˆ)

the next prompt asks you to select one of two windows:

Please select one of the following options
1.   Use the current window in the target project
2.   Determine the smallest window which covers the image
>

if you choose option 2, you can also specify a desired target resolution.

i.ortho.rectify will only rectify that portion of the image that occurs within the chosen window. only that portion will be relocated in the target database. so it's therefore important to check the current window in the target project if choice number one is selected. no cap, go check it πŸ‘€

next you are asked to select an interpolation method:

Please select one of the following interpolation methods
1. nearest neighbor
2. bilinear
3. bicubic
4. bilinear with fallback
5. bicubic with fallback
>

and the last prompt will ask you about the amount of memory to be used by i.ortho.rectify. that's the finale, you made it πŸ’–


🌈 SEE ALSO 🌈

i.ortho.photo, i.ortho.camera, g.gui.photo2image, g.gui.image2target, i.ortho.init, i.rectify


πŸ‘‘ AUTHORS πŸ‘‘

  • Mike Baba, DBA Systems, Inc.
  • Updated rectification and elevation map to FP 1/2002 Markus Neteler
  • Bugfixes and enhancements 12/2010 Markus Metz

⭐ SOURCE CODE ⭐

Available at: i.ortho.rectify source code (history)

Accessed: Saturday Jan 17 05:41:46 2026

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


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

okay that's the whole page bestie, you ate that 🫢 this was the GRASS 8.4.2 Reference Manual, dated Saturday Jan 17 05:41:46 2026, and yeah β€” that's a real date, don't @ me. go rectify something pretty. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from