When converting spatial features from a geographic coordinate system (GSC) to a projected coordinate system (PCS) one or more spatial properties may be distorted in the transformation. These properties include **area**, **shape**, **distance** and **direction**.

Nicolas Tissot’s *indicatrix* is designed to *quantify* the level of distortion in a map projection. The idea is to project a small circle (i.e. small enough so that the distortion remains relatively uniform across the circle’s extent) and to measure its distorted shape on the projected map.

For example, the following block of code shows the distorted circles across the continental US when presented in a Mollweide projection centered at 100°W. A custom function called `draw_tissot`

is used to generate the map.

```
source("http://www.colby.edu/~mgimond/R/Draw_Tissot_function.R")
draw_tissot(p="+proj=moll", param="+lon_0=-100")
```

Let’s explore a Tissot Indicatrix (TI) in more detail. To identify the spatial properties that are distorted at a single point we will generate a more detailed plot of the TI using the custom `local_TI`

function. We will generate a TI over central Maine (at longitude= **69.5°W** and latitude = **44.5°N** to be exact).

```
library(rgdal)
source("http://www.colby.edu/~mgimond/R/Tissot_functions.R")
proj.in <- CRS("+proj=longlat +datum=WGS84") # Reference system used to record lat/long values
proj.out <- CRS("+proj=moll +lon_0=-100") # Reference system we are projecting to
lat <- 44.5
long <- -69.5
TI <- local_TI(long, lat, proj.in,proj.out)
```

The function returns a plot showing a perfect circle (displayed in a filled `bisque`

color) that one would see if *no* distortion was at play. The **blue distorted ellipse** (the indicatrix) is the transformed circle in this particular projection (*+proj=moll +lon*0=-100 +ellps=WGS84_). The **green** and **red** lines show the magnitude and direction of the ellipse’s major and minor axes respectively. These lines can also be used to assess scale distortion (note that scale distortion can vary as a function of bearing). The green line shows maximum scale distortion and the red line shows minimum scale distortion–these are sometimes referred to as the **principal directions**. In this working example, the principal directions are 1.1293 and 0.8856 (these values are stored in the `TI`

object as explained later in this write-up). A scale value of \(1\) indicates no distortion. A value less than \(1\) indicates a *smaller-than-true* scale and a value greater than \(1\) indicates a greater-than-true scale.

Projections can distort scale, but this does not necessarily mean that area is distorted. In fact, for this particular projection, area is relatively well preserved despite distortion in principal directions. Area distortion can easily be computed by taking the product of the two aforementioned principal directions. In this working example, area distortion is 1.0001.

The north-south **dashed** line in the graphic shows the orientation of the meridian. The east-west **dotted** line shows the orientation of the parallel.

Tissot Indicatrix parameters can be extracted from the function `local_TI`

. In the last block of code, we saved these parameters in a list object called `TI`

. We can display all the parameters by typing `TI`

at a command line, or we can access them individually.

Variable | Definition | Value in above example |
---|---|---|

`TI$max.scale` |
Maximum scale of distortion | 1.129 |

`TI$min.scale` |
Minimum scale of distortion | 0.886 |

`TI$scale.meridian` |
Meridian scale factor | 1.008 |

`TI$scale.parallel` |
Parallel scale factor | 1.021 |

`TI$scale.area` |
Area scale factor | 1 |

`TI[[12]][1]` |
Maximum angular deformation | 13.888 |

`TI[[12]][2]` |
Angle between true north and grid north | 13.774 |

`TI[[12]][3]` |
Angle between parallel and meridian | 76.226 |

It’s important to recall that these distortions occur at the point where the TI is centered and not across the region covered by the TI plot (the size and extent of the region covered in the above plot is arbitrarily chosen).

The following shows examples of a few projections and demonstrates how one can manipulate projection parameters to minimize distortion for a few spatial properties.

The following block of code projects the map of the US using a conformal transverse cylindrical projection centered on 100?W.

```
source("http://www.colby.edu/~mgimond/R/Draw_Tissot_function.R")
draw_tissot(p="+proj=tmerc", param="+lat_0=0 +lon_0=-100")
```

To see how this projection may distort features around central Maine, we will call the function `local_TI`

.

```
library(rgdal)
source("http://www.colby.edu/~mgimond/R/Tissot_functions.R")
proj.in <- CRS("+proj=longlat +datum=WGS84")
proj.out <- CRS("+proj=tmerc +lat_0=0 +lon_0=-100")
lat <- 44.5
long <- -69.5
TI <- local_TI(long, lat, proj.in,proj.out)
```