aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2019-02-24 14:06:27 +0100
committerKristian Evers <kristianevers@gmail.com>2019-02-24 14:06:27 +0100
commit75a54f4f6c81ef6779378d00fd4dd6e9452e0da9 (patch)
tree9405d74c7a88c66039affba07c5fec156bc873d9
parent135612cf9051bae0010d63a83655751a871cead6 (diff)
parent49280e58edc3100359ac184d91fcea98d58fe2f7 (diff)
downloadPROJ-75a54f4f6c81ef6779378d00fd4dd6e9452e0da9.tar.gz
PROJ-75a54f4f6c81ef6779378d00fd4dd6e9452e0da9.zip
Merge remote-tracking branch 'osgeo/master' into 6.0
-rw-r--r--docs/plot/plotdefs.json11
-rw-r--r--docs/source/operations/projections/comill.rst46
-rw-r--r--docs/source/operations/projections/images/times.pngbin0 -> 421132 bytes
-rw-r--r--docs/source/operations/projections/index.rst6
-rw-r--r--docs/source/operations/projections/misrsom.rst36
-rw-r--r--docs/source/operations/projections/natearth2.rst49
-rw-r--r--docs/source/operations/projections/patterson.rst46
-rw-r--r--docs/source/operations/projections/sch.rst65
-rw-r--r--docs/source/operations/projections/times.rst43
-rw-r--r--docs/source/references.bib38
-rw-r--r--src/projections/sch.cpp2
-rw-r--r--test/cli/Makefile.am20
-rwxr-xr-xtest/cli/test277
-rwxr-xr-xtest/cli/test837
-rwxr-xr-xtest/cli/testIGNF3
-rwxr-xr-xtest/cli/testcct1
-rwxr-xr-xtest/cli/testdatumfile1
-rwxr-xr-xtest/cli/testflaky1
-rwxr-xr-xtest/cli/testntv21
-rwxr-xr-xtest/cli/testprojinfo1
-rwxr-xr-xtest/cli/testvarious3
21 files changed, 363 insertions, 24 deletions
diff --git a/docs/plot/plotdefs.json b/docs/plot/plotdefs.json
index daaf2ef8..8d763f0c 100644
--- a/docs/plot/plotdefs.json
+++ b/docs/plot/plotdefs.json
@@ -1233,6 +1233,17 @@
"type": "line"
},
{
+ "filename": "times.png",
+ "latmax": 90,
+ "latmin": -90,
+ "lonmax": 180,
+ "lonmin": -180,
+ "name": "times",
+ "projstring": "+proj=times",
+ "res": "low",
+ "type": "poly"
+ },
+ {
"filename": "tissot.png",
"latmax": 90,
"latmin": -90,
diff --git a/docs/source/operations/projections/comill.rst b/docs/source/operations/projections/comill.rst
new file mode 100644
index 00000000..94b2695c
--- /dev/null
+++ b/docs/source/operations/projections/comill.rst
@@ -0,0 +1,46 @@
+.. _comill:
+
+********************************************************************************
+Compact Miller
+********************************************************************************
+
+The Compact Miller projection is a cylindrical map projection with a
+height-to-width ratio of 0.6:1.
+
+See :cite:`Jenny2014`
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Cylindrical |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Alias** | comill |
++---------------------+----------------------------------------------------------+
+| **Domain** | 2D |
++---------------------+----------------------------------------------------------+
+| **Input type** | Geodetic coordinates |
++---------------------+----------------------------------------------------------+
+| **Output type** | Projected coordinates |
++---------------------+----------------------------------------------------------+
+
+.. figure:: ./images/comill.png
+ :width: 500 px
+ :align: center
+ :alt: Compact Miller
+
+ proj-string: ``+proj=comill``
+
+Parameters
+################################################################################
+
+.. note:: All parameters are optional for projection.
+
+.. include:: ../options/lon_0.rst
+
+.. include:: ../options/R.rst
+
+.. include:: ../options/x_0.rst
+
+.. include:: ../options/y_0.rst
diff --git a/docs/source/operations/projections/images/times.png b/docs/source/operations/projections/images/times.png
new file mode 100644
index 00000000..b7d9c481
--- /dev/null
+++ b/docs/source/operations/projections/images/times.png
Binary files differ
diff --git a/docs/source/operations/projections/index.rst b/docs/source/operations/projections/index.rst
index e6ec9076..c5b249c9 100644
--- a/docs/source/operations/projections/index.rst
+++ b/docs/source/operations/projections/index.rst
@@ -31,6 +31,7 @@ Projections map the spherical 3D space to a flat 2D space.
cea
chamb
collg
+ comill
crast
denoy
eck1
@@ -83,11 +84,13 @@ Projections map the spherical 3D space to a flat 2D space.
merc
mil_os
mill
+ misrsom
moll
murd1
murd2
murd3
natearth
+ natearth2
nell
nell_h
nicol
@@ -99,6 +102,7 @@ Projections map the spherical 3D space to a flat 2D space.
omerc
ortel
ortho
+ patterson
pconic
poly
putp1
@@ -115,6 +119,7 @@ Projections map the spherical 3D space to a flat 2D space.
robin
rouss
rpoly
+ sch
sinu
somerc
stere
@@ -122,6 +127,7 @@ Projections map the spherical 3D space to a flat 2D space.
gstmerc
tcc
tcea
+ times
tissot
tmerc
tobmerc
diff --git a/docs/source/operations/projections/misrsom.rst b/docs/source/operations/projections/misrsom.rst
new file mode 100644
index 00000000..bb738fa0
--- /dev/null
+++ b/docs/source/operations/projections/misrsom.rst
@@ -0,0 +1,36 @@
+.. _misrsom:
+
+********************************************************************************
+Space oblique for MISR
+********************************************************************************
+
+.. figure:: ./images/misrsom.png
+ :width: 500 px
+ :align: center
+ :alt: Space oblique for MISR
+
+ proj-string: ``+proj=misrsom +path=1``
+
+Parameters
+################################################################################
+
+Required
+--------------------------------------------------------------------------------
+
+.. option:: +path=<value>
+
+ Selected path of satellite. Value between 1 and 233.
+
+
+Optional
+--------------------------------------------------------------------------------
+
+.. include:: ../options/lon_0.rst
+
+.. include:: ../options/ellps.rst
+
+.. include:: ../options/R.rst
+
+.. include:: ../options/x_0.rst
+
+.. include:: ../options/y_0.rst
diff --git a/docs/source/operations/projections/natearth2.rst b/docs/source/operations/projections/natearth2.rst
new file mode 100644
index 00000000..ec33141d
--- /dev/null
+++ b/docs/source/operations/projections/natearth2.rst
@@ -0,0 +1,49 @@
+.. _natearth2:
+
+********************************************************************************
+Natural Earth II
+********************************************************************************
++---------------------+--------------------------------------------------------+
+| **Classification** | Pseudo cylindrical |
++---------------------+--------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+--------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+--------------------------------------------------------+
+| **Alias** | natearth2 |
++---------------------+--------------------------------------------------------+
+| **Domain** | 2D |
++---------------------+--------------------------------------------------------+
+| **Input type** | Geodetic coordinates |
++---------------------+--------------------------------------------------------+
+| **Output type** | Projected coordinates |
++---------------------+--------------------------------------------------------+
+
+
+
+.. figure:: ./images/natearth2.png
+ :width: 500 px
+ :align: center
+ :alt: Natural Earth II
+
+ proj-string: ``+proj=natearth2``
+
+The Natural Earth II projection is intended for making world maps. At high
+latitudes, meridians bend steeply toward short pole lines resulting in a map
+with highly rounded corners that resembles an elongated globe
+
+See :cite:`Savric2016`
+
+
+Parameters
+################################################################################
+
+.. note:: All parameters for the projection are optional.
+
+.. include:: ../options/lon_0.rst
+
+.. include:: ../options/R.rst
+
+.. include:: ../options/x_0.rst
+
+.. include:: ../options/y_0.rst
diff --git a/docs/source/operations/projections/patterson.rst b/docs/source/operations/projections/patterson.rst
new file mode 100644
index 00000000..11211a5f
--- /dev/null
+++ b/docs/source/operations/projections/patterson.rst
@@ -0,0 +1,46 @@
+.. _patterson:
+
+********************************************************************************
+Patterson
+********************************************************************************
+
+The Patterson projection is a cylindrical map projection designed for
+general-purpose mapmaking.
+
+See :cite:`Patterson2015`
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Cylindrical |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Alias** | patterson |
++---------------------+----------------------------------------------------------+
+| **Domain** | 2D |
++---------------------+----------------------------------------------------------+
+| **Input type** | Geodetic coordinates |
++---------------------+----------------------------------------------------------+
+| **Output type** | Projected coordinates |
++---------------------+----------------------------------------------------------+
+
+.. figure:: ./images/patterson.png
+ :width: 500 px
+ :align: center
+ :alt: Patterson
+
+ proj-string: ``+proj=patterson``
+
+Parameters
+################################################################################
+
+.. note:: All parameters are optional for projection.
+
+.. include:: ../options/lon_0.rst
+
+.. include:: ../options/R.rst
+
+.. include:: ../options/x_0.rst
+
+.. include:: ../options/y_0.rst
diff --git a/docs/source/operations/projections/sch.rst b/docs/source/operations/projections/sch.rst
new file mode 100644
index 00000000..f987d75d
--- /dev/null
+++ b/docs/source/operations/projections/sch.rst
@@ -0,0 +1,65 @@
+.. _sch:
+
+********************************************************************************
+Spherical Cross-track Height
+********************************************************************************
++---------------------+--------------------------------------------------------+
+| **Classification** | Miscellaneous |
++---------------------+--------------------------------------------------------+
+| **Available forms** | Forward and inverse. |
++---------------------+--------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+--------------------------------------------------------+
+| **Alias** | sch |
++---------------------+--------------------------------------------------------+
+| **Domain** | 3D |
++---------------------+--------------------------------------------------------+
+| **Input type** | 3D coordinates |
++---------------------+--------------------------------------------------------+
+| **Output type** | Projected coordinates |
++---------------------+--------------------------------------------------------+
+
+ proj-string: ``+proj=sch +plat_0=XX +plon_0=XX +phdg_0=XX``
+
+The SCH coordinate system is a sensor aligned coordinate system developed at
+JPL (Jet Propulsion Laboratory) for radar mapping missions.
+
+See :cite:`Hensley2002`
+
+
+Parameters
+################################################################################
+
+Required
+-------------------------------------------------------------------------------
+
+.. option:: +plat_0=<value>
+
+ Peg latitude (in degree)
+
+.. option:: +plon_0=<value>
+
+ Peg longitude (in degree)
+
+.. option:: +phdg_0=<value>
+
+ Peg heading (in degree)
+
+Optional
+-------------------------------------------------------------------------------
+
+.. option:: +h_0=<value>
+
+ Average height (in metre)
+
+ *Defaults to 0.0.*
+
+.. include:: ../options/lon_0.rst
+
+.. include:: ../options/x_0.rst
+
+.. include:: ../options/y_0.rst
+
+.. include:: ../options/ellps.rst
+
+.. include:: ../options/R.rst
diff --git a/docs/source/operations/projections/times.rst b/docs/source/operations/projections/times.rst
new file mode 100644
index 00000000..33e12148
--- /dev/null
+++ b/docs/source/operations/projections/times.rst
@@ -0,0 +1,43 @@
+.. _times:
+
+********************************************************************************
+Times
+********************************************************************************
+
+See :cite:`Snyder1993`, p.213-214.
+
++---------------------+----------------------------------------------------------+
+| **Classification** | Cylindrical |
++---------------------+----------------------------------------------------------+
+| **Available forms** | Forward and inverse, spherical projection |
++---------------------+----------------------------------------------------------+
+| **Defined area** | Global |
++---------------------+----------------------------------------------------------+
+| **Alias** | times |
++---------------------+----------------------------------------------------------+
+| **Domain** | 2D |
++---------------------+----------------------------------------------------------+
+| **Input type** | Geodetic coordinates |
++---------------------+----------------------------------------------------------+
+| **Output type** | Projected coordinates |
++---------------------+----------------------------------------------------------+
+
+.. figure:: ./images/times.png
+ :width: 500 px
+ :align: center
+ :alt: Times
+
+ proj-string: ``+proj=times``
+
+Parameters
+################################################################################
+
+.. note:: All parameters are optional for projection.
+
+.. include:: ../options/lon_0.rst
+
+.. include:: ../options/R.rst
+
+.. include:: ../options/x_0.rst
+
+.. include:: ../options/y_0.rst
diff --git a/docs/source/references.bib b/docs/source/references.bib
index b36e1e2d..8a0de291 100644
--- a/docs/source/references.bib
+++ b/docs/source/references.bib
@@ -140,6 +140,24 @@
Doi = {10.5281/zenodo.32050}
}
+@Article{Hensley2002,
+ Title = {Improved Processing of AIRSAR Data Based on the GeoSAR Processor},
+ Author = {Scott Hensley and Elaine Chapin and Adam Freedman and Thierry Michel},
+ Journal = {Airsar earth science and applications workshop},
+ Year = {2002},
+ Url = {https://airsar.jpl.nasa.gov/documents/workshop2002/papers/T3.pdf}
+}
+
+@Article{Jenny2014,
+ Title = {A compromise aspect-adaptive cylindrical projection for world maps},
+ Author = {Bernhard Jenny, Bojan Šavrič, Tom Patterson},
+ Journal = {International Journal of Geographical Information Science},
+ Year = {2014},
+
+ Doi = {10.1080/13658816.2014.997734},
+ Url = {http://www.cartography.oregonstate.edu/pdf/2015_Jenny_etal_ACompromiseAspect-adaptiveCylindricalProjectionForWorldMaps.pdf}
+}
+
@Article{Karney2013,
Title = {Algorithms for geodesics},
Author = {C. F. F. Karney},
@@ -197,6 +215,16 @@
Url = {https://archive.org/details/DTIC_ADA026294}
}
+@Article{Patterson2015,
+ Title = {Introducing the Patterson Cylindrical Projection},
+ Author = {Tom Patterson, Bojan Šavrič, Bernhard Jenny},
+ Journal = {Cartographic Perspectives},
+ Year = {2015},
+ Number = {78},
+
+ Doi = {10.14714/CP78.1270}
+}
+
@article{Ruffhead2016,
author = {A. C. Ruffhead},
title = {Introduction to multiple regression equations in datum transformations and their reversibility},
@@ -216,6 +244,16 @@
Year = {1993}
}
+@Article{Savric2016,
+ Title = {The Natural Earth II world map projection},
+ Author = {Bojan Šavrič, Tom Patterson, Bernhard Jenny},
+ Journal = {International Journal of Geographical Information Science},
+ Year = {2016},
+
+ Doi = {10.1080/23729333.2015.1093312},
+ Url = {http://berniejenny.info/pdf/2016_Savric_etal_NaturalEarthII.pdf}
+}
+
@Article{Savric2018,
Author = {B. Šavrič and T. Patterson and B. Jenny},
Title = {The Equal Earth map projection},
diff --git a/src/projections/sch.cpp b/src/projections/sch.cpp
index f4c66688..c6fb6145 100644
--- a/src/projections/sch.cpp
+++ b/src/projections/sch.cpp
@@ -215,7 +215,7 @@ PJ *PROJECTION(sch) {
return pj_default_destructor(P, PJD_ERR_FAILED_TO_FIND_PROJ);
}
- /* Check if peg latitude is defined */
+ /* Check if peg heading is defined */
if (pj_param(P->ctx, P->params, "tphdg_0").i)
Q->phdg = pj_param(P->ctx, P->params, "rphdg_0").f;
else {
diff --git a/test/cli/Makefile.am b/test/cli/Makefile.am
index c0bc0871..47cb1e7f 100644
--- a/test/cli/Makefile.am
+++ b/test/cli/Makefile.am
@@ -1,5 +1,5 @@
# Executables paths passed to test scripts
-DATAPATH = ../../data
+PROJ_LIB ?= ../../data
THIS_DIR = $(top_srcdir)/test/cli
EXEPATH = ../../src
PROJEXE = $(EXEPATH)/proj
@@ -27,7 +27,7 @@ EXTRA_DIST = pj_out27.dist pj_out83.dist td_out.dist \
CMakeLists.txt
testprojinfo-check:
- PROJ_LIB=$(DATAPATH) $(TESTPROJINFO) $(PROJINFOEXE)
+ PROJ_LIB=$(PROJ_LIB) $(TESTPROJINFO) $(PROJINFOEXE)
test27-check:
$(TEST27) $(PROJEXE)
@@ -36,24 +36,24 @@ test83-check:
$(TEST83) $(PROJEXE)
testvarious-check:
- PROJ_LIB=$(DATAPATH) $(TESTVARIOUS) $(CS2CSEXE)
+ PROJ_LIB=$(PROJ_LIB) $(TESTVARIOUS) $(CS2CSEXE)
testdatumfile-check:
- @if [ -f $(DATAPATH)/conus -a -f $(DATAPATH)/ntv1_can.dat -a -f $(DATAPATH)/MD -a -f $(DATAPATH)/ntf_r93.gsb ]; then \
- PROJ_LIB=$(DATAPATH) $(TESTDATUMFILE) $(CS2CSEXE) ; \
+ @if [ -f $(PROJ_LIB)/conus -a -f $(PROJ_LIB)/ntv1_can.dat -a -f $(PROJ_LIB)/MD -a -f $(PROJ_LIB)/ntf_r93.gsb ]; then \
+ PROJ_LIB=$(PROJ_LIB) $(TESTDATUMFILE) $(CS2CSEXE) ; \
fi
testign-check:
- @if [ -f $(DATAPATH)/ntf_r93.gsb ] ; then \
- PROJ_LIB=$(DATAPATH) $(TESTIGN) $(CS2CSEXE) ; \
+ @if [ -f $(PROJ_LIB)/ntf_r93.gsb ] ; then \
+ PROJ_LIB=$(PROJ_LIB) $(TESTIGN) $(CS2CSEXE) ; \
fi
testntv2-check:
- @if [ -f $(DATAPATH)/ntv2_0.gsb ] ; then \
- PROJ_LIB=$(DATAPATH) $(TESTNTV2) $(CS2CSEXE) ; \
+ @if [ -f $(PROJ_LIB)/ntv2_0.gsb ] ; then \
+ PROJ_LIB=$(PROJ_LIB) $(TESTNTV2) $(CS2CSEXE) ; \
fi
testcct-check:
- PROJ_LIB=$(DATAPATH) $(TESTCCT) $(CCTEXE)
+ PROJ_LIB=$(PROJ_LIB) $(TESTCCT) $(CCTEXE)
check-local: testprojinfo-check test27-check test83-check testvarious-check testdatumfile-check testign-check testntv2-check testcct-check
diff --git a/test/cli/test27 b/test/cli/test27
index 43c060d8..421f9044 100755
--- a/test/cli/test27
+++ b/test/cli/test27
@@ -7,7 +7,6 @@
# Mercator due to greater precision of meridional distance function.
#
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
@@ -26,12 +25,16 @@ if test ! -x ${EXE}; then
exit 1
fi
+if test -z "${PROJ_LIB}"; then
+ export PROJ_LIB="`dirname $0`/../../data"
+fi
+
echo "============================================"
echo "Running ${0} using ${EXE}:"
echo "============================================"
OUT=proj_out27
-INIT_FILE=${DATA_DIR}/nad27
+INIT_FILE=${PROJ_LIB}/nad27
#
echo "doing tests into file ${OUT}, please wait"
#
diff --git a/test/cli/test83 b/test/cli/test83
index 82b491a7..59793870 100755
--- a/test/cli/test83
+++ b/test/cli/test83
@@ -8,7 +8,6 @@
# Mercator due to greater precision of meridional distance function.
#
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
@@ -27,12 +26,16 @@ if test ! -x ${EXE}; then
exit 1
fi
+if test -z "${PROJ_LIB}"; then
+ export PROJ_LIB="`dirname $0`/../../data"
+fi
+
echo "============================================"
echo "Running ${0} using ${EXE}:"
echo "============================================"
OUT=proj_out83
-INIT_FILE=${DATA_DIR}/nad83
+INIT_FILE=${PROJ_LIB}/nad83
#
echo "doing tests into file ${OUT}, please wait"
#
diff --git a/test/cli/testIGNF b/test/cli/testIGNF
index 0fa04e84..2b2d5a57 100755
--- a/test/cli/testIGNF
+++ b/test/cli/testIGNF
@@ -12,7 +12,6 @@
# the gsb grid is still ok
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
@@ -32,7 +31,7 @@ if test ! -x ${EXE}; then
fi
if test -z "${PROJ_LIB}"; then
- export PROJ_LIB=${DATA_DIR}
+ export PROJ_LIB="`dirname $0`/../../data"
fi
echo "============================================"
diff --git a/test/cli/testcct b/test/cli/testcct
index 93749052..3fb0dd95 100755
--- a/test/cli/testcct
+++ b/test/cli/testcct
@@ -2,7 +2,6 @@
# Test cct
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
diff --git a/test/cli/testdatumfile b/test/cli/testdatumfile
index e8995150..27c39840 100755
--- a/test/cli/testdatumfile
+++ b/test/cli/testdatumfile
@@ -4,7 +4,6 @@
#
#
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
diff --git a/test/cli/testflaky b/test/cli/testflaky
index af56a9cd..0b823cf6 100755
--- a/test/cli/testflaky
+++ b/test/cli/testflaky
@@ -4,7 +4,6 @@
#
#
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
diff --git a/test/cli/testntv2 b/test/cli/testntv2
index e82026fc..50b5d0ca 100755
--- a/test/cli/testntv2
+++ b/test/cli/testntv2
@@ -4,7 +4,6 @@
#
#
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
diff --git a/test/cli/testprojinfo b/test/cli/testprojinfo
index 08ec9ce4..244e1bd5 100755
--- a/test/cli/testprojinfo
+++ b/test/cli/testprojinfo
@@ -2,7 +2,6 @@
# Test projinfo
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
diff --git a/test/cli/testvarious b/test/cli/testvarious
index c1fa61df..43b1f63c 100755
--- a/test/cli/testvarious
+++ b/test/cli/testvarious
@@ -4,7 +4,6 @@
#
#
TEST_CLI_DIR=`dirname $0`
-DATA_DIR=`dirname $0`/../../data
EXE=$1
usage()
@@ -24,7 +23,7 @@ if test ! -x ${EXE}; then
fi
if test -z "${PROJ_LIB}"; then
- export PROJ_LIB=$DATA_DIR
+ export PROJ_LIB="`dirname $0`/../../data"
fi
# Would be great to have a universale way of selecting a locale with