Skip to content

Instantly share code, notes, and snippets.

@mdsumner
Created June 10, 2026 01:07
Show Gist options
  • Select an option

  • Save mdsumner/b33e42771ffdbcc6ca98da9f78e6d9d0 to your computer and use it in GitHub Desktop.

Select an option

Save mdsumner/b33e42771ffdbcc6ca98da9f78e6d9d0 to your computer and use it in GitHub Desktop.
  xyll <- expand.grid(x= seq(100, 150, length.out = 15), y = seq(-70, -40, length.out = 12))

library(tissot)
ti <- tissot(xyll, "EPSG:3031")
atan2(ti$dy_dlam, ti$dx_dlam) 
#>   [1] -1.745330 -1.807663 -1.869996 -1.932330 -1.994663 -2.056996 -2.119329
#>   [8] -2.181662 -2.243996 -2.306329 -2.368662 -2.430995 -2.493328 -2.555662
#>  [15] -2.617995 -1.745330 -1.807663 -1.869996 -1.932330 -1.994663 -2.056996
#>  [22] -2.119329 -2.181662 -2.243996 -2.306329 -2.368662 -2.430995 -2.493328
#>  [29] -2.555662 -2.617995 -1.745330 -1.807663 -1.869996 -1.932330 -1.994663
#>  [36] -2.056996 -2.119329 -2.181662 -2.243996 -2.306329 -2.368662 -2.430995
#>  [43] -2.493328 -2.555662 -2.617995 -1.745330 -1.807663 -1.869996 -1.932330
#>  [50] -1.994663 -2.056996 -2.119329 -2.181662 -2.243996 -2.306329 -2.368662
#>  [57] -2.430995 -2.493328 -2.555662 -2.617995 -1.745330 -1.807663 -1.869996
#>  [64] -1.932330 -1.994663 -2.056996 -2.119329 -2.181662 -2.243996 -2.306329
#>  [71] -2.368662 -2.430995 -2.493328 -2.555662 -2.617995 -1.745330 -1.807663
#>  [78] -1.869996 -1.932330 -1.994663 -2.056996 -2.119329 -2.181662 -2.243996
#>  [85] -2.306329 -2.368662 -2.430995 -2.493328 -2.555662 -2.617995 -1.745330
#>  [92] -1.807663 -1.869996 -1.932330 -1.994663 -2.056996 -2.119329 -2.181662
#>  [99] -2.243996 -2.306329 -2.368662 -2.430995 -2.493328 -2.555662 -2.617995
#> [106] -1.745330 -1.807663 -1.869996 -1.932330 -1.994663 -2.056996 -2.119329
#> [113] -2.181662 -2.243996 -2.306329 -2.368662 -2.430995 -2.493328 -2.555662
#> [120] -2.617995 -1.745330 -1.807663 -1.869996 -1.932330 -1.994663 -2.056996
#> [127] -2.119329 -2.181662 -2.243996 -2.306329 -2.368662 -2.430995 -2.493328
#> [134] -2.555662 -2.617995 -1.745330 -1.807663 -1.869996 -1.932330 -1.994663
#> [141] -2.056996 -2.119329 -2.181662 -2.243996 -2.306329 -2.368662 -2.430995
#> [148] -2.493328 -2.555662 -2.617995 -1.745330 -1.807663 -1.869996 -1.932330
#> [155] -1.994663 -2.056996 -2.119329 -2.181662 -2.243996 -2.306329 -2.368662
#> [162] -2.430995 -2.493328 -2.555662 -2.617995 -1.745330 -1.807663 -1.869996
#> [169] -1.932330 -1.994663 -2.056996 -2.119329 -2.181662 -2.243996 -2.306329
#> [176] -2.368662 -2.430995 -2.493328 -2.555662 -2.617995

ti <- tissot(xyll, "+proj=laea +lon_0=125 +lat_0=-55")
atan2(ti$dy_dlam, ti$dx_dlam) 
#>   [1]  3.777743e-01  3.227736e-01  2.682444e-01  2.141125e-01  1.603012e-01
#>   [6]  1.067320e-01  5.332500e-02 -7.464113e-07 -5.332650e-02 -1.067335e-01
#>  [11] -1.603027e-01 -2.141140e-01 -2.682459e-01 -3.227752e-01 -3.777759e-01
#>  [16]  3.747563e-01  3.201817e-01  2.660812e-01  2.123799e-01  1.590006e-01
#>  [21]  1.058645e-01  5.289107e-02 -7.402528e-07 -5.289255e-02 -1.058659e-01
#>  [26] -1.590021e-01 -2.123814e-01 -2.660827e-01 -3.201833e-01 -3.747578e-01
#>  [31]  3.717512e-01  3.176017e-01  2.639284e-01  2.106560e-01  1.577068e-01
#>  [36]  1.050015e-01  5.245948e-02 -7.343063e-07 -5.246095e-02 -1.050030e-01
#>  [41] -1.577083e-01 -2.106575e-01 -2.639299e-01 -3.176032e-01 -3.717527e-01
#>  [46]  3.687557e-01  3.150307e-01  2.617838e-01  2.089390e-01  1.564184e-01
#>  [51]  1.041422e-01  5.202974e-02 -7.282471e-07 -5.203120e-02 -1.041437e-01
#>  [56] -1.564198e-01 -2.089405e-01 -2.617853e-01 -3.150322e-01 -3.687572e-01
#>  [61]  3.657664e-01  3.124659e-01  2.596448e-01  2.072268e-01  1.551337e-01
#>  [66]  1.032856e-01  5.160138e-02 -7.222408e-07 -5.160282e-02 -1.032871e-01
#>  [71] -1.551352e-01 -2.072283e-01 -2.596462e-01 -3.124674e-01 -3.657679e-01
#>  [76]  3.627801e-01  3.099043e-01  2.575090e-01  2.055176e-01  1.538515e-01
#>  [81]  1.024307e-01  5.117389e-02 -7.162578e-07 -5.117532e-02 -1.024321e-01
#>  [86] -1.538530e-01 -2.055191e-01 -2.575105e-01 -3.099058e-01 -3.627816e-01
#>  [91]  3.597935e-01  3.073432e-01  2.553741e-01  2.038094e-01  1.525703e-01
#>  [96]  1.015765e-01  5.074680e-02 -7.102810e-07 -5.074823e-02 -1.015779e-01
#> [101] -1.525718e-01 -2.038109e-01 -2.553756e-01 -3.073446e-01 -3.597950e-01
#> [106]  3.568032e-01  3.047796e-01  2.532378e-01  2.021004e-01  1.512886e-01
#> [111]  1.007221e-01  5.031964e-02 -7.043382e-07 -5.032105e-02 -1.007236e-01
#> [116] -1.512901e-01 -2.021018e-01 -2.532392e-01 -3.047811e-01 -3.568047e-01
#> [121]  3.538060e-01  3.022108e-01  2.510975e-01  2.003886e-01  1.500051e-01
#> [126]  9.986659e-02  4.989192e-02 -6.983649e-07 -4.989332e-02 -9.986799e-02
#> [131] -1.500065e-01 -2.003900e-01 -2.510989e-01 -3.022123e-01 -3.538075e-01
#> [136]  3.507984e-01  2.996339e-01  2.489509e-01  1.986721e-01  1.487182e-01
#> [141]  9.900889e-02  4.946315e-02 -6.922688e-07 -4.946454e-02 -9.901028e-02
#> [146] -1.487196e-01 -1.986735e-01 -2.489524e-01 -2.996353e-01 -3.507999e-01
#> [151]  3.477771e-01  2.970458e-01  2.467956e-01  1.969489e-01  1.474264e-01
#> [156]  9.814807e-02  4.903285e-02 -6.862745e-07 -4.903423e-02 -9.814945e-02
#> [161] -1.474278e-01 -1.969503e-01 -2.467970e-01 -2.970472e-01 -3.477785e-01
#> [166]  3.447385e-01  2.944437e-01  2.446291e-01  1.952170e-01  1.461284e-01
#> [171]  9.728314e-02  4.860052e-02 -6.802149e-07 -4.860188e-02 -9.728450e-02
#> [176] -1.461297e-01 -1.952184e-01 -2.446305e-01 -2.944451e-01 -3.447399e-01

ti <- tissot(xyll, "+proj=merc")
atan2(ti$dy_dlam, ti$dx_dlam) 
#>   [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>  [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>  [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> [149] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

ti <- tissot(xyll, "+proj=cea")
atan2(ti$dy_dlam, ti$dx_dlam)
#>   [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>  [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>  [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> [149] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Created on 2026-06-10 with reprex v2.1.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment