---
name: "m.transform"
section: "1grass"
platform: "linux"
package: "grass-doc"
version: "8.4.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/m.transform"
---

# m.transform(1grass)

Computes a coordinate transformation based on the control points.

## NAME

**m.transform**  - Computes a coordinate transformation based on the control points.

## KEYWORDS

miscellaneous, transformation, GCP

## SYNOPSIS

**m.transform**\
 **m.transform --help**\
 **m.transform** \[-**srx**\] **group**=*name* **order**=*integer*  \[**format**=*string*\[,*string*,...\]\]   \[**input**=*name*\]   \[--**help**\]  \[--**verbose**\]  \[--**quiet**\]  \[--**ui**\]

### Flags:

- **-s**

  Display summary information

- **-r**

  Reverse transform of coords file or coeff. dump\
   Target east,north coordinates to local x,y

- **-x**

  Display transform matrix coefficients

- **--help**

  Print usage summary

- **--verbose**

  Verbose module output

- **--quiet**

  Quiet module output

- **--ui**

  Force launching GUI dialog

### Parameters:

- **group**=*name* **\[required\]**

  Name of input imagery group

- **order**=*integer* **\[required\]**

  Rectification polynomial order\
   Options: *1-3*\
   Default: *1*

- **format**=*string\[,string*,...\]

  Output format\
   Options: *idx, src, dst, fwd, rev, fxy, rxy, fd, rd*\
   Default: *fd,rd*\
   **idx**: point index\
   **src**: source coordinates\
   **dst**: destination coordinates\
   **fwd**: forward coordinates (destination)\
   **rev**: reverse coordinates (source)\
   **fxy**: forward coordinates difference (destination)\
   **rxy**: reverse coordinates difference (source)\
   **fd**: forward error (destination)\
   **rd**: reverse error (source)

- **input**=*name*

  File containing coordinates to transform ("-" to read from stdin)\
   Local x,y coordinates to target east,north

## DESCRIPTION

*m.transform* is an utility to compute transformation based upon GCPs and output error measurements.

If coordinates are given with the **input** file option or fed from `stdin`, both the input and the output format is "x y" with one coordinate pair per line. Reverse transform is performed with the **-r** flag.

The **format** option determines how control points are printed out. A summary on the control points can be printed with the **-s** flag. The summary includes maximum deviation observed when transforming GCPs and overall RMS. The **format** option is ignored when coordinates are given with the **input** file option.

## NOTES

The transformations are:

order=1:\

```
    e = [E0 E1][1]·[1]
        [E2  0][e] [n]
    n = [N0 N1][1]·[1]
        [N2  0][e] [n]
```

order=2:\

```
    e = [E0 E1 E3][1 ] [1 ]
        [E2 E4  0][e ]·[n ]
        [E5  0  0][e²] [n²]
    n = [N0 N1 N3][1 ] [1 ]
        [N2 N4  0][e ]·[n ]
        [N5  0  0][e²] [n²]
```

order=3:\

```
    e = [E0 E1 E3 E6][1 ] [1 ]
        [E2 E4 E7  0][e ]·[n ]
        [E5 E8  0  0][e²] [n²]
        [E9  0  0  0][e³] [n³]
    n = [N0 N1 N3 N6][1 ] [1 ]
        [N2 N4 N7  0][e ]·[n ]
        [N5 N8  0  0][e²] [n²]
        [N9  0  0  0][e³] [n³]
```

\["·" = dot-product, (AE)·N = N’EA\]

In other words, *order=1* and *order=2* are equivalent to *order=3* with the higher coefficients equal to zero.

## SEE ALSO

*i.ortho.transform,* *i.rectify,* *v.rectify,* *v.transform*

## AUTHORS

Brian J. Buckley\
 Glynn Clements\
 Hamish Bowman

## SOURCE CODE

Available at: m.transform source code (history)

Accessed: Monday Feb 24 17:51:29 2025

Main index \| Miscellaneous index \| Topics index \| Keywords index \| Graphical index \| Full index

© 2003-2025 GRASS Development Team, GRASS GIS 8.4.1 Reference Manual
