aboutsummaryrefslogtreecommitdiff
path: root/docs/source/operations
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2018-02-28 22:37:13 +0100
committerKristian Evers <kristianevers@gmail.com>2018-02-28 22:37:13 +0100
commitbe3791ffd5e802d5a3d38fa08f5ed24715b73c7c (patch)
tree25eff60d91fed8ffce3302e37818f5bc452b16ca /docs/source/operations
parentdb2bfdce6df26801584be562f0ac74648ef8cefd (diff)
downloadPROJ-be3791ffd5e802d5a3d38fa08f5ed24715b73c7c.tar.gz
PROJ-be3791ffd5e802d5a3d38fa08f5ed24715b73c7c.zip
Move 'Coordinate operations' to top level of docs [skip ci]
Diffstat (limited to 'docs/source/operations')
-rw-r--r--docs/source/operations/conversions/axisswap.rst39
-rw-r--r--docs/source/operations/conversions/cart.rst24
-rw-r--r--docs/source/operations/conversions/index.rst18
-rw-r--r--docs/source/operations/conversions/latlon.rst6
-rw-r--r--docs/source/operations/conversions/lonlat.rst6
-rw-r--r--docs/source/operations/conversions/unitconvert.rst112
-rw-r--r--docs/source/operations/index.rst22
-rw-r--r--docs/source/operations/pipeline.rst98
-rw-r--r--docs/source/operations/projections/aeqd.rst22
-rw-r--r--docs/source/operations/projections/airy.rst26
-rw-r--r--docs/source/operations/projections/aitoff.rst10
-rw-r--r--docs/source/operations/projections/alsk.rst10
-rw-r--r--docs/source/operations/projections/apian.rst10
-rw-r--r--docs/source/operations/projections/august.rst10
-rw-r--r--docs/source/operations/projections/bacon.rst10
-rw-r--r--docs/source/operations/projections/bipc.rst10
-rw-r--r--docs/source/operations/projections/boggs.rst10
-rw-r--r--docs/source/operations/projections/bonne.rst10
-rw-r--r--docs/source/operations/projections/calcofi.rst95
-rw-r--r--docs/source/operations/projections/cass.rst145
-rw-r--r--docs/source/operations/projections/cc.rst10
-rw-r--r--docs/source/operations/projections/ccon.rst127
-rw-r--r--docs/source/operations/projections/cea.rst10
-rw-r--r--docs/source/operations/projections/chamb.rst10
-rw-r--r--docs/source/operations/projections/collg.rst10
-rw-r--r--docs/source/operations/projections/crast.rst10
-rw-r--r--docs/source/operations/projections/denoy.rst10
-rw-r--r--docs/source/operations/projections/eck1.rst18
-rw-r--r--docs/source/operations/projections/eck2.rst10
-rw-r--r--docs/source/operations/projections/eck3.rst10
-rw-r--r--docs/source/operations/projections/eck4.rst19
-rw-r--r--docs/source/operations/projections/eck5.rst10
-rw-r--r--docs/source/operations/projections/eck6.rst10
-rw-r--r--docs/source/operations/projections/eqc.rst110
-rw-r--r--docs/source/operations/projections/eqdc.rst10
-rw-r--r--docs/source/operations/projections/etmerc.rst10
-rw-r--r--docs/source/operations/projections/euler.rst10
-rw-r--r--docs/source/operations/projections/fahey.rst10
-rw-r--r--docs/source/operations/projections/fouc.rst10
-rw-r--r--docs/source/operations/projections/fouc_s.rst25
-rw-r--r--docs/source/operations/projections/gall.rst84
-rw-r--r--docs/source/operations/projections/geos.rst72
-rw-r--r--docs/source/operations/projections/gins8.rst10
-rw-r--r--docs/source/operations/projections/gn_sinu.rst10
-rw-r--r--docs/source/operations/projections/gnom.rst10
-rw-r--r--docs/source/operations/projections/goode.rst10
-rw-r--r--docs/source/operations/projections/gs48.rst10
-rw-r--r--docs/source/operations/projections/gs50.rst10
-rw-r--r--docs/source/operations/projections/gstmerc.rst10
-rw-r--r--docs/source/operations/projections/hammer.rst10
-rw-r--r--docs/source/operations/projections/hatano.rst70
-rw-r--r--docs/source/operations/projections/healpix.rst55
-rw-r--r--docs/source/operations/projections/igh.rst10
-rw-r--r--docs/source/operations/projections/images/aea.pngbin0 -> 273668 bytes
-rw-r--r--docs/source/operations/projections/images/aeqd.pngbin0 -> 242075 bytes
-rw-r--r--docs/source/operations/projections/images/airy.pngbin0 -> 193140 bytes
-rw-r--r--docs/source/operations/projections/images/aitoff.pngbin0 -> 281655 bytes
-rw-r--r--docs/source/operations/projections/images/alsk.pngbin0 -> 89331 bytes
-rw-r--r--docs/source/operations/projections/images/apian.pngbin0 -> 232910 bytes
-rw-r--r--docs/source/operations/projections/images/august.pngbin0 -> 264816 bytes
-rw-r--r--docs/source/operations/projections/images/bacon.pngbin0 -> 232456 bytes
-rw-r--r--docs/source/operations/projections/images/bipc.pngbin0 -> 214330 bytes
-rw-r--r--docs/source/operations/projections/images/boggs.pngbin0 -> 243618 bytes
-rw-r--r--docs/source/operations/projections/images/bonne.pngbin0 -> 290097 bytes
-rw-r--r--docs/source/operations/projections/images/calcofi.pngbin0 -> 316606 bytes
-rw-r--r--docs/source/operations/projections/images/cass.pngbin0 -> 207715 bytes
-rw-r--r--docs/source/operations/projections/images/cc.pngbin0 -> 100206 bytes
-rw-r--r--docs/source/operations/projections/images/ccon.pngbin0 -> 205856 bytes
-rw-r--r--docs/source/operations/projections/images/cea.pngbin0 -> 96163 bytes
-rw-r--r--docs/source/operations/projections/images/chamb.pngbin0 -> 301159 bytes
-rw-r--r--docs/source/operations/projections/images/collg.pngbin0 -> 211969 bytes
-rw-r--r--docs/source/operations/projections/images/comill.pngbin0 -> 100906 bytes
-rw-r--r--docs/source/operations/projections/images/crast.pngbin0 -> 240748 bytes
-rw-r--r--docs/source/operations/projections/images/denoy.pngbin0 -> 242689 bytes
-rw-r--r--docs/source/operations/projections/images/eck1.pngbin0 -> 226331 bytes
-rw-r--r--docs/source/operations/projections/images/eck2.pngbin0 -> 227996 bytes
-rw-r--r--docs/source/operations/projections/images/eck3.pngbin0 -> 229072 bytes
-rw-r--r--docs/source/operations/projections/images/eck4.pngbin0 -> 228930 bytes
-rw-r--r--docs/source/operations/projections/images/eck5.pngbin0 -> 227661 bytes
-rw-r--r--docs/source/operations/projections/images/eck6.pngbin0 -> 228739 bytes
-rw-r--r--docs/source/operations/projections/images/eqc.pngbin0 -> 99881 bytes
-rw-r--r--docs/source/operations/projections/images/eqdc.pngbin0 -> 253069 bytes
-rw-r--r--docs/source/operations/projections/images/etmerc.pngbin0 -> 296004 bytes
-rw-r--r--docs/source/operations/projections/images/euler.pngbin0 -> 260706 bytes
-rw-r--r--docs/source/operations/projections/images/fahey.pngbin0 -> 243833 bytes
-rw-r--r--docs/source/operations/projections/images/fouc.pngbin0 -> 226398 bytes
-rw-r--r--docs/source/operations/projections/images/fouc_s.pngbin0 -> 96801 bytes
-rw-r--r--docs/source/operations/projections/images/gall.pngbin0 -> 99516 bytes
-rw-r--r--docs/source/operations/projections/images/geos.pngbin0 -> 155703 bytes
-rw-r--r--docs/source/operations/projections/images/gins8.pngbin0 -> 231431 bytes
-rw-r--r--docs/source/operations/projections/images/gn_sinu.pngbin0 -> 198410 bytes
-rw-r--r--docs/source/operations/projections/images/gnom.pngbin0 -> 183664 bytes
-rw-r--r--docs/source/operations/projections/images/goode.pngbin0 -> 245463 bytes
-rw-r--r--docs/source/operations/projections/images/gs48.pngbin0 -> 79575 bytes
-rw-r--r--docs/source/operations/projections/images/gs50.pngbin0 -> 127915 bytes
-rw-r--r--docs/source/operations/projections/images/gstmerc.pngbin0 -> 259585 bytes
-rw-r--r--docs/source/operations/projections/images/hammer.pngbin0 -> 282624 bytes
-rw-r--r--docs/source/operations/projections/images/hatano.pngbin0 -> 215598 bytes
-rw-r--r--docs/source/operations/projections/images/healpix.pngbin0 -> 171513 bytes
-rw-r--r--docs/source/operations/projections/images/igh.pngbin0 -> 232327 bytes
-rw-r--r--docs/source/operations/projections/images/imw_p.pngbin0 -> 188272 bytes
-rw-r--r--docs/source/operations/projections/images/isea.pngbin0 -> 310106 bytes
-rw-r--r--docs/source/operations/projections/images/kav5.pngbin0 -> 244578 bytes
-rw-r--r--docs/source/operations/projections/images/kav7.pngbin0 -> 229109 bytes
-rw-r--r--docs/source/operations/projections/images/krovak.pngbin0 -> 70429 bytes
-rw-r--r--docs/source/operations/projections/images/labrd.pngbin0 -> 48609 bytes
-rw-r--r--docs/source/operations/projections/images/laea.pngbin0 -> 288272 bytes
-rw-r--r--docs/source/operations/projections/images/lagrng.pngbin0 -> 281932 bytes
-rw-r--r--docs/source/operations/projections/images/larr.pngbin0 -> 255324 bytes
-rw-r--r--docs/source/operations/projections/images/lask.pngbin0 -> 276892 bytes
-rw-r--r--docs/source/operations/projections/images/lcc.pngbin0 -> 163094 bytes
-rw-r--r--docs/source/operations/projections/images/lcca.pngbin0 -> 235626 bytes
-rw-r--r--docs/source/operations/projections/images/leac.pngbin0 -> 306096 bytes
-rw-r--r--docs/source/operations/projections/images/lee_os.pngbin0 -> 141797 bytes
-rw-r--r--docs/source/operations/projections/images/loxim.pngbin0 -> 241566 bytes
-rw-r--r--docs/source/operations/projections/images/lsat.pngbin0 -> 14385 bytes
-rw-r--r--docs/source/operations/projections/images/mbt_fps.pngbin0 -> 241457 bytes
-rw-r--r--docs/source/operations/projections/images/mbt_s.pngbin0 -> 245067 bytes
-rw-r--r--docs/source/operations/projections/images/mbtfpp.pngbin0 -> 236235 bytes
-rw-r--r--docs/source/operations/projections/images/mbtfpq.pngbin0 -> 237516 bytes
-rw-r--r--docs/source/operations/projections/images/mbtfps.pngbin0 -> 235738 bytes
-rw-r--r--docs/source/operations/projections/images/merc.pngbin0 -> 100334 bytes
-rw-r--r--docs/source/operations/projections/images/mil_os.pngbin0 -> 136269 bytes
-rw-r--r--docs/source/operations/projections/images/mill.pngbin0 -> 97862 bytes
-rw-r--r--docs/source/operations/projections/images/misrsom.pngbin0 -> 293190 bytes
-rw-r--r--docs/source/operations/projections/images/moll.pngbin0 -> 244671 bytes
-rw-r--r--docs/source/operations/projections/images/murd1.pngbin0 -> 234038 bytes
-rw-r--r--docs/source/operations/projections/images/murd2.pngbin0 -> 175431 bytes
-rw-r--r--docs/source/operations/projections/images/murd3.pngbin0 -> 229304 bytes
-rw-r--r--docs/source/operations/projections/images/natearth.pngbin0 -> 228702 bytes
-rw-r--r--docs/source/operations/projections/images/natearth2.pngbin0 -> 240763 bytes
-rw-r--r--docs/source/operations/projections/images/nell.pngbin0 -> 213589 bytes
-rw-r--r--docs/source/operations/projections/images/nell_h.pngbin0 -> 230244 bytes
-rw-r--r--docs/source/operations/projections/images/nicol.pngbin0 -> 263585 bytes
-rw-r--r--docs/source/operations/projections/images/nsper.pngbin0 -> 133200 bytes
-rw-r--r--docs/source/operations/projections/images/nzmg.pngbin0 -> 50472 bytes
-rw-r--r--docs/source/operations/projections/images/ob_tran.pngbin0 -> 272387 bytes
-rw-r--r--docs/source/operations/projections/images/ocea.pngbin0 -> 93093 bytes
-rw-r--r--docs/source/operations/projections/images/oea.pngbin0 -> 351858 bytes
-rw-r--r--docs/source/operations/projections/images/omerc.pngbin0 -> 231077 bytes
-rw-r--r--docs/source/operations/projections/images/ortel.pngbin0 -> 197532 bytes
-rw-r--r--docs/source/operations/projections/images/ortho.pngbin0 -> 156144 bytes
-rw-r--r--docs/source/operations/projections/images/patterson.pngbin0 -> 102271 bytes
-rw-r--r--docs/source/operations/projections/images/pconic.pngbin0 -> 200664 bytes
-rw-r--r--docs/source/operations/projections/images/poly.pngbin0 -> 270344 bytes
-rw-r--r--docs/source/operations/projections/images/putp1.pngbin0 -> 243490 bytes
-rw-r--r--docs/source/operations/projections/images/putp2.pngbin0 -> 243377 bytes
-rw-r--r--docs/source/operations/projections/images/putp3.pngbin0 -> 240811 bytes
-rw-r--r--docs/source/operations/projections/images/putp3p.pngbin0 -> 228904 bytes
-rw-r--r--docs/source/operations/projections/images/putp4p.pngbin0 -> 230226 bytes
-rw-r--r--docs/source/operations/projections/images/putp5.pngbin0 -> 237811 bytes
-rw-r--r--docs/source/operations/projections/images/putp5p.pngbin0 -> 228264 bytes
-rw-r--r--docs/source/operations/projections/images/putp6.pngbin0 -> 238235 bytes
-rw-r--r--docs/source/operations/projections/images/putp6p.pngbin0 -> 229779 bytes
-rw-r--r--docs/source/operations/projections/images/qsc.pngbin0 -> 297806 bytes
-rw-r--r--docs/source/operations/projections/images/qua_aut.pngbin0 -> 242497 bytes
-rw-r--r--docs/source/operations/projections/images/rhealpix.pngbin0 -> 393316 bytes
-rw-r--r--docs/source/operations/projections/images/robin.pngbin0 -> 228460 bytes
-rw-r--r--docs/source/operations/projections/images/rouss.pngbin0 -> 234337 bytes
-rw-r--r--docs/source/operations/projections/images/rpoly.pngbin0 -> 275448 bytes
-rw-r--r--docs/source/operations/projections/images/sinu.pngbin0 -> 236312 bytes
-rw-r--r--docs/source/operations/projections/images/somerc.pngbin0 -> 87704 bytes
-rw-r--r--docs/source/operations/projections/images/stere.pngbin0 -> 176565 bytes
-rw-r--r--docs/source/operations/projections/images/sterea.pngbin0 -> 175090 bytes
-rw-r--r--docs/source/operations/projections/images/tcc.pngbin0 -> 121474 bytes
-rw-r--r--docs/source/operations/projections/images/tcea.pngbin0 -> 331583 bytes
-rw-r--r--docs/source/operations/projections/images/tissot.pngbin0 -> 268068 bytes
-rw-r--r--docs/source/operations/projections/images/tmerc.pngbin0 -> 186992 bytes
-rw-r--r--docs/source/operations/projections/images/tpeqd.pngbin0 -> 297972 bytes
-rw-r--r--docs/source/operations/projections/images/tpers.pngbin0 -> 156134 bytes
-rw-r--r--docs/source/operations/projections/images/ups.pngbin0 -> 201068 bytes
-rw-r--r--docs/source/operations/projections/images/urm5.pngbin0 -> 232637 bytes
-rw-r--r--docs/source/operations/projections/images/urmfps.pngbin0 -> 189587 bytes
-rw-r--r--docs/source/operations/projections/images/utm.pngbin0 -> 305727 bytes
-rw-r--r--docs/source/operations/projections/images/vandg.pngbin0 -> 274126 bytes
-rw-r--r--docs/source/operations/projections/images/vandg2.pngbin0 -> 286774 bytes
-rw-r--r--docs/source/operations/projections/images/vandg3.pngbin0 -> 239999 bytes
-rw-r--r--docs/source/operations/projections/images/vandg4.pngbin0 -> 273833 bytes
-rw-r--r--docs/source/operations/projections/images/vitk1.pngbin0 -> 251858 bytes
-rw-r--r--docs/source/operations/projections/images/wag1.pngbin0 -> 230113 bytes
-rw-r--r--docs/source/operations/projections/images/wag2.pngbin0 -> 229235 bytes
-rw-r--r--docs/source/operations/projections/images/wag3.pngbin0 -> 228764 bytes
-rw-r--r--docs/source/operations/projections/images/wag4.pngbin0 -> 230059 bytes
-rw-r--r--docs/source/operations/projections/images/wag5.pngbin0 -> 231608 bytes
-rw-r--r--docs/source/operations/projections/images/wag6.pngbin0 -> 229507 bytes
-rw-r--r--docs/source/operations/projections/images/wag7.pngbin0 -> 262121 bytes
-rw-r--r--docs/source/operations/projections/images/weren.pngbin0 -> 230046 bytes
-rw-r--r--docs/source/operations/projections/images/wink1.pngbin0 -> 228017 bytes
-rw-r--r--docs/source/operations/projections/images/wink2.pngbin0 -> 229994 bytes
-rw-r--r--docs/source/operations/projections/images/wintri.pngbin0 -> 266146 bytes
-rw-r--r--docs/source/operations/projections/imw_p.rst10
-rw-r--r--docs/source/operations/projections/index.rst146
-rw-r--r--docs/source/operations/projections/isea.rst10
-rw-r--r--docs/source/operations/projections/kav5.rst10
-rw-r--r--docs/source/operations/projections/kav7.rst10
-rw-r--r--docs/source/operations/projections/krovak.rst10
-rw-r--r--docs/source/operations/projections/labrd.rst10
-rw-r--r--docs/source/operations/projections/laea.rst10
-rw-r--r--docs/source/operations/projections/lagrng.rst10
-rw-r--r--docs/source/operations/projections/larr.rst10
-rw-r--r--docs/source/operations/projections/lask.rst10
-rw-r--r--docs/source/operations/projections/lcc.rst10
-rw-r--r--docs/source/operations/projections/lcca.rst10
-rw-r--r--docs/source/operations/projections/leac.rst10
-rw-r--r--docs/source/operations/projections/lee_os.rst10
-rw-r--r--docs/source/operations/projections/loxim.rst10
-rw-r--r--docs/source/operations/projections/lsat.rst10
-rw-r--r--docs/source/operations/projections/mbt_fps.rst10
-rw-r--r--docs/source/operations/projections/mbt_s.rst10
-rw-r--r--docs/source/operations/projections/mbtfpp.rst10
-rw-r--r--docs/source/operations/projections/mbtfpq.rst10
-rw-r--r--docs/source/operations/projections/mbtfps.rst10
-rw-r--r--docs/source/operations/projections/merc.rst140
-rw-r--r--docs/source/operations/projections/mil_os.rst10
-rw-r--r--docs/source/operations/projections/mill.rst72
-rw-r--r--docs/source/operations/projections/moll.rst10
-rw-r--r--docs/source/operations/projections/murd1.rst10
-rw-r--r--docs/source/operations/projections/murd2.rst10
-rw-r--r--docs/source/operations/projections/murd3.rst10
-rw-r--r--docs/source/operations/projections/natearth.rst47
-rw-r--r--docs/source/operations/projections/nell.rst10
-rw-r--r--docs/source/operations/projections/nell_h.rst10
-rw-r--r--docs/source/operations/projections/nicol.rst10
-rw-r--r--docs/source/operations/projections/nsper.rst10
-rw-r--r--docs/source/operations/projections/nzmg.rst10
-rw-r--r--docs/source/operations/projections/ob_tran.rst10
-rw-r--r--docs/source/operations/projections/ocea.rst10
-rw-r--r--docs/source/operations/projections/oea.rst10
-rw-r--r--docs/source/operations/projections/omerc.rst10
-rw-r--r--docs/source/operations/projections/ortel.rst10
-rw-r--r--docs/source/operations/projections/ortho.rst10
-rw-r--r--docs/source/operations/projections/pconic.rst10
-rw-r--r--docs/source/operations/projections/poly.rst10
-rw-r--r--docs/source/operations/projections/putp1.rst10
-rw-r--r--docs/source/operations/projections/putp2.rst10
-rw-r--r--docs/source/operations/projections/putp3.rst10
-rw-r--r--docs/source/operations/projections/putp3p.rst10
-rw-r--r--docs/source/operations/projections/putp4p.rst10
-rw-r--r--docs/source/operations/projections/putp5.rst10
-rw-r--r--docs/source/operations/projections/putp5p.rst10
-rw-r--r--docs/source/operations/projections/putp6.rst10
-rw-r--r--docs/source/operations/projections/putp6p.rst10
-rw-r--r--docs/source/operations/projections/qsc.rst158
-rw-r--r--docs/source/operations/projections/qua_aut.rst10
-rw-r--r--docs/source/operations/projections/rhealpix.rst51
-rw-r--r--docs/source/operations/projections/robin.rst10
-rw-r--r--docs/source/operations/projections/rouss.rst10
-rw-r--r--docs/source/operations/projections/rpoly.rst10
-rw-r--r--docs/source/operations/projections/sinu.rst24
-rw-r--r--docs/source/operations/projections/somerc.rst10
-rw-r--r--docs/source/operations/projections/stere.rst10
-rw-r--r--docs/source/operations/projections/sterea.rst10
-rw-r--r--docs/source/operations/projections/tcc.rst10
-rw-r--r--docs/source/operations/projections/tcea.rst10
-rw-r--r--docs/source/operations/projections/tissot.rst10
-rw-r--r--docs/source/operations/projections/tmerc.rst197
-rw-r--r--docs/source/operations/projections/tpeqd.rst10
-rw-r--r--docs/source/operations/projections/tpers.rst39
-rw-r--r--docs/source/operations/projections/ups.rst10
-rw-r--r--docs/source/operations/projections/urm5.rst10
-rw-r--r--docs/source/operations/projections/urmfps.rst10
-rw-r--r--docs/source/operations/projections/utm.rst10
-rw-r--r--docs/source/operations/projections/vandg.rst10
-rw-r--r--docs/source/operations/projections/vandg2.rst10
-rw-r--r--docs/source/operations/projections/vandg3.rst10
-rw-r--r--docs/source/operations/projections/vandg4.rst10
-rw-r--r--docs/source/operations/projections/vitk1.rst10
-rw-r--r--docs/source/operations/projections/wag1.rst10
-rw-r--r--docs/source/operations/projections/wag2.rst18
-rw-r--r--docs/source/operations/projections/wag3.rst16
-rw-r--r--docs/source/operations/projections/wag4.rst10
-rw-r--r--docs/source/operations/projections/wag5.rst10
-rw-r--r--docs/source/operations/projections/wag6.rst10
-rw-r--r--docs/source/operations/projections/wag7.rst10
-rw-r--r--docs/source/operations/projections/weren.rst10
-rw-r--r--docs/source/operations/projections/wink1.rst10
-rw-r--r--docs/source/operations/projections/wink2.rst10
-rw-r--r--docs/source/operations/projections/wintri.rst10
-rw-r--r--docs/source/operations/transformations/deformation.rst148
-rw-r--r--docs/source/operations/transformations/helmert.rst388
-rw-r--r--docs/source/operations/transformations/hgridshift.rst39
-rw-r--r--docs/source/operations/transformations/index.rst17
-rw-r--r--docs/source/operations/transformations/molodensky.rst74
-rw-r--r--docs/source/operations/transformations/vgridshift.rst41
284 files changed, 3898 insertions, 0 deletions
diff --git a/docs/source/operations/conversions/axisswap.rst b/docs/source/operations/conversions/axisswap.rst
new file mode 100644
index 00000000..ddaad075
--- /dev/null
+++ b/docs/source/operations/conversions/axisswap.rst
@@ -0,0 +1,39 @@
+.. _axisswap:
+
+================================================================================
+Axis swap
+================================================================================
+
+Change the order and sign of 2,3 or 4 axes.
+
++--------------+---------------------------------------------------------------+
+| **Options** |
++--------------+---------------------------------------------------------------+
+| `+order` | Ordered comma-separated list of axis, e.g. `+order=2,1,3,4` |
++--------------+---------------------------------------------------------------+
+
+
+Each of the possible four axes are numbered with 1-4, such that the first input axis
+is 1, the second is 2 and so on. The output ordering is controlled by a list of the
+input axes re-ordered to the new mapping.
+
+Examples
+################################################################################
+
+Reversing the order of the axes::
+
+ +proj=axisswap +order=4,3,2,1
+
+Swapping the first two axes (x and y)::
+
+ +proj=axisswap +order=2,1,3,4
+
+The direction, or sign, of an axis can be changed by adding a minus in
+front of the axis-number::
+
+ +proj=axisswap +order=1,-2,3,4
+
+It is only necessary to specify the axes that are affected by the swap
+operation::
+
+ +proj=axisswap +order=2,1
diff --git a/docs/source/operations/conversions/cart.rst b/docs/source/operations/conversions/cart.rst
new file mode 100644
index 00000000..0c3c7c23
--- /dev/null
+++ b/docs/source/operations/conversions/cart.rst
@@ -0,0 +1,24 @@
+.. _cart:
+
+================================================================================
+Cartesian to geodetic conversion
+================================================================================
+
+Convert geodetic coordinates to cartesian coordinates.
+
++--------------+--------------------------------------------------------------------+
+| **Options** |
++--------------+--------------------------------------------------------------------+
+| `+ellps` | Ellipsoid of the input coordinates. If used together with the |
+| |  ellipsoid parameters below, ``+ellps`` is overwritten. |
++--------------+--------------------------------------------------------------------+
+| `+a` | Semi-major radius of ellipsoid axis. |
++--------------+--------------------------------------------------------------------+
+| `+b` | Semi-minor radius of ellipsoid axis. |
++--------------+--------------------------------------------------------------------+
+| `+es` | Eccentricity of ellipsoid. |
++--------------+--------------------------------------------------------------------+
+| `+f` | Flattening of ellipsoid. |
++--------------+--------------------------------------------------------------------+
+
+
diff --git a/docs/source/operations/conversions/index.rst b/docs/source/operations/conversions/index.rst
new file mode 100644
index 00000000..af27e2fd
--- /dev/null
+++ b/docs/source/operations/conversions/index.rst
@@ -0,0 +1,18 @@
+.. _conversions_list:
+
+================================================================================
+Conversions
+================================================================================
+
+Conversions are coordinate operations in which both coordinate reference systems
+are based on the same datum. In PROJ projections are differentiated from
+conversions.
+
+.. toctree::
+ :maxdepth: 1
+
+ axisswap
+ cart
+ lonlat
+ latlon
+ unitconvert
diff --git a/docs/source/operations/conversions/latlon.rst b/docs/source/operations/conversions/latlon.rst
new file mode 100644
index 00000000..6712fa7b
--- /dev/null
+++ b/docs/source/operations/conversions/latlon.rst
@@ -0,0 +1,6 @@
+.. _latlon:
+
+********************************************************************************
+Lat/long (Geodetic alias)
+********************************************************************************
+
diff --git a/docs/source/operations/conversions/lonlat.rst b/docs/source/operations/conversions/lonlat.rst
new file mode 100644
index 00000000..589cc813
--- /dev/null
+++ b/docs/source/operations/conversions/lonlat.rst
@@ -0,0 +1,6 @@
+.. _lonlat:
+
+********************************************************************************
+Lat/long (Geodetic)
+********************************************************************************
+
diff --git a/docs/source/operations/conversions/unitconvert.rst b/docs/source/operations/conversions/unitconvert.rst
new file mode 100644
index 00000000..73e517bd
--- /dev/null
+++ b/docs/source/operations/conversions/unitconvert.rst
@@ -0,0 +1,112 @@
+.. _unitconvert:
+
+================================================================================
+Unit conversion
+================================================================================
+
+Convert between various distance and time units.
+
++--------------+--------------------------------------------------------------------+
+| **Options** |
++--------------+--------------------------------------------------------------------+
+| `+xy_in` | Input unit of the horizontal components. |
++--------------+--------------------------------------------------------------------+
+| `+xy_out` | Output unit of the horizontal components. |
++--------------+--------------------------------------------------------------------+
+| `+z_in` | Input unit of the vertical component. |
++--------------+--------------------------------------------------------------------+
+| `+z_out` | Output unit of the vertical component. |
++--------------+--------------------------------------------------------------------+
+| `+t_in` | Input unit of the time component. |
++--------------+--------------------------------------------------------------------+
+| `+t_out` | Output unit of the time component. |
++--------------+--------------------------------------------------------------------+
+
+There are many examples of coordinate reference systems that are expressed in
+other units than the meter. There are also many cases where temporal data
+has to be translated to different units. The `unitconvert` operation takes care
+of that.
+
+Many North American systems are defined with coordinates in feet. For example
+in Vermont::
+
+ +proj=pipeline
+ +step +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000.00001016 +y_0=0
+ +step +proj=unitconvert +xy_in=m +xy_out=us-ft
+
+Often when working with GNNS data the timestamps are presented in GPS-weeks,
+but when the data transformed with the `helmert` operation timestamps are
+expected to be in units of decimalyears. This can be fixed with `unitconvert`::
+
+ +proj=pipeline
+ +step +proj=unitconvert +t_in=gpsweek +t_out=decimalyear
+ +step +proj=helmert +epoch=2000.0 +t_obs=2017.5 ...
+
+
+Distance units
+###############################################################################
+
+In the table below all distance units supported by PROJ is listed.
+The same list can also be produced on the command line with `proj` or `cs2cs`,
+by adding the `-lu` flag when calling the utility.
+
++----------+---------------------------------+
+| Label | Name |
++----------+---------------------------------+
+| km | Kilometer |
++----------+---------------------------------+
+| m | Meter |
++----------+---------------------------------+
+| dm | Decimeter |
++----------+---------------------------------+
+| cm | Centimeter |
++----------+---------------------------------+
+| mm | Millimeter |
++----------+---------------------------------+
+| kmi | International Nautical Mile |
++----------+---------------------------------+
+| in | International Inch |
++----------+---------------------------------+
+| ft | International Foot |
++----------+---------------------------------+
+| yd | International Yard |
++----------+---------------------------------+
+| mi | International Statute Mile |
++----------+---------------------------------+
+| fath | International Fathom |
++----------+---------------------------------+
+| ch | International Chain |
++----------+---------------------------------+
+| link | International Link |
++----------+---------------------------------+
+| us-in | U.S. Surveyor's Inch |
++----------+---------------------------------+
+| us-ft | U.S. Surveyor's Foot |
++----------+---------------------------------+
+| us-yd | U.S. Surveyor's Yard |
++----------+---------------------------------+
+| us-ch | U.S. Surveyor's Chain |
++----------+---------------------------------+
+| us-mi | U.S. Surveyor's Statute Mile |
++----------+---------------------------------+
+| ind-yd | Indian Yard |
++----------+---------------------------------+
+| ind-ft | Indian Foot |
++----------+---------------------------------+
+| ind-ch | Indian Chain |
++----------+---------------------------------+
+
+
+Time units
+###############################################################################
+
+In the table below all time units supported by PROJ is listed.
+
++--------------+-----------------------------+
+| mjd | Modfied Julian date |
++--------------+-----------------------------+
+| decimalyear | Decimal year |
++--------------+-----------------------------+
+| gps_week | GPS Week |
++--------------+-----------------------------+
+
diff --git a/docs/source/operations/index.rst b/docs/source/operations/index.rst
new file mode 100644
index 00000000..87bfdc40
--- /dev/null
+++ b/docs/source/operations/index.rst
@@ -0,0 +1,22 @@
+.. _operations:
+
+================================================================================
+Coordinate operations
+================================================================================
+
+Coordinate operations in PROJ are divided into three groups:
+Projections, conversions and transformations.
+Projections are purely cartographic mappings of the sphere onto the plane.
+Technically projections are conversions (according to ISO standards), though in
+PROJ projections are distinguished from conversions. Conversions are coordinate
+operations that do not exert a change in reference frame. Operations that do
+exert a change in reference frame are called transformations.
+
+.. toctree::
+ :maxdepth: 1
+
+ projections/index
+ conversions/index
+ transformations/index
+ pipeline
+
diff --git a/docs/source/operations/pipeline.rst b/docs/source/operations/pipeline.rst
new file mode 100644
index 00000000..18637712
--- /dev/null
+++ b/docs/source/operations/pipeline.rst
@@ -0,0 +1,98 @@
+.. _pipeline:
+
+================================================================================
+The pipeline operator
+================================================================================
+
+Construct complex operations by daisy-chaining operations in a sequential pipeline.
+
++-----------------+--------------------------------------------------------------------+
+| **Input type** | Any. |
++-----------------+--------------------------------------------------------------------+
+| **Output type** | Any. |
++-----------------+--------------------------------------------------------------------+
+| **Options** |
++-----------------+--------------------------------------------------------------------+
+| `step` | Separate each step in a pipeline. |
++-----------------+--------------------------------------------------------------------+
+| `inv` | Invert a step in a pipeline. |
++-----------------+--------------------------------------------------------------------+
+
+.. note:: See the section on :ref:`transformation` for a more thorough introduction
+ to the concept of transformation pipelines in PROJ.
+
+
+With the pipeline operation it is possible to perform several operations after each
+other on the same input data. This feature makes it possible to create transformations
+that are made up of more than one operation, e.g. performing a datum shift and then
+applying a suitable map projection. Theoretically any transformation between two
+coordinate reference systems is possible to perform using the pipeline operation,
+provided that the necessary coordinate operations in each step is available in PROJ.
+
+A pipeline is made up of a number of steps, with each step being a coordinate operation
+in itself. By connecting these individual steps sequentially we end up with a concatenated
+coordinate operation. An example of this is a transformation from geodetic coordinates
+on the GRS80 ellipsoid to a projected system where the east-west and north-east axes has
+been swapped:
+
+::
+
+ +proj=pipeline +ellps=GRS80 +step +proj=merc +step +proj=axisswap +order=2,1
+
+Here the first step is applying the :ref:`merc` projection and the second step is
+applying the :ref:`axisswap` conversion. Note that the `+ellps=GRS80` is specified
+before the first occurence of `+step`. This means that the GRS80 ellipsoid is used
+in both steps, since any parameter stated before the first occurence of `+step` is
+treated as a global parameter and is transferred to each individual steps.
+
+
+Rules for pipelines
+-------------------------------------------------------------------------------
+
+**1. Pipelines must consist of at least one step.**
+
+::
+
+ +proj=pipeline
+
+Will result in an error.
+
+**2. Pipelines can only be nested if the nested pipeline is defined in an init-file.**
+
+::
+
+ +proj=pipeline
+ +step +proj=pipeline +step +proj=merc +step +proj=axisswap +order=2,1
+ +step +proj=unitconvert +xy_in=m +xy_out=us-ft
+
+Results in an error, while
+
+::
+
+ +proj=pipeline
+ +step +init=predefined_pipelines:projectandswap
+ +step +proj=unitconvert +xy_in=m +xy_out=us-ft
+
+does not.
+
+**3. Pipelines without a forward path can't be constructed.**
+
+::
+
+ +proj=pipeline +step +inv +proj=urm5
+
+Will result in an error since :ref:`urm5` does not have an inverse operation defined.
+
+**4. Parameters added before the first `+step` are global and will be applied to all steps.**
+
+In the following the GRS80 ellipsoid will be applied to all steps.
+
+::
+
+ +proj=pipeline +ellps=GRS80
+ +step +proj=cart
+ +step +proj=helmert +x=10 +y=3 +z=1
+ +step +proj=cart +inv
+ +step +proj=merc
+
+
diff --git a/docs/source/operations/projections/aeqd.rst b/docs/source/operations/projections/aeqd.rst
new file mode 100644
index 00000000..32165e49
--- /dev/null
+++ b/docs/source/operations/projections/aeqd.rst
@@ -0,0 +1,22 @@
+.. _aeqd:
+
+********************************************************************************
+Azimuthal Equidistant
+********************************************************************************
++---------------------+----------------------------------------------------------+
+| **Classification** | Azimuthal |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical and elliptical projection |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+guam` | Use Guam elliptical formulas. Defaults to false. |
++---------------------+----------------------------------------------------------+
+
+
+.. image:: ./images/aeqd.png
+ :scale: 50%
+ :alt: Azimuthal Equidistant
+
diff --git a/docs/source/operations/projections/airy.rst b/docs/source/operations/projections/airy.rst
new file mode 100644
index 00000000..d2730592
--- /dev/null
+++ b/docs/source/operations/projections/airy.rst
@@ -0,0 +1,26 @@
+.. _airy:
+
+********************************************************************************
+Airy
+********************************************************************************
++---------------------+----------------------------------------------------------+
+| **Classification** | |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward spherical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+lat_b` | |
++---------------------+----------------------------------------------------------+
+| `+no_cut` | Do not cut at hemisphere limit |
++---------------------+----------------------------------------------------------+
+
+
+.. image:: ./images/airy.png
+ :scale: 50%
+ :alt: Airy
+
diff --git a/docs/source/operations/projections/aitoff.rst b/docs/source/operations/projections/aitoff.rst
new file mode 100644
index 00000000..4d681468
--- /dev/null
+++ b/docs/source/operations/projections/aitoff.rst
@@ -0,0 +1,10 @@
+.. _aitoff:
+
+********************************************************************************
+Aitoff
+********************************************************************************
+
+.. image:: ./images/aitoff.png
+ :scale: 50%
+ :alt: Aitoff
+
diff --git a/docs/source/operations/projections/alsk.rst b/docs/source/operations/projections/alsk.rst
new file mode 100644
index 00000000..f7a7a0ef
--- /dev/null
+++ b/docs/source/operations/projections/alsk.rst
@@ -0,0 +1,10 @@
+.. _alsk:
+
+********************************************************************************
+Mod. Stererographics of Alaska
+********************************************************************************
+
+.. image:: ./images/alsk.png
+ :scale: 50%
+ :alt: Mod. Stererographics of Alaska
+
diff --git a/docs/source/operations/projections/apian.rst b/docs/source/operations/projections/apian.rst
new file mode 100644
index 00000000..add501ea
--- /dev/null
+++ b/docs/source/operations/projections/apian.rst
@@ -0,0 +1,10 @@
+.. _apian:
+
+********************************************************************************
+Apian Globular I
+********************************************************************************
+
+.. image:: ./images/apian.png
+ :scale: 50%
+ :alt: Apian Globular I
+
diff --git a/docs/source/operations/projections/august.rst b/docs/source/operations/projections/august.rst
new file mode 100644
index 00000000..e2ad3516
--- /dev/null
+++ b/docs/source/operations/projections/august.rst
@@ -0,0 +1,10 @@
+.. _august:
+
+********************************************************************************
+August Epicycloidal
+********************************************************************************
+
+.. image:: ./images/august.png
+ :scale: 50%
+ :alt: August Epicycloidal
+
diff --git a/docs/source/operations/projections/bacon.rst b/docs/source/operations/projections/bacon.rst
new file mode 100644
index 00000000..a87ea7d8
--- /dev/null
+++ b/docs/source/operations/projections/bacon.rst
@@ -0,0 +1,10 @@
+.. _bacon:
+
+********************************************************************************
+Bacon Globular
+********************************************************************************
+
+.. image:: ./images/bacon.png
+ :scale: 50%
+ :alt: Bacon Globular
+
diff --git a/docs/source/operations/projections/bipc.rst b/docs/source/operations/projections/bipc.rst
new file mode 100644
index 00000000..7045f04a
--- /dev/null
+++ b/docs/source/operations/projections/bipc.rst
@@ -0,0 +1,10 @@
+.. _bipc:
+
+********************************************************************************
+Bipolar conic of western hemisphere
+********************************************************************************
+
+.. image:: ./images/bipc.png
+ :scale: 50%
+ :alt: Bipolar conic of western hemisphere
+
diff --git a/docs/source/operations/projections/boggs.rst b/docs/source/operations/projections/boggs.rst
new file mode 100644
index 00000000..1dd7d19f
--- /dev/null
+++ b/docs/source/operations/projections/boggs.rst
@@ -0,0 +1,10 @@
+.. _boggs:
+
+********************************************************************************
+Boggs Eumorphic
+********************************************************************************
+
+.. image:: ./images/boggs.png
+ :scale: 50%
+ :alt: Boggs Eumorphic
+
diff --git a/docs/source/operations/projections/bonne.rst b/docs/source/operations/projections/bonne.rst
new file mode 100644
index 00000000..ef87d7c9
--- /dev/null
+++ b/docs/source/operations/projections/bonne.rst
@@ -0,0 +1,10 @@
+.. _bonne:
+
+********************************************************************************
+Bonne (Werner lat_1=90)
+********************************************************************************
+
+.. image:: ./images/bonne.png
+ :scale: 50%
+ :alt: Bonne (Werner lat_1=90)
+
diff --git a/docs/source/operations/projections/calcofi.rst b/docs/source/operations/projections/calcofi.rst
new file mode 100644
index 00000000..4a29c812
--- /dev/null
+++ b/docs/source/operations/projections/calcofi.rst
@@ -0,0 +1,95 @@
+.. _calcofi:
+
+********************************************************************************
+Cal Coop Ocean Fish Invest Lines/Stations
+********************************************************************************
+
+The CalCOFI pseudo-projection is the line and station coordinate system of the
+California Cooperative Oceanic Fisheries Investigations program, known as CalCOFI, for sampling offshore of the west coast of the U.S. and Mexico.
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Conformal cylindrical |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical and elliptical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Only valid for the west coast of USA and Mexico |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Frank Warmerdam |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `No special options for this projection` |
++---------------------+----------------------------------------------------------+
+
+
+.. image:: ../../../images/calcofi.png
+ :scale: 50%
+ :align: center
+ :alt: Cal Coop Ocean Fish Invest Lines/Stations
+
+The coordinate system is based on the Mercator projection with units rotated -30
+degrees from the meridian so that they are oriented with the coastline of the Southern California Bight and Baja California.
+Lines increase from Northwest to Southeast.
+A unit of line is 12 nautical miles. Stations increase from inshore to offshore.
+A unit of station is equal to 4 nautical miles.
+The rotation point is located at line 80, station 60, or 34.15 degrees N, -121.15 degrees W, and is depicted by the red dot in the figure.
+By convention, the ellipsoid of Clarke 1866 is used to calculate CalCOFI coordinates.
+
+The CalCOFI program is a joint research effort by the U.S. National Oceanic and
+Atmospheric Administration, University of California Scripps Oceanographic Institute, and California Department of Fish and Game.
+Surveys have been conducted for the CalCOFI program since 1951, creating one of the oldest and most scientifically valuable joint oceanographic and fisheries data sets in the world.
+The CalCOFI line and station coordinate system is now used by several other programs including the Investigaciones Mexicanas de la Corriente de California (IMECOCAL) program offshore of Baja California.
+The figure depicts some commonly sampled locations from line 40 to line 156.7 and offshore to station 120. Blue numbers indicate line (bottom) or station (left) numbers along the grid. Note that lines spaced at approximate 3-1/3 intervals are commonly sampled, e.g., lines 43.3 and 46.7.
+
+Usage
+###############################################################################
+
+A typical forward CalCOFI projection would be from lon/lat coordinates on the
+Clark 1866 ellipsoid.
+For example::
+
+ proj +proj=calcofi +ellps=clrk66 -E <<EOF
+ -121.15 34.15
+ EOF
+
+Output of the above command::
+
+ -121.15 34.15 80.00 60.00
+
+The reverse projection from line/station coordinates to lon/lat would be entered
+as::
+
+ proj +proj=calcofi +ellps=clrk66 -I -E -f "%.2f" <<EOF
+ 80.0 60.0
+ EOF
+
+Output of the above command::
+
+ 80.0 60.0 -121.15 34.15
+
+Mathematical definition
+################################################################################
+
+The algorithm used to make conversions is described in [EberHewitt1979]_ with
+a few corrections reported in [WeberMoore2013]_.
+
+
+Further reading
+################################################################################
+
+#. `General information about the CalCOFI program <http://www.calcofi.org>`_
+#. `The Investigaciones Mexicanas de la Corriente de California <http://imecocal.cicese.mx>`_
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/operations/projections/cass.rst b/docs/source/operations/projections/cass.rst
new file mode 100644
index 00000000..4111a2ee
--- /dev/null
+++ b/docs/source/operations/projections/cass.rst
@@ -0,0 +1,145 @@
+.. _cass:
+
+********************************************************************************
+Cassini (Cassini-Soldner)
+********************************************************************************
+
+Although the Cassini projection has been largely replaced by the Transverse Mercator, it is still in limited use outside the United States and was one of the major topographic mapping projections until the early 20th century.
+
++---------------------+-------------------------------------------------------------------------+
+| **Classification** | Transverse and oblique cylindrical |
++---------------------+-------------------------------------------------------------------------+
+| **Available forms** | Forward and inverse, Spherical and Elliptical |
++---------------------+-------------------------------------------------------------------------+
+| **Defined area** | Global, but best used near the central meridian with long, narrow areas |
++---------------------+-------------------------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+-------------------------------------------------------------------------+
+| **Options** |
++---------------------+-------------------------------------------------------------------------+
+| `+lat_0` | Latitude of origin (Default to 0) |
++---------------------+-------------------------------------------------------------------------+
+
+.. image:: ./images/cass.png
+ :scale: 50%
+ :alt: Cassini
+
+Usage
+#####
+
+There has been little usage of the spherical version of the Cassini, but the ellipsoidal Cassini-Soldner version was adopted by the Ordnance Survey for the official survey of Great Britain during the second half of the 19th century [Steers1970]_.
+Many of these maps were prepared at a scale of 1:2,500.
+The Cassini-Soldner was also used for the detailed mapping of many German states during the same period.
+
+
+Example using EPSG 30200 (Trinidad 1903, units in clarke's links)::
+
+ $ echo 0.17453293 -1.08210414 | proj +proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defs
+ 66644.94 82536.22
+
+Example using EPSG 3068 (Soldner Berlin)::
+
+ $ echo 13.5 52.4 | proj +proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 +x_0=40000 +y_0=10000 +ellps=bessel +datum=potsdam +units=m +no_defs
+ 31343.05 7932.76
+
+
+Mathematical definition
+#######################
+
+The formulas describing the Cassini projection are taken from Snyder's [Snyder1987]_.
+
+:math:`\phi_0` is the latitude of origin that match the center of the map (default to 0). It can be set with ``+lat_0``.
+
+
+Spherical form
+==============
+
+Forward projection
+------------------
+
+.. math::
+
+ x = \arcsin(\cos(\phi) \sin(\lambda))
+
+.. math::
+
+ y = \arctan2(\tan(\phi), \cos(\lambda)) - \phi_0
+
+Inverse projection
+------------------
+
+.. math::
+
+ \phi = \arcsin(\sin(y+\phi_0) \cos(x))
+
+.. math::
+
+ \lambda = \arctan2(\tan(x), \cos(y+\phi_0))
+
+Elliptical form
+===============
+
+Forward projection
+------------------
+
+.. math::
+
+ N = (1 - e^2 \sin^2(\phi))^{-1/2}
+
+.. math::
+
+ T = \tan^2(\phi)
+
+.. math::
+
+ A = \lambda \cos(\phi)
+
+.. math::
+
+ C = \frac{e^2}{1-e^2} cos^2(\phi)
+
+.. math::
+
+ x = N ( A - T \frac{A^3}{6} - (8-T+8C)T\frac{A^5}{120})
+
+.. math::
+
+ y = M(\phi) - M(\phi_0) + N \tan(\phi)(\frac{A^2}{2} + (5-T+6C)\frac{A^4}{24})
+
+and M() is the meridional distance function.
+
+Inverse projection
+------------------
+
+.. math::
+
+ \phi' = M^{-1}(M(\phi_0)+y)
+
+if :math:`\phi' = \frac{\pi}{2}` then :math:`\phi=\phi'` and :math:`\lambda=0`
+
+otherwise evaluate T and N above using :math:`\phi'` and
+
+.. math::
+
+ R = (1 - e^2)(1 - e^2 sin^2 \phi')^{-3/2}
+
+.. math::
+
+ D = x/N
+
+.. math::
+
+ \phi = \phi' - \tan \phi' \frac{N}{R}(\frac{D^2}{2}-(1+3T)\frac{D^4}{24})
+
+.. math::
+
+ \lambda = \frac{(D - T\frac{D^3}{3} + (1+3T)T\frac{D^5}{15})}{\cos \phi'}
+
+.. _further-reading:
+
+Further reading
+###############
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Equirectangular_projection>`_
+#. [Snyder1987]_
+#. `EPSG, POSC literature pertaining to Coordinate Conversions and Transformations including Formulas <http://www.ihsenergy.com/epsg/guid7.pdf>`_
diff --git a/docs/source/operations/projections/cc.rst b/docs/source/operations/projections/cc.rst
new file mode 100644
index 00000000..5b30e6c6
--- /dev/null
+++ b/docs/source/operations/projections/cc.rst
@@ -0,0 +1,10 @@
+.. _cc:
+
+********************************************************************************
+Central Cylindrical
+********************************************************************************
+
+.. image:: ./images/cc.png
+ :scale: 50%
+ :alt: Central Cylindrical
+
diff --git a/docs/source/operations/projections/ccon.rst b/docs/source/operations/projections/ccon.rst
new file mode 100644
index 00000000..8a858e38
--- /dev/null
+++ b/docs/source/operations/projections/ccon.rst
@@ -0,0 +1,127 @@
+.. _ccon:
+
+********************************************************************************
+Central Conic
+********************************************************************************
+
+This is central (centrographic) projection on cone tangent at ``lat_0`` latitude,
+identical with ``conic()`` projection from ``mapproj`` R package.
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Conic |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global, but best used near the standard parallel |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Lukasz Komsta |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+lat_1` | Latitude of standard parallel. |
++---------------------+----------------------------------------------------------+
+
+.. image:: ./images/ccon.png
+ :scale: 50%
+ :alt: Central Conic
+
+
+Usage
+########
+
+This simple projection is rarely used, as it is not equidistant, equal-area, nor
+conformal.
+
+An example of usage (and the main reason to implement this projection in proj4)
+is the ATPOL geobotanical grid of Poland, developed in Institute of Botany,
+Jagiellonian University, Krakow, Poland in 1970s [Zajac1978]_. The grid was
+originally handwritten on paper maps and further copied by hand. The projection
+(together with strange Earth radius) was chosen by its creators as the compromise
+fit to existing maps during first software development in DOS era. Many years later
+it is still de facto standard grid in Polish geobotanical research.
+
+The ATPOL coordinates can be achieved with with the following parameters:
+
+::
+
+ +proj=ccon +lat_1=52 +lat_0=52 +lon_0=19 +axis=esu +a=6390000 +x_0=330000 +y_0=-350000
+
+For more information see [Komsta2016]_ and [Verey2017]_.
+
+
+Forward projection
+==================
+
+.. math::
+
+ r = \cot \phi_0 - \tan (\phi - \phi_0)
+
+.. math::
+
+ x = r \sin (\lambda\sin\phi_0)
+
+.. math::
+
+ y = \cot \phi_0 - r \cos (\lambda\sin\phi_0)
+
+
+Inverse projection
+==================
+
+.. math::
+
+ y = \cot \phi_0 - y
+
+.. math::
+
+ \phi = \phi_0 - \tan^{-1} ( \sqrt{x^2+y^2} - \cot \phi_0 )
+
+.. math::
+
+ \lambda = \frac{\tan^{-1} \sqrt{x^2+y^2}}{\sin \phi_0}
+
+Reference values
+==================
+
+For ATPOL to WGS84 test, run the following script:
+
+::
+
+ #!/bin/bash
+ cat << EOF | src/cs2cs -v -f "%E" +proj=ccon +lat_1=52 +lat_0=52 +lon_0=19 +axis=esu +a=6390000 +x_0=330000 +y_0=-350000 +to +proj=longlat +datum=WGS84 +no_defs
+ 0 0
+ 0 700000
+ 700000 0
+ 700000 700000
+ 330000 350000
+ EOF
+
+It should result with
+
+::
+
+ 1.384023E+01 5.503040E+01 0.000000E+00
+ 1.451445E+01 4.877385E+01 0.000000E+00
+ 2.478271E+01 5.500352E+01 0.000000E+00
+ 2.402761E+01 4.875048E+01 0.000000E+00
+ 1.900000E+01 5.200000E+01 0.000000E+00
+
+Analogous script can be run for reverse test:
+
+::
+
+ cat << EOF | src/cs2cs -v -f "%E" +proj=longlat +datum=WGS84 +no_defs +to +proj=ccon +lat_1=52 +lat_0=52 +lon_0=19 +axis=esu +a=6390000 +x_0=330000 +y_0=-350000
+ 24 55
+ 15 49
+ 24 49
+ 19 52
+ EOF
+
+and it should give the following results:
+
+::
+
+ 6.500315E+05 4.106162E+03 0.000000E+00
+ 3.707419E+04 6.768262E+05 0.000000E+00
+ 6.960534E+05 6.722946E+05 0.000000E+00
+ 3.300000E+05 3.500000E+05 0.000000E+00
diff --git a/docs/source/operations/projections/cea.rst b/docs/source/operations/projections/cea.rst
new file mode 100644
index 00000000..20ebc285
--- /dev/null
+++ b/docs/source/operations/projections/cea.rst
@@ -0,0 +1,10 @@
+.. _cea:
+
+********************************************************************************
+Equal Area Cylindrical
+********************************************************************************
+
+.. image:: ./images/cea.png
+ :scale: 50%
+ :alt: Equal Area Cylindrical
+
diff --git a/docs/source/operations/projections/chamb.rst b/docs/source/operations/projections/chamb.rst
new file mode 100644
index 00000000..2ec9bffe
--- /dev/null
+++ b/docs/source/operations/projections/chamb.rst
@@ -0,0 +1,10 @@
+.. _chamb:
+
+********************************************************************************
+Chamberlin Trimetric
+********************************************************************************
+
+.. image:: ./images/chamb.png
+ :scale: 50%
+ :alt: Chamberlin Trimetric
+
diff --git a/docs/source/operations/projections/collg.rst b/docs/source/operations/projections/collg.rst
new file mode 100644
index 00000000..aa16182a
--- /dev/null
+++ b/docs/source/operations/projections/collg.rst
@@ -0,0 +1,10 @@
+.. _collg:
+
+********************************************************************************
+Collignon
+********************************************************************************
+
+.. image:: ./images/collg.png
+ :scale: 50%
+ :alt: Collignon
+
diff --git a/docs/source/operations/projections/crast.rst b/docs/source/operations/projections/crast.rst
new file mode 100644
index 00000000..9d17f274
--- /dev/null
+++ b/docs/source/operations/projections/crast.rst
@@ -0,0 +1,10 @@
+.. _crast:
+
+********************************************************************************
+Craster Parabolic (Putnins P4)
+********************************************************************************
+
+.. image:: ./images/crast.png
+ :scale: 50%
+ :alt: Craster Parabolic (Putnins P4)
+
diff --git a/docs/source/operations/projections/denoy.rst b/docs/source/operations/projections/denoy.rst
new file mode 100644
index 00000000..a885ab0e
--- /dev/null
+++ b/docs/source/operations/projections/denoy.rst
@@ -0,0 +1,10 @@
+.. _denoy:
+
+********************************************************************************
+Denoyer Semi-Elliptical
+********************************************************************************
+
+.. image:: ./images/denoy.png
+ :scale: 50%
+ :alt: Denoyer Semi-Elliptical
+
diff --git a/docs/source/operations/projections/eck1.rst b/docs/source/operations/projections/eck1.rst
new file mode 100644
index 00000000..841533ec
--- /dev/null
+++ b/docs/source/operations/projections/eck1.rst
@@ -0,0 +1,18 @@
+.. _eck1:
+
+********************************************************************************
+Eckert I
+********************************************************************************
+
+.. image:: ./images/eck1.png
+ :scale: 50%
+ :alt: Eckert I
+
+
+.. math::
+
+ x &= 2 \sqrt{2/3\pi} \lambda (1- |\phi|/\pi)
+
+ y &= 2 \sqrt{2/3\pi}\phi
+
+
diff --git a/docs/source/operations/projections/eck2.rst b/docs/source/operations/projections/eck2.rst
new file mode 100644
index 00000000..b1bd3179
--- /dev/null
+++ b/docs/source/operations/projections/eck2.rst
@@ -0,0 +1,10 @@
+.. _eck2:
+
+********************************************************************************
+Eckert II
+********************************************************************************
+
+.. image:: ./images/eck2.png
+ :scale: 50%
+ :alt: Eckert II
+
diff --git a/docs/source/operations/projections/eck3.rst b/docs/source/operations/projections/eck3.rst
new file mode 100644
index 00000000..ecacc32d
--- /dev/null
+++ b/docs/source/operations/projections/eck3.rst
@@ -0,0 +1,10 @@
+.. _eck3:
+
+********************************************************************************
+Eckert III
+********************************************************************************
+
+.. image:: ./images/eck3.png
+ :scale: 50%
+ :alt: Eckert III
+
diff --git a/docs/source/operations/projections/eck4.rst b/docs/source/operations/projections/eck4.rst
new file mode 100644
index 00000000..3fc6a9fd
--- /dev/null
+++ b/docs/source/operations/projections/eck4.rst
@@ -0,0 +1,19 @@
+.. _eck4:
+
+********************************************************************************
+Eckert IV
+********************************************************************************
+
+.. image:: ./images/eck4.png
+ :scale: 50%
+ :alt: Eckert IV
+
+
+.. math::
+
+ x = \lambda(1+cos\phi) / \sqrt{ 2 + \pi }
+
+.. math::
+ y = 2 \phi / \sqrt { 2 + \pi }
+
+
diff --git a/docs/source/operations/projections/eck5.rst b/docs/source/operations/projections/eck5.rst
new file mode 100644
index 00000000..1442d99d
--- /dev/null
+++ b/docs/source/operations/projections/eck5.rst
@@ -0,0 +1,10 @@
+.. _eck5:
+
+********************************************************************************
+Eckert V
+********************************************************************************
+
+.. image:: ./images/eck5.png
+ :scale: 50%
+ :alt: Eckert V
+
diff --git a/docs/source/operations/projections/eck6.rst b/docs/source/operations/projections/eck6.rst
new file mode 100644
index 00000000..caeaefa6
--- /dev/null
+++ b/docs/source/operations/projections/eck6.rst
@@ -0,0 +1,10 @@
+.. _eck6:
+
+********************************************************************************
+Eckert VI
+********************************************************************************
+
+.. image:: ./images/eck6.png
+ :scale: 50%
+ :alt: Eckert VI
+
diff --git a/docs/source/operations/projections/eqc.rst b/docs/source/operations/projections/eqc.rst
new file mode 100644
index 00000000..be431977
--- /dev/null
+++ b/docs/source/operations/projections/eqc.rst
@@ -0,0 +1,110 @@
+.. _eqc:
+
+********************************************************************************
+Equidistant Cylindrical (Plate Carrée)
+********************************************************************************
+
+The simplest of all projections. Standard parallels (0° when omitted) may be specified that determine latitude of true scale (k=h=1).
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Conformal cylindrical |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global, but best used near the equator |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+lat_ts` | Latitude of true scale. Defaults to 0.0 |
++---------------------+----------------------------------------------------------+
+| `+lat_0` | Center of the map : latitude of origin |
++---------------------+----------------------------------------------------------+
+
+.. image:: ./images/eqc.png
+ :scale: 50%
+ :alt: Equidistant Cylindrical (Plate Carrée)
+
+Usage
+########
+
+Because of the distortions introduced by this projection, it has little use in navigation or cadastral mapping and finds its main use in thematic mapping.
+In particular, the plate carrée has become a standard for global raster datasets, such as Celestia and NASA World Wind, because of the particularly simple relationship between the position of an image pixel on the map and its corresponding geographic location on Earth.
+
+The following table gives special cases of the cylindrical equidistant projection.
+
++---------------------------------------------------------+--------------------------+
+| Projection Name | (lat ts=) :math:`\phi_0` |
++---------------------------------------------------------+--------------------------+
+| Plain/Plane Chart | 0° |
++---------------------------------------------------------+--------------------------+
+| Simple Cylindrical | 0° |
++---------------------------------------------------------+--------------------------+
+| Plate Carrée | 0° |
++---------------------------------------------------------+--------------------------+
+| Ronald Miller—minimum overall scale distortion | 37°30′ |
++---------------------------------------------------------+--------------------------+
+| E.Grafarend and A.Niermann | 42° |
++---------------------------------------------------------+--------------------------+
+| Ronald Miller—minimum continental scale distortion | 43°30′ |
++---------------------------------------------------------+--------------------------+
+| Gall Isographic | 45° |
++---------------------------------------------------------+--------------------------+
+| Ronald Miller Equirectangular | 50°30′ |
++---------------------------------------------------------+--------------------------+
+| E.Grafarend and A.Niermann minimum linear distortion | 61°7′ |
++---------------------------------------------------------+--------------------------+
+
+
+Example using EPSG 32662 (WGS84 Plate Carrée)::
+
+ $ echo 2 47 | proj +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
+ 222638.98 5232016.07
+
+Example using Plate Carrée projection with true scale at latitude 30° and central meridian 90°W::
+
+ $ echo -88 30 | proj +proj=eqc +lat_ts=30 +lat_0=90w
+ -8483684.61 13358338.90
+
+
+Mathematical definition
+#######################
+
+The formulas describing the Equidistant Cylindrical projection are all taken from Snyder's [Snyder1987]_.
+
+:math:`\phi_{ts}` is the latitude of true scale, that mean the standard parallels where the scale of the projection is true. It can be set with ``+lat_ts``.
+
+:math:`\phi_0` is the latitude of origin that match the center of the map. It can be set with ``+lat_0``.
+
+
+Forward projection
+==================
+
+.. math::
+
+ x = \lambda \cos \phi_{ts}
+
+.. math::
+
+ y = \phi - \phi_0
+
+Inverse projection
+==================
+
+.. math::
+
+ \lambda = x / cos \phi_{ts}
+
+.. math::
+
+ \phi = y + \phi_0
+
+
+Further reading
+###############
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Equirectangular_projection>`_
+#. `Wolfram Mathworld <http://mathworld.wolfram.com/CylindricalEquidistantProjection.html>`_
+
+
diff --git a/docs/source/operations/projections/eqdc.rst b/docs/source/operations/projections/eqdc.rst
new file mode 100644
index 00000000..3ee5999d
--- /dev/null
+++ b/docs/source/operations/projections/eqdc.rst
@@ -0,0 +1,10 @@
+.. _eqdc:
+
+********************************************************************************
+Equidistant Conic
+********************************************************************************
+
+.. image:: ./images/eqdc.png
+ :scale: 50%
+ :alt: Equidistant Conic
+
diff --git a/docs/source/operations/projections/etmerc.rst b/docs/source/operations/projections/etmerc.rst
new file mode 100644
index 00000000..b7f89032
--- /dev/null
+++ b/docs/source/operations/projections/etmerc.rst
@@ -0,0 +1,10 @@
+.. _etmerc:
+
+********************************************************************************
+Extended Transverse Mercator
+********************************************************************************
+
+.. image:: ./images/etmerc.png
+ :scale: 50%
+ :alt: Extended Transverse Mercator
+
diff --git a/docs/source/operations/projections/euler.rst b/docs/source/operations/projections/euler.rst
new file mode 100644
index 00000000..e495063f
--- /dev/null
+++ b/docs/source/operations/projections/euler.rst
@@ -0,0 +1,10 @@
+.. _euler:
+
+********************************************************************************
+Euler
+********************************************************************************
+
+.. image:: ./images/euler.png
+ :scale: 50%
+ :alt: Euler
+
diff --git a/docs/source/operations/projections/fahey.rst b/docs/source/operations/projections/fahey.rst
new file mode 100644
index 00000000..2e09337f
--- /dev/null
+++ b/docs/source/operations/projections/fahey.rst
@@ -0,0 +1,10 @@
+.. _fahey:
+
+********************************************************************************
+Fahey
+********************************************************************************
+
+.. image:: ./images/fahey.png
+ :scale: 50%
+ :alt: Fahey
+
diff --git a/docs/source/operations/projections/fouc.rst b/docs/source/operations/projections/fouc.rst
new file mode 100644
index 00000000..7467dcb1
--- /dev/null
+++ b/docs/source/operations/projections/fouc.rst
@@ -0,0 +1,10 @@
+.. _fouc:
+
+********************************************************************************
+Foucaut
+********************************************************************************
+
+.. image:: ./images/fouc.png
+ :scale: 50%
+ :alt: Foucaut
+
diff --git a/docs/source/operations/projections/fouc_s.rst b/docs/source/operations/projections/fouc_s.rst
new file mode 100644
index 00000000..ac353adb
--- /dev/null
+++ b/docs/source/operations/projections/fouc_s.rst
@@ -0,0 +1,25 @@
+.. _fouc_s:
+
+********************************************************************************
+Foucaut Sinusoidal
+********************************************************************************
+
+.. image:: ./images/fouc_s.png
+ :scale: 50%
+ :alt: Foucaut Sinusoidal
+
+
+The `y`-axis is based upon a weighted mean of the cylindrical equal-area and
+the sinusoidal projections. Parameter :math:`n=n` is the weighting factor where
+:math:`0 <= n <= 1`.
+
+.. math::
+
+ x &= \lambda \cos \phi / (n + (1 - n) \ cos \phi)
+
+ y &= n \phi + (1 - n) \sin \phi
+
+For the inverse, the Newton-Raphson method can be used to determine
+:math:`\phi` from the equation for :math:`y` above. As :math:`n \rightarrow 0` and
+:math:`\phi \rightarrow \pi/2`, convergence is slow but for :math:`n = 0`, :math:`\phi =
+\sin^1y`
diff --git a/docs/source/operations/projections/gall.rst b/docs/source/operations/projections/gall.rst
new file mode 100644
index 00000000..b9120d9f
--- /dev/null
+++ b/docs/source/operations/projections/gall.rst
@@ -0,0 +1,84 @@
+.. _gall:
+
+********************************************************************************
+Gall (Gall Stereographic)
+********************************************************************************
+
+The Gall stereographic projection, presented by James Gall in 1855, is a cylindrical projection.
+It is neither equal-area nor conformal but instead tries to balance the distortion inherent in any projection.
+
++---------------------+--------------------------------------------------------------------------------+
+| **Classification** | Transverse and oblique cylindrical |
++---------------------+--------------------------------------------------------------------------------+
+| **Available forms** | Forward and inverse, Spherical |
++---------------------+--------------------------------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+--------------------------------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+--------------------------------------------------------------------------------+
+| **Options** | No special options for this projection |
++---------------------+--------------------------------------------------------------------------------+
+
+
+.. image:: ./images/gall.png
+ :scale: 50%
+ :alt: Gall (Gall Stereographic)
+
+Usage
+#####
+
+The need for a world map which avoids some of the scale exaggeration of the Mercator projection has led to some commonly used cylindrical modifications, as well as to other modifications which are not cylindrical.
+The earliest common cylindrical example was developed by James Gall of Edinburgh about 1855 (Gall, 1885, p. 119-123).
+His meridians are equally spaced, but the parallels are spaced at increasing intervals away from the Equator.
+The parallels of latitude are actually projected onto a cylinder wrapped about the sphere, but cutting it at lats. 45° N. and S., the point of perspective being a point on the Equator opposite the meridian being projected.
+It is used in several British atlases, but seldom in the United States.
+The Gall projection is neither conformal nor equal-area, but has a blend of various features.
+Unlike the Mercator, the Gall shows the poles as lines running across the top and bottom of the map.
+
+
+Example using Gall Stereographical ::
+
+ $ echo 9 51 | proj +proj=gall +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
+ 708432.90 5193386.36
+
+Example using Gall Stereographical (Central meridian 90°W) ::
+
+ $ echo 9 51 | proj +proj=gall +lon_0=90w +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
+ 7792761.91 5193386.36
+
+Mathematical definition
+#######################
+
+The formulas describing the Gall Stereographical are all taken from Snyder's [Snyder1993]_.
+
+Spherical form
+**************
+
+Forward projection
+==================
+
+.. math::
+
+ x = \frac{\lambda}{\sqrt{2}}
+
+.. math::
+
+ y = (1+\frac{\sqrt{2}}{2}) \tan(\phi/2)
+
+Inverse projection
+==================
+
+.. math::
+
+ \phi = 2 \arctan( \frac{y}{1+\frac{\sqrt{2}}{2}} )
+
+.. math::
+
+ \lambda = \sqrt{2} x
+
+
+Further reading
+###############
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Gall_stereographic_projection>`_
+#. `Cartographic Projection Procedures for the UNIX Environment-A User's Manual <http://sites.lsa.umich.edu/zhukov/wp-content/uploads/sites/140/2014/08/projection-procedures.pdf>`_
diff --git a/docs/source/operations/projections/geos.rst b/docs/source/operations/projections/geos.rst
new file mode 100644
index 00000000..cd576283
--- /dev/null
+++ b/docs/source/operations/projections/geos.rst
@@ -0,0 +1,72 @@
+.. _geos:
+
+********************************************************************************
+Geostationary Satellite View
+********************************************************************************
++---------------------+----------------------------------------------------------+
+| **Classification** | Azimuthal |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical and elliptical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden and Martin Raspaud |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+h` | Satellite height above earth. Required. |
++---------------------+----------------------------------------------------------+
+| `+sweep` | Sweep angle axis of the viewing instrument. |
+| | Valid options are ``x`` and ``y``. Defaults to ``y``. |
++---------------------+----------------------------------------------------------+
+| `+lon_0` | Subsatellite longitude point. |
++---------------------+----------------------------------------------------------+
+
+
+.. image:: ./images/geos.png
+ :scale: 50%
+ :alt: Geostationary Satellite View
+
+The geos projection pictures how a geostationary satellite scans the earth at regular
+scanning angle intervals.
+
+
+Usage
+###############################################################################
+
+In order to project using the geos projection you can do the following::
+
+ proj +proj=geos +h=35785831.0
+
+The required argument ``h`` is the viewing point (satellite position) height above
+the earth.
+
+The projection coordinate relate to the scanning angle by the following simple
+relation::
+
+ scanning_angle (radians) = projection_coordinate / h
+
+
+Note on sweep angle
+-------------------------------------------------------------------------------
+
+The viewing instrument on-board geostationary satellites described by this
+projection have a two-axis gimbal viewing geometry. This means that the different
+scanning positions are obtained by rotating the gimbal along a N/S axis (or ``y``)
+and a E/W axis (or ``x``).
+
+.. image:: ../../..//images/geos_sweep.png
+ :scale: 50%
+ :alt: Gimbal geometry
+
+In the image above, the outer-gimbal axis, or sweep-angle axis, is the N/S axis (``y``)
+while the inner-gimbal axis, or fixed-angle axis, is the E/W axis (``x``).
+
+This example represents the scanning geometry of the Meteosat series satellite.
+However, the GOES satellite series use the opposite scanning geometry, with the
+E/W axis (``x``) as the sweep-angle axis, and the N/S (``y``) as the fixed-angle axis.
+
+The sweep argument is used to tell PROJ which on which axis the outer-gimbal
+is rotating. The possible values are x or y, y being the default. Thus, the
+scanning geometry of the Meteosat series satellite should take sweep as x, and
+GOES should take sweep as y.
diff --git a/docs/source/operations/projections/gins8.rst b/docs/source/operations/projections/gins8.rst
new file mode 100644
index 00000000..f6adb092
--- /dev/null
+++ b/docs/source/operations/projections/gins8.rst
@@ -0,0 +1,10 @@
+.. _gins8:
+
+********************************************************************************
+Ginsburg VIII (TsNIIGAiK)
+********************************************************************************
+
+.. image:: ./images/gins8.png
+ :scale: 50%
+ :alt: Ginsburg VIII (TsNIIGAiK)
+
diff --git a/docs/source/operations/projections/gn_sinu.rst b/docs/source/operations/projections/gn_sinu.rst
new file mode 100644
index 00000000..c1017c27
--- /dev/null
+++ b/docs/source/operations/projections/gn_sinu.rst
@@ -0,0 +1,10 @@
+.. _gn_sinu:
+
+********************************************************************************
+General Sinusoidal Series
+********************************************************************************
+
+.. image:: ./images/gn_sinu.png
+ :scale: 50%
+ :alt: General Sinusoidal Series
+
diff --git a/docs/source/operations/projections/gnom.rst b/docs/source/operations/projections/gnom.rst
new file mode 100644
index 00000000..08d0db5f
--- /dev/null
+++ b/docs/source/operations/projections/gnom.rst
@@ -0,0 +1,10 @@
+.. _gnom:
+
+********************************************************************************
+Gnomonic
+********************************************************************************
+
+.. image:: ./images/gnom.png
+ :scale: 50%
+ :alt: Gnomonic
+
diff --git a/docs/source/operations/projections/goode.rst b/docs/source/operations/projections/goode.rst
new file mode 100644
index 00000000..c4590bf2
--- /dev/null
+++ b/docs/source/operations/projections/goode.rst
@@ -0,0 +1,10 @@
+.. _goode:
+
+********************************************************************************
+Goode Homolosine
+********************************************************************************
+
+.. image:: ./images/goode.png
+ :scale: 50%
+ :alt: Goode Homolosine
+
diff --git a/docs/source/operations/projections/gs48.rst b/docs/source/operations/projections/gs48.rst
new file mode 100644
index 00000000..bdaa367c
--- /dev/null
+++ b/docs/source/operations/projections/gs48.rst
@@ -0,0 +1,10 @@
+.. _gs48:
+
+********************************************************************************
+Mod. Stererographics of 48 U.S.
+********************************************************************************
+
+.. image:: ./images/gs48.png
+ :scale: 50%
+ :alt: Mod. Stererographics of 48 U.S.
+
diff --git a/docs/source/operations/projections/gs50.rst b/docs/source/operations/projections/gs50.rst
new file mode 100644
index 00000000..0d4b7e81
--- /dev/null
+++ b/docs/source/operations/projections/gs50.rst
@@ -0,0 +1,10 @@
+.. _gs50:
+
+********************************************************************************
+Mod. Stererographics of 50 U.S.
+********************************************************************************
+
+.. image:: ./images/gs50.png
+ :scale: 50%
+ :alt: Mod. Stererographics of 50 U.S.
+
diff --git a/docs/source/operations/projections/gstmerc.rst b/docs/source/operations/projections/gstmerc.rst
new file mode 100644
index 00000000..fc587ab0
--- /dev/null
+++ b/docs/source/operations/projections/gstmerc.rst
@@ -0,0 +1,10 @@
+.. _gstmerc:
+
+********************************************************************************
+Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion)
+********************************************************************************
+
+.. image:: ./images/gstmerc.png
+ :scale: 50%
+ :alt: Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion)
+
diff --git a/docs/source/operations/projections/hammer.rst b/docs/source/operations/projections/hammer.rst
new file mode 100644
index 00000000..e795b91b
--- /dev/null
+++ b/docs/source/operations/projections/hammer.rst
@@ -0,0 +1,10 @@
+.. _hammer:
+
+********************************************************************************
+Hammer & Eckert-Greifendorff
+********************************************************************************
+
+.. image:: ./images/hammer.png
+ :scale: 50%
+ :alt: Hammer & Eckert-Greifendorff
+
diff --git a/docs/source/operations/projections/hatano.rst b/docs/source/operations/projections/hatano.rst
new file mode 100644
index 00000000..5d0c63b7
--- /dev/null
+++ b/docs/source/operations/projections/hatano.rst
@@ -0,0 +1,70 @@
+.. _hatano:
+
+********************************************************************************
+Hatano Asymmetrical Equal Area
+********************************************************************************
+
+
+
+
++---------------------+----------------------------------------------------------+
+| **Classification** | :term:`Pseudocylindrical Projection` |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global, but best between standard parallels |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+lat_1` | Standard Parallel 1 |
++---------------------+----------------------------------------------------------+
+| `+lat_2` | Standard Parallel 2 |
++---------------------+----------------------------------------------------------+
+| `+sym` | Symmetric form used instead of asymmetric |
++---------------------+----------------------------------------------------------+
+
+
+.. image:: ./images/hatano.png
+ :scale: 50%
+ :alt: Hatano Asymmetrical Equal Area
+
+
+
+Mathematical Definition
+--------------------------------------------------------------------------------
+
+Forward
+................................................................................
+
+.. math::
+
+ x &= 0.85\lambda \cos \theta
+
+ y &= C_y \sin \theta
+
+ P(\theta) &= 2\theta + \sin 2\theta - C_p \sin \phi
+
+ P'(\theta) &= 2(1 + \cos 2\theta)
+
+ \theta_0 &= 2\phi
+
+
+==================================== ================== ===================
+Condition :math:`C_p` :math:`C_p`
+==================================== ================== ===================
+if ``+sym`` or :math:`\phi > 0` 1.75859 2.67595
+if not ``+sym`` and :math:`\phi < 0` 1.93052 2.43763
+==================================== ================== ===================
+
+For :math:`\phi = 0`, :math:`y \leftarrow 0`, and :math:`x \leftarrow 0.85\lambda`.
+
+Further reading
+--------------------------------------------------------------------------------
+
+#. `Compare Map Projections <http://map-projections.net/single-view/hatano>`__
+#. `Mathworks <http://www.mathworks.com/help/map/hatano.html>`__
+
+
+
diff --git a/docs/source/operations/projections/healpix.rst b/docs/source/operations/projections/healpix.rst
new file mode 100644
index 00000000..d05b2123
--- /dev/null
+++ b/docs/source/operations/projections/healpix.rst
@@ -0,0 +1,55 @@
+.. _healpix:
+
+********************************************************************************
+HEALPix
+********************************************************************************
++---------------------+----------------------------------------------------------+
+| **Classification** | Mixed |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical and elliptical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Alex Raichev and Michael Speth |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `No special options for this projection` |
++---------------------+----------------------------------------------------------+
+
+.. image:: ../../../images/healpix.png
+ :scale: 75%
+ :alt: HEALPix
+
+The HEALPix projection is area preserving and can be used with a spherical and
+ellipsoidal model. It was initially developed for mapping cosmic background
+microwave radiation. The image below is the graphical representation of the
+mapping and consists of eight isomorphic triangular interrupted map graticules.
+The north and south contains four in which straight meridians converge polewards
+to a point and unequally spaced horizontal parallels. HEALPix provides a mapping
+in which points of equal latitude and equally spaced longitude are mapped to points
+of equal latitude and equally spaced longitude with the module of the polar
+interruptions.
+
+
+Usage
+###############################################################################
+
+To run a forward HEALPix projection on a unit sphere model, use the following command::
+
+ proj +proj=healpix +lon_0=0 +a=1 -E <<EOF
+ 0 0
+ EOF
+ # output
+ 0 0 0.00 0.00
+
+Further reading
+################################################################################
+
+#. `NASA <http://healpix.jpl.nasa.gov/>`_
+#. `Wikipedia <https://en.wikipedia.org/wiki/HEALPix>`_
+
+
+
+
+
diff --git a/docs/source/operations/projections/igh.rst b/docs/source/operations/projections/igh.rst
new file mode 100644
index 00000000..d74e1362
--- /dev/null
+++ b/docs/source/operations/projections/igh.rst
@@ -0,0 +1,10 @@
+.. _igh:
+
+********************************************************************************
+Interrupted Goode Homolosine
+********************************************************************************
+
+.. image:: ./images/igh.png
+ :scale: 50%
+ :alt: Interrupted Goode Homolosine
+
diff --git a/docs/source/operations/projections/images/aea.png b/docs/source/operations/projections/images/aea.png
new file mode 100644
index 00000000..7fdd4ece
--- /dev/null
+++ b/docs/source/operations/projections/images/aea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/aeqd.png b/docs/source/operations/projections/images/aeqd.png
new file mode 100644
index 00000000..8e45b2c0
--- /dev/null
+++ b/docs/source/operations/projections/images/aeqd.png
Binary files differ
diff --git a/docs/source/operations/projections/images/airy.png b/docs/source/operations/projections/images/airy.png
new file mode 100644
index 00000000..a441e317
--- /dev/null
+++ b/docs/source/operations/projections/images/airy.png
Binary files differ
diff --git a/docs/source/operations/projections/images/aitoff.png b/docs/source/operations/projections/images/aitoff.png
new file mode 100644
index 00000000..3449dcd5
--- /dev/null
+++ b/docs/source/operations/projections/images/aitoff.png
Binary files differ
diff --git a/docs/source/operations/projections/images/alsk.png b/docs/source/operations/projections/images/alsk.png
new file mode 100644
index 00000000..6f6e2014
--- /dev/null
+++ b/docs/source/operations/projections/images/alsk.png
Binary files differ
diff --git a/docs/source/operations/projections/images/apian.png b/docs/source/operations/projections/images/apian.png
new file mode 100644
index 00000000..95857ae3
--- /dev/null
+++ b/docs/source/operations/projections/images/apian.png
Binary files differ
diff --git a/docs/source/operations/projections/images/august.png b/docs/source/operations/projections/images/august.png
new file mode 100644
index 00000000..9d9fece6
--- /dev/null
+++ b/docs/source/operations/projections/images/august.png
Binary files differ
diff --git a/docs/source/operations/projections/images/bacon.png b/docs/source/operations/projections/images/bacon.png
new file mode 100644
index 00000000..62deae63
--- /dev/null
+++ b/docs/source/operations/projections/images/bacon.png
Binary files differ
diff --git a/docs/source/operations/projections/images/bipc.png b/docs/source/operations/projections/images/bipc.png
new file mode 100644
index 00000000..7b8ab39c
--- /dev/null
+++ b/docs/source/operations/projections/images/bipc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/boggs.png b/docs/source/operations/projections/images/boggs.png
new file mode 100644
index 00000000..42dd4c13
--- /dev/null
+++ b/docs/source/operations/projections/images/boggs.png
Binary files differ
diff --git a/docs/source/operations/projections/images/bonne.png b/docs/source/operations/projections/images/bonne.png
new file mode 100644
index 00000000..12f93217
--- /dev/null
+++ b/docs/source/operations/projections/images/bonne.png
Binary files differ
diff --git a/docs/source/operations/projections/images/calcofi.png b/docs/source/operations/projections/images/calcofi.png
new file mode 100644
index 00000000..2fd405ac
--- /dev/null
+++ b/docs/source/operations/projections/images/calcofi.png
Binary files differ
diff --git a/docs/source/operations/projections/images/cass.png b/docs/source/operations/projections/images/cass.png
new file mode 100644
index 00000000..e44c46af
--- /dev/null
+++ b/docs/source/operations/projections/images/cass.png
Binary files differ
diff --git a/docs/source/operations/projections/images/cc.png b/docs/source/operations/projections/images/cc.png
new file mode 100644
index 00000000..3beaedfd
--- /dev/null
+++ b/docs/source/operations/projections/images/cc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/ccon.png b/docs/source/operations/projections/images/ccon.png
new file mode 100644
index 00000000..ccc0ec9e
--- /dev/null
+++ b/docs/source/operations/projections/images/ccon.png
Binary files differ
diff --git a/docs/source/operations/projections/images/cea.png b/docs/source/operations/projections/images/cea.png
new file mode 100644
index 00000000..eca2319d
--- /dev/null
+++ b/docs/source/operations/projections/images/cea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/chamb.png b/docs/source/operations/projections/images/chamb.png
new file mode 100644
index 00000000..a87e6c68
--- /dev/null
+++ b/docs/source/operations/projections/images/chamb.png
Binary files differ
diff --git a/docs/source/operations/projections/images/collg.png b/docs/source/operations/projections/images/collg.png
new file mode 100644
index 00000000..851201da
--- /dev/null
+++ b/docs/source/operations/projections/images/collg.png
Binary files differ
diff --git a/docs/source/operations/projections/images/comill.png b/docs/source/operations/projections/images/comill.png
new file mode 100644
index 00000000..725a0118
--- /dev/null
+++ b/docs/source/operations/projections/images/comill.png
Binary files differ
diff --git a/docs/source/operations/projections/images/crast.png b/docs/source/operations/projections/images/crast.png
new file mode 100644
index 00000000..abd4d32a
--- /dev/null
+++ b/docs/source/operations/projections/images/crast.png
Binary files differ
diff --git a/docs/source/operations/projections/images/denoy.png b/docs/source/operations/projections/images/denoy.png
new file mode 100644
index 00000000..2871cf84
--- /dev/null
+++ b/docs/source/operations/projections/images/denoy.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eck1.png b/docs/source/operations/projections/images/eck1.png
new file mode 100644
index 00000000..b892d39e
--- /dev/null
+++ b/docs/source/operations/projections/images/eck1.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eck2.png b/docs/source/operations/projections/images/eck2.png
new file mode 100644
index 00000000..ff011598
--- /dev/null
+++ b/docs/source/operations/projections/images/eck2.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eck3.png b/docs/source/operations/projections/images/eck3.png
new file mode 100644
index 00000000..f828eed0
--- /dev/null
+++ b/docs/source/operations/projections/images/eck3.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eck4.png b/docs/source/operations/projections/images/eck4.png
new file mode 100644
index 00000000..d7ff87bb
--- /dev/null
+++ b/docs/source/operations/projections/images/eck4.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eck5.png b/docs/source/operations/projections/images/eck5.png
new file mode 100644
index 00000000..3df303c6
--- /dev/null
+++ b/docs/source/operations/projections/images/eck5.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eck6.png b/docs/source/operations/projections/images/eck6.png
new file mode 100644
index 00000000..d22f4956
--- /dev/null
+++ b/docs/source/operations/projections/images/eck6.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eqc.png b/docs/source/operations/projections/images/eqc.png
new file mode 100644
index 00000000..b2d8ba23
--- /dev/null
+++ b/docs/source/operations/projections/images/eqc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/eqdc.png b/docs/source/operations/projections/images/eqdc.png
new file mode 100644
index 00000000..f2330a8e
--- /dev/null
+++ b/docs/source/operations/projections/images/eqdc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/etmerc.png b/docs/source/operations/projections/images/etmerc.png
new file mode 100644
index 00000000..8e6bb39b
--- /dev/null
+++ b/docs/source/operations/projections/images/etmerc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/euler.png b/docs/source/operations/projections/images/euler.png
new file mode 100644
index 00000000..c9c6e4c8
--- /dev/null
+++ b/docs/source/operations/projections/images/euler.png
Binary files differ
diff --git a/docs/source/operations/projections/images/fahey.png b/docs/source/operations/projections/images/fahey.png
new file mode 100644
index 00000000..8b870b8a
--- /dev/null
+++ b/docs/source/operations/projections/images/fahey.png
Binary files differ
diff --git a/docs/source/operations/projections/images/fouc.png b/docs/source/operations/projections/images/fouc.png
new file mode 100644
index 00000000..6d33216b
--- /dev/null
+++ b/docs/source/operations/projections/images/fouc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/fouc_s.png b/docs/source/operations/projections/images/fouc_s.png
new file mode 100644
index 00000000..401f5ee4
--- /dev/null
+++ b/docs/source/operations/projections/images/fouc_s.png
Binary files differ
diff --git a/docs/source/operations/projections/images/gall.png b/docs/source/operations/projections/images/gall.png
new file mode 100644
index 00000000..819b5d12
--- /dev/null
+++ b/docs/source/operations/projections/images/gall.png
Binary files differ
diff --git a/docs/source/operations/projections/images/geos.png b/docs/source/operations/projections/images/geos.png
new file mode 100644
index 00000000..e44fa41b
--- /dev/null
+++ b/docs/source/operations/projections/images/geos.png
Binary files differ
diff --git a/docs/source/operations/projections/images/gins8.png b/docs/source/operations/projections/images/gins8.png
new file mode 100644
index 00000000..12fbae93
--- /dev/null
+++ b/docs/source/operations/projections/images/gins8.png
Binary files differ
diff --git a/docs/source/operations/projections/images/gn_sinu.png b/docs/source/operations/projections/images/gn_sinu.png
new file mode 100644
index 00000000..f02e119e
--- /dev/null
+++ b/docs/source/operations/projections/images/gn_sinu.png
Binary files differ
diff --git a/docs/source/operations/projections/images/gnom.png b/docs/source/operations/projections/images/gnom.png
new file mode 100644
index 00000000..c079d31a
--- /dev/null
+++ b/docs/source/operations/projections/images/gnom.png
Binary files differ
diff --git a/docs/source/operations/projections/images/goode.png b/docs/source/operations/projections/images/goode.png
new file mode 100644
index 00000000..7001e8d2
--- /dev/null
+++ b/docs/source/operations/projections/images/goode.png
Binary files differ
diff --git a/docs/source/operations/projections/images/gs48.png b/docs/source/operations/projections/images/gs48.png
new file mode 100644
index 00000000..574e368f
--- /dev/null
+++ b/docs/source/operations/projections/images/gs48.png
Binary files differ
diff --git a/docs/source/operations/projections/images/gs50.png b/docs/source/operations/projections/images/gs50.png
new file mode 100644
index 00000000..7244b160
--- /dev/null
+++ b/docs/source/operations/projections/images/gs50.png
Binary files differ
diff --git a/docs/source/operations/projections/images/gstmerc.png b/docs/source/operations/projections/images/gstmerc.png
new file mode 100644
index 00000000..d553ea60
--- /dev/null
+++ b/docs/source/operations/projections/images/gstmerc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/hammer.png b/docs/source/operations/projections/images/hammer.png
new file mode 100644
index 00000000..83848479
--- /dev/null
+++ b/docs/source/operations/projections/images/hammer.png
Binary files differ
diff --git a/docs/source/operations/projections/images/hatano.png b/docs/source/operations/projections/images/hatano.png
new file mode 100644
index 00000000..b3f47377
--- /dev/null
+++ b/docs/source/operations/projections/images/hatano.png
Binary files differ
diff --git a/docs/source/operations/projections/images/healpix.png b/docs/source/operations/projections/images/healpix.png
new file mode 100644
index 00000000..c58a155c
--- /dev/null
+++ b/docs/source/operations/projections/images/healpix.png
Binary files differ
diff --git a/docs/source/operations/projections/images/igh.png b/docs/source/operations/projections/images/igh.png
new file mode 100644
index 00000000..36336eec
--- /dev/null
+++ b/docs/source/operations/projections/images/igh.png
Binary files differ
diff --git a/docs/source/operations/projections/images/imw_p.png b/docs/source/operations/projections/images/imw_p.png
new file mode 100644
index 00000000..74cfe81b
--- /dev/null
+++ b/docs/source/operations/projections/images/imw_p.png
Binary files differ
diff --git a/docs/source/operations/projections/images/isea.png b/docs/source/operations/projections/images/isea.png
new file mode 100644
index 00000000..23cfbf74
--- /dev/null
+++ b/docs/source/operations/projections/images/isea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/kav5.png b/docs/source/operations/projections/images/kav5.png
new file mode 100644
index 00000000..d5c45400
--- /dev/null
+++ b/docs/source/operations/projections/images/kav5.png
Binary files differ
diff --git a/docs/source/operations/projections/images/kav7.png b/docs/source/operations/projections/images/kav7.png
new file mode 100644
index 00000000..50d7e6e6
--- /dev/null
+++ b/docs/source/operations/projections/images/kav7.png
Binary files differ
diff --git a/docs/source/operations/projections/images/krovak.png b/docs/source/operations/projections/images/krovak.png
new file mode 100644
index 00000000..d0d69547
--- /dev/null
+++ b/docs/source/operations/projections/images/krovak.png
Binary files differ
diff --git a/docs/source/operations/projections/images/labrd.png b/docs/source/operations/projections/images/labrd.png
new file mode 100644
index 00000000..e4a174c0
--- /dev/null
+++ b/docs/source/operations/projections/images/labrd.png
Binary files differ
diff --git a/docs/source/operations/projections/images/laea.png b/docs/source/operations/projections/images/laea.png
new file mode 100644
index 00000000..f52c7c1f
--- /dev/null
+++ b/docs/source/operations/projections/images/laea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/lagrng.png b/docs/source/operations/projections/images/lagrng.png
new file mode 100644
index 00000000..e48210bb
--- /dev/null
+++ b/docs/source/operations/projections/images/lagrng.png
Binary files differ
diff --git a/docs/source/operations/projections/images/larr.png b/docs/source/operations/projections/images/larr.png
new file mode 100644
index 00000000..967b91d2
--- /dev/null
+++ b/docs/source/operations/projections/images/larr.png
Binary files differ
diff --git a/docs/source/operations/projections/images/lask.png b/docs/source/operations/projections/images/lask.png
new file mode 100644
index 00000000..dff0e8fa
--- /dev/null
+++ b/docs/source/operations/projections/images/lask.png
Binary files differ
diff --git a/docs/source/operations/projections/images/lcc.png b/docs/source/operations/projections/images/lcc.png
new file mode 100644
index 00000000..4714b74e
--- /dev/null
+++ b/docs/source/operations/projections/images/lcc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/lcca.png b/docs/source/operations/projections/images/lcca.png
new file mode 100644
index 00000000..0c404670
--- /dev/null
+++ b/docs/source/operations/projections/images/lcca.png
Binary files differ
diff --git a/docs/source/operations/projections/images/leac.png b/docs/source/operations/projections/images/leac.png
new file mode 100644
index 00000000..1f57d192
--- /dev/null
+++ b/docs/source/operations/projections/images/leac.png
Binary files differ
diff --git a/docs/source/operations/projections/images/lee_os.png b/docs/source/operations/projections/images/lee_os.png
new file mode 100644
index 00000000..3e258393
--- /dev/null
+++ b/docs/source/operations/projections/images/lee_os.png
Binary files differ
diff --git a/docs/source/operations/projections/images/loxim.png b/docs/source/operations/projections/images/loxim.png
new file mode 100644
index 00000000..a03ba94e
--- /dev/null
+++ b/docs/source/operations/projections/images/loxim.png
Binary files differ
diff --git a/docs/source/operations/projections/images/lsat.png b/docs/source/operations/projections/images/lsat.png
new file mode 100644
index 00000000..ec608544
--- /dev/null
+++ b/docs/source/operations/projections/images/lsat.png
Binary files differ
diff --git a/docs/source/operations/projections/images/mbt_fps.png b/docs/source/operations/projections/images/mbt_fps.png
new file mode 100644
index 00000000..e97cd21e
--- /dev/null
+++ b/docs/source/operations/projections/images/mbt_fps.png
Binary files differ
diff --git a/docs/source/operations/projections/images/mbt_s.png b/docs/source/operations/projections/images/mbt_s.png
new file mode 100644
index 00000000..4432e83b
--- /dev/null
+++ b/docs/source/operations/projections/images/mbt_s.png
Binary files differ
diff --git a/docs/source/operations/projections/images/mbtfpp.png b/docs/source/operations/projections/images/mbtfpp.png
new file mode 100644
index 00000000..3d0c4fb5
--- /dev/null
+++ b/docs/source/operations/projections/images/mbtfpp.png
Binary files differ
diff --git a/docs/source/operations/projections/images/mbtfpq.png b/docs/source/operations/projections/images/mbtfpq.png
new file mode 100644
index 00000000..b31c52ce
--- /dev/null
+++ b/docs/source/operations/projections/images/mbtfpq.png
Binary files differ
diff --git a/docs/source/operations/projections/images/mbtfps.png b/docs/source/operations/projections/images/mbtfps.png
new file mode 100644
index 00000000..83891be6
--- /dev/null
+++ b/docs/source/operations/projections/images/mbtfps.png
Binary files differ
diff --git a/docs/source/operations/projections/images/merc.png b/docs/source/operations/projections/images/merc.png
new file mode 100644
index 00000000..8202789e
--- /dev/null
+++ b/docs/source/operations/projections/images/merc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/mil_os.png b/docs/source/operations/projections/images/mil_os.png
new file mode 100644
index 00000000..3316d317
--- /dev/null
+++ b/docs/source/operations/projections/images/mil_os.png
Binary files differ
diff --git a/docs/source/operations/projections/images/mill.png b/docs/source/operations/projections/images/mill.png
new file mode 100644
index 00000000..f62e517c
--- /dev/null
+++ b/docs/source/operations/projections/images/mill.png
Binary files differ
diff --git a/docs/source/operations/projections/images/misrsom.png b/docs/source/operations/projections/images/misrsom.png
new file mode 100644
index 00000000..493baff3
--- /dev/null
+++ b/docs/source/operations/projections/images/misrsom.png
Binary files differ
diff --git a/docs/source/operations/projections/images/moll.png b/docs/source/operations/projections/images/moll.png
new file mode 100644
index 00000000..5d599579
--- /dev/null
+++ b/docs/source/operations/projections/images/moll.png
Binary files differ
diff --git a/docs/source/operations/projections/images/murd1.png b/docs/source/operations/projections/images/murd1.png
new file mode 100644
index 00000000..34d628c5
--- /dev/null
+++ b/docs/source/operations/projections/images/murd1.png
Binary files differ
diff --git a/docs/source/operations/projections/images/murd2.png b/docs/source/operations/projections/images/murd2.png
new file mode 100644
index 00000000..b3fdabdd
--- /dev/null
+++ b/docs/source/operations/projections/images/murd2.png
Binary files differ
diff --git a/docs/source/operations/projections/images/murd3.png b/docs/source/operations/projections/images/murd3.png
new file mode 100644
index 00000000..354b009c
--- /dev/null
+++ b/docs/source/operations/projections/images/murd3.png
Binary files differ
diff --git a/docs/source/operations/projections/images/natearth.png b/docs/source/operations/projections/images/natearth.png
new file mode 100644
index 00000000..0e182a0b
--- /dev/null
+++ b/docs/source/operations/projections/images/natearth.png
Binary files differ
diff --git a/docs/source/operations/projections/images/natearth2.png b/docs/source/operations/projections/images/natearth2.png
new file mode 100644
index 00000000..3757646c
--- /dev/null
+++ b/docs/source/operations/projections/images/natearth2.png
Binary files differ
diff --git a/docs/source/operations/projections/images/nell.png b/docs/source/operations/projections/images/nell.png
new file mode 100644
index 00000000..c0dbdcac
--- /dev/null
+++ b/docs/source/operations/projections/images/nell.png
Binary files differ
diff --git a/docs/source/operations/projections/images/nell_h.png b/docs/source/operations/projections/images/nell_h.png
new file mode 100644
index 00000000..a5a27076
--- /dev/null
+++ b/docs/source/operations/projections/images/nell_h.png
Binary files differ
diff --git a/docs/source/operations/projections/images/nicol.png b/docs/source/operations/projections/images/nicol.png
new file mode 100644
index 00000000..711db115
--- /dev/null
+++ b/docs/source/operations/projections/images/nicol.png
Binary files differ
diff --git a/docs/source/operations/projections/images/nsper.png b/docs/source/operations/projections/images/nsper.png
new file mode 100644
index 00000000..06f210a1
--- /dev/null
+++ b/docs/source/operations/projections/images/nsper.png
Binary files differ
diff --git a/docs/source/operations/projections/images/nzmg.png b/docs/source/operations/projections/images/nzmg.png
new file mode 100644
index 00000000..3625f331
--- /dev/null
+++ b/docs/source/operations/projections/images/nzmg.png
Binary files differ
diff --git a/docs/source/operations/projections/images/ob_tran.png b/docs/source/operations/projections/images/ob_tran.png
new file mode 100644
index 00000000..9b1e0d44
--- /dev/null
+++ b/docs/source/operations/projections/images/ob_tran.png
Binary files differ
diff --git a/docs/source/operations/projections/images/ocea.png b/docs/source/operations/projections/images/ocea.png
new file mode 100644
index 00000000..41a5a813
--- /dev/null
+++ b/docs/source/operations/projections/images/ocea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/oea.png b/docs/source/operations/projections/images/oea.png
new file mode 100644
index 00000000..601ead55
--- /dev/null
+++ b/docs/source/operations/projections/images/oea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/omerc.png b/docs/source/operations/projections/images/omerc.png
new file mode 100644
index 00000000..50a3d2b7
--- /dev/null
+++ b/docs/source/operations/projections/images/omerc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/ortel.png b/docs/source/operations/projections/images/ortel.png
new file mode 100644
index 00000000..c6a5bf4f
--- /dev/null
+++ b/docs/source/operations/projections/images/ortel.png
Binary files differ
diff --git a/docs/source/operations/projections/images/ortho.png b/docs/source/operations/projections/images/ortho.png
new file mode 100644
index 00000000..e8b0b9b2
--- /dev/null
+++ b/docs/source/operations/projections/images/ortho.png
Binary files differ
diff --git a/docs/source/operations/projections/images/patterson.png b/docs/source/operations/projections/images/patterson.png
new file mode 100644
index 00000000..f8014249
--- /dev/null
+++ b/docs/source/operations/projections/images/patterson.png
Binary files differ
diff --git a/docs/source/operations/projections/images/pconic.png b/docs/source/operations/projections/images/pconic.png
new file mode 100644
index 00000000..7d7f9f92
--- /dev/null
+++ b/docs/source/operations/projections/images/pconic.png
Binary files differ
diff --git a/docs/source/operations/projections/images/poly.png b/docs/source/operations/projections/images/poly.png
new file mode 100644
index 00000000..ccf25529
--- /dev/null
+++ b/docs/source/operations/projections/images/poly.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp1.png b/docs/source/operations/projections/images/putp1.png
new file mode 100644
index 00000000..c81f574c
--- /dev/null
+++ b/docs/source/operations/projections/images/putp1.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp2.png b/docs/source/operations/projections/images/putp2.png
new file mode 100644
index 00000000..377a027c
--- /dev/null
+++ b/docs/source/operations/projections/images/putp2.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp3.png b/docs/source/operations/projections/images/putp3.png
new file mode 100644
index 00000000..08692ca1
--- /dev/null
+++ b/docs/source/operations/projections/images/putp3.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp3p.png b/docs/source/operations/projections/images/putp3p.png
new file mode 100644
index 00000000..9e42319c
--- /dev/null
+++ b/docs/source/operations/projections/images/putp3p.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp4p.png b/docs/source/operations/projections/images/putp4p.png
new file mode 100644
index 00000000..43cb10c6
--- /dev/null
+++ b/docs/source/operations/projections/images/putp4p.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp5.png b/docs/source/operations/projections/images/putp5.png
new file mode 100644
index 00000000..4e45de6d
--- /dev/null
+++ b/docs/source/operations/projections/images/putp5.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp5p.png b/docs/source/operations/projections/images/putp5p.png
new file mode 100644
index 00000000..76dcb767
--- /dev/null
+++ b/docs/source/operations/projections/images/putp5p.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp6.png b/docs/source/operations/projections/images/putp6.png
new file mode 100644
index 00000000..c73585ee
--- /dev/null
+++ b/docs/source/operations/projections/images/putp6.png
Binary files differ
diff --git a/docs/source/operations/projections/images/putp6p.png b/docs/source/operations/projections/images/putp6p.png
new file mode 100644
index 00000000..d64c2c20
--- /dev/null
+++ b/docs/source/operations/projections/images/putp6p.png
Binary files differ
diff --git a/docs/source/operations/projections/images/qsc.png b/docs/source/operations/projections/images/qsc.png
new file mode 100644
index 00000000..5824cf64
--- /dev/null
+++ b/docs/source/operations/projections/images/qsc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/qua_aut.png b/docs/source/operations/projections/images/qua_aut.png
new file mode 100644
index 00000000..6bc2d811
--- /dev/null
+++ b/docs/source/operations/projections/images/qua_aut.png
Binary files differ
diff --git a/docs/source/operations/projections/images/rhealpix.png b/docs/source/operations/projections/images/rhealpix.png
new file mode 100644
index 00000000..dc1c344a
--- /dev/null
+++ b/docs/source/operations/projections/images/rhealpix.png
Binary files differ
diff --git a/docs/source/operations/projections/images/robin.png b/docs/source/operations/projections/images/robin.png
new file mode 100644
index 00000000..42a49da2
--- /dev/null
+++ b/docs/source/operations/projections/images/robin.png
Binary files differ
diff --git a/docs/source/operations/projections/images/rouss.png b/docs/source/operations/projections/images/rouss.png
new file mode 100644
index 00000000..2eca0fed
--- /dev/null
+++ b/docs/source/operations/projections/images/rouss.png
Binary files differ
diff --git a/docs/source/operations/projections/images/rpoly.png b/docs/source/operations/projections/images/rpoly.png
new file mode 100644
index 00000000..343127c1
--- /dev/null
+++ b/docs/source/operations/projections/images/rpoly.png
Binary files differ
diff --git a/docs/source/operations/projections/images/sinu.png b/docs/source/operations/projections/images/sinu.png
new file mode 100644
index 00000000..9bef143a
--- /dev/null
+++ b/docs/source/operations/projections/images/sinu.png
Binary files differ
diff --git a/docs/source/operations/projections/images/somerc.png b/docs/source/operations/projections/images/somerc.png
new file mode 100644
index 00000000..1248e6ea
--- /dev/null
+++ b/docs/source/operations/projections/images/somerc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/stere.png b/docs/source/operations/projections/images/stere.png
new file mode 100644
index 00000000..840050f0
--- /dev/null
+++ b/docs/source/operations/projections/images/stere.png
Binary files differ
diff --git a/docs/source/operations/projections/images/sterea.png b/docs/source/operations/projections/images/sterea.png
new file mode 100644
index 00000000..d2aad552
--- /dev/null
+++ b/docs/source/operations/projections/images/sterea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/tcc.png b/docs/source/operations/projections/images/tcc.png
new file mode 100644
index 00000000..f968f62d
--- /dev/null
+++ b/docs/source/operations/projections/images/tcc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/tcea.png b/docs/source/operations/projections/images/tcea.png
new file mode 100644
index 00000000..44212bd8
--- /dev/null
+++ b/docs/source/operations/projections/images/tcea.png
Binary files differ
diff --git a/docs/source/operations/projections/images/tissot.png b/docs/source/operations/projections/images/tissot.png
new file mode 100644
index 00000000..2f785477
--- /dev/null
+++ b/docs/source/operations/projections/images/tissot.png
Binary files differ
diff --git a/docs/source/operations/projections/images/tmerc.png b/docs/source/operations/projections/images/tmerc.png
new file mode 100644
index 00000000..b206c502
--- /dev/null
+++ b/docs/source/operations/projections/images/tmerc.png
Binary files differ
diff --git a/docs/source/operations/projections/images/tpeqd.png b/docs/source/operations/projections/images/tpeqd.png
new file mode 100644
index 00000000..50291b68
--- /dev/null
+++ b/docs/source/operations/projections/images/tpeqd.png
Binary files differ
diff --git a/docs/source/operations/projections/images/tpers.png b/docs/source/operations/projections/images/tpers.png
new file mode 100644
index 00000000..480f6dce
--- /dev/null
+++ b/docs/source/operations/projections/images/tpers.png
Binary files differ
diff --git a/docs/source/operations/projections/images/ups.png b/docs/source/operations/projections/images/ups.png
new file mode 100644
index 00000000..354b64ac
--- /dev/null
+++ b/docs/source/operations/projections/images/ups.png
Binary files differ
diff --git a/docs/source/operations/projections/images/urm5.png b/docs/source/operations/projections/images/urm5.png
new file mode 100644
index 00000000..088671c9
--- /dev/null
+++ b/docs/source/operations/projections/images/urm5.png
Binary files differ
diff --git a/docs/source/operations/projections/images/urmfps.png b/docs/source/operations/projections/images/urmfps.png
new file mode 100644
index 00000000..86432790
--- /dev/null
+++ b/docs/source/operations/projections/images/urmfps.png
Binary files differ
diff --git a/docs/source/operations/projections/images/utm.png b/docs/source/operations/projections/images/utm.png
new file mode 100644
index 00000000..3dcd5ee0
--- /dev/null
+++ b/docs/source/operations/projections/images/utm.png
Binary files differ
diff --git a/docs/source/operations/projections/images/vandg.png b/docs/source/operations/projections/images/vandg.png
new file mode 100644
index 00000000..46fe2346
--- /dev/null
+++ b/docs/source/operations/projections/images/vandg.png
Binary files differ
diff --git a/docs/source/operations/projections/images/vandg2.png b/docs/source/operations/projections/images/vandg2.png
new file mode 100644
index 00000000..597b5ae1
--- /dev/null
+++ b/docs/source/operations/projections/images/vandg2.png
Binary files differ
diff --git a/docs/source/operations/projections/images/vandg3.png b/docs/source/operations/projections/images/vandg3.png
new file mode 100644
index 00000000..36d1ad04
--- /dev/null
+++ b/docs/source/operations/projections/images/vandg3.png
Binary files differ
diff --git a/docs/source/operations/projections/images/vandg4.png b/docs/source/operations/projections/images/vandg4.png
new file mode 100644
index 00000000..163c1558
--- /dev/null
+++ b/docs/source/operations/projections/images/vandg4.png
Binary files differ
diff --git a/docs/source/operations/projections/images/vitk1.png b/docs/source/operations/projections/images/vitk1.png
new file mode 100644
index 00000000..31034b3a
--- /dev/null
+++ b/docs/source/operations/projections/images/vitk1.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wag1.png b/docs/source/operations/projections/images/wag1.png
new file mode 100644
index 00000000..a2bc8adc
--- /dev/null
+++ b/docs/source/operations/projections/images/wag1.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wag2.png b/docs/source/operations/projections/images/wag2.png
new file mode 100644
index 00000000..b4abb48c
--- /dev/null
+++ b/docs/source/operations/projections/images/wag2.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wag3.png b/docs/source/operations/projections/images/wag3.png
new file mode 100644
index 00000000..a2053815
--- /dev/null
+++ b/docs/source/operations/projections/images/wag3.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wag4.png b/docs/source/operations/projections/images/wag4.png
new file mode 100644
index 00000000..7d1c50b3
--- /dev/null
+++ b/docs/source/operations/projections/images/wag4.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wag5.png b/docs/source/operations/projections/images/wag5.png
new file mode 100644
index 00000000..487f6022
--- /dev/null
+++ b/docs/source/operations/projections/images/wag5.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wag6.png b/docs/source/operations/projections/images/wag6.png
new file mode 100644
index 00000000..dd49e8d0
--- /dev/null
+++ b/docs/source/operations/projections/images/wag6.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wag7.png b/docs/source/operations/projections/images/wag7.png
new file mode 100644
index 00000000..b9682755
--- /dev/null
+++ b/docs/source/operations/projections/images/wag7.png
Binary files differ
diff --git a/docs/source/operations/projections/images/weren.png b/docs/source/operations/projections/images/weren.png
new file mode 100644
index 00000000..7deb132f
--- /dev/null
+++ b/docs/source/operations/projections/images/weren.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wink1.png b/docs/source/operations/projections/images/wink1.png
new file mode 100644
index 00000000..6cbf48ae
--- /dev/null
+++ b/docs/source/operations/projections/images/wink1.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wink2.png b/docs/source/operations/projections/images/wink2.png
new file mode 100644
index 00000000..21a23634
--- /dev/null
+++ b/docs/source/operations/projections/images/wink2.png
Binary files differ
diff --git a/docs/source/operations/projections/images/wintri.png b/docs/source/operations/projections/images/wintri.png
new file mode 100644
index 00000000..54a0a85a
--- /dev/null
+++ b/docs/source/operations/projections/images/wintri.png
Binary files differ
diff --git a/docs/source/operations/projections/imw_p.rst b/docs/source/operations/projections/imw_p.rst
new file mode 100644
index 00000000..1fd3ded0
--- /dev/null
+++ b/docs/source/operations/projections/imw_p.rst
@@ -0,0 +1,10 @@
+.. _imw_p:
+
+********************************************************************************
+International Map of the World Polyconic
+********************************************************************************
+
+.. image:: ./images/imw_p.png
+ :scale: 50%
+ :alt: International Map of the World Polyconic
+
diff --git a/docs/source/operations/projections/index.rst b/docs/source/operations/projections/index.rst
new file mode 100644
index 00000000..904dc9e6
--- /dev/null
+++ b/docs/source/operations/projections/index.rst
@@ -0,0 +1,146 @@
+.. _projections:
+
+================================================================================
+Projections
+================================================================================
+
+Projections are coordinate operations that are technically conversions but since
+projections are so fundamental to PROJ we differentiate them from conversions.
+
+Projections map the spherical 3D space to a flat 2D space.
+
+.. toctree::
+ :maxdepth: 1
+
+ aeqd
+ airy
+ aitoff
+ alsk
+ apian
+ august
+ bacon
+ bipc
+ boggs
+ bonne
+ calcofi
+ cass
+ cc
+ ccon
+ cea
+ chamb
+ collg
+ crast
+ denoy
+ eck1
+ eck2
+ eck3
+ eck4
+ eck5
+ eck6
+ eqc
+ eqdc
+ euler
+ etmerc
+ fahey
+ fouc
+ fouc_s
+ gall
+ geos
+ gins8
+ gn_sinu
+ gnom
+ goode
+ gs48
+ gs50
+ hammer
+ hatano
+ healpix
+ rhealpix
+ igh
+ imw_p
+ isea
+ kav5
+ kav7
+ krovak
+ labrd
+ laea
+ lagrng
+ larr
+ lask
+ lcc
+ lcca
+ leac
+ lee_os
+ loxim
+ lsat
+ mbt_s
+ mbt_fps
+ mbtfpp
+ mbtfpq
+ mbtfps
+ merc
+ mil_os
+ mill
+ moll
+ murd1
+ murd2
+ murd3
+ natearth
+ nell
+ nell_h
+ nicol
+ nsper
+ nzmg
+ ob_tran
+ ocea
+ oea
+ omerc
+ ortel
+ ortho
+ pconic
+ poly
+ putp1
+ putp2
+ putp3
+ putp3p
+ putp4p
+ putp5
+ putp5p
+ putp6
+ putp6p
+ qua_aut
+ qsc
+ robin
+ rouss
+ rpoly
+ sinu
+ somerc
+ stere
+ sterea
+ gstmerc
+ tcc
+ tcea
+ tissot
+ tmerc
+ tpeqd
+ tpers
+ ups
+ urm5
+ urmfps
+ utm
+ vandg
+ vandg2
+ vandg3
+ vandg4
+ vitk1
+ wag1
+ wag2
+ wag3
+ wag4
+ wag5
+ wag6
+ wag7
+ weren
+ wink1
+ wink2
+ wintri
diff --git a/docs/source/operations/projections/isea.rst b/docs/source/operations/projections/isea.rst
new file mode 100644
index 00000000..1b6457af
--- /dev/null
+++ b/docs/source/operations/projections/isea.rst
@@ -0,0 +1,10 @@
+.. _isea:
+
+********************************************************************************
+Icosahedral Snyder Equal Area
+********************************************************************************
+
+.. image:: ./images/isea.png
+ :scale: 50%
+ :alt: Icosahedral Snyder Equal Area
+
diff --git a/docs/source/operations/projections/kav5.rst b/docs/source/operations/projections/kav5.rst
new file mode 100644
index 00000000..2ec5d1c1
--- /dev/null
+++ b/docs/source/operations/projections/kav5.rst
@@ -0,0 +1,10 @@
+.. _kav5:
+
+********************************************************************************
+Kavraisky V
+********************************************************************************
+
+.. image:: ./images/kav5.png
+ :scale: 50%
+ :alt: Kavraisky V
+
diff --git a/docs/source/operations/projections/kav7.rst b/docs/source/operations/projections/kav7.rst
new file mode 100644
index 00000000..8371e6ea
--- /dev/null
+++ b/docs/source/operations/projections/kav7.rst
@@ -0,0 +1,10 @@
+.. _kav7:
+
+********************************************************************************
+Kavraisky VII
+********************************************************************************
+
+.. image:: ./images/kav7.png
+ :scale: 50%
+ :alt: Kavraisky VII
+
diff --git a/docs/source/operations/projections/krovak.rst b/docs/source/operations/projections/krovak.rst
new file mode 100644
index 00000000..6c774825
--- /dev/null
+++ b/docs/source/operations/projections/krovak.rst
@@ -0,0 +1,10 @@
+.. _krovak:
+
+********************************************************************************
+Krovak
+********************************************************************************
+
+.. image:: ./images/krovak.png
+ :scale: 50%
+ :alt: Krovak
+
diff --git a/docs/source/operations/projections/labrd.rst b/docs/source/operations/projections/labrd.rst
new file mode 100644
index 00000000..5be58db5
--- /dev/null
+++ b/docs/source/operations/projections/labrd.rst
@@ -0,0 +1,10 @@
+.. _labrd:
+
+********************************************************************************
+Laborde
+********************************************************************************
+
+.. image:: ./images/labrd.png
+ :scale: 50%
+ :alt: Laborde
+
diff --git a/docs/source/operations/projections/laea.rst b/docs/source/operations/projections/laea.rst
new file mode 100644
index 00000000..2377f294
--- /dev/null
+++ b/docs/source/operations/projections/laea.rst
@@ -0,0 +1,10 @@
+.. _laea:
+
+********************************************************************************
+Lambert Azimuthal Equal Area
+********************************************************************************
+
+.. image:: ./images/laea.png
+ :scale: 50%
+ :alt: Lambert Azimuthal Equal Area
+
diff --git a/docs/source/operations/projections/lagrng.rst b/docs/source/operations/projections/lagrng.rst
new file mode 100644
index 00000000..de9e5640
--- /dev/null
+++ b/docs/source/operations/projections/lagrng.rst
@@ -0,0 +1,10 @@
+.. _lagrng:
+
+********************************************************************************
+Lagrange
+********************************************************************************
+
+.. image:: ./images/lagrng.png
+ :scale: 50%
+ :alt: Lagrange
+
diff --git a/docs/source/operations/projections/larr.rst b/docs/source/operations/projections/larr.rst
new file mode 100644
index 00000000..9529f83f
--- /dev/null
+++ b/docs/source/operations/projections/larr.rst
@@ -0,0 +1,10 @@
+.. _larr:
+
+********************************************************************************
+Larrivee
+********************************************************************************
+
+.. image:: ./images/larr.png
+ :scale: 50%
+ :alt: Larrivee
+
diff --git a/docs/source/operations/projections/lask.rst b/docs/source/operations/projections/lask.rst
new file mode 100644
index 00000000..d34dc8a0
--- /dev/null
+++ b/docs/source/operations/projections/lask.rst
@@ -0,0 +1,10 @@
+.. _lask:
+
+********************************************************************************
+Laskowski
+********************************************************************************
+
+.. image:: ./images/lask.png
+ :scale: 50%
+ :alt: Laskowski
+
diff --git a/docs/source/operations/projections/lcc.rst b/docs/source/operations/projections/lcc.rst
new file mode 100644
index 00000000..a3075e76
--- /dev/null
+++ b/docs/source/operations/projections/lcc.rst
@@ -0,0 +1,10 @@
+.. _lcc:
+
+********************************************************************************
+Lambert Conformal Conic
+********************************************************************************
+
+.. image:: ./images/lcc.png
+ :scale: 50%
+ :alt: Lambert Conformal Conic
+
diff --git a/docs/source/operations/projections/lcca.rst b/docs/source/operations/projections/lcca.rst
new file mode 100644
index 00000000..ca87e67e
--- /dev/null
+++ b/docs/source/operations/projections/lcca.rst
@@ -0,0 +1,10 @@
+.. _lcca:
+
+********************************************************************************
+Lambert Conformal Conic Alternative
+********************************************************************************
+
+.. image:: ./images/lcca.png
+ :scale: 50%
+ :alt: Lambert Conformal Conic Alternative
+
diff --git a/docs/source/operations/projections/leac.rst b/docs/source/operations/projections/leac.rst
new file mode 100644
index 00000000..2957798e
--- /dev/null
+++ b/docs/source/operations/projections/leac.rst
@@ -0,0 +1,10 @@
+.. _leac:
+
+********************************************************************************
+Lambert Equal Area Conic
+********************************************************************************
+
+.. image:: ./images/leac.png
+ :scale: 50%
+ :alt: Lambert Equal Area Conic
+
diff --git a/docs/source/operations/projections/lee_os.rst b/docs/source/operations/projections/lee_os.rst
new file mode 100644
index 00000000..711dc754
--- /dev/null
+++ b/docs/source/operations/projections/lee_os.rst
@@ -0,0 +1,10 @@
+.. _lee_os:
+
+********************************************************************************
+Lee Oblated Stereographic
+********************************************************************************
+
+.. image:: ./images/lee_os.png
+ :scale: 50%
+ :alt: Lee Oblated Stereographic
+
diff --git a/docs/source/operations/projections/loxim.rst b/docs/source/operations/projections/loxim.rst
new file mode 100644
index 00000000..e50ba472
--- /dev/null
+++ b/docs/source/operations/projections/loxim.rst
@@ -0,0 +1,10 @@
+.. _loxim:
+
+********************************************************************************
+Loximuthal
+********************************************************************************
+
+.. image:: ./images/loxim.png
+ :scale: 50%
+ :alt: Loximuthal
+
diff --git a/docs/source/operations/projections/lsat.rst b/docs/source/operations/projections/lsat.rst
new file mode 100644
index 00000000..fb64bdb2
--- /dev/null
+++ b/docs/source/operations/projections/lsat.rst
@@ -0,0 +1,10 @@
+.. _lsat:
+
+********************************************************************************
+Space oblique for LANDSAT
+********************************************************************************
+
+.. image:: ./images/lsat.png
+ :scale: 50%
+ :alt: Space oblique for LANDSAT
+
diff --git a/docs/source/operations/projections/mbt_fps.rst b/docs/source/operations/projections/mbt_fps.rst
new file mode 100644
index 00000000..55ebcf6c
--- /dev/null
+++ b/docs/source/operations/projections/mbt_fps.rst
@@ -0,0 +1,10 @@
+.. _mbt_fps:
+
+********************************************************************************
+McBryde-Thomas Flat-Pole Sine (No. 2)
+********************************************************************************
+
+.. image:: ./images/mbt_fps.png
+ :scale: 50%
+ :alt: McBryde-Thomas Flat-Pole Sine (No. 2)
+
diff --git a/docs/source/operations/projections/mbt_s.rst b/docs/source/operations/projections/mbt_s.rst
new file mode 100644
index 00000000..9a355ec8
--- /dev/null
+++ b/docs/source/operations/projections/mbt_s.rst
@@ -0,0 +1,10 @@
+.. _mbt_s:
+
+********************************************************************************
+McBryde-Thomas Flat-Polar Sine (No. 1)
+********************************************************************************
+
+.. image:: ./images/mbt_s.png
+ :scale: 50%
+ :alt: McBryde-Thomas Flat-Polar Sine (No. 1)
+
diff --git a/docs/source/operations/projections/mbtfpp.rst b/docs/source/operations/projections/mbtfpp.rst
new file mode 100644
index 00000000..9be309d9
--- /dev/null
+++ b/docs/source/operations/projections/mbtfpp.rst
@@ -0,0 +1,10 @@
+.. _mbtfpp:
+
+********************************************************************************
+McBride-Thomas Flat-Polar Parabolic
+********************************************************************************
+
+.. image:: ./images/mbtfpp.png
+ :scale: 50%
+ :alt: McBride-Thomas Flat-Polar Parabolic
+
diff --git a/docs/source/operations/projections/mbtfpq.rst b/docs/source/operations/projections/mbtfpq.rst
new file mode 100644
index 00000000..295e814d
--- /dev/null
+++ b/docs/source/operations/projections/mbtfpq.rst
@@ -0,0 +1,10 @@
+.. _mbtfpq:
+
+********************************************************************************
+McBryde-Thomas Flat-Polar Quartic
+********************************************************************************
+
+.. image:: ./images/mbtfpq.png
+ :scale: 50%
+ :alt: McBryde-Thomas Flat-Polar Quartic
+
diff --git a/docs/source/operations/projections/mbtfps.rst b/docs/source/operations/projections/mbtfps.rst
new file mode 100644
index 00000000..b9365361
--- /dev/null
+++ b/docs/source/operations/projections/mbtfps.rst
@@ -0,0 +1,10 @@
+.. _mbtfps:
+
+********************************************************************************
+McBryde-Thomas Flat-Polar Sinusoidal
+********************************************************************************
+
+.. image:: ./images/mbtfps.png
+ :scale: 50%
+ :alt: McBryde-Thomas Flat-Polar Sinusoidal
+
diff --git a/docs/source/operations/projections/merc.rst b/docs/source/operations/projections/merc.rst
new file mode 100644
index 00000000..8895abc8
--- /dev/null
+++ b/docs/source/operations/projections/merc.rst
@@ -0,0 +1,140 @@
+.. _merc:
+
+********************************************************************************
+Mercator
+********************************************************************************
+
+The Mercator projection is a cylindrical map projection that origins from the 15th
+century. It is widely recognized as the first regularly used map projection.
+The projection is conformal which makes it suitable for navigational purposes.
+
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Conformal cylindrical |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical and elliptical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global, but best used near the equator |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+lat_ts` | Latitude of true scale. Defaults to 0.0 |
++---------------------+----------------------------------------------------------+
+| `+k_0` | Scaling factor. Defaults to 1.0 |
++---------------------+----------------------------------------------------------+
+
+
+
+.. image:: ./images/merc.png
+ :scale: 50%
+ :alt: Mercator
+
+
+Usage
+########
+
+Applications should be limited to equatorial regions, but is frequently
+used for navigational charts with latitude of true scale (``+lat_ts``) specified within
+or near chart's boundaries.
+Often inappropriately used for world maps since the regions near the poles
+cannot be shown [Evenden1995]_.
+
+
+Example using latitude of true scale::
+
+ $ echo 56.35 12.32 | proj +proj=merc +lat_ts=56.5
+ 3470306.37 759599.90
+
+Example using scaling factor::
+
+ echo 56.35 12.32 | proj +proj=merc +k_0=2
+ 12545706.61 2746073.80
+
+
+Note that ``+lat_ts`` and ``+k_0`` are mutually exclusive.
+If used together, ``+lat_ts`` takes precedence over ``+k_0``.
+
+Mathematical definition
+#######################
+
+The formulas describing the Mercator projection are all taken from G. Evenden's libproj manuals [Evenden2005]_.
+
+Spherical form
+**************
+For the spherical form of the projection we introduce the scaling factor:
+
+.. math::
+
+ k_0 = \cos \phi_{ts}
+
+Forward projection
+==================
+
+.. math::
+
+ x = k_0 \lambda
+
+.. math::
+
+ y = k_0 \ln \left[ \tan \left(\frac{\pi}{4} + \frac{\phi}{2} \right) \right]
+
+
+Inverse projection
+==================
+
+.. math::
+
+ \lambda = \frac{x}{k_0}
+
+.. math::
+
+ \phi = \frac{\pi}{2} - 2 \arctan \left[ e^{-y/k_0} \right]
+
+
+Elliptical form
+***************
+
+For the elliptical form of the projection we introduce the scaling factor:
+
+.. math::
+
+ k_0 = m\left( \phi_ts \right)
+
+where :math:`m\left(\phi\right)` is the parallel radius at latitude :math:`\phi`.
+
+We also use the Isometric Latitude kernel function :math:`t()`.
+
+.. note::
+ m() and t() should be described properly on a separate page about the theory of projections on the ellipsoid.
+
+Forward projection
+==================
+.. math::
+
+ x = k_0 \lambda
+
+.. math::
+
+ y = k_0 \ln t \left( \phi \right)
+
+
+Inverse projection
+==================
+
+.. math::
+
+ \lambda = \frac{x}{k_0}
+
+.. math::
+
+ \phi = t^{-1}\left[ e^{ -y/k_0 } \right]
+
+Further reading
+###############
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Mercator_projection>`_
+#. `Wolfram Mathworld <http://mathworld.wolfram.com/MercatorProjection.html>`_
+
+
diff --git a/docs/source/operations/projections/mil_os.rst b/docs/source/operations/projections/mil_os.rst
new file mode 100644
index 00000000..5547e43c
--- /dev/null
+++ b/docs/source/operations/projections/mil_os.rst
@@ -0,0 +1,10 @@
+.. _mil_os:
+
+********************************************************************************
+Miller Oblated Stereographic
+********************************************************************************
+
+.. image:: ./images/mil_os.png
+ :scale: 50%
+ :alt: Miller Oblated Stereographic
+
diff --git a/docs/source/operations/projections/mill.rst b/docs/source/operations/projections/mill.rst
new file mode 100644
index 00000000..eb9c2092
--- /dev/null
+++ b/docs/source/operations/projections/mill.rst
@@ -0,0 +1,72 @@
+.. _mill:
+
+********************************************************************************
+Miller Cylindrical
+********************************************************************************
+
+The Miller cylindrical projection is a modified Mercator projection, proposed by Osborn Maitland Miller in 1942.
+The latitude is scaled by a factor of :math:`\frac{4}{5}`, projected according to Mercator, and then the result is multiplied by :math:`\frac{5}{4}` to retain scale along the equator.
+
++---------------------+--------------------------------------------------------------------------------+
+| **Classification** | Neither conformal nor equal area cylindrical |
++---------------------+--------------------------------------------------------------------------------+
+| **Available forms** | Forward and inverse spherical |
++---------------------+--------------------------------------------------------------------------------+
+| **Defined area** | Global, but best used near the equator |
++---------------------+--------------------------------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+--------------------------------------------------------------------------------+
+| **Options** |
++---------------------+--------------------------------------------------------------------------------+
+| `+lat_0` | Latitude of origin (Default to 0) |
++---------------------+--------------------------------------------------------------------------------+
+
+.. image:: ./images/mill.png
+ :scale: 50%
+ :alt: Miller Cylindrical
+
+Usage
+########
+
+The Miller Cylindrical projection is used for world maps and in several atlases,
+including the National Atlas of the United States (USGS, 1970, p. 330-331) [Snyder1987]_.
+
+Example using Central meridian 90°W::
+
+ $ echo -100 35 | proj +proj=mill +lon_0=90w
+ -1113194.91 4061217.24
+
+Mathematical definition
+#######################
+
+The formulas describing the Miller projection are all taken from Snyder's manuals [Snyder1987]_.
+
+
+Forward projection
+==================
+
+.. math::
+
+ x = \lambda
+
+.. math::
+
+ y = 1.25 * \ln \left[ \tan \left(\frac{\pi}{4} + 0.4 * \phi \right) \right]
+
+
+Inverse projection
+==================
+
+.. math::
+
+ \lambda = x
+
+.. math::
+
+ \phi = 2.5 * ( \arctan \left[ e^{0.8 * y} \right] - \frac{\pi}{4} )
+
+Further reading
+###############
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Miller_cylindrical_projection>`_
+
diff --git a/docs/source/operations/projections/moll.rst b/docs/source/operations/projections/moll.rst
new file mode 100644
index 00000000..1bd3d005
--- /dev/null
+++ b/docs/source/operations/projections/moll.rst
@@ -0,0 +1,10 @@
+.. _moll:
+
+********************************************************************************
+Mollweide
+********************************************************************************
+
+.. image:: ./images/moll.png
+ :scale: 50%
+ :alt: Mollweide
+
diff --git a/docs/source/operations/projections/murd1.rst b/docs/source/operations/projections/murd1.rst
new file mode 100644
index 00000000..71cbf155
--- /dev/null
+++ b/docs/source/operations/projections/murd1.rst
@@ -0,0 +1,10 @@
+.. _murd1:
+
+********************************************************************************
+Murdoch I
+********************************************************************************
+
+.. image:: ./images/murd1.png
+ :scale: 50%
+ :alt: Murdoch I
+
diff --git a/docs/source/operations/projections/murd2.rst b/docs/source/operations/projections/murd2.rst
new file mode 100644
index 00000000..b55cde35
--- /dev/null
+++ b/docs/source/operations/projections/murd2.rst
@@ -0,0 +1,10 @@
+.. _murd2:
+
+********************************************************************************
+Murdoch II
+********************************************************************************
+
+.. image:: ./images/murd2.png
+ :scale: 50%
+ :alt: Murdoch II
+
diff --git a/docs/source/operations/projections/murd3.rst b/docs/source/operations/projections/murd3.rst
new file mode 100644
index 00000000..70cc9276
--- /dev/null
+++ b/docs/source/operations/projections/murd3.rst
@@ -0,0 +1,10 @@
+.. _murd3:
+
+********************************************************************************
+Murdoch III
+********************************************************************************
+
+.. image:: ./images/murd3.png
+ :scale: 50%
+ :alt: Murdoch III
+
diff --git a/docs/source/operations/projections/natearth.rst b/docs/source/operations/projections/natearth.rst
new file mode 100644
index 00000000..57dd96db
--- /dev/null
+++ b/docs/source/operations/projections/natearth.rst
@@ -0,0 +1,47 @@
+.. _natearth:
+
+********************************************************************************
+Natural Earth
+********************************************************************************
++---------------------+--------------------------------------------------------+
+| **Classification** | Pseudo cylindrical |
++---------------------+--------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+--------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+--------------------------------------------------------+
+| **Implemented by** | Bernhard Jenny |
++---------------------+--------------------------------------------------------+
+| **Options** |
++---------------------+--------------------------------------------------------+
+| `No special options for this projection` |
++---------------------+--------------------------------------------------------+
+
+.. image:: ./images/natearth.png
+ :scale: 50%
+ :alt: Natural Earth
+
+
+The Natural Earth projection is intended for making world maps. A distinguishing trait
+is its slightly rounded corners fashioned to emulate the spherical shape of Earth.
+The meridians (except for the central meridian) bend acutely inward as they approach
+the pole lines, giving the projection a hint of three-dimensionality. This bending
+also suggests that the meridians converge at the poles instead of truncating at the
+top and bottom edges. The distortion characteristics of the Natural Earth projection
+compare favorably to other world map projections.
+
+
+Usage
+###############################################################################
+
+The Natural Earth projection has no special options so usage is simple. Here is
+an example of an inverse projection on a sphere with a radius of 7500 m::
+
+ $ echo 3500 -8000 | proj -I +proj=natearth +a=7500
+ 37d54'6.091"E 61d23'4.582"S
+
+
+Further reading
+################################################################################
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Natural_Earth_projection>`_
diff --git a/docs/source/operations/projections/nell.rst b/docs/source/operations/projections/nell.rst
new file mode 100644
index 00000000..c6a3771c
--- /dev/null
+++ b/docs/source/operations/projections/nell.rst
@@ -0,0 +1,10 @@
+.. _nell:
+
+********************************************************************************
+Nell
+********************************************************************************
+
+.. image:: ./images/nell.png
+ :scale: 50%
+ :alt: Nell
+
diff --git a/docs/source/operations/projections/nell_h.rst b/docs/source/operations/projections/nell_h.rst
new file mode 100644
index 00000000..6a3b26ba
--- /dev/null
+++ b/docs/source/operations/projections/nell_h.rst
@@ -0,0 +1,10 @@
+.. _nell_h:
+
+********************************************************************************
+Nell-Hammer
+********************************************************************************
+
+.. image:: ./images/nell_h.png
+ :scale: 50%
+ :alt: Nell-Hammer
+
diff --git a/docs/source/operations/projections/nicol.rst b/docs/source/operations/projections/nicol.rst
new file mode 100644
index 00000000..995cedb5
--- /dev/null
+++ b/docs/source/operations/projections/nicol.rst
@@ -0,0 +1,10 @@
+.. _nicol:
+
+********************************************************************************
+Nicolosi Globular
+********************************************************************************
+
+.. image:: ./images/nicol.png
+ :scale: 50%
+ :alt: Nicolosi Globular
+
diff --git a/docs/source/operations/projections/nsper.rst b/docs/source/operations/projections/nsper.rst
new file mode 100644
index 00000000..4a8651fc
--- /dev/null
+++ b/docs/source/operations/projections/nsper.rst
@@ -0,0 +1,10 @@
+.. _nsper:
+
+********************************************************************************
+Near-sided perspective
+********************************************************************************
+
+.. image:: ./images/nsper.png
+ :scale: 50%
+ :alt: Near-sided perspective
+
diff --git a/docs/source/operations/projections/nzmg.rst b/docs/source/operations/projections/nzmg.rst
new file mode 100644
index 00000000..926655d8
--- /dev/null
+++ b/docs/source/operations/projections/nzmg.rst
@@ -0,0 +1,10 @@
+.. _nzmg:
+
+********************************************************************************
+New Zealand Map Grid
+********************************************************************************
+
+.. image:: ./images/nzmg.png
+ :scale: 50%
+ :alt: New Zealand Map Grid
+
diff --git a/docs/source/operations/projections/ob_tran.rst b/docs/source/operations/projections/ob_tran.rst
new file mode 100644
index 00000000..3c996336
--- /dev/null
+++ b/docs/source/operations/projections/ob_tran.rst
@@ -0,0 +1,10 @@
+.. _ob_tran:
+
+********************************************************************************
+General Oblique Transformation
+********************************************************************************
+
+.. image:: ./images/ob_tran.png
+ :scale: 50%
+ :alt: General Oblique Transformation
+
diff --git a/docs/source/operations/projections/ocea.rst b/docs/source/operations/projections/ocea.rst
new file mode 100644
index 00000000..40005d9e
--- /dev/null
+++ b/docs/source/operations/projections/ocea.rst
@@ -0,0 +1,10 @@
+.. _ocea:
+
+********************************************************************************
+Oblique Cylindrical Equal Area
+********************************************************************************
+
+.. image:: ./images/ocea.png
+ :scale: 50%
+ :alt: Oblique Cylindrical Equal Area
+
diff --git a/docs/source/operations/projections/oea.rst b/docs/source/operations/projections/oea.rst
new file mode 100644
index 00000000..379dc157
--- /dev/null
+++ b/docs/source/operations/projections/oea.rst
@@ -0,0 +1,10 @@
+.. _oea:
+
+********************************************************************************
+Oblated Equal Area
+********************************************************************************
+
+.. image:: ./images/oea.png
+ :scale: 50%
+ :alt: Oblated Equal Area
+
diff --git a/docs/source/operations/projections/omerc.rst b/docs/source/operations/projections/omerc.rst
new file mode 100644
index 00000000..114b9fa3
--- /dev/null
+++ b/docs/source/operations/projections/omerc.rst
@@ -0,0 +1,10 @@
+.. _omerc:
+
+********************************************************************************
+Oblique Mercator
+********************************************************************************
+
+.. image:: ./images/omerc.png
+ :scale: 50%
+ :alt: Oblique Mercator
+
diff --git a/docs/source/operations/projections/ortel.rst b/docs/source/operations/projections/ortel.rst
new file mode 100644
index 00000000..03f132ef
--- /dev/null
+++ b/docs/source/operations/projections/ortel.rst
@@ -0,0 +1,10 @@
+.. _ortel:
+
+********************************************************************************
+Ortelius Oval
+********************************************************************************
+
+.. image:: ./images/ortel.png
+ :scale: 50%
+ :alt: Ortelius Oval
+
diff --git a/docs/source/operations/projections/ortho.rst b/docs/source/operations/projections/ortho.rst
new file mode 100644
index 00000000..131dbfc7
--- /dev/null
+++ b/docs/source/operations/projections/ortho.rst
@@ -0,0 +1,10 @@
+.. _ortho:
+
+********************************************************************************
+Orthographic
+********************************************************************************
+
+.. image:: ./images/ortho.png
+ :scale: 50%
+ :alt: Orthographic
+
diff --git a/docs/source/operations/projections/pconic.rst b/docs/source/operations/projections/pconic.rst
new file mode 100644
index 00000000..6bc0018e
--- /dev/null
+++ b/docs/source/operations/projections/pconic.rst
@@ -0,0 +1,10 @@
+.. _pconic:
+
+********************************************************************************
+Perspective Conic
+********************************************************************************
+
+.. image:: ./images/pconic.png
+ :scale: 50%
+ :alt: Perspective Conic
+
diff --git a/docs/source/operations/projections/poly.rst b/docs/source/operations/projections/poly.rst
new file mode 100644
index 00000000..e252feb5
--- /dev/null
+++ b/docs/source/operations/projections/poly.rst
@@ -0,0 +1,10 @@
+.. _poly:
+
+********************************************************************************
+Polyconic (American)
+********************************************************************************
+
+.. image:: ./images/poly.png
+ :scale: 50%
+ :alt: Polyconic (American)
+
diff --git a/docs/source/operations/projections/putp1.rst b/docs/source/operations/projections/putp1.rst
new file mode 100644
index 00000000..68971a46
--- /dev/null
+++ b/docs/source/operations/projections/putp1.rst
@@ -0,0 +1,10 @@
+.. _putp1:
+
+********************************************************************************
+Putnins P1
+********************************************************************************
+
+.. image:: ./images/putp1.png
+ :scale: 50%
+ :alt: Putnins P1
+
diff --git a/docs/source/operations/projections/putp2.rst b/docs/source/operations/projections/putp2.rst
new file mode 100644
index 00000000..01ea8073
--- /dev/null
+++ b/docs/source/operations/projections/putp2.rst
@@ -0,0 +1,10 @@
+.. _putp2:
+
+********************************************************************************
+Putnins P2
+********************************************************************************
+
+.. image:: ./images/putp2.png
+ :scale: 50%
+ :alt: Putnins P2
+
diff --git a/docs/source/operations/projections/putp3.rst b/docs/source/operations/projections/putp3.rst
new file mode 100644
index 00000000..3aa6b9e6
--- /dev/null
+++ b/docs/source/operations/projections/putp3.rst
@@ -0,0 +1,10 @@
+.. _putp3:
+
+********************************************************************************
+Putnins P3
+********************************************************************************
+
+.. image:: ./images/putp3.png
+ :scale: 50%
+ :alt: Putnins P3
+
diff --git a/docs/source/operations/projections/putp3p.rst b/docs/source/operations/projections/putp3p.rst
new file mode 100644
index 00000000..5b87512e
--- /dev/null
+++ b/docs/source/operations/projections/putp3p.rst
@@ -0,0 +1,10 @@
+.. _putp3p:
+
+********************************************************************************
+Putnins P3'
+********************************************************************************
+
+.. image:: ./images/putp3p.png
+ :scale: 50%
+ :alt: Putnins P3'
+
diff --git a/docs/source/operations/projections/putp4p.rst b/docs/source/operations/projections/putp4p.rst
new file mode 100644
index 00000000..b211ad9b
--- /dev/null
+++ b/docs/source/operations/projections/putp4p.rst
@@ -0,0 +1,10 @@
+.. _putp4p:
+
+********************************************************************************
+Putnins P4'
+********************************************************************************
+
+.. image:: ./images/putp4p.png
+ :scale: 50%
+ :alt: Putnins P4'
+
diff --git a/docs/source/operations/projections/putp5.rst b/docs/source/operations/projections/putp5.rst
new file mode 100644
index 00000000..5b60a961
--- /dev/null
+++ b/docs/source/operations/projections/putp5.rst
@@ -0,0 +1,10 @@
+.. _putp5:
+
+********************************************************************************
+Putnins P5
+********************************************************************************
+
+.. image:: ./images/putp5.png
+ :scale: 50%
+ :alt: Putnins P5
+
diff --git a/docs/source/operations/projections/putp5p.rst b/docs/source/operations/projections/putp5p.rst
new file mode 100644
index 00000000..f586b889
--- /dev/null
+++ b/docs/source/operations/projections/putp5p.rst
@@ -0,0 +1,10 @@
+.. _putp5p:
+
+********************************************************************************
+Putnins P5'
+********************************************************************************
+
+.. image:: ./images/putp5p.png
+ :scale: 50%
+ :alt: Putnins P5'
+
diff --git a/docs/source/operations/projections/putp6.rst b/docs/source/operations/projections/putp6.rst
new file mode 100644
index 00000000..94683ace
--- /dev/null
+++ b/docs/source/operations/projections/putp6.rst
@@ -0,0 +1,10 @@
+.. _putp6:
+
+********************************************************************************
+Putnins P6
+********************************************************************************
+
+.. image:: ./images/putp6.png
+ :scale: 50%
+ :alt: Putnins P6
+
diff --git a/docs/source/operations/projections/putp6p.rst b/docs/source/operations/projections/putp6p.rst
new file mode 100644
index 00000000..8c3add71
--- /dev/null
+++ b/docs/source/operations/projections/putp6p.rst
@@ -0,0 +1,10 @@
+.. _putp6p:
+
+********************************************************************************
+Putnins P6'
+********************************************************************************
+
+.. image:: ./images/putp6p.png
+ :scale: 50%
+ :alt: Putnins P6'
+
diff --git a/docs/source/operations/projections/qsc.rst b/docs/source/operations/projections/qsc.rst
new file mode 100644
index 00000000..740901e8
--- /dev/null
+++ b/docs/source/operations/projections/qsc.rst
@@ -0,0 +1,158 @@
+.. _qsc:
+
+********************************************************************************
+Quadrilateralized Spherical Cube
+********************************************************************************
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Azimuthal |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, elliptical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Martin Lambers |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+lat_0` | Latitude (in degrees) of the view position. |
++---------------------+----------------------------------------------------------+
+| `+lon_0` | Longitude (in degrees) of the view position. |
++---------------------+----------------------------------------------------------+
+
+The purpose of the Quadrilateralized Spherical Cube (QSC) projection is to project
+a sphere surface onto the six sides of a cube:
+
+.. image:: ../../../images/qsc_concept.jpg
+ :scale: 50%
+ :align: center
+ :alt: Quadrilateralized Spherical Cube
+
+For this purpose, other alternatives can be used, notably :ref:`gnom` or
+:ref:`healpix`. However, QSC projection has the following favorable properties:
+
+It is an equal-area projection, and at the same time introduces only limited angular
+distortions. It treats all cube sides equally, i.e. it does not use different
+projections for polar areas and equatorial areas. These properties make QSC
+projection a good choice for planetary-scale terrain rendering. Map data can be
+organized in quadtree structures for each cube side. See [LambersKolb2012]_ for an example.
+
+The QSC projection was introduced by [ONeilLaubscher1976]_,
+building on previous work by [ChanONeil1975]_. For clarity: The
+earlier QSC variant described in [ChanONeil1975]_ became known as the COBE QSC since it
+was used by the NASA Cosmic Background Explorer (COBE) project; it is an approximately
+equal-area projection and is not the same as the QSC projection.
+
+See also [CalabrettaGreisen2002]_ Sec. 5.6.2 and 5.6.3 for a description of both and
+some analysis.
+
+In this implementation, the QSC projection projects onto one side of a circumscribed
+cube. The cube side is selected by choosing one of the following six projection centers:
+
++-------------------------+--------------------+
+| ``+lat_0=0 +lon_0=0`` | front cube side |
++-------------------------+--------------------+
+| ``+lat_0=0 +lon_0=90`` | right cube side |
++-------------------------+--------------------+
+| ``+lat_0=0 +lon_0=180`` | back cube side |
++-------------------------+--------------------+
+| ``+lat_0=0 +lon_0=-90`` | left cube side |
++-------------------------+--------------------+
+| ``+lat_0=90`` | top cube side |
++-------------------------+--------------------+
+| ``+lat_0=-90`` | bottom cube side |
++-------------------------+--------------------+
+
+Furthermore, this implementation allows the projection to be applied to ellipsoids.
+A preceding shift to a sphere is performed automatically; see [LambersKolb2012]_ for details.
+
+
+Usage
+###############################################################################
+
+The following example uses QSC projection via GDAL to create the six cube side
+maps from a world map for the WGS84 ellipsoid::
+
+ gdalwarp -t_srs "+wktext +proj=qsc +units=m +ellps=WGS84 +lat_0=0 +lon_0=0" \
+ -wo SOURCE_EXTRA=100 -wo SAMPLE_GRID=YES -te -6378137 -6378137 6378137 6378137 \
+ worldmap.tiff frontside.tiff
+
+ gdalwarp -t_srs "+wktext +proj=qsc +units=m +ellps=WGS84 +lat_0=0 +lon_0=90" \
+ -wo SOURCE_EXTRA=100 -wo SAMPLE_GRID=YES -te -6378137 -6378137 6378137 6378137 \
+ worldmap.tiff rightside.tiff
+
+ gdalwarp -t_srs "+wktext +proj=qsc +units=m +ellps=WGS84 +lat_0=0 +lon_0=180" \
+ -wo SOURCE_EXTRA=100 -wo SAMPLE_GRID=YES -te -6378137 -6378137 6378137 6378137 \
+ worldmap.tiff backside.tiff
+
+ gdalwarp -t_srs "+wktext +proj=qsc +units=m +ellps=WGS84 +lat_0=0 +lon_0=-90" \
+ -wo SOURCE_EXTRA=100 -wo SAMPLE_GRID=YES -te -6378137 -6378137 6378137 6378137 \
+ worldmap.tiff leftside.tiff
+
+ gdalwarp -t_srs "+wktext +proj=qsc +units=m +ellps=WGS84 +lat_0=90 +lon_0=0" \
+ -wo SOURCE_EXTRA=100 -wo SAMPLE_GRID=YES -te -6378137 -6378137 6378137 6378137 \
+ worldmap.tiff topside.tiff
+
+ gdalwarp -t_srs "+wktext +proj=qsc +units=m +ellps=WGS84 +lat_0=-90 +lon_0=0" \
+ -wo SOURCE_EXTRA=100 -wo SAMPLE_GRID=YES -te -6378137 -6378137 6378137 6378137 \
+ worldmap.tiff bottomside.tiff
+
+
+Explanation:
+
+* QSC projection is selected with ``+wktext +proj=qsc``.
+* The WGS84 ellipsoid is specified with ``+ellps=WGS84``.
+* The cube side is selected with ``+lat_0=... +lon_0=...``.
+* The ``-wo`` options are necessary for GDAL to avoid holes in the output maps.
+* The ``-te`` option limits the extends of the output map to the major axis diameter
+ (from -radius to +radius in both x and y direction). These are the dimensions of one side
+ of the circumscribing cube.
+
+
+The resulting images can be laid out in a grid like below.
+
+
+.. |topside| image:: ../../../images/qsc_topside.jpg
+ :scale: 50%
+ :align: middle
+ :alt: Top side
+
+.. |leftside| image:: ../../../images/qsc_leftside.jpg
+ :scale: 50%
+ :align: middle
+ :alt: Left side
+
+.. |frontside| image:: ../../../images/qsc_frontside.jpg
+ :scale: 50%
+ :align: middle
+ :alt: Front side
+
+.. |rightside| image:: ../../../images/qsc_rightside.jpg
+ :scale: 50%
+ :align: middle
+ :alt: Right side
+
+.. |backside| image:: ../../../images/qsc_backside.jpg
+ :scale: 50%
+ :align: middle
+ :alt: Back side
+
+.. |bottomside| image:: ../../../images/qsc_bottomside.jpg
+ :scale: 50%
+ :align: middle
+ :alt: Bottom side
+
+
++------------+--------------+-------------+------------+
+| | |topside| | | |
++------------+--------------+-------------+------------+
+| |leftside| | |frontside| | |rightside| | |backside| |
++------------+--------------+-------------+------------+
+| | |bottomside| | | |
++------------+--------------+-------------+------------+
+
+Further reading
+################################################################################
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Quadrilateralized_spherical_cube>`_
+#. `NASA <https://lambda.gsfc.nasa.gov/product/cobe/skymap_info_new.cfm>`_
diff --git a/docs/source/operations/projections/qua_aut.rst b/docs/source/operations/projections/qua_aut.rst
new file mode 100644
index 00000000..d3a0aece
--- /dev/null
+++ b/docs/source/operations/projections/qua_aut.rst
@@ -0,0 +1,10 @@
+.. _qua_aut:
+
+********************************************************************************
+Quartic Authalic
+********************************************************************************
+
+.. image:: ./images/qua_aut.png
+ :scale: 50%
+ :alt: Quartic Authalic
+
diff --git a/docs/source/operations/projections/rhealpix.rst b/docs/source/operations/projections/rhealpix.rst
new file mode 100644
index 00000000..52a913a5
--- /dev/null
+++ b/docs/source/operations/projections/rhealpix.rst
@@ -0,0 +1,51 @@
+.. _rhealpix:
+
+********************************************************************************
+rHEALPix
+********************************************************************************
++---------------------+----------------------------------------------------------+
+| **Classification** | Mixed |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical and elliptical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Alex Raichev and Michael Speth |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+north_square` | Position of the north polar square. |
+| | Valid inputs are 0--3. Defaults to 0. |
++---------------------+----------------------------------------------------------+
+| `+south_square` | Position of the south polar square. |
+| | Valid inputs are 0--3. Defaults to 0. |
++---------------------+----------------------------------------------------------+
+
+.. image:: ../../../images/rhealpix.png
+ :scale: 75%
+ :alt: rHEALPix
+
+rHEALPix is a projection based on the HEALPix projection. The implementation of
+rHEALPix uses the HEALPix projection. The rHEALPix combines the peaks of the
+HEALPix into a square. The square's position can be translated and rotated across
+the x-axis which is a novel approach for the rHEALPix projection. The initial
+intention of using rHEALPix in the Spatial Computation Engine Science Collaboration
+Environment (SCENZGrid).
+
+Usage
+###############################################################################
+
+To run a rHEALPix projection on a WGS84 ellipsoidal model, use the following
+command::
+
+ proj +proj=rhealpix -f '%.2f' +ellps=WGS84 +south_square=0 +north_square=2 -E << EOF
+ > 55 12
+ > EOF
+ 55 12 6115727.86 1553840.13
+
+
+Further reading
+################################################################################
+
+#. `NASA <http://healpix.jpl.nasa.gov/>`_
+#. `Wikipedia <https://en.wikipedia.org/wiki/HEALPix>`_
diff --git a/docs/source/operations/projections/robin.rst b/docs/source/operations/projections/robin.rst
new file mode 100644
index 00000000..3e58be46
--- /dev/null
+++ b/docs/source/operations/projections/robin.rst
@@ -0,0 +1,10 @@
+.. _robin:
+
+********************************************************************************
+Robinson
+********************************************************************************
+
+.. image:: ./images/robin.png
+ :scale: 50%
+ :alt: Robinson
+
diff --git a/docs/source/operations/projections/rouss.rst b/docs/source/operations/projections/rouss.rst
new file mode 100644
index 00000000..e27fb1cf
--- /dev/null
+++ b/docs/source/operations/projections/rouss.rst
@@ -0,0 +1,10 @@
+.. _rouss:
+
+********************************************************************************
+Roussilhe Stereographic
+********************************************************************************
+
+.. image:: ./images/rouss.png
+ :scale: 50%
+ :alt: Roussilhe Stereographic
+
diff --git a/docs/source/operations/projections/rpoly.rst b/docs/source/operations/projections/rpoly.rst
new file mode 100644
index 00000000..80e0d640
--- /dev/null
+++ b/docs/source/operations/projections/rpoly.rst
@@ -0,0 +1,10 @@
+.. _rpoly:
+
+********************************************************************************
+Rectangular Polyconic
+********************************************************************************
+
+.. image:: ./images/rpoly.png
+ :scale: 50%
+ :alt: Rectangular Polyconic
+
diff --git a/docs/source/operations/projections/sinu.rst b/docs/source/operations/projections/sinu.rst
new file mode 100644
index 00000000..a7ebd232
--- /dev/null
+++ b/docs/source/operations/projections/sinu.rst
@@ -0,0 +1,24 @@
+.. _sinu:
+
+********************************************************************************
+Sinusoidal (Sanson-Flamsteed)
+********************************************************************************
+
+.. image:: ./images/sinu.png
+ :scale: 50%
+ :alt: Sinusoidal (Sanson-Flamsteed)
+
+MacBryde and Thomas developed generalized formulas for sever of the
+pseudocylindricals with sinusoidal meridians:
+
+.. math::
+
+ x = C\lambda(m+cos\theta) / ( m + 1)
+
+.. math::
+ y = C\theta
+
+.. math::
+
+ C = \sqrt { (m + 1 ) / n }
+
diff --git a/docs/source/operations/projections/somerc.rst b/docs/source/operations/projections/somerc.rst
new file mode 100644
index 00000000..c572622b
--- /dev/null
+++ b/docs/source/operations/projections/somerc.rst
@@ -0,0 +1,10 @@
+.. _somerc:
+
+********************************************************************************
+Swiss. Obl. Mercator
+********************************************************************************
+
+.. image:: ./images/somerc.png
+ :scale: 50%
+ :alt: Swiss. Obl. Mercator
+
diff --git a/docs/source/operations/projections/stere.rst b/docs/source/operations/projections/stere.rst
new file mode 100644
index 00000000..d4958ec9
--- /dev/null
+++ b/docs/source/operations/projections/stere.rst
@@ -0,0 +1,10 @@
+.. _stere:
+
+********************************************************************************
+Stereographic
+********************************************************************************
+
+.. image:: ./images/stere.png
+ :scale: 50%
+ :alt: Stereographic
+
diff --git a/docs/source/operations/projections/sterea.rst b/docs/source/operations/projections/sterea.rst
new file mode 100644
index 00000000..4f2f8727
--- /dev/null
+++ b/docs/source/operations/projections/sterea.rst
@@ -0,0 +1,10 @@
+.. _sterea:
+
+********************************************************************************
+Oblique Stereographic Alternative
+********************************************************************************
+
+.. image:: ./images/sterea.png
+ :scale: 50%
+ :alt: Oblique Stereographic Alternative
+
diff --git a/docs/source/operations/projections/tcc.rst b/docs/source/operations/projections/tcc.rst
new file mode 100644
index 00000000..586dd3b8
--- /dev/null
+++ b/docs/source/operations/projections/tcc.rst
@@ -0,0 +1,10 @@
+.. _tcc:
+
+********************************************************************************
+Transverse Central Cylindrical
+********************************************************************************
+
+.. image:: ./images/tcc.png
+ :scale: 50%
+ :alt: Transverse Central Cylindrical
+
diff --git a/docs/source/operations/projections/tcea.rst b/docs/source/operations/projections/tcea.rst
new file mode 100644
index 00000000..cf5549a3
--- /dev/null
+++ b/docs/source/operations/projections/tcea.rst
@@ -0,0 +1,10 @@
+.. _tcea:
+
+********************************************************************************
+Transverse Cylindrical Equal Area
+********************************************************************************
+
+.. image:: ./images/tcea.png
+ :scale: 50%
+ :alt: Transverse Cylindrical Equal Area
+
diff --git a/docs/source/operations/projections/tissot.rst b/docs/source/operations/projections/tissot.rst
new file mode 100644
index 00000000..7ec1a741
--- /dev/null
+++ b/docs/source/operations/projections/tissot.rst
@@ -0,0 +1,10 @@
+.. _tissot:
+
+********************************************************************************
+Tissot
+********************************************************************************
+
+.. image:: ./images/tissot.png
+ :scale: 50%
+ :alt: Tissot
+
diff --git a/docs/source/operations/projections/tmerc.rst b/docs/source/operations/projections/tmerc.rst
new file mode 100644
index 00000000..1fc0cd7e
--- /dev/null
+++ b/docs/source/operations/projections/tmerc.rst
@@ -0,0 +1,197 @@
+.. _tmerc:
+
+********************************************************************************
+Transverse Mercator
+********************************************************************************
+
+The transverse Mercator projection in its various forms is the most widely used projected coordinate system for world topographical and offshore mapping.
+
++---------------------+--------------------------------------------------------------------------------+
+| **Classification** | Transverse and oblique cylindrical |
++---------------------+--------------------------------------------------------------------------------+
+| **Available forms** | Forward and inverse, Spherical and Elliptical |
++---------------------+--------------------------------------------------------------------------------+
+| **Defined area** | Global, but reasonably accurate only within 15 degrees of the central meridian |
++---------------------+--------------------------------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+--------------------------------------------------------------------------------+
+| **Options** |
++---------------------+--------------------------------------------------------------------------------+
+| `+lat_0` | Latitude of origin (Default to 0) |
++---------------------+--------------------------------------------------------------------------------+
+| `+k0` | Scale factor at natural origin (Default to 1) |
++---------------------+--------------------------------------------------------------------------------+
+
+
+.. image:: ./images/tmerc.png
+ :scale: 50%
+ :alt: Transverse Mercator
+
+Usage
+#####
+
+
+Prior to the development of the Universal Transverse Mercator coordinate system, several European nations demonstrated the utility of grid-based conformal maps by mapping their territory during the interwar period.
+Calculating the distance between two points on these maps could be performed more easily in the field (using the Pythagorean theorem) than was possible using the trigonometric formulas required under the graticule-based system of latitude and longitude.
+In the post-war years, these concepts were extended into the Universal Transverse Mercator/Universal Polar Stereographic (UTM/UPS) coordinate system, which is a global (or universal) system of grid-based maps.
+
+The following table gives special cases of the Transverse Mercator projection.
+
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+| Projection Name | Areas | Central meridian | Zone width | Scale Factor |
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+| Transverse Mercator | World wide | Various | less than 6° | Various |
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+| Transverse Mercator south oriented | Southern Africa | 2° intervals E of 11°E | 2° | 1.000 |
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+| UTM North hemisphere | World wide equator to 84°N | 6° intervals E & W of 3° E & W | Always 6° | 0.9996 |
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+| UTM South hemisphere | World wide north of 80°S to equator | 6° intervals E & W of 3° E & W | Always 6° | 0.9996 |
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+| Gauss-Kruger | Former USSR, Yugoslavia, Germany, S. America, China | Various, according to area | Usually less than 6°, often less than 4° | 1.0000 |
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+| Gauss Boaga | Italy | Various, according to area | 6° | 0.9996 |
++-------------------------------------+-----------------------------------------------------+--------------------------------+------------------------------------------+--------------+
+
+
+
+Example using Gauss-Kruger on Germany area (aka EPSG:31467) ::
+
+ $ echo 9 51 | proj +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs
+ 3500000.00 5651505.56
+
+Example using Gauss Boaga on Italy area (EPSG:3004) ::
+
+ $ echo 15 42 | proj +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs
+ 2520000.00 4649858.60
+
+Mathematical definition
+#######################
+
+The formulas describing the Transverse Mercator are all taken from Evenden's [Evenden2005]_.
+
+:math:`\phi_0` is the latitude of origin that match the center of the map. It can be set with ``+lat_0``.
+
+:math:`k_0` is the scale factor at the natural origin (on the central meridian). It can be set with ``+k_0``.
+
+:math:`M(\phi)` is the meridional distance.
+
+Spherical form
+**************
+
+Forward projection
+==================
+
+.. math::
+
+ B = \cos \phi \sin \lambda
+
+.. math::
+
+ x = \frac{k_0}{2} \ln(\frac{1+B}{1-B})
+
+.. math::
+
+ y = k_0 ( \arctan(\frac{\tan(\phi)}{\cos \lambda}) - \phi_0)
+
+
+Inverse projection
+==================
+
+.. math::
+
+ D = \frac{y}{k_0} + \phi_0
+
+.. math::
+
+ x' = \frac{x}{k_0}
+
+.. math::
+
+ \phi = \arcsin(\frac{\sin D}{\cosh x'})
+
+.. math::
+
+ \lambda = \arctan(\frac{\sinh x'}{\cos D})
+
+
+Elliptical form
+***************
+
+Forward projection
+==================
+
+.. math::
+
+ N = \frac{k_0}{(1 - e^2 \sin^2\phi)^{1/2}}
+
+.. math::
+
+ R = \frac{k_0(1-e^2)}{(1-e^2 \sin^2\phi)^{3/2}}
+
+.. math::
+
+ t = \tan(\phi)
+
+.. math::
+
+ \eta = \frac{e^2}{1-e^2}cos^2\phi
+
+.. math::
+
+ x &= k_0 \lambda \cos \phi \\
+ &+ \frac{k_0 \lambda^3 \cos^3\phi}{3!}(1-t^2+\eta^2) \\
+ &+ \frac{k_0 \lambda^5 \cos^5\phi}{5!}(5-18t^2+t^4+14\eta^2-58t^2\eta^2) \\
+ &+\frac{k_0 \lambda^7 \cos^7\phi}{7!}(61-479t^2+179t^4-t^6)
+
+.. math::
+
+ y &= M(\phi) \\
+ &+ \frac{k_0 \lambda^2 \sin(\phi) \cos \phi}{2!} \\
+ &+ \frac{k_0 \lambda^4 \sin(\phi) \cos^3\phi}{4!}(5-t^2+9\eta^2+4\eta^4) \\
+ &+ \frac{k_0 \lambda^6 \sin(\phi) \cos^5\phi}{6!}(61-58t^2+t^4+270\eta^2-330t^2\eta^2) \\
+ &+ \frac{k_0 \lambda^8 \sin(\phi) \cos^7\phi}{8!}(1385-3111t^2+543t^4-t^6)
+
+Inverse projection
+==================
+
+.. math::
+
+ \phi_1 = M^-1(y)
+
+.. math::
+
+ N_1 = \frac{k_0}{1 - e^2 \sin^2\phi_1)^{1/2}}
+
+.. math::
+
+ R_1 = \frac{k_0(1-e^2)}{(1-e^2 \sin^2\phi_1)^{3/2}}
+
+.. math::
+
+ t_1 = \tan(\phi_1)
+
+.. math::
+
+ \eta_1 = \frac{e^2}{1-e^2}cos^2\phi_1
+
+.. math::
+
+ \phi &= \phi_1 \\
+ &- \frac{t_1 x^2}{2! R_1 N_1} \\
+ &+ \frac{t_1 x^4}{4! R_1 N_1^3}(5+3t_1^2+\eta_1^2-4\eta_1^4-9\eta_1^2t_1^2) \\
+ &- \frac{t_1 x^6}{6! R_1 N_1^5}(61+90t_1^2+46\eta_1^2+45t_1^4-252t_1^2\eta_1^2) \\
+ &+ \frac{t_1 x^8}{8! R_1 N_1^7}(1385+3633t_1^2+4095t_1^4+1575t_1^6)
+
+.. math::
+
+ \lambda &= \frac{x}{\cos \phi N_1} \\
+ &- \frac{x^3}{3! \cos \phi N_1^3}(1+2t_1^2+\eta_1^2) \\
+ &+ \frac{x^5}{5! \cos \phi N_1^5}(5+6\eta_1^2+28t_1^2-3\eta_1^2+8t_1^2\eta_1^2) \\
+ &- \frac{x^7}{7! \cos \phi N_1^7}(61+662t_1^2+1320t_1^4+720t_1^6)
+
+Further reading
+###############
+
+#. `Wikipedia <https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system>`_
+#. `EPSG, POSC literature pertaining to Coordinate Conversions and Transformations including Formulas <http://www.ihsenergy.com/epsg/guid7.pdf>`_
diff --git a/docs/source/operations/projections/tpeqd.rst b/docs/source/operations/projections/tpeqd.rst
new file mode 100644
index 00000000..e6d7ef29
--- /dev/null
+++ b/docs/source/operations/projections/tpeqd.rst
@@ -0,0 +1,10 @@
+.. _tpeqd:
+
+********************************************************************************
+Two Point Equidistant
+********************************************************************************
+
+.. image:: ./images/tpeqd.png
+ :scale: 50%
+ :alt: Two Point Equidistant
+
diff --git a/docs/source/operations/projections/tpers.rst b/docs/source/operations/projections/tpers.rst
new file mode 100644
index 00000000..345a5faa
--- /dev/null
+++ b/docs/source/operations/projections/tpers.rst
@@ -0,0 +1,39 @@
+.. _tpers:
+
+********************************************************************************
+Tilted perspective
+********************************************************************************
++---------------------+----------------------------------------------------------+
+| **Classification** | Azimuthal |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Implemented by** | Gerald I. Evenden |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+h` | Height (in meters) above the surface. Required. |
++---------------------+----------------------------------------------------------+
+| `+azi` | Bearing (in degrees) from due north. |
++---------------------+----------------------------------------------------------+
+| `+tilt` | Angle (in degrees) away from nadir. |
++---------------------+----------------------------------------------------------+
+| `+lat_0` | Latitude (in degrees) of the view position. |
++---------------------+----------------------------------------------------------+
+| `+lon_0` | Longitude (in degrees) of the view position. |
++---------------------+----------------------------------------------------------+
+
+
+.. image:: ./images/tpers.png
+ :scale: 50%
+ :alt: Tilted perspective
+
+
+Tilted Perspective is similar to :ref:`nsper` (``nsper``) in that it simulates a
+perspective view from a hight. Where ``nsper`` projects onto a plane tangent to
+the surface, Tilted Perspective orients the plane towards the direction of the
+view. Thus, extra parameters azi and tilt are required beyond `nsper``'s ``h``.
+As with ``nsper``, ``lat_0`` & ``lon_0`` are also required
+for satellite position.
diff --git a/docs/source/operations/projections/ups.rst b/docs/source/operations/projections/ups.rst
new file mode 100644
index 00000000..7a9ab50b
--- /dev/null
+++ b/docs/source/operations/projections/ups.rst
@@ -0,0 +1,10 @@
+.. _ups:
+
+********************************************************************************
+Universal Polar Stereographic
+********************************************************************************
+
+.. image:: ./images/ups.png
+ :scale: 50%
+ :alt: Universal Polar Stereographic
+
diff --git a/docs/source/operations/projections/urm5.rst b/docs/source/operations/projections/urm5.rst
new file mode 100644
index 00000000..91d06308
--- /dev/null
+++ b/docs/source/operations/projections/urm5.rst
@@ -0,0 +1,10 @@
+.. _urm5:
+
+********************************************************************************
+Urmaev V
+********************************************************************************
+
+.. image:: ./images/urm5.png
+ :scale: 50%
+ :alt: Urmaev V
+
diff --git a/docs/source/operations/projections/urmfps.rst b/docs/source/operations/projections/urmfps.rst
new file mode 100644
index 00000000..515ced84
--- /dev/null
+++ b/docs/source/operations/projections/urmfps.rst
@@ -0,0 +1,10 @@
+.. _urmfps:
+
+********************************************************************************
+Urmaev Flat-Polar Sinusoidal
+********************************************************************************
+
+.. image:: ./images/urmfps.png
+ :scale: 50%
+ :alt: Urmaev Flat-Polar Sinusoidal
+
diff --git a/docs/source/operations/projections/utm.rst b/docs/source/operations/projections/utm.rst
new file mode 100644
index 00000000..7fb66cb8
--- /dev/null
+++ b/docs/source/operations/projections/utm.rst
@@ -0,0 +1,10 @@
+.. _utm:
+
+********************************************************************************
+Universal Transverse Mercator (UTM)
+********************************************************************************
+
+.. image:: ./images/utm.png
+ :scale: 50%
+ :alt: Universal Transverse Mercator (UTM)
+
diff --git a/docs/source/operations/projections/vandg.rst b/docs/source/operations/projections/vandg.rst
new file mode 100644
index 00000000..cdc772bb
--- /dev/null
+++ b/docs/source/operations/projections/vandg.rst
@@ -0,0 +1,10 @@
+.. _vandg:
+
+********************************************************************************
+van der Grinten (I)
+********************************************************************************
+
+.. image:: ./images/vandg.png
+ :scale: 50%
+ :alt: van der Grinten (I)
+
diff --git a/docs/source/operations/projections/vandg2.rst b/docs/source/operations/projections/vandg2.rst
new file mode 100644
index 00000000..556929e2
--- /dev/null
+++ b/docs/source/operations/projections/vandg2.rst
@@ -0,0 +1,10 @@
+.. _vandg2:
+
+********************************************************************************
+van der Grinten II
+********************************************************************************
+
+.. image:: ./images/vandg2.png
+ :scale: 50%
+ :alt: van der Grinten II
+
diff --git a/docs/source/operations/projections/vandg3.rst b/docs/source/operations/projections/vandg3.rst
new file mode 100644
index 00000000..d767c4d5
--- /dev/null
+++ b/docs/source/operations/projections/vandg3.rst
@@ -0,0 +1,10 @@
+.. _vandg3:
+
+********************************************************************************
+van der Grinten III
+********************************************************************************
+
+.. image:: ./images/vandg3.png
+ :scale: 50%
+ :alt: van der Grinten III
+
diff --git a/docs/source/operations/projections/vandg4.rst b/docs/source/operations/projections/vandg4.rst
new file mode 100644
index 00000000..097ba1d8
--- /dev/null
+++ b/docs/source/operations/projections/vandg4.rst
@@ -0,0 +1,10 @@
+.. _vandg4:
+
+********************************************************************************
+van der Grinten IV
+********************************************************************************
+
+.. image:: ./images/vandg4.png
+ :scale: 50%
+ :alt: van der Grinten IV
+
diff --git a/docs/source/operations/projections/vitk1.rst b/docs/source/operations/projections/vitk1.rst
new file mode 100644
index 00000000..b9081547
--- /dev/null
+++ b/docs/source/operations/projections/vitk1.rst
@@ -0,0 +1,10 @@
+.. _vitk1:
+
+********************************************************************************
+Vitkovsky I
+********************************************************************************
+
+.. image:: ./images/vitk1.png
+ :scale: 50%
+ :alt: Vitkovsky I
+
diff --git a/docs/source/operations/projections/wag1.rst b/docs/source/operations/projections/wag1.rst
new file mode 100644
index 00000000..dd1ed39e
--- /dev/null
+++ b/docs/source/operations/projections/wag1.rst
@@ -0,0 +1,10 @@
+.. _wag1:
+
+********************************************************************************
+Wagner I (Kavraisky VI)
+********************************************************************************
+
+.. image:: ./images/wag1.png
+ :scale: 50%
+ :alt: Wagner I (Kavraisky VI)
+
diff --git a/docs/source/operations/projections/wag2.rst b/docs/source/operations/projections/wag2.rst
new file mode 100644
index 00000000..9c7b0edc
--- /dev/null
+++ b/docs/source/operations/projections/wag2.rst
@@ -0,0 +1,18 @@
+.. _wag2:
+
+********************************************************************************
+Wagner II
+********************************************************************************
+
+.. image:: ./images/wag2.png
+ :scale: 50%
+ :alt: Wagner II
+
+
+.. math::
+
+ x &= 0.92483 \lambda \cos \theta
+
+ y &= 1.38725\theta
+
+ \sin \theta &= 0.88022 \sin(0.8855\phi)
diff --git a/docs/source/operations/projections/wag3.rst b/docs/source/operations/projections/wag3.rst
new file mode 100644
index 00000000..fb70a0a6
--- /dev/null
+++ b/docs/source/operations/projections/wag3.rst
@@ -0,0 +1,16 @@
+.. _wag3:
+
+********************************************************************************
+Wagner III
+********************************************************************************
+
+.. image:: ./images/wag3.png
+ :scale: 50%
+ :alt: Wagner III
+
+
+.. math::
+
+ x &= [\cos\phi_{ts} / \cos ( 2\phi_{ts} / 3)] \lambda \cos (2\phi /3)
+
+ y = \phi
diff --git a/docs/source/operations/projections/wag4.rst b/docs/source/operations/projections/wag4.rst
new file mode 100644
index 00000000..7b8dac96
--- /dev/null
+++ b/docs/source/operations/projections/wag4.rst
@@ -0,0 +1,10 @@
+.. _wag4:
+
+********************************************************************************
+Wagner IV
+********************************************************************************
+
+.. image:: ./images/wag4.png
+ :scale: 50%
+ :alt: Wagner IV
+
diff --git a/docs/source/operations/projections/wag5.rst b/docs/source/operations/projections/wag5.rst
new file mode 100644
index 00000000..f880290b
--- /dev/null
+++ b/docs/source/operations/projections/wag5.rst
@@ -0,0 +1,10 @@
+.. _wag5:
+
+********************************************************************************
+Wagner V
+********************************************************************************
+
+.. image:: ./images/wag5.png
+ :scale: 50%
+ :alt: Wagner V
+
diff --git a/docs/source/operations/projections/wag6.rst b/docs/source/operations/projections/wag6.rst
new file mode 100644
index 00000000..f74749a5
--- /dev/null
+++ b/docs/source/operations/projections/wag6.rst
@@ -0,0 +1,10 @@
+.. _wag6:
+
+********************************************************************************
+Wagner VI
+********************************************************************************
+
+.. image:: ./images/wag6.png
+ :scale: 50%
+ :alt: Wagner VI
+
diff --git a/docs/source/operations/projections/wag7.rst b/docs/source/operations/projections/wag7.rst
new file mode 100644
index 00000000..be1401b8
--- /dev/null
+++ b/docs/source/operations/projections/wag7.rst
@@ -0,0 +1,10 @@
+.. _wag7:
+
+********************************************************************************
+Wagner VII
+********************************************************************************
+
+.. image:: ./images/wag7.png
+ :scale: 50%
+ :alt: Wagner VII
+
diff --git a/docs/source/operations/projections/weren.rst b/docs/source/operations/projections/weren.rst
new file mode 100644
index 00000000..de7c5abf
--- /dev/null
+++ b/docs/source/operations/projections/weren.rst
@@ -0,0 +1,10 @@
+.. _weren:
+
+********************************************************************************
+Werenskiold I
+********************************************************************************
+
+.. image:: ./images/weren.png
+ :scale: 50%
+ :alt: Werenskiold I
+
diff --git a/docs/source/operations/projections/wink1.rst b/docs/source/operations/projections/wink1.rst
new file mode 100644
index 00000000..00346765
--- /dev/null
+++ b/docs/source/operations/projections/wink1.rst
@@ -0,0 +1,10 @@
+.. _wink1:
+
+********************************************************************************
+Winkel I
+********************************************************************************
+
+.. image:: ./images/wink1.png
+ :scale: 50%
+ :alt: Winkel I
+
diff --git a/docs/source/operations/projections/wink2.rst b/docs/source/operations/projections/wink2.rst
new file mode 100644
index 00000000..7e9b48a7
--- /dev/null
+++ b/docs/source/operations/projections/wink2.rst
@@ -0,0 +1,10 @@
+.. _wink2:
+
+********************************************************************************
+Winkel II
+********************************************************************************
+
+.. image:: ./images/wink2.png
+ :scale: 50%
+ :alt: Winkel II
+
diff --git a/docs/source/operations/projections/wintri.rst b/docs/source/operations/projections/wintri.rst
new file mode 100644
index 00000000..bfd5032f
--- /dev/null
+++ b/docs/source/operations/projections/wintri.rst
@@ -0,0 +1,10 @@
+.. _wintri:
+
+********************************************************************************
+Winkel Tripel
+********************************************************************************
+
+.. image:: ./images/wintri.png
+ :scale: 50%
+ :alt: Winkel Tripel
+
diff --git a/docs/source/operations/transformations/deformation.rst b/docs/source/operations/transformations/deformation.rst
new file mode 100644
index 00000000..2489f18e
--- /dev/null
+++ b/docs/source/operations/transformations/deformation.rst
@@ -0,0 +1,148 @@
+.. _deformation:
+
+================================================================================
+Kinematic datum shifting utilizing a deformation model
+================================================================================
+
+Perform datum shifts means of a deformation/velocity model.
+
++-----------------+--------------------------------------------------------------------+
+| **Input type** | Cartesian coordinates. |
++-----------------+--------------------------------------------------------------------+
+| **Output type** | Cartesian coordinates. |
++-----------------+--------------------------------------------------------------------+
+| **Options** |
++-----------------+--------------------------------------------------------------------+
+| `xy_grids` | Comma-separated list of grids to load. |
++-----------------+--------------------------------------------------------------------+
+| `z_grids` | Comma-separated list of grids to load. |
++-----------------+--------------------------------------------------------------------+
+| `t_epoch` | Central epoch of transformation. [decimalyear]. Only used in |
+| | spatiotemporal transformations. |
++-----------------+--------------------------------------------------------------------+
+| `t_obs` | Observation time of coordinate(s). Mostly useful in 2D and 3D |
+| | transformations. [decimalyear]. *Optional*. |
++-----------------+--------------------------------------------------------------------+
+
+The deformation operation is used to adjust coordinates for intraplate deformations.
+Usually the transformation parameters for regional plate-fixed reference frames such as
+the ETRS89 does not take intraplate deformation into account. It is assumed that
+tectonic plate of the region is rigid. Often times this is true, but near the plate
+boundary and in areas with post-glacial uplift the assumption breaks. Tntraplate
+deformations can be modelled and then applied to the coordinates so that
+they represent the physical world better. In PROJ this is done with the deformation
+operation.
+
+The horizontal grid is stored in CTable2 format and the vertical grid is stored in the
+GTX format. Both grids are expected to contain grid-values in units of mm/year.
+Details about the formats can be found in the GDAL documentation. GDAL both reads and
+writes both file formats. Using GDAL for construction of new grids is recommended.
+
+Example
+-------------------------------------------------------------------------------
+
+In [Häkli2016]_ coordinate transformation including a deformation model is described.
+The paper describes how coordinates from the global ITRFxx frames are transformed to the
+local Nordic realisations of ERTS89. Scandinavia is an area with significant post-glacial
+rebound. The deformations from the post-glacial uplift is not accounted for in the
+offcial ETRS89 transformations so in order to get accurate transformations in the Nordic
+countries it is necesarry to apply the deformation model. The transformation from ITRF2008
+to the Danish realisation of ETRS89 is in PROJ described as::
+
+ proj = pipeline ellps = GRS80
+ # ITRF2008@t_obs -> ITRF2000@t_obs
+ step init = ITRF2008:ITRF2000
+ # ITRF2000@t_obs -> ETRF2000@t_obs
+ step proj=helmert t_epoch = 2000.0 transpose
+ x = 0.054 rx = 0.000891 drx = 8.1e-05
+ y = 0.051 ry = 0.00539 dry = 0.00049
+ z = -0.048 rz = -0.008712 drz = -0.000792
+ # ETRF2000@t_obs -> NKG_ETRF00@2000.0
+ step proj = deformation t_epoch = 2000.0
+ xy_grids = ./nkgrf03vel_realigned_xy.ct2
+ z_grids = ./nkgrf03vel_realigned_z.gtx
+ # NKG_ETRF@2000.0 -> ETRF92@2000.0
+ step proj=helmert transpose s = -0.009420e
+ x = 0.03863 rx = 0.00617753
+ y = 0.147 ry = 5.064e-05
+ z = 0.02776 rz = 4.729e-05
+ # ETRF92@2000.0 -> ETRF92@1994.704
+ step proj = deformation t_epoch = 1994.704 t_obs = 2000.0
+ xy_grids = ./nkgrf03vel_realigned_xy.ct2
+ z_grids = ./nkgrf03vel_realigned_z.gtx
+
+From this we can see that the transformation from ITRF2008 to the Danish realisation of
+ETRS89 is a combination of Helmert transformations and adjustments with a deformation
+model. The first use of the deformation operation is::
+
+ proj = deformation t_epoch = 2000.0
+ xy_grids = ./nkgrf03vel_realigned_xy.ct2
+ z_grids = ./nkgrf03vel_realigned_z.gtx
+
+Here we set the central epoch of the transformation, 2000.0. The observation epoch
+is expected as part of the input coordinate tuple. The deformation model is
+described by two grids, specified with *xy_grids* and *z_grids*. The first is
+the horizontal part of the model and the second is the vertical component.
+
+Mathematical description
+-------------------------------------------------------------------------------
+
+Mathematically speaking, application of a deformation model is simple. The deformation model is
+represented as a grid of velocities in three dimensions. Coordinate corrections are
+applied in cartesian space. For a given coordinate, :math:`(X, Y, Z)`, velocities
+:math:`(V_X, V_Y, V_Z)` can be interpolated from the gridded model. The time span
+between :math:`t_c` and :math:`t_{obs}` determine the magnitude of the coordinate
+correcton as seen in eq. :eq:`apply_velocity` below.
+
+.. math::
+ :label: apply_velocity
+
+ \begin{align}
+ \begin{pmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{pmatrix}_B =
+ \begin{pmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{pmatrix}_A +
+ (t_c - t_{obs})
+ \begin{pmatrix}
+ V_X \\
+ V_Y \\
+ V_Z \\
+ \end{pmatrix}
+ \end{align}
+
+Corrections are done in cartesian space.
+
+Coordinates of the gridded model are in ENU (east, north, up) space because it would
+otherwise require an enormous 3 dimensional grid to handle the corrections in cartesian
+space. Keeping the correction in lat/long space reduces the complexity of the grid
+significantly. Consequentyly though, the input coordinates needs to be converted to
+lat/long space when searching for corrections in the grid. This is done with *cart*
+operation. The converted grid corrections can then be applied to the input coordinates
+in cartesian space. The conversion from ENU space to cartesian space is done in the
+following way:
+
+.. math::
+ :label: enu2xyz
+
+ \begin{align}
+ \begin{pmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{pmatrix} =
+ \begin{pmatrix}
+ -\sin\phi \cos\lambda N - \sin\lambda E + \cos\phi \cos\lambda U \\
+ -\sin\phi \sin\lambda N + \sin\lambda E + \cos\phi \sin\lambda U \\
+ \cos\phi N + \sin\phi U \\
+ \end{pmatrix}
+ \end{align}
+
+where :math:`\phi` and :math:`\lambda` are the latitude and longitude of the coordinate
+that is searched for in the grid. :math:`(E, N, U)` are the grid values in ENU-space and
+:math:`(X, Y, Z)` are the corrections converted to cartesian space.
diff --git a/docs/source/operations/transformations/helmert.rst b/docs/source/operations/transformations/helmert.rst
new file mode 100644
index 00000000..03e5db15
--- /dev/null
+++ b/docs/source/operations/transformations/helmert.rst
@@ -0,0 +1,388 @@
+.. _helmert:
+
+================================================================================
+Helmert transform
+================================================================================
+
+The Helmert transformation changes coordinates from one reference frame to
+anoether by means of 3-, 4-and 7-parameter shifts, or one of their 6-, 8- and
+14-parameter kinematic counterparts.
+
++-----------------+-------------------------------------------------------------------+
+| **Input type** | Cartesian coordinates (spatial), decimalyears (temporal). |
++-----------------+-------------------------------------------------------------------+
+| **Output type** | Cartesian coordinates (spatial), decimalyears (temporal). |
++-----------------+-------------------------------------------------------------------+
+| **Options** |
++----------------+--------------------------------------------------------------------+
+| `x` | Translation of the x-axis [m]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `y` | Translation of the y-axis [m]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `z` | Translation of the z-axis. [m]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `s` | Scale factor [ppm]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `rx` | X-axis rotation in the 3D Helmert [arc seconds]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `ry` | Y-axis rotatoin in the 3D Helmert [arc seconds]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `rz` | Z-axis rotation in the 3D Helmert [arc seconds]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `theta` | Rotation angle in the 2D Helmert. [arc seconds]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `dx` | Translation rate of the x-axis. [m/year]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `dy` | Translation rate of the y-axis. [m/year]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `dz` | Translation rate of the z-axis. [m/year]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `ds` | Scale rate factor [ppm/year]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `drx` | Rotation rate of the x-axis [arc seconds/year]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `dry` | Rotation rate of the y-axis [arc seconds/year]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `drz` | Rotation rate of the y-axis [arc seconds/year]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `t_epoch` | Central epoch of transformation. [decimalyear]. Only used in |
+| | spatiotemporal transformations. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `t_obs` | Observation time of coordinate(s). Mostly useful in 2D and 3D |
+| | transformations. [decimalyear]. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `exact` | Use exact transformation equations. *Optional*. |
++----------------+--------------------------------------------------------------------+
+| `transpose` | Transpose rotation matrix. *Optional*. |
++----------------+--------------------------------------------------------------------+
+
+The Helmert transform, in all it's various incarnations, is used to perform reference
+frame shifts. The transformation operates in cartesian space. It can be used to transform
+planar coordinates from one datum to another, transform 3D cartesian
+coordinates from one static reference frame to another or it can be used to do fully
+kinematic transformations from global reference frames to local static frames.
+
+All of the parameters described in the table above are marked as optional. This is true
+as long as at least one parameter is defined in the setup of the transformation.
+The behaviour of the transformation depends on which parameters are used in the setup.
+For instance, if a rate of change paramater is specified a kinematic version of the
+transformation is used.
+
+The kinematic transformations require an observation time of the coordinate, as well
+as a central epoch for the transformation. The latter is usually documented
+alongside the rest of the transformation parameters for a given transformation.
+The central eopch is controlled with the parameter `t_epoch`. The observation
+time can either by stated as part of the coordinate when using PROJ's
+4D-functionality or it can be controlled in the transformation setup by the
+parameter `t_obs`. When `t_obs` is specified, all transformed coordinates are
+treated as if they have the same observation time.
+
+Examples
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Transforming coordinates from NAD72 to NAD83 using the 4 parameter 2D Helmert:
+
+::
+
+ proj=helmert ellps=GRS80 x=-9597.3572 y=.6112
+ s=0.304794780637 theta=-1.244048
+
+Simplified transformations from ITRF2008/IGS08 to ETRS89 using 7 parameters:
+
+::
+
+ proj=helmert ellps=GRS80 x=0.67678 y=0.65495 z=-0.52827
+ rx=-0.022742 ry=0.012667 rz=0.022704 s=-0.01070
+
+Transformation from `ITRF2000@2017.0` to `ITRF93@2017.0` using 15 parameters:
+
+::
+
+ proj=helmert ellps=GRS80
+ x=0.0127 y=0.0065 z=-0.0209 s=0.00195
+ dx=-0.0029 dy=-0.0002 dz=-0.0006 ds=0.00001
+ rx=-0.00039 ry=0.00080 rz=-0.00114
+ drx=-0.00011 dry=-0.00019 drz=0.00007
+ epoch=1988.0 tobs=2017.0 transpose
+
+Mathematical description
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+In the notation used below, :math:`\hat{P}` is the rate of change of a given transformation
+parameter :math:`P`. :math:`\dot{P}` is the kinematically adjusted version of :math:`P`,
+described by
+
+.. math::
+ :label: propagation
+
+ \dot{P}= P + \hat{P}\left(t - t_{central}\right)
+
+where :math:`t` is the observation time of the coordinate and :math:`t_{central}` is
+the central epoch of the transformation. Equation :eq:`propagation` can be used to
+propagate all transformation parameters in time.
+
+Superscripts of vectors denote the reference frame the coordinates in the vector belong to.
+
+
+2D Helmert
+-------------------------------------------------------------------------------
+
+The simplest version of the Helmert transform is the 2D case. In the 2-dimensional
+case only the horizontal coordinates are changed. The coordinates can be
+translated, rotated and scale. Translation is controlled with the `x` and `y`
+parameters. The rotation is determined by `theta` and the scale is controlled with
+the `s` paramaters.
+
+.. note::
+
+ The scaling parameter `s` is unitless for the 2D Helmert, as opposed to the
+ 3D version where the scaling parameter is given in units of ppm.
+
+Mathematically the 2D Helmert is described as:
+
+.. math::
+ :label: 4param
+
+ \begin{align}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ \end{bmatrix}^B =
+ \begin{bmatrix}
+ T_x \\
+ T_y \\
+ \end{bmatrix} +
+ s
+ \begin{bmatrix}
+ \hphantom{-}\cos \theta & \sin \theta \\
+ -\sin \theta & \cos \theta \\
+ \end{bmatrix}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ \end{bmatrix}^A
+ \end{align}
+
+
+:eq:`4param` can be extended to a time-varying kinematic version by
+adjusting the parameters with :eq:`propagation` to :eq:`4param`, which yields
+the kinematic 2D Helmert transform:
+
+.. math::
+ :label: 8param
+
+ \begin{align}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ \end{bmatrix}^B =
+ \begin{bmatrix}
+ \dot{T_x} \\
+ \dot{T_y} \\
+ \end{bmatrix} +
+ s(t)
+ \begin{bmatrix}
+ \hphantom{-}\cos \dot{\theta} & \sin \dot{\theta} \\
+ -\sin\ \dot{\theta} & \cos \dot{\theta} \\
+ \end{bmatrix}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ \end{bmatrix}^A
+ \end{align}
+
+All parameters in :eq:`8param` are determined by the use of :eq:`propagation`,
+which applies the rate of change to each individual parameter for a given
+timespan between :math:`t` and :math:`t_{central}`.
+
+
+3D Helmert
+-------------------------------------------------------------------------------
+
+The general form of the 3D Helmert is
+
+.. math::
+ :label: general-helmert
+
+
+ \begin{align}
+ V^B = T + \left(1 + s \times 10^{-6}\right) \mathbf{R} V^A
+ \end{align}
+
+Where :math:`T` is a vector consisting of the three translation parameters, :math:`s`
+is the scaling factor and :math:`\mathbf{R}` is a rotation matrix. :math:`V^A` and
+:math:`V^B` are coordinate vectors, with :math:`V^A` being the input coordinate and
+:math:`V^B` is the output coordinate.
+
+The rotation matrix is composed of three rotation matrices, one for each axis:
+
+.. math::
+
+ \begin{align}
+ \mathbf{R}_X &= \begin{bmatrix} 1 & 0 & 0\\ 0 & \cos\phi & -\sin\phi\\ 0 & \sin\phi & \cos\phi \end{bmatrix}
+ \end{align}
+
+.. math::
+
+ \begin{align}
+ \mathbf{R}_Y &= \begin{bmatrix} \cos\theta & 0 & \sin\theta\\ 0 & 1 & 0\\ -\sin\theta & 0 & \cos\theta \end{bmatrix}
+ \end{align}
+
+.. math::
+
+ \begin{align}
+ \mathbf{R}_Z &= \begin{bmatrix} \cos\psi & -\sin\psi & 0\\ \sin\psi & \cos\psi & 0\\ 0 & 0 & 1 \end{bmatrix}
+ \end{align}
+
+The three rotation matrices can be combined in one:
+
+.. math::
+
+ \begin{align}
+ \mathbf{R} = \mathbf{R_X} \mathbf{R_Y} \mathbf{R_Y}
+ \end{align}
+
+For :math:`\mathbf{R}`, this yields:
+
+.. math::
+ :label: rot_exact
+
+ \begin{bmatrix}
+ \cos\theta \cos\psi & -\cos\phi \sin\psi + \sin\phi \sin\theta \cos\psi & \sin\phi \sin\psi + \cos\phi \sin\theta \cos\psi \\
+ \cos\theta\sin\psi & \cos\phi \cos\psi + \sin\phi \sin\theta \sin\psi & - \sin\phi \cos\psi + \cos\phi \sin\theta \sin\psi \\
+ -\sin\theta & \sin\phi \cos\theta & \cos\phi \cos\theta \\
+ \end{bmatrix}
+
+
+Using the small angle approxition the rotation matrix can be simplified to
+
+.. math::
+ :label: rot_approx
+
+ \begin{align} \mathbf{R} =
+ \begin{bmatrix}
+ 1 & -R_z & R_y \\
+ Rz & 1 & -R_x \\
+ -Ry & R_x & 1 \\
+ \end{bmatrix}
+ \end{align}
+
+Which allow us to express the most common version of the Helmert transform,
+using the approximated rotation matrix:
+
+
+.. math::
+ :label: 7param
+
+ \begin{align}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^B =
+ \begin{bmatrix}
+ T_x \\
+ T_y \\
+ T_z \\
+ \end{bmatrix} +
+ \left(1 + s \times 10^{-6}\right)
+ \begin{bmatrix}
+ 1 & -R_z & R_y \\
+ Rz & 1 & -R_x \\
+ -Ry & R_x & 1 \\
+ \end{bmatrix}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^A
+ \end{align}
+
+If the rotation matrix is transposed the transformation is effectively reversed.
+This is cause for some confusion since there is no correct way of defining the
+rotation matrix. Two conventions exists and they seem to be equally popular.
+In PROJ the rotation matrix can be transposed by adding the `transpose` flag in
+the transformation setup.
+
+Applying :eq:`propagation` we get the kinematic version of the approximated
+3D Helmert:
+
+.. math::
+ :label: 14param
+
+ \begin{align}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^B =
+ \begin{bmatrix}
+ \dot{T_x} \\
+ \dot{T_y} \\
+ \dot{T_z} \\
+ \end{bmatrix} +
+ \left(1 + \dot{s} \times 10^{-6}\right)
+ \begin{bmatrix}
+ 1 & -\dot{R_z} & \dot{R_y} \\
+ \dot{R_z} & 1 & -\dot{R_x} \\
+ -\dot{R_y} & \dot{R_x} & 1 \\
+ \end{bmatrix}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^A
+ \end{align}
+
+
+
+
+The Helmert transformation can be applied without using the rotation parameters,
+in which case it becomes a simlpe translation of the origin of the coordinate
+system. When using the Helmert in this version equation :eq:`general-helmert`
+simplies to:
+
+.. math::
+ :label: 3param
+
+ \begin{align}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^B =
+ \begin{bmatrix}
+ T_x \\
+ T_y \\
+ T_z \\
+ \end{bmatrix} +
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^A
+ \end{align}
+
+That after application of :eq:`propagation` has the following kinematic
+countpart:
+
+.. math::
+ :label: 6param
+
+ \begin{align}
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^B =
+ \begin{bmatrix}
+ \dot{T_x} \\
+ \dot{T_y} \\
+ \dot{T_z} \\
+ \end{bmatrix} +
+ \begin{bmatrix}
+ X \\
+ Y \\
+ Z \\
+ \end{bmatrix}^A
+ \end{align}
diff --git a/docs/source/operations/transformations/hgridshift.rst b/docs/source/operations/transformations/hgridshift.rst
new file mode 100644
index 00000000..7f3c9895
--- /dev/null
+++ b/docs/source/operations/transformations/hgridshift.rst
@@ -0,0 +1,39 @@
+.. _hgridshift:
+
+================================================================================
+Horizontal grid shift
+================================================================================
+
+Change of horizontal datum by grid shift.
+
++-----------------+--------------------------------------------------------------------+
+| **Input type** | Geodetic coordinates. |
++-----------------+--------------------------------------------------------------------+
+| **Output type** | Geodetic coordinates. |
++-----------------+--------------------------------------------------------------------+
+| **Options** |
++-----------------+--------------------------------------------------------------------+
+| `+grids` | Comma-separated list of grids to load. |
++-----------------+--------------------------------------------------------------------+
+
+The horizontal grid shift is done by offsetting the planar input coordinates by
+a specific amount determined by the loaded grids. The simplest use case of the
+horizontal grid shift is applying a single grid::
+
+ +hgridshift +grids=nzgr2kgrid0005.gsb
+
+
+More than one grid can be loaded at the same time, for instance in case the
+dataset needs to be transformed spans several countries. In this example grids
+of the continental US, Alaska and Canada is loaded at the same time::
+
+ +hgridshift +grids=@conus,@alaska,@ntv2_0.gsb,@ntv_can.dat
+
+The ``@`` in the above example states that the grid is optional, in case the grid
+is not found in the PROJ search path. The list of grids is prioritized so that
+grids in the start of the list takes presedence over the grids in the back of the
+list.
+
+PROJ supports CTable2, NTv1 and NTv2 files for horizontal grid corrections. Details
+about all three formats can be found in the GDAL documentation. GDAL reads and
+writes all three formats. Using GDAL for construction of new grids is recommended.
diff --git a/docs/source/operations/transformations/index.rst b/docs/source/operations/transformations/index.rst
new file mode 100644
index 00000000..5112ffa2
--- /dev/null
+++ b/docs/source/operations/transformations/index.rst
@@ -0,0 +1,17 @@
+.. _transformation_list:
+
+================================================================================
+Transformations
+================================================================================
+
+Transformations coordinate operation in which the two coordinate reference
+systems are based on different datums.
+
+.. toctree::
+ :maxdepth: 1
+
+ deformation
+ helmert
+ molodensky
+ hgridshift
+ vgridshift
diff --git a/docs/source/operations/transformations/molodensky.rst b/docs/source/operations/transformations/molodensky.rst
new file mode 100644
index 00000000..d4ff3e79
--- /dev/null
+++ b/docs/source/operations/transformations/molodensky.rst
@@ -0,0 +1,74 @@
+.. _molodensky:
+
+================================================================================
+Molodensky transform
+================================================================================
+
+The Molodensky transformation resembles a :ref:`Helmert` with zero
+rotations and a scale of unity, but converts directly from geodetic coordinates to
+geodetic coordinates, without the intermediate shifts to and from cartesian
+geocentric coordinates, associated with the Helmert transformation.
+The Molodensky transformation is simple to implement and to parameterize, requiring
+only the 3 shifts between the input and output frame, and the corresponding
+differences between the semimajor axes and flattening parameters of the reference
+ellipsoids. Due to its algorithmic simplicity, it was popular prior to the
+ubiquity of digital computers. Today, it is mostly interesting for historical
+reasons, but nevertheless indispensable due to the large amount of data that has
+already been transformed that way [EversKnudsen2017]_.
+
++---------------------+----------------------------------------------------------+
+| **Input type** | Geodetic coordinates. |
++---------------------+----------------------------------------------------------+
+| **Output type** | Geodetic coordinates. |
++---------------------+----------------------------------------------------------+
+| **Options** |
++---------------------+----------------------------------------------------------+
+| `+da` | Difference in semimajor axis of the defining ellipsoids. |
++---------------------+----------------------------------------------------------+
+| `+df` | Difference in flattening of the defining ellipsoids. |
++---------------------+----------------------------------------------------------+
+| `+dx` | Offset of the X-axes of the defining ellipsoids. |
++---------------------+----------------------------------------------------------+
+| `+dy` | Offset of the Y-axes of the defining ellipsoids. |
++---------------------+----------------------------------------------------------+
+| `+dz` | Offset of the Z-axes of the defining ellipsoids. |
++---------------------+----------------------------------------------------------+
+| `+ellps` | Ellipsoid definition of source coordinates. |
+| | Any specification can be used (e.g. `+a`, `+rf`, etc). |
+|   | If not specified, default ellipsoid is used. |
++---------------------+----------------------------------------------------------+
+| `+abridged` | Use the abridged version of the Molodensky transform. |
+| | Optional. |
++---------------------+----------------------------------------------------------+
+
+The Molodensky transform can be used to perform a datum shift from coordinate
+:math:`(\phi_1, \lambda_1, h_1)` to :math:`(\phi_2, \lambda_2, h_2)` where the two
+coordinates are referenced to different ellipsoids. This is based on three
+assumptions:
+
+ 1. The cartesian axes, :math:`X, Y, Z`, of the two ellipsoids are parallel.
+ 2. The offset, :math:`\delta X, \delta Y, \delta Z`, between the two ellipsoid
+ are known.
+ 3. The characteristics of the two ellipsoids, expressed as the difference in
+ semimajor axis (:math:`\delta a`) and flattening (:math:`\delta f`), are known.
+
+The Molodensky transform is mostly used for transforming between old systems
+dating back to the time before computers. The advantage of the Molodensky transform
+is that it is fairly simple to compute by hand. The ease of computation come at the
+cost of limited accuracy.
+
+A derivation of the mathematical formulas for the Molodensky transform can be found
+in [Deakin2004]_.
+
+
+Examples
+###############################################################################
+
+The abridged Molodensky::
+
+ proj=molodensky a=6378160 rf=298.25 da=-23 df=-8.120449e-8 dx=-134 dy=-48 dz=149 abridged
+
+The same transformation using the standard Molodensky::
+
+ proj=molodensky a=6378160 rf=298.25 da=-23 df=-8.120449e-8 dx=-134 dy=-48 dz=149
+
diff --git a/docs/source/operations/transformations/vgridshift.rst b/docs/source/operations/transformations/vgridshift.rst
new file mode 100644
index 00000000..e9f78310
--- /dev/null
+++ b/docs/source/operations/transformations/vgridshift.rst
@@ -0,0 +1,41 @@
+.. _vgridshift:
+
+================================================================================
+Vertical grid shift
+================================================================================
+
+Change Vertical datum change by grid shift
+
++-----------------+--------------------------------------------------------------------+
+| **Input type** | Geodetic coordinates (horizontal), meters (vertical). |
++-----------------+--------------------------------------------------------------------+
+| **Output type** | Geodetic coordinates (horizontal), meters (vertical). |
++-----------------+--------------------------------------------------------------------+
+| **Options** |
++-----------------+--------------------------------------------------------------------+
+| `+grids` | Comma-separated list of grids to load. |
++-----------------+--------------------------------------------------------------------+
+
+The vertical grid shift is done by offsetting the vertical input coordinates by
+a specific amount determined by the loaded grids. The simplest use case of the
+horizontal grid shift is applying a single grid. Here we change the vertical
+reference from the ellipsoid to the global geoid model, EGM96::
+
+ +vgridshift +grids=egm96_16.gtx
+
+
+More than one grid can be loaded at the same time, for instance in the case where
+a better geoid model than the global is available for a certain area. Here the
+gridshift is set up so that the local DVR90 geoid model takes presedence over
+the global model::
+
+ +vgridshift +grids=@dvr90.gtx,egm96_16.gtx
+
+The ``@`` in the above example states that the grid is optional, in case the grid
+is not found in the PROJ search path. The list of grids is prioritized so that
+grids in the start of the list takes presedence over the grids in the back of the
+list.
+
+PROJ supports the GTX file format for vertical grid corrections. Details
+about all the format can be found in the GDAL documentation. GDAL both reads and
+writes the format. Using GDAL for construction of new grids is recommended.