Compare commits

...
110 Commits
Author SHA1 Message Date
Mike Taves 445ad0cb9c ReadTheDocs: fix branch ref, improve skipping pattern [ci skip] 2023-01-25 23:01:39 +13:00
Mike Taves 3298856adb ReadTheDocs: update output directory for artefacts, other updates 2023-01-25 14:37:33 +13:00
Mike Taves 41011f93be DOC: add TOC to PDF contents, use 1-column index to prevent overprinting (#3475) 2023-01-13 14:49:35 +13:00
Mike Taves af6eaeaa89 Implement ReadTheDocs for 9.0, disable other CI workflows (#3554) 2023-01-13 13:29:05 +13:00
Kristian Evers ba7fd762e3 Stop building website from 9.0 branch 2022-09-01 16:42:56 +02:00
Michael Sumner 0ba73a9143 Update ellipsoids.rst: typo (#3275) 2022-08-03 13:39:40 +12:00
Even Rouault fcb192be03 Merge pull request #3259 from agiudiceandrea/patch-1
Doc: update OSGeo4W installation instructions for Windows
2022-07-13 18:16:21 +02:00
Andrea Giudiceandrea 8d3951faf9 Doc: update OSGeo4W installation instructions 2022-07-13 16:30:43 +02:00
Even Rouault 764e4fa0e0 Merge pull request #3245 from OSGeo/revert-3092-backport-3081-to-9.0
Revert "[Backport 9.0] Use CMAKE_INSTALL_MANDIR to override default"
2022-07-02 16:28:04 +02:00
Mike Taves 5b605e70fd Revert "Use CMAKE_INSTALL_MANDIR to override default (#3081) (#3092)"
This reverts commit 840a723c99.
2022-07-02 19:40:54 +12:00
github-actions[bot]andEven Rouault 7524cb6978 Merge pull request #3243 from visr/patch-1 (#3244)
Julia package renamed from Proj4.jl to Proj.jl

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2022-07-02 12:34:34 +12:00
Even Rouault 2a62943a6b Doc: fix news.rst 2022-06-19 15:53:57 +02:00
Kristian Evers f60fd03744 Update website for 9.0.1 release 2022-06-15 16:33:25 +02:00
Mike Taves d6990e9574 Fix typo in NEWS: Greenwhich->Greenwich 2022-06-09 16:21:57 +12:00
Kristian Evers a2d3c39661 Merge pull request #3225 from sebastic/soversion
Revert SOVERSION back to 25.
2022-06-08 19:15:35 +02:00
Bas Couwenberg 544eb6bba2 Revert SOVERSION back to 25. 2022-06-08 18:37:26 +02:00
Kristian Evers 0b2d36424c Update PROJ-data version in database 2022-06-07 21:28:46 +02:00
Kristian Evers 1ce7daee0c Update NEWS for 9.0.1 2022-06-07 21:02:34 +02:00
Kristian Evers 30ca9f9470 Update man-pages from Sphinx-docs 2022-06-07 21:01:38 +02:00
Kristian Evers cf1c627dc7 Update ABI and API numbers for 9.0.1 release 2022-06-07 20:39:44 +02:00
Even Rouault 81a726c880 Merge pull request #3224 from OSGeo/backport-3222-to-9.0
[Backport 9.0] Doc: fix build issue with Sphinx 5.0
2022-06-05 21:52:18 +02:00
Even Rouault cbac7de90a Merge pull request #3222 from rouault/sphinx_5_compat
Doc: fix build issue with Sphinx 5.0
2022-06-05 19:42:45 +00:00
Even Rouault 641e1082bc Merge pull request #3223 from OSGeo/backport-3221-to-9.0
[Backport 9.0] PROJJSON parser: do not error out if a datum ensemble member is unknown in the database
2022-06-05 21:38:08 +02:00
Even Rouault 6c0ca060cd Merge pull request #3221 from rouault/projjson_unknown_member
PROJJSON parser: do not error out if a datum ensemble member is unknown in the database
2022-06-05 18:14:10 +00:00
Even Rouault 6833956600 Merge pull request #3218 from OSGeo/backport-3214-to-9.0
[Backport 9.0] PROJJSON spec: mention the intentional lack of axis order member
2022-06-02 19:45:13 +02:00
Even Rouault c90d44ae4f Merge pull request #3214 from rouault/projjson_no_order
PROJJSON spec: mention the intentional lack of axis order member
2022-06-01 12:40:26 +00:00
Even Rouault bcab1d5cd6 Merge pull request #3213 from OSGeo/rouault-patch-1
projjson.rst: formatting fix
2022-05-27 15:37:26 +02:00
Even Rouault 99ffd3c609 projjson.rst: formatting fix 2022-05-26 22:50:55 +02:00
Even Rouault 63ad2e73be Merge pull request #3212 from OSGeo/backport-3211-to-9.0
[Backport 9.0] WKT import: correctly deal with absence of Latitude_Of_Origin parameter in WKT1 ESRI with Stereographic projection (fixes #3210)
2022-05-24 11:50:37 +02:00
Even Rouault 39cd88063a Merge pull request #3211 from rouault/fix_3210
WKT import: correctly deal with absence of Latitude_Of_Origin parameter in WKT1 ESRI with Stereographic projection (fixes #3210)
2022-05-23 22:17:35 +00:00
Even Rouault 3a7bdcb28d Merge pull request #3208 from OSGeo/backport-3207-to-9.0
[Backport 9.0] Database: update to EPSG 10.064
2022-05-19 23:49:47 +02:00
Even Rouault a3286f4f46 Merge pull request #3207 from rouault/epsg_10_064
Database: update to EPSG 10.064
2022-05-19 09:25:53 +00:00
Even Rouault a0977a3e9a Merge pull request #3205 from OSGeo/backport-3204-to-9.0
[Backport 9.0] projjson.rst: formatting fix
2022-05-16 22:02:03 +02:00
Even Rouault 667d31ec19 Merge pull request #3204 from OSGeo/rouault-patch-1
projjson.rst: formatting fix
2022-05-16 19:56:16 +00:00
Even Rouault 6da2e58806 docs/source/conf.py: update github_version 2022-05-16 21:40:08 +02:00
Even Rouault 3a223d9ce5 Merge pull request #3203 from OSGeo/backport-3202-to-9.0
[Backport 9.0] Identifier::isEquivalentName(): fix when ending by ' + ' which could …
2022-05-16 19:23:47 +02:00
Even Rouault 31631f17d9 Merge pull request #3202 from rouault/fix_ossfuzz_47475
Identifier::isEquivalentName(): fix when ending by ' + ' which could …
2022-05-16 16:54:38 +00:00
Even Rouault c58e68d28f Merge pull request #3199 from OSGeo/backport-3193-to-9.0
[Backport 9.0] createOperations(): fix/improve result of 'BD72 + Ostend height ' to 'WGS84+EGM96 height' (fixes #3191)
2022-05-13 22:01:30 +02:00
Even Rouault 3c5ef75881 Merge pull request #3193 from rouault/fix_3191
createOperations(): fix/improve result of 'BD72 + Ostend height ' to 'WGS84+EGM96 height' (fixes #3191)
2022-05-13 19:48:34 +00:00
Even Rouault 5f7e401ed2 Merge pull request #3198 from OSGeo/backport-3190-to-9.0
[Backport 9.0] Doc: enhance PROJJSON specification
2022-05-13 21:21:37 +02:00
Even Rouault 346f669ec6 Doc: enhance PROJJSON specification (#3190) 2022-05-13 13:14:00 +00:00
Even Rouault fbeb21b7fc Merge pull request #3196 from OSGeo/backport-3195-to-9.0
[Backport 9.0] Doc: mentions that Winkel Tripel has inverse method (fixes #3179)
2022-05-13 15:12:05 +02:00
Even Rouault fa3b9cbcc8 Merge pull request #3195 from rouault/fix_3179
Doc: mentions that Winkel Tripel has inverse method (fixes #3179)
2022-05-13 09:21:06 +00:00
Even Rouault a8b6143574 Merge pull request #3189 from OSGeo/backport-3188-to-9.0
[Backport 9.0] WKT import: deal with Projected CRS that is a mix of WKT1:GDAL / WKT1:ESRI (fixes #3186)
2022-05-10 22:01:12 +02:00
Even Rouault be05f52fa4 Merge pull request #3188 from rouault/fix_3186
WKT import: deal with Projected CRS that is a mix of WKT1:GDAL / WKT1:ESRI (fixes #3186)
2022-05-10 13:36:50 +00:00
Even Rouault 6c622c65cc Merge pull request #3187 from OSGeo/backport-3184-to-9.0
[Backport 9.0] Database: update to EPSG 10.063
2022-05-10 13:01:03 +02:00
Even Rouault c3748bfce0 Merge pull request #3184 from rouault/epsg_10_063
Database: update to EPSG 10.063
2022-05-10 10:05:49 +00:00
Even Rouault 717f3cbee5 Merge pull request #3185 from OSGeo/backport-3172-to-9.0
[Backport 9.0] Fix cmake CURL dependency, update appveyor - vcpkg interaction
2022-05-10 12:04:32 +02:00
Even Rouault 1f266f3af5 Merge pull request #3172 from dg0yt/appveyor-vcpkg
Fix cmake CURL dependency, update appveyor - vcpkg interaction
2022-05-08 22:22:53 +00:00
github-actions[bot]andEven Rouault a0c7555248 Merge pull request #3181 from rouault/fix_doc_build (#3182)
CI: fix doc_build job

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2022-05-05 11:30:19 +12:00
Even Rouault 9d4aa1fbd3 Merge pull request #3167 from OSGeo/backport-3166-to-9.0
[Backport 9.0] Database: update to EPSG v10.059
2022-04-17 03:00:59 +02:00
Even Rouault 0e740ae58f Merge pull request #3166 from rouault/epsg_10_059
Database: update to EPSG v10.059
2022-04-16 23:05:41 +00:00
Even Rouault 7ab1fb7f4e Merge pull request #3163 from OSGeo/backport-3153-to-9.0
[Backport 9.0] createOperations(): fix some complex cases involving TOWGS84 and CompoundCRS
2022-04-11 23:27:11 +02:00
Even Rouault d89cb819cb Merge pull request #3153 from rouault/fix_3152
createOperations(): fix some complex cases involving TOWGS84 and CompoundCRS
2022-04-11 10:53:49 +00:00
Even Rouault 187108b6ed Merge pull request #3160 from OSGeo/backport-3158-to-9.0
[Backport 9.0] createBoundCRSToWGS84IfPossible(): improve selection logic to generate +towgs84= taking into account extent
2022-04-08 11:53:31 +02:00
Even Rouault 39397ed58d Merge pull request #3159 from OSGeo/backport-3157-to-9.0
[Backport 9.0] ITRF2014: fix ITRF2014:ITRF88,ITRF94 and ITRF96 definitions
2022-04-08 11:53:20 +02:00
Even Rouault 1bdeb239b7 Merge pull request #3158 from rouault/improve_proj4_towgs84
createBoundCRSToWGS84IfPossible(): improve selection logic to generate +towgs84= taking into account extent
2022-04-07 21:21:20 +00:00
Even Rouault 50fa033374 Merge pull request #3157 from rouault/fix_3156
ITRF2014: fix ITRF2014:ITRF88,ITRF94 and ITRF96 definitions
2022-04-07 21:15:06 +00:00
Even Rouault 43581d5bcf Merge pull request #3155 from OSGeo/backport-3154-to-9.0
[Backport 9.0] Database: add OGC:CRS84h (WGS 84 longitude-latitude-height)
2022-04-05 15:06:37 +02:00
Even Rouault cbab506524 Merge pull request #3154 from rouault/OGC_CRS84h
Database: add OGC:CRS84h (WGS 84 longitude-latitude-height)
2022-04-05 10:39:46 +00:00
Even Rouault 12266b5f68 Merge pull request #3151 from OSGeo/backport-3147-to-9.0
[Backport 9.0] createOperations(): fix CompoundCRS[BoundCRS[ProjectedCRS],BoundCRS[VerticalCRS]] to Geog3DCrs
2022-03-30 20:40:20 +02:00
Even Rouault c1c8074782 Merge pull request #3147 from rouault/fix_compoundCRS_with_bound_of_projected_and_bound_of_vertical_to_geog3D
createOperations(): fix CompoundCRS[BoundCRS[ProjectedCRS],BoundCRS[VerticalCRS]] to Geog3DCrs
2022-03-30 07:22:41 +00:00
Even Rouault 9bee7f5f40 Merge pull request #3149 from OSGeo/backport-3134-to-9.0
[Backport 9.0] Deal with PARAMETER["EPSG code for Interpolation CRS",crs_code]
2022-03-29 11:51:24 +02:00
Even Rouault 9a6d8b93e8 Merge pull request #3148 from OSGeo/backport-3128-to-9.0
[Backport 9.0] Database: update to EPSG v10.057
2022-03-29 11:51:12 +02:00
Even Rouault fde9135980 Merge pull request #3134 from rouault/parameter_epsg_code_interpolation_crs
Deal with PARAMETER["EPSG code for Interpolation CRS",crs_code]
2022-03-28 22:47:13 +00:00
Even Rouault dc2c7a3f96 Merge pull request #3128 from rouault/epsg_10_057
Database: update to EPSG v10.057
2022-03-28 22:46:39 +00:00
Kristian Evers 325595e176 Merge pull request #3145 from OSGeo/backport-3144-to-9.0
[Backport 9.0] Improve documentation plotting of interrupted projections.
2022-03-28 22:06:12 +02:00
erykoff 9928f83afb Improve documentation plotting of interrupted projections. (#3144)
Improves the documentation plotting code by adding checks for interrupted lines and graticules. This does not replace the continental outlines with filled continents because that is a harder job. A number of plots has been improved and included in the docs.

Also fixes a typo on the ob_tran plot so that it now renders as intended according to the description paragraph as an oblique Mollweide rather than oblique Miller Cylindrical, which is neither a common nor attractive projection.
2022-03-28 14:54:42 +00:00
Kristian Evers 7b6c7f2333 Merge pull request #3142 from OSGeo/backport-3136-to-9.0
[Backport 9.0] Use Mambaforge variant instead of Miniconda
2022-03-27 12:15:33 +02:00
Even Rouault 45c927dd33 Merge pull request #3136 from mwtoews/use-mambaforge
Use Mambaforge variant instead of Miniconda
2022-03-27 00:18:17 +00:00
Kristian Evers 2425d786be Merge pull request #3141 from OSGeo/backport-3137-to-9.0
[Backport 9.0] Fix build issue for ARM64 when using MSVC
2022-03-26 07:25:16 +01:00
Kristian Evers dc4d82b243 Merge pull request #3140 from OSGeo/backport-3132-to-9.0
[Backport 9.0] Steps with omit_inv are not considered when checking if inverse pipeline operation is possible
2022-03-26 07:25:01 +01:00
Even Rouault 1aaa174e5f Merge pull request #3137 from anthony-linaro/master
Fix build issue for ARM64 when using MSVC
2022-03-26 00:31:52 +00:00
Oskari Timperi 369ce8d40e Steps with omit_inv are not considered when checking if inverse pipeline operation is possible (#3132) 2022-03-25 23:53:19 +00:00
Even Rouault 992fcc8dbb Merge pull request #3129 from OSGeo/backport-3125-to-9.0
[Backport 9.0] Fix datum names when importing from PROJ4 crs strings (affects some transformations using geoidgrids)
2022-03-25 23:50:15 +01:00
github-actions[bot]andEven Rouault 6686cc0ccc Merge pull request #3130 from Biswa96/cmake-mingw (#3135)
cmake: Follow unix-like install directories in mingw

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2022-03-25 13:12:24 +13:00
Even Rouault 9579231d96 Merge pull request #3125 from rouault/import_proj4_datum_names
Fix datum names when importing from PROJ4 crs strings (affects some transformations using geoidgrids)
2022-03-22 19:51:42 +00:00
Even Rouault 5d3b2a94c6 Merge pull request #3124 from OSGeo/backport-3123-to-9.0
[Backport 9.0] createOperations(): fix transformation involving CompoundCRS, ToWGS84 and PROJ4_GRIDS
2022-03-19 18:10:53 +01:00
Even Rouault 940186f7af Merge pull request #3123 from rouault/fix_compound_crs_nad83_csrs
createOperations(): fix transformation involving CompoundCRS, ToWGS84 and PROJ4_GRIDS
2022-03-19 11:20:54 +00:00
Even Rouault 0dbff99390 SingleCRS::baseIsEquivalentTo(): fix potential crash that is triggered by fdf5111a9a changes 2022-03-18 22:22:15 +01:00
Even Rouault afb279808b Merge pull request #3120 from OSGeo/backport-3118-to-9.0
[Backport 9.0] Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame
2022-03-16 21:09:11 +01:00
Even Rouault 9296f97e45 Merge pull request #3118 from rouault/dynamic_datum_isequivalentto
Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame
2022-03-16 13:01:01 +00:00
Even Rouault cd8609b915 Merge pull request #3116 from OSGeo/backport-3115-to-9.0
[Backport 9.0] DOC: Add missing lat_0 parameter to gnomonic documentation.
2022-03-16 00:21:10 +01:00
Even Rouault a2d45bb42c Merge pull request #3110 from OSGeo/backport-3108-to-9.0
[Backport 9.0] createOperations(): fix issue in transformation northing,easting projected CRS -> +proj=longlat +lon_wrap (fixes #3095)
2022-03-16 00:21:00 +01:00
Kristian Evers 8f614bb9e4 Merge pull request #3117 from OSGeo/backport-3111-to-9.0
[Backport 9.0] unitconvert: round to nearest date when converting to yyyymmdd.
2022-03-15 08:52:43 +01:00
Kristian Evers ac069da7de Merge pull request #3111 from direvus/1483-round-to-date
unitconvert: round to nearest date when converting to yyyymmdd.
2022-03-14 20:01:55 +00:00
Kristian Evers b7bd426c2f Merge pull request #3115 from erykoff/fix-gnom-doc
DOC: Add missing lat_0 parameter to gnomonic documentation.
2022-03-14 19:45:28 +00:00
Kristian Evers fb4f815a09 Merge pull request #3113 from OSGeo/backport-3112-to-9.0
[Backport 9.0] DOCS: add missing functions from filemanager.cpp
2022-03-11 10:26:36 +01:00
Kristian Evers 9b35b53275 Merge pull request #3112 from direvus/2540-doxygen-missing-funcs
DOCS: add missing functions from filemanager.cpp
2022-03-11 07:39:27 +00:00
Even Rouault efc958e953 Merge pull request #3108 from rouault/fix_3095
createOperations(): fix issue in transformation northing,easting projected CRS -> +proj=longlat +lon_wrap (fixes #3095)
2022-03-10 09:49:04 +00:00
Even Rouault d54cc9e447 Merge pull request #3109 from OSGeo/backport-3099-to-9.0
[Backport 9.0] CMake: fix installation of proj.pc on Windows (fixes #3078)
2022-03-10 10:48:50 +01:00
Even Rouault 3f772a73e7 Merge pull request #3099 from rouault/fix_3078
CMake: fix installation of proj.pc on Windows (fixes #3078)
2022-03-09 21:34:27 +00:00
Even Rouault 10aa25d5ad Merge pull request #3107 from OSGeo/backport-3106-to-9.0
[Backport 9.0] nkg.gie: update results due to https://github.com/OSGeo/PROJ-data/pull/79
2022-03-09 21:42:44 +01:00
Even Rouault e082c6f1ef Merge pull request #3106 from rouault/update_nkg_gie
nkg.gie: update results due to https://github.com/OSGeo/PROJ-data/pull/79
2022-03-09 18:07:27 +00:00
Even Rouault b68b8cd1b8 Merge pull request #3105 from OSGeo/backport-3102-to-9.0
[Backport 9.0] Fix issues with WKT of concatenated operations (#3076)
2022-03-09 17:02:22 +01:00
Even Rouault 860d790457 Merge pull request #3102 from rouault/fix_3076
Fix issues with WKT of concatenated operations (#3076)
2022-03-09 14:45:25 +00:00
Even Rouault 5399a95d96 Merge pull request #3104 from OSGeo/backport-3103-to-9.0
[Backport 9.0] Database: update to EPSG v10.055
2022-03-09 15:45:07 +01:00
Even Rouault 494b47737a Merge pull request #3103 from rouault/epsg_10_055
Database: update to EPSG v10.055
2022-03-09 14:18:05 +00:00
Even Rouault 7779e87663 Merge pull request #3101 from OSGeo/backport-3098-to-9.0
[Backport 9.0] Fix issue when transforming from/to BoundCRS of 3D CRS with non-Green…
2022-03-09 14:25:35 +01:00
Even Rouault ec4b1747f7 Merge pull request #3098 from rouault/fix_gdal_5408
Fix issue when transforming from/to BoundCRS of 3D CRS with non-Green…
2022-03-09 10:35:59 +00:00
Even Rouault 2f782f927c Merge pull request #3097 from OSGeo/backport-3093-to-9.0
[Backport 9.0] DOC: improve CMake integration example; remove CMake <3 detail
2022-03-08 23:18:01 +01:00
Mike Taves 7fd9e4ae21 DOC: improve CMake integration example; remove CMake <3 detail (#3093) 2022-03-08 20:12:35 +00:00
github-actions[bot]andEven Rouault 2bc292b0c2 Merge pull request #3087 from mwtoews/cmake-list-remove-item-fix (#3096)
CMake: handle potentially undefined value in list function

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2022-03-09 06:12:42 +13:00
github-actions[bot]andMike Taves 840a723c99 Use CMAKE_INSTALL_MANDIR to override default (#3081) (#3092)
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2022-03-08 00:47:01 +13:00
Even Rouault de35615650 Merge pull request #3091 from OSGeo/backport-3089-to-9.0
[Backport 9.0] Fix wrong results with SQLite 3.38.0 (fixes #3077)
2022-03-06 17:54:30 +01:00
Even Rouault 486da786ac Merge pull request #3089 from rouault/fix_3077
Fix wrong results with SQLite 3.38.0 (fixes #3077)
2022-03-06 10:50:33 +00:00
Kristian Evers 8ea73006ce Merge pull request #3090 from OSGeo/backport-3082-to-9.0
[Backport 9.0] Increase MAX_ITER so Mollweide forward projection works near the poles.
2022-03-06 10:06:34 +01:00
erykoff 8a88101fe5 Increase MAX_ITER so Mollweide forward projection works near the poles. (#3082) 2022-03-05 15:21:36 +00:00
github-actions[bot]andMike Taves c34b0ac71b CI: use ctest --output-on-failure option (#3084) (#3086)
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2022-03-05 00:06:47 +13:00
Kristian Evers 9e1f83617c docs: fix syntax errors on news site 2022-03-02 19:28:13 +01:00
129 changed files with 5822 additions and 1944 deletions
-11
View File
@@ -1,11 +0,0 @@
#!/bin/bash
set -e
conda update --yes --quiet -n base -c defaults conda
conda install --yes --quiet compilers
conda config --set channel_priority strict
conda install --yes --quiet python=3.8 autoconf automake libtool ccache jsonschema
conda install --yes --quiet --only-deps proj=7.1.1=h45baca5_3
+52
View File
@@ -0,0 +1,52 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
build:
os: "ubuntu-22.04"
tools:
python: "mambaforge-4.10"
jobs:
post_checkout:
# Cancel building pull requests when there aren't changed in the docs directory or YAML file.
# You can add any other files or directories that you'd like here as well,
# like your docs requirements file, or other files that will change your docs build.
#
# If there are no changes (git diff exits with 0) we force the command to return with 183.
# This is a special exit code on Read the Docs that will cancel the build immediately.
- |
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/9.0 -- docs/ .readthedocs.yaml;
then
exit 183;
fi
- (git --no-pager log --pretty="tformat:%s -- %b" -1 | grep -viqP "skip ci|ci skip") || exit 183
pre_build:
- ./docs/rtd/pre_build.sh
- ./scripts/doxygen.sh
- ./docs/rtd/plot.sh
post_build:
- ./docs/rtd/post_build.sh
apt_packages:
- cmake
- ninja-build
- g++
- sqlite3
- libsqlite3-dev
- libtiff-dev
- libcurl4-openssl-dev
formats:
- pdf
- epub
conda:
environment: docs/environment.yml
sphinx:
configuration: docs/source/conf.py
fail_on_warning: true
+1 -1
View File
@@ -1,6 +1,6 @@
To cite PROJ in publications use:
PROJ contributors (2020). PROJ coordinate transformation software
PROJ contributors (2022). PROJ coordinate transformation software
library. Open Source Geospatial Foundation. URL https://proj.org/.
DOI: 10.5281/zenodo.5884394
+7 -2
View File
@@ -73,6 +73,11 @@ elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
/wd4706 # Suppress warning about assignment within conditional expression
/wd4996 # Suppress warning about sprintf, etc., being unsafe
)
if("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm64")
# Suppress an inaccurate warning when compiling for an MSVC/ARM64 platform
# It incorrectly assumes a division by zero is possible despite a check
set(PROJ_C_WARN_FLAGS ${PROJ_C_WARN_FLAGS} /wd4723)
endif()
set(PROJ_CXX_WARN_FLAGS /EHsc ${PROJ_C_WARN_FLAGS})
elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
if(MSVC)
@@ -110,7 +115,7 @@ message(STATUS "Configuring PROJ:")
#PROJ version information
################################################################################
include(ProjVersion)
proj_version(MAJOR 9 MINOR 0 PATCH 0)
proj_version(MAJOR 9 MINOR 0 PATCH 1)
set(PROJ_SOVERSION 25)
set(PROJ_BUILD_VERSION "${PROJ_SOVERSION}.${PROJ_VERSION}")
@@ -330,7 +335,7 @@ configure_proj_pc()
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/proj.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
DESTINATION ${LIBDIR}/pkgconfig)
################################################################################
# "make dist" workalike
+66
View File
@@ -1,3 +1,69 @@
9.0.1 Release Notes
-------------------
Database updates
-------
o Update to EPSG 10.064 (#3208)
o Add OGC:CRS84h (WGS 84 longitude-latitude-height) (#3155)
Bug fixes
---------
o Use CMAKE_INSTALL_MANDIR to override default (#3081)
o Increase MAX_ITER so Mollweide forward projection works near the poles (#3082)
o Fix wrong results with SQLite 3.38.0 (#3091)
o Fix issue when transforming from/to BoundCRS of 3D CRS with non-Greenwich
prime meridian, created from WKT (#3098)
o Fix issues with WKT of concatenated operations (#3105)
o CMake: fix installation of proj.pc on Windows (#3109)
o createOperations(): fix issue in transformation northing, easting
projected CRS -> +proj=longlat +lon_wrap (#3110)
o unitconvert: round to nearest date when converting to yyyymmdd (#3111)
o Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame (#3120)
o createOperations(): fix transformation involving CompoundCRS, ToWGS84
and PROJ4_GRIDS (#3124)
o Fix datum names when importing from PROJ4 crs strings (affects some
transformations using geoidgrids) (#3129)
o Deal with PARAMETER["EPSG code for Interpolation CRS",crs_code] (#3149)
o createOperations(): fix CompoundCRS[BoundCRS[ProjectedCRS],BoundCRS[VerticalCRS]]
to Geog3DCrs (#3151)
o ITRF2014: fix ITRF2014:ITRF88,ITRF94 and ITRF96 definitions (#3159)
o createBoundCRSToWGS84IfPossible(): improve selection logic to generate +towgs84=
taking into account extent (#3160)
o createOperations(): fix some complex cases involving TOWGS84 and CompoundCRS (#3163)
o Fix cmake CURL dependency, update appveyor - vcpkg interaction (#3185)
o WKT import: deal with Projected CRS that is a mix of WKT1:GDAL / WKT1:ESRI (#3189)
o createOperations(): fix/improve result of 'BD72 + Ostend height ' to 'WGS84+EGM96 height' (#3199)
o Identifier::isEquivalentName(): fix when ending by ' + ' which could indirectly cause
an infinite stack call in master (#3202)
o WKT import: correctly deal with absence of Latitude_Of_Origin parameter in
WKT1 ESRI with Stereographic projection (#3212)
o PROJJSON parser: do not error out if a datum ensemble member is unknown in the database (#3223)
9.0.0 Release Notes
-------------------
+1 -1
View File
@@ -23,7 +23,7 @@ endif()
# for data install testing the PROJ_LIB envVar
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
if(UNIX)
if(UNIX OR MINGW)
include(GNUInstallDirs)
set(DEFAULT_BIN_SUBDIR ${CMAKE_INSTALL_BINDIR})
set(DEFAULT_LIB_SUBDIR ${CMAKE_INSTALL_LIBDIR})
+1
View File
@@ -39,6 +39,7 @@ endfunction()
# Create user writable directory for tests
add_custom_target(create_tmp_user_writable_dir ALL
COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir)
function(proj_add_gie_network_dependent_test TESTNAME TESTCASE)
+1 -1
View File
@@ -98,7 +98,7 @@ function(configure_proj_pc)
list(APPEND EXTRA_LIBS -lole32 -lshell32)
else()
set(cxx_libs "${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}")
list(REMOVE_ITEM cxx_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES})
list(REMOVE_ITEM cxx_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} nonempty)
foreach(lib IN LISTS cxx_libs)
list(APPEND EXTRA_LIBS "-l${lib}")
endforeach()
+6
View File
@@ -8,6 +8,12 @@
# @PROJECT_VARIANT_NAME@_BINARY_DIRS = /usr/local/bin
# @PROJECT_VARIANT_NAME@_VERSION = 4.9.1 (for example)
include(CMakeFindDependencyMacro)
if("@CURL_ENABLED@" STREQUAL "TRUE")
# Chainload CURL usage requirements
find_dependency(CURL)
endif()
# Tell the user project where to find our headers and libraries
get_filename_component (_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
get_filename_component (_ROOT "${_DIR}/@PROJECT_ROOT_DIR@" ABSOLUTE)
+3 -3
View File
@@ -9,9 +9,9 @@
<ITRF97> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +d=0.0038 +rz=0.00026 +dx0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF96> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +t_epoch=2010.0 +convention=position_vector
<ITRF96> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF94> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +t_epoch=2010.0 +convention=position_vector
<ITRF94> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF93> +proj=helmert +x=-0.0504 +y=0.0033 +z=-0.0602 +s=0.00429 +rx=-0.00281 +ry=-0.00338 +rz=0.0004 +dx=-0.0028 +dy=-0.0001 +dz=-0.0025 +ds=0.00012 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2010.0 +convention=position_vector
@@ -23,7 +23,7 @@
<ITRF89> +proj=helmert +x=0.0304 +y=0.0355 +z=-0.1308 +s=0.00819 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF88> +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz= +dx=0.00026 +dy=0.0001 +dx=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF88> +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
# ITRF2014 Plate Motion Model parameters
#
+185 -2
View File
@@ -655,6 +655,11 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6181','Nouvelle Triangu
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5172','Nivellement General du Luxembourg','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1316','GNTRANS2003','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1319','EBBWV14-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1317','HULLEE13-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1320','SCM22-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1321','FNL22-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1322','ITRF2020','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1323','SVD2006','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21100','Genuk / NEIEZ','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2140','NAD83(CSRS98) / SCoPQ zone 3','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2141','NAD83(CSRS98) / SCoPQ zone 4','EPSG');
@@ -4889,9 +4894,7 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8066','NAD83(2011) / PCC
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','8053','mean sea level depth (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','8053','msl depth (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8067','NAD83(2011) / PCCS west zone(ft)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8082','NAD83(CSRS)v6 / MTM NS zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8068','NAD83(2011) / PCCS Mt. Lemmon zone(ft)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8083','NAD83(CSRS)v6 / MTM NS zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8090','WISCRS Florence (m)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4974','SIRGAS95 - XYZ','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8091','WISCRS Florence (ftUS)','EPSG');
@@ -7515,3 +7518,183 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9943','ETRS89 / EBBWV14
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9944','ETRS89 / EBBWV14 SnakeGrid + Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6190','BD72 / Belgian Lambert 72 + Oostende height','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9907','ETRS89 + Oostende height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','32159','NAD83 / WyLam','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9967','ETRS89 / HULLEE13 SnakeGrid','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9968','ETRS89 / HULLEE13 SnakeGrid + Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9972','ETRS89 / SCM22 SnakeGrid','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9973','ETRS89 / SCM22 SnakeGrid + Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9977','ETRS89 / FNL22 SnakeGrid','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9978','ETRS89 / FNL22 SnakeGrid + Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9945','MGI 1901 / Macedonia GK truncated','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9945','MGI 1901 / Macedonia Gauss-Kruger truncated','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9945','MSCS truncated','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8082','NAD83(CSRS)v6 / MTM Nova Scotia zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8082','NAD83(CSRS) 2010 / MTM NS zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8083','NAD83(CSRS)v6 / MTM Nova Scotia zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8083','NAD83(CSRS) 2010 / MTM NS zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22351','NAD83(CSRS) 1997 / MTM zone 11','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22352','NAD83(CSRS) 1997 / MTM zone 12','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22353','NAD83(CSRS) 1997 / MTM zone 13','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22354','NAD83(CSRS) 1997 / MTM zone 14','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22355','NAD83(CSRS) 1997 / MTM zone 15','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22356','NAD83(CSRS) 1997 / MTM zone 16','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22357','NAD83(CSRS) 1997 / MTM zone 17','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22651','NAD83(CSRS) 2010 / MTM zone 11','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22652','NAD83(CSRS) 2010 / MTM zone 12','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22653','NAD83(CSRS) 2010 / MTM zone 13','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22654','NAD83(CSRS) 2010 / MTM zone 14','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22655','NAD83(CSRS) 2010 / MTM zone 15','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22656','NAD83(CSRS) 2010 / MTM zone 16','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22657','NAD83(CSRS) 2010 / MTM zone 17','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22462','NAD83(CSRS) 2002 / Alberta 3TM ref merid 111','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22463','NAD83(CSRS) 2002 / Alberta 3TM ref merid 114','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22464','NAD83(CSRS) 2002 / Alberta 3TM ref merid 117','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22465','NAD83(CSRS) 2002 / Alberta 3TM ref merid 120','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22762','NAD83(CSRS) 2010 / Alberta 3TM ref merid 111','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22763','NAD83(CSRS) 2010 / Alberta 3TM ref merid 114','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22764','NAD83(CSRS) 2010 / Alberta 3TM ref merid 117','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22765','NAD83(CSRS) 2010 / Alberta 3TM ref merid 120','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22641','NAD83(CSRS) 2010 / MTM zone 1','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22642','NAD83(CSRS) 2010 / MTM zone 2','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22643','NAD83(CSRS) 2010 / MTM zone 3','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22644','NAD83(CSRS) 2010 / MTM zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22645','NAD83(CSRS) 2010 / MTM zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22646','NAD83(CSRS) 2010 / MTM zone 6','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22739','NAD83(CSRS) 2010 / PEI Stereographic','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22648','NAD83(CSRS) 2010 / MTM zone 8','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22649','NAD83(CSRS) 2010 / MTM zone 9','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22650','NAD83(CSRS) 2010 / MTM zone 10','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22307','NAD83(CSRS) 1997 / UTM zone 7N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22607','NAD83(CSRS) 2010 / UTM zone 7N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22707','NAD83(CSRS) 2010 / UTM zone 7N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22407','NAD83(CSRS) 2002 / UTM zone 7N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22409','NAD83(CSRS) 2002 / UTM zone 9N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22609','NAD83(CSRS) 2010 / UTM zone 9N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22709','NAD83(CSRS) 2010 / UTM zone 9N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22309','NAD83(CSRS) 1997 / UTM zone 9N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22311','NAD83(CSRS) 1997 / UTM zone 11N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22411','NAD83(CSRS) 2002 / UTM zone 11N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22611','NAD83(CSRS) 2010 / UTM zone 11N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22711','NAD83(CSRS) 2010 / UTM zone 11N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22312','NAD83(CSRS) 1997 / UTM zone 12N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22412','NAD83(CSRS) 2002 / UTM zone 12N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22712','NAD83(CSRS) 2010 / UTM zone 12N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22612','NAD83(CSRS) 2010 / UTM zone 12N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22313','NAD83(CSRS) 1997 / UTM zone 13N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22413','NAD83(CSRS) 2002 / UTM zone 13N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22613','NAD83(CSRS) 2010 / UTM zone 13N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22713','NAD83(CSRS) 2010 / UTM zone 13N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22314','NAD83(CSRS) 1997 / UTM zone 14N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22414','NAD83(CSRS) 2002 / UTM zone 14N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22614','NAD83(CSRS) 2010 / UTM zone 14N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22714','NAD83(CSRS) 2010 / UTM zone 14N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22315','NAD83(CSRS) 1997 / UTM zone 15N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22615','NAD83(CSRS) 2010 / UTM zone 15N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22715','NAD83(CSRS) 2010 / UTM zone 15N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22317','NAD83(CSRS) 1997 / UTM zone 17N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22417','NAD83(CSRS) 2002 / UTM zone 17N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22617','NAD83(CSRS) 2010 / UTM zone 17N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22717','NAD83(CSRS) 2010 / UTM zone 17N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22318','NAD83(CSRS) 1997 / UTM zone 18N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22418','NAD83(CSRS) 2002 / UTM zone 18N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22618','NAD83(CSRS) 2010 / UTM zone 18N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22718','NAD83(CSRS) 2010 / UTM zone 18N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22415','NAD83(CSRS) 2002 / UTM zone 15N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22316','NAD83(CSRS) 1997 / UTM zone 16N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22416','NAD83(CSRS) 2002 / UTM zone 16N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22616','NAD83(CSRS) 2010 / UTM zone 16N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22716','NAD83(CSRS) 2010 / UTM zone 16N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22308','NAD83(CSRS) 1997 / UTM zone 8N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22408','NAD83(CSRS) 2002 / UTM zone 8N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22608','NAD83(CSRS) 2010 / UTM zone 8N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22708','NAD83(CSRS) 2010 / UTM zone 8N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22310','NAD83(CSRS) 1997 / UTM zone 10N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22410','NAD83(CSRS) 2002 / UTM zone 10N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22610','NAD83(CSRS) 2010 / UTM zone 10N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22710','NAD83(CSRS) 2010 / UTM zone 10N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22319','NAD83(CSRS) 1997 / UTM zone 19N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22419','NAD83(CSRS) 2002 / UTM zone 19N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22619','NAD83(CSRS) 2010 / UTM zone 19N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22719','NAD83(CSRS) 2010 / UTM zone 19N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22320','NAD83(CSRS) 1997 / UTM zone 20N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22420','NAD83(CSRS) 2002 / UTM zone 20N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22620','NAD83(CSRS) 2010 / UTM zone 20N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22720','NAD83(CSRS) 2010 / UTM zone 20N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22321','NAD83(CSRS) 1997 / UTM zone 21N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22421','NAD83(CSRS) 2002 / UTM zone 21N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22621','NAD83(CSRS) 2010 / UTM zone 21N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22721','NAD83(CSRS) 2010 / UTM zone 21N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22322','NAD83(CSRS) 1997 / UTM zone 22N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22422','NAD83(CSRS) 2002 / UTM zone 22N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22622','NAD83(CSRS) 2010 / UTM zone 22N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22722','NAD83(CSRS) 2010 / UTM zone 22N','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','20000','SVD2006Height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22219','NAD83(CSRS) 1997 / UTM zone 19N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22219','NAD83(CSRS98) / UTM zone 19N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22220','NAD83(CSRS) 1997 / UTM zone 20N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22220','NAD83(CSRS98) / UTM zone 20N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22221','NAD83(CSRS) 1997 / UTM zone 21N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22221','NAD83(CSRS98) / UTM zone 21N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22222','NAD83(CSRS) 1997 / UTM zone 22N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22222','NAD83(CSRS98) / UTM zone 22N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22213','NAD83(CSRS) 1997 / UTM zone 13N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22213','NAD83 / UTM extended zone 13','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22213','NAD83(CSRS98) / UTM zone 13N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22214','NAD83(CSRS) 1997 / UTM zone 14N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22214','NAD83(CSRS98) / UTM zone 14N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22215','NAD83(CSRS) 1997 / UTM zone 15N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22215','NAD83(CSRS98) / UTM zone 15N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22216','NAD83(CSRS) 1997 / UTM zone 16N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22216','NAD83(CSRS98) / UTM zone 16N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22217','NAD83(CSRS) 1997 / UTM zone 17N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22217','NAD83(CSRS98) / UTM zone 17N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22218','NAD83(CSRS) 1997 / UTM zone 18N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22218','NAD83(CSRS98) / UTM zone 18N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22207','NAD83(CSRS) 1997 / UTM zone 7N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22207','NAD83(CSRS98) / UTM zone 7N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22208','NAD83(CSRS) 1997 / UTM zone 8N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22208','NAD83(CSRS98) / UTM zone 8N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22209','NAD83(CSRS) 1997 / UTM zone 9N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22209','NAD83(CSRS98) / UTM zone 9N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22210','NAD83(CSRS) 1997 / UTM zone 10N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22210','NAD83(CSRS98) / UTM zone 10N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22211','NAD83(CSRS) 1997 / UTM zone 11N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22211','NAD83(CSRS98) / UTM zone 11N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22212','NAD83(CSRS) 1997 / UTM zone 12N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22212','NAD83(CSRS98) / UTM zone 12N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22262','NAD83(CSRS) 1997 / Alberta 3TM ref merid 111','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22262','NAD83(CSRS98) / Alberta 3TM ref merid 111','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22263','NAD83(CSRS) 1997 / Alberta 3TM ref merid 114','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22263','NAD83(CSRS98) / Alberta 3TM ref merid 114','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22264','NAD83(CSRS) 1997 / Alberta 3TM ref merid 117','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22264','NAD83(CSRS98) / Alberta 3TM ref merid 117','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22265','NAD83(CSRS) 1997 / Alberta 3TM ref merid 120','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22265','NAD83(CSRS98) / Alberta 3TM ref merid 120','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22337','NAD83(CSRS)v3 / MTM Nova Scotia zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22337','NAD83(CSRS) 1997 / MTM NS zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22338','NAD83(CSRS)v3 / MTM Nova Scotia zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22338','NAD83(CSRS) 1997 / MTM NS zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22239','NAD83(CSRS) 1997 / PEI Stereographic','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22239','NAD83(CSRS98) / PEI Stereographic','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22240','NAD83(CSRS) 1997 / NB Stereographic','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22240','NAD83(CSRS98) / NB Stereographic','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22243','NAD83(CSRS) 1997 / MTM zone 3','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22243','NAD83(CSRS98) / SCoPQ zone 3','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22244','NAD83(CSRS) 1997 / MTM zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22244','NAD83(CSRS98) / SCoPQ zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22245','NAD83(CSRS) 1997 / MTM zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22245','NAD83(CSRS98) / SCoPQ zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22246','NAD83(CSRS) 1997 / MTM zone 6','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22246','NAD83(CSRS98) / SCoPQ zone 6','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22247','NAD83(CSRS) 1997 / MTM zone 7','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22247','NAD83(CSRS98) / SCoPQ zone 7','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22639','NAD83(CSRS) 2010 / PEI Stereographic','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22348','NAD83(CSRS) 1997 / MTM zone 8','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22349','NAD83(CSRS) 1997 / MTM zone 9','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22350','NAD83(CSRS) 1997 / MTM zone 10','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22248','NAD83(CSRS) 1997 / MTM zone 8','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22248','NAD83(CSRS98) / SCoPQ zone 8','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22249','NAD83(CSRS) 1997 / MTM zone 9','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22249','NAD83(CSRS98) / SCoPQ zone 9','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22250','NAD83(CSRS) 1997 / MTM zone 10','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22250','NAD83(CSRS98) / SCoPQ zone 10','EPSG');
+20
View File
@@ -752,3 +752,23 @@ INSERT INTO "compound_crs" VALUES('EPSG','9935','DB_REF2016 zone 5',NULL,'EPSG',
INSERT INTO "usage" VALUES('EPSG','17296','compound_crs','EPSG','9935','EPSG','3998','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','9944','EBBWV14 Grid + ODN height',NULL,'EPSG','9943','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','17350','compound_crs','EPSG','9944','EPSG','4661','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','9948','ISN93 + ISH2004 height ',NULL,'EPSG','4659','EPSG','8089',0);
INSERT INTO "usage" VALUES('EPSG','17415','compound_crs','EPSG','9948','EPSG','4662','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9949','ISN2004 + ISH2004 height',NULL,'EPSG','5324','EPSG','8089',0);
INSERT INTO "usage" VALUES('EPSG','17390','compound_crs','EPSG','9949','EPSG','4662','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9950','ISN2016 + ISH2004 height',NULL,'EPSG','8086','EPSG','8089',0);
INSERT INTO "usage" VALUES('EPSG','17381','compound_crs','EPSG','9950','EPSG','4662','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9951','ISN93 / Lambert 1993 + ISH2004 height',NULL,'EPSG','3057','EPSG','8089',0);
INSERT INTO "usage" VALUES('EPSG','17382','compound_crs','EPSG','9951','EPSG','4662','EPSG','1056');
INSERT INTO "compound_crs" VALUES('EPSG','9952','ISN2004 / Lambert 2004 + ISH2004 height',NULL,'EPSG','5325','EPSG','8089',0);
INSERT INTO "usage" VALUES('EPSG','17383','compound_crs','EPSG','9952','EPSG','4662','EPSG','1056');
INSERT INTO "compound_crs" VALUES('EPSG','9953','ISN2016 / Lambert 2016 + ISH2004 height',NULL,'EPSG','8088','EPSG','8089',0);
INSERT INTO "usage" VALUES('EPSG','17384','compound_crs','EPSG','9953','EPSG','4662','EPSG','1056');
INSERT INTO "compound_crs" VALUES('EPSG','9968','HULLEE13 Grid + ODN height',NULL,'EPSG','9967','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','17430','compound_crs','EPSG','9968','EPSG','4663','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','9973','SCM22 Grid + ODN height',NULL,'EPSG','9972','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','17442','compound_crs','EPSG','9973','EPSG','4665','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','9978','FNL22 Grid + ODN height',NULL,'EPSG','9977','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','17459','compound_crs','EPSG','9978','EPSG','4664','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','20001','ETRS89 + SVD2006 height',NULL,'EPSG','4258','EPSG','20000',0);
INSERT INTO "usage" VALUES('EPSG','17956','compound_crs','EPSG','20001','EPSG','4058','EPSG','1026');
+22 -5
View File
@@ -618,8 +618,8 @@ INSERT INTO "conversion" VALUES('EPSG','6198','Michigan CS27 Central zone','','E
INSERT INTO "usage" VALUES('EPSG','9643','conversion','EPSG','6198','EPSG','1724','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','6199','Michigan CS27 South zone','','EPSG','1051','Lambert Conic Conformal (2SP Michigan)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.06,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',43.4,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003','EPSG','1038','Ellipsoid scaling factor',1.0000382,'EPSG','9201',0);
INSERT INTO "usage" VALUES('EPSG','9644','conversion','EPSG','6199','EPSG','1725','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','6203','Macedonia Gauss-Kruger','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','9645','conversion','EPSG','6203','EPSG','1148','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','6203','Macedonia Gauss-Kruger','A version of this projection with FN reduced by 4000000 is sometimes used for cadastre - see projection code 9911.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17410','conversion','EPSG','6203','EPSG','1148','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','6212','Arauca urban grid','','EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',7.051538301,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.452991476,'EPSG','9110','EPSG','8806','False easting',1035263.443,'EPSG','9001','EPSG','8807','False northing',1275526.621,'EPSG','9001','EPSG','1039','Projection plane origin height',100.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','9650','conversion','EPSG','6212','EPSG','4122','EPSG','1055');
INSERT INTO "conversion" VALUES('EPSG','6213','Armenia urban grid','','EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',4.315637,'EPSG','9110','EPSG','8802','Longitude of natural origin',-75.4024561,'EPSG','9110','EPSG','8806','False easting',1155824.666,'EPSG','9001','EPSG','8807','False northing',993087.465,'EPSG','9001','EPSG','1039','Projection plane origin height',1470.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -1536,9 +1536,9 @@ INSERT INTO "conversion" VALUES('EPSG','8063','Pima County zone 3 West (ft)','Gr
INSERT INTO "usage" VALUES('EPSG','10410','conversion','EPSG','8063','EPSG','4450','EPSG','1207');
INSERT INTO "conversion" VALUES('EPSG','8064','Pima County zone 4 Mt. Lemmon (ft)','Grid unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',30.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9998,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9002','EPSG','8807','False northing',-620000.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','10411','conversion','EPSG','8064','EPSG','4473','EPSG','1207');
INSERT INTO "conversion" VALUES('EPSG','8080','MTM Nova Scotia zone 4 v2','Introduced for use with NAD83(CSRS)v6.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-61.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',24500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8080','MTM Nova Scotia 2010 zone 4','Introduced for use with NAD83(CSRS)v6.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-61.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',24500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','10423','conversion','EPSG','8080','EPSG','1534','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','8081','MTM Nova Scotia zone 5 v2','Geomatics Centre, Nova Scotia Ministry of Housing and Municipal Affairs.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-64.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',25500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8081','MTM Nova Scotia 2010 zone 5','Introduced for use with NAD83(CSRS)v6.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-64.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',25500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','10424','conversion','EPSG','8081','EPSG','1535','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','8087','Iceland Lambert 2016','Replaces Iceland Lambert 2004 (code 5326). Used only with ISN2016 geogCRS.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',65.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-19.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',64.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',65.45,'EPSG','9110','EPSG','8826','Easting at false origin',2700000.0,'EPSG','9001','EPSG','8827','Northing at false origin',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','10425','conversion','EPSG','8087','EPSG','1120','EPSG','1241');
@@ -1810,8 +1810,22 @@ INSERT INTO "conversion" VALUES('EPSG','9879','MOLDOR11-TM','In conjunction with
INSERT INTO "usage" VALUES('EPSG','16956','conversion','EPSG','9879','EPSG','4655','EPSG','1141');
INSERT INTO "conversion" VALUES('EPSG','9894','Luxembourg TM (3D)','','EPSG','1111','Transverse Mercator 3D','EPSG','8801','Latitude of natural origin',49.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',6.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',80000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17109','conversion','EPSG','9894','EPSG','1146','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','9911','Macedonia Gauss-Kruger truncated','Truncated version of Macedonia Gauss-Kruger, with 4000000m removed from northings.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',-4000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17400','conversion','EPSG','9911','EPSG','1148','EPSG','1028');
INSERT INTO "conversion" VALUES('EPSG','9942','EBBWV14-TM','In conjunction with transformation ETRS89 to EBBWV14-IRF (1) (code 9941), emulates the EBBWV14 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',51.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-3.06,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',106702.326,'EPSG','9001','EPSG','8807','False northing',119968.1395,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17347','conversion','EPSG','9942','EPSG','4661','EPSG','1141');
INSERT INTO "conversion" VALUES('EPSG','9946','Iceland Lambert Azimuthal Equal Area','','EPSG','9820','Lambert Azimuthal Equal Area','EPSG','8801','Latitude of natural origin',65.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-19.0,'EPSG','9102','EPSG','8806','False easting',1700000.0,'EPSG','9001','EPSG','8807','False northing',1300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17463','conversion','EPSG','9946','EPSG','1120','EPSG','1162');
INSERT INTO "conversion" VALUES('EPSG','9966','HULLEE13-TM','In conjunction with transformation ETRS89 to HULLEE13-IRF (1) (code 9965), emulates the HULLEE13 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',53.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-0.57,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',140859.7394,'EPSG','9001','EPSG','8807','False northing',247512.2812,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17427','conversion','EPSG','9966','EPSG','4663','EPSG','1141');
INSERT INTO "conversion" VALUES('EPSG','9971','SCM22-TM','In conjunction with transformation ETRS89 to SCM22-IRF (1) (code 9970), emulates the SCM22 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',56.36,'EPSG','9110','EPSG','8802','Longitude of natural origin',-3.51,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',108600.972,'EPSG','9001','EPSG','8807','False northing',239087.349,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17440','conversion','EPSG','9971','EPSG','4665','EPSG','1141');
INSERT INTO "conversion" VALUES('EPSG','9976','FNL22-TM','In conjunction with transformation ETRS89 to FNL22-IRF (1) (code 9975), emulates the FNL22 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',58.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-3.48,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',139618.9493,'EPSG','9001','EPSG','8807','False northing',183110.794,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17455','conversion','EPSG','9976','EPSG','4664','EPSG','1141');
INSERT INTO "conversion" VALUES('EPSG','9981','MTM Nova Scotia 1997 zone 4','Introduced for use with NAD83(CSRS)v3.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-61.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',14500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17527','conversion','EPSG','9981','EPSG','1534','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','9982','MTM Nova Scotia 1997 zone 5','Introduced for use with NAD83(CSRS)v3.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-64.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',15500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17525','conversion','EPSG','9982','EPSG','1535','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','10101','Alabama CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','11101','conversion','EPSG','10101','EPSG','2154','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','10102','Alabama CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -2303,6 +2317,8 @@ INSERT INTO "conversion" VALUES('EPSG','14903','Wyoming CS27 West Central zone',
INSERT INTO "usage" VALUES('EPSG','11344','conversion','EPSG','14903','EPSG','2272','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','14904','Wyoming CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','11345','conversion','EPSG','14904','EPSG','2271','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','14930','Wyoming Lambert','Source originally defining the projection is unclear - possibly the Wyoming GIS Center.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-107.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.0,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17408','conversion','EPSG','14930','EPSG','1419','EPSG','1135');
INSERT INTO "conversion" VALUES('EPSG','14931','SPCS83 Wyoming East zone (meters)','See code 14935 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','11346','conversion','EPSG','14931','EPSG','2269','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','14932','SPCS83 Wyoming East Central zone (meters)','See code 14936 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',400000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -4740,8 +4756,9 @@ INSERT INTO "conversion" VALUES('EPSG','18275','Balkans zone 5','','EPSG','9807'
INSERT INTO "usage" VALUES('EPSG','12859','conversion','EPSG','18275','EPSG','1709','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','18276','Balkans zone 6','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',18.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',6500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','12860','conversion','EPSG','18276','EPSG','1710','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','18277','Balkans zone 7','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',7500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','18277','Balkans zone 7','In Macedonia replaced by MSCS (map projection code 6203) from 2008 but from 2013 this projection used for AREC electronic cadastral database (E-kat) across whole country.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',7500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','12861','conversion','EPSG','18277','EPSG','1711','EPSG','1142');
INSERT INTO "usage" VALUES('EPSG','17355','conversion','EPSG','18277','EPSG','1148','EPSG','1028');
INSERT INTO "conversion" VALUES('EPSG','18278','Balkans zone 8','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',8500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','12862','conversion','EPSG','18278','EPSG','1712','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','18280','Poland zone I','','EPSG','9809','Oblique Stereographic','EPSG','8801','Latitude of natural origin',50.373,'EPSG','9110','EPSG','8802','Longitude of natural origin',21.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9998,'EPSG','9201','EPSG','8806','False easting',4637000.0,'EPSG','9001','EPSG','8807','False northing',5467000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+13
View File
@@ -33,6 +33,19 @@ INSERT INTO "usage" VALUES(
'EPSG','1024' -- unknown
);
-- Defined in http://www.opengis.net/def/crs/OGC/0/CRS84h . Same as EPSG:4979 except axis order
INSERT INTO "geodetic_crs" VALUES('OGC','CRS84h','WGS 84 longitude-latitude-height',NULL,'geographic 3D','EPSG','6426','EPSG','6326',NULL,0);
INSERT INTO "scope" VALUES('PROJ','OGC_CRS84h','3D system frequently used in GIS, Web APIs and Web applications',0);
INSERT INTO "usage" VALUES(
'PROJ',
'OGC_CRS84h_USAGE',
'geodetic_crs',
'OGC',
'CRS84h',
'EPSG','1262', -- extent ('World')
'PROJ','OGC_CRS84h' -- scope
);
INSERT INTO "geodetic_crs" VALUES('OGC','CRS27','NAD27 (CRS27)',NULL,'geographic 2D','EPSG','6424','EPSG','6267',NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
+11 -7
View File
@@ -326,7 +326,7 @@ INSERT INTO "extent" VALUES('EPSG','1346','Qatar - onshore','Qatar - onshore.',2
INSERT INTO "extent" VALUES('EPSG','1347','Belgium - onshore','Belgium - onshore.',49.5,51.51,2.5,6.4,0);
INSERT INTO "extent" VALUES('EPSG','1348','South America - PSAD56 by country','Aruba - onshore; Bolivia; Bonaire - onshore; Brazil - offshore - Amazon Cone shelf; Chile - onshore north of 43°30''S; Curacao - onshore; Ecuador - mainland onshore; Guyana - onshore; Peru - onshore; Venezuela - onshore.',-43.5,12.68,-81.41,-47.99,0);
INSERT INTO "extent" VALUES('EPSG','1349','North America - NAD27','North and central America: Antigua and Barbuda - onshore. Bahamas - onshore plus offshore over internal continental shelf only. Belize - onshore. British Virgin Islands - onshore. Canada onshore - Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Northwest Territories, Nova Scotia, Nunavut, Ontario, Prince Edward Island, Quebec, Saskatchewan and Yukon - plus offshore east coast. Cuba - onshore and offshore. El Salvador - onshore. Guatemala - onshore. Honduras - onshore. Panama - onshore. Puerto Rico - onshore. Mexico - onshore plus offshore east coast. Nicaragua - onshore. United States (USA) onshore and offshore - Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina, South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia, Wisconsin and Wyoming - plus offshore . US Virgin Islands - onshore.',7.15,83.17,167.65,-47.74,0);
INSERT INTO "extent" VALUES('EPSG','1350','North America - NAD83','North America - onshore and offshore: Canada - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon. Puerto Rico. United States (USA) - Alabama; Alaska; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Hawaii; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming. US Virgin Islands. British Virgin Islands.',14.92,86.46,167.65,-47.74,0);
INSERT INTO "extent" VALUES('EPSG','1350','North America - NAD83','North America - onshore and offshore: Canada - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon. Puerto Rico. United States (USA) - Alabama; Alaska; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Hawaii; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming. US Virgin Islands. British Virgin Islands.',14.92,86.45,167.65,-40.73,0);
INSERT INTO "extent" VALUES('EPSG','1351','Asia - Middle East - Qatar offshore and UAE','Arabian Gulf; Qatar - offshore; United Arab Emirates (UAE) - Abu Dhabi; Dubai; Sharjah; Ajman; Fujairah; Ras Al Kaimah; Umm Al Qaiwain - onshore and offshore.',22.63,27.05,50.55,57.13,0);
INSERT INTO "extent" VALUES('EPSG','1352','Norway - onshore','Norway - onshore.',57.93,71.21,4.68,31.22,0);
INSERT INTO "extent" VALUES('EPSG','1353','France - onshore','France - onshore.',NULL,NULL,NULL,NULL,1);
@@ -687,7 +687,7 @@ INSERT INTO "extent" VALUES('EPSG','1707','Austria - 11°50''E to 14°50''E','Au
INSERT INTO "extent" VALUES('EPSG','1708','Austria - east of 14°50''E','Austria east of 14°50''E of Greenwich (32°30''E of Ferro).',46.56,49.02,14.83,17.17,0);
INSERT INTO "extent" VALUES('EPSG','1709','Europe - former Yugoslavia onshore west of 16.5°E','Bosnia and Herzegovina - west of 16°30''E; Croatia - onshore west of 16°30''E; Slovenia - onshore.',42.95,46.88,13.38,16.5,0);
INSERT INTO "extent" VALUES('EPSG','1710','Europe - former Yugoslavia onshore 16.5°E to 19.5°E','Bosnia and Herzegovina - between 16°30''E and 19°30''E; Croatia - onshore east of 16°30''E; Montenegro - onshore west of 19°30''E; Serbia - west of 19°30''E.',41.79,46.55,16.5,19.51,0);
INSERT INTO "extent" VALUES('EPSG','1711','Europe - former Yugoslavia onshore 19.5°E to 22.5°E','Bosnia and Herzegovina - east of 19°30''E; Kosovo; Montenegro - east of 19°30''E; North Macedonia - west of 22°30''E; Serbia - between 19°30''E and 22°30''E.',40.85,46.19,19.5,22.51,0);
INSERT INTO "extent" VALUES('EPSG','1711','Europe - former Yugoslavia onshore 19.5°E to 22.5°E','Bosnia and Herzegovina - east of 19°30''E; Kosovo; Montenegro - east of 19°30''E; Serbia - between 19°30''E and 22°30''E.',41.85,46.18,19.5,22.5,0);
INSERT INTO "extent" VALUES('EPSG','1712','Europe - former Yugoslavia onshore east of 22.5°E','North Macedonia - east of 22°30''E; Serbia - east of 22°30''E.',41.11,44.7,22.5,23.04,0);
INSERT INTO "extent" VALUES('EPSG','1713','Nigeria - east of 10.5°E','Nigeria east of 10°30''E.',6.43,13.72,10.49,14.65,0);
INSERT INTO "extent" VALUES('EPSG','1714','Nigeria - 6.5°E to 10.5°E','Nigeria between 6°30''E and 10°30''E, onshore and offshore shelf.',3.57,13.53,6.5,10.51,0);
@@ -1827,9 +1827,9 @@ INSERT INTO "extent" VALUES('EPSG','2847','Sweden - 2.5 gon W','Sweden - commune
INSERT INTO "extent" VALUES('EPSG','2848','Sweden - 0 gon','Sweden - communes between approximately 16°55''E and 19°10''E; Gotland. See information source for map.',56.86,68.54,16.08,20.22,0);
INSERT INTO "extent" VALUES('EPSG','2849','Sweden - 2.5 gon E','Sweden - communes between approximately 19°10''E and 21°25''E. See information source for map.',63.37,69.07,18.4,22.2,0);
INSERT INTO "extent" VALUES('EPSG','2850','Sweden - 5 gon E','Sweden - east of approximately 21°26''E. See information source for map.',65.24,68.58,21.34,24.17,0);
INSERT INTO "extent" VALUES('EPSG','2851','Iceland - onshore west of 24°W','Iceland - onshore west of 24°W.',64.71,65.86,-24.66,-24.0,0);
INSERT INTO "extent" VALUES('EPSG','2852','Iceland - onshore 24°W to 18°W','Iceland - onshore between 24°W and 18°W.',63.34,66.52,-24.0,-18.0,0);
INSERT INTO "extent" VALUES('EPSG','2853','Iceland - onshore east of 18°W','Iceland - onshore east of 18°W.',63.45,66.59,-18.0,-13.38,0);
INSERT INTO "extent" VALUES('EPSG','2851','Iceland - mainland west of 24°W','Iceland - mainland west of 24°W.',64.71,65.85,-24.66,-24.0,0);
INSERT INTO "extent" VALUES('EPSG','2852','Iceland - mainland 24°W to 18°W','Iceland - mainland between 24°W and 18°W.',63.34,66.52,-24.0,-18.0,0);
INSERT INTO "extent" VALUES('EPSG','2853','Iceland - mainland east of 18°W','Iceland - mainland east of 18°W.',63.45,66.58,-18.0,-13.38,0);
INSERT INTO "extent" VALUES('EPSG','2854','Europe - 36°W to 30°W','Europe - between 36°W and 30°W.',39.3,39.85,-36.0,-30.0,1);
INSERT INTO "extent" VALUES('EPSG','2855','Europe - 30°W to 24°W','Europe - between 30°W and 24°W.',25.1,65.8,-30.0,-24.0,1);
INSERT INTO "extent" VALUES('EPSG','2856','Europe - 24°W to 18°W','Europe - between 24°W and 18°W.',27.6,66.5,-24.0,-18.0,1);
@@ -2238,7 +2238,7 @@ INSERT INTO "extent" VALUES('EPSG','3258','Guinea-Bissau - onshore','Guinea-Biss
INSERT INTO "extent" VALUES('EPSG','3259','Guyana - onshore','Guyana - onshore.',1.18,8.58,-61.39,-56.47,0);
INSERT INTO "extent" VALUES('EPSG','3260','Haiti - onshore','Haiti - onshore.',17.97,20.15,-74.52,-71.62,0);
INSERT INTO "extent" VALUES('EPSG','3261','Honduras - onshore','Honduras - onshore.',12.98,16.49,-89.36,-83.08,0);
INSERT INTO "extent" VALUES('EPSG','3262','Iceland - onshore','Iceland - onshore.',63.34,66.59,-24.66,-13.38,0);
INSERT INTO "extent" VALUES('EPSG','3262','Iceland - mainland','Iceland - mainland.',63.34,66.59,-24.66,-13.38,0);
INSERT INTO "extent" VALUES('EPSG','3263','Japan - onshore mainland','Japan - onshore mainland - Hokkaido, Honshu, Shikoku, Kyushu.',30.94,45.54,129.3,145.87,0);
INSERT INTO "extent" VALUES('EPSG','3264','Kenya - onshore','Kenya - onshore.',-4.72,4.63,33.9,41.91,0);
INSERT INTO "extent" VALUES('EPSG','3265','Korea, Democratic People''s Republic of (North Korea) - onshore','Democratic People''s Republic of Korea (North Korea) - onshore.',37.62,43.01,124.27,130.75,0);
@@ -3635,5 +3635,9 @@ INSERT INTO "extent" VALUES('EPSG','4656','Norway - inshore and nearshore','Norw
INSERT INTO "extent" VALUES('EPSG','4657','St Martin','St Martin - onshore and offshore.',17.87,18.19,-63.66,-62.73,0);
INSERT INTO "extent" VALUES('EPSG','4658','St Barthelemy','St Barthélemy - onshore and offshore.',17.64,18.31,-63.1,-62.21,0);
INSERT INTO "extent" VALUES('EPSG','4659','Italy - mainland west of 16°E','Italy - mainland northwest of approximately 16°E, including San Marino and Vatican City State.',39.65,47.09,6.62,16.52,0);
INSERT INTO "extent" VALUES('EPSG','4660','Germany - Hesse','Germany - Hesse.',49.39,51.66,7.77,10.24,0);
INSERT INTO "extent" VALUES('EPSG','4660','Germany - Hessen','Germany - Hessen.',49.39,51.66,7.77,10.24,0);
INSERT INTO "extent" VALUES('EPSG','4661','UK - Newport to Ebbw Vale','United Kingdom (UK) - on or related to the rail route from Newport (Park Junction) to Ebbw Vale.',51.5,51.85,-3.3,-2.89,0);
INSERT INTO "extent" VALUES('EPSG','4662','Iceland - onshore','Iceland - onshore.',63.24,66.62,-24.66,-13.38,0);
INSERT INTO "extent" VALUES('EPSG','4663','UK - Leeds to Hull','United Kingdom (UK) - on or related to the rail route from the Morley tunnel through Leeds to Hull.',53.6,53.9,-1.7,0.27,0);
INSERT INTO "extent" VALUES('EPSG','4664','UK - Inverness to Thurso','United Kingdom (UK) - on or related to the rail route from Inverness to Thurso and Wick.',57.4,58.64,-4.6,-3.0,0);
INSERT INTO "extent" VALUES('EPSG','4665','UK - Motherwell to Inverness','United Kingdom (UK) - on or related to the Scottish central mainline rail route from Motherwell through Perth and Pitlochry to Inverness.',55.7,57.55,-4.4,-3.3,0);
+12
View File
@@ -2168,3 +2168,15 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','9893','LUREF',NULL,'geographic 3D','EP
INSERT INTO "usage" VALUES('EPSG','17309','geodetic_crs','EPSG','9893','EPSG','1146','EPSG','1027');
INSERT INTO "geodetic_crs" VALUES('EPSG','9939','EBBWV14-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1319',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17353','geodetic_crs','EPSG','9939','EPSG','4661','EPSG','1141');
INSERT INTO "geodetic_crs" VALUES('EPSG','9964','HULLEE13-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1317',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17424','geodetic_crs','EPSG','9964','EPSG','4663','EPSG','1141');
INSERT INTO "geodetic_crs" VALUES('EPSG','9969','SCM22-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1320',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17438','geodetic_crs','EPSG','9969','EPSG','4665','EPSG','1141');
INSERT INTO "geodetic_crs" VALUES('EPSG','9974','FNL22-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1321',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17451','geodetic_crs','EPSG','9974','EPSG','4664','EPSG','1141');
INSERT INTO "geodetic_crs" VALUES('EPSG','9988','ITRF2020',NULL,'geocentric','EPSG','6500','EPSG','1322',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17904','geodetic_crs','EPSG','9988','EPSG','2830','EPSG','1027');
INSERT INTO "geodetic_crs" VALUES('EPSG','9989','ITRF2020',NULL,'geographic 3D','EPSG','6423','EPSG','1322',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17902','geodetic_crs','EPSG','9989','EPSG','1262','EPSG','1027');
INSERT INTO "geodetic_crs" VALUES('EPSG','9990','ITRF2020',NULL,'geographic 2D','EPSG','6422','EPSG','1322',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17901','geodetic_crs','EPSG','9990','EPSG','1262','EPSG','1027');
+10 -2
View File
@@ -346,8 +346,16 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1314','MRH21 Intermediate Reference
INSERT INTO "usage" VALUES('EPSG','16933','geodetic_datum','EPSG','1314','EPSG','4652','EPSG','1141');
INSERT INTO "geodetic_datum" VALUES('EPSG','1315','MOLDOR11 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','16950','geodetic_datum','EPSG','1315','EPSG','4655','EPSG','1141');
INSERT INTO "geodetic_datum" VALUES('EPSG','1319','EBBWV14 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0);
INSERT INTO "geodetic_datum" VALUES('EPSG','1317','HULLEE13 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17416','geodetic_datum','EPSG','1317','EPSG','4663','EPSG','1141');
INSERT INTO "geodetic_datum" VALUES('EPSG','1319','EBBWV14 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17343','geodetic_datum','EPSG','1319','EPSG','4661','EPSG','1141');
INSERT INTO "geodetic_datum" VALUES('EPSG','1320','SCM22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17437','geodetic_datum','EPSG','1320','EPSG','4665','EPSG','1141');
INSERT INTO "geodetic_datum" VALUES('EPSG','1321','FNL22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17450','geodetic_datum','EPSG','1321','EPSG','4664','EPSG','1141');
INSERT INTO "geodetic_datum" VALUES('EPSG','1322','International Terrestrial Reference Frame 2020',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17903','geodetic_datum','EPSG','1322','EPSG','1262','EPSG','1027');
INSERT INTO "geodetic_datum" VALUES('EPSG','6001','Not specified (based on Airy 1830 ellipsoid)',NULL,'EPSG','7001','EPSG','8901',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13422','geodetic_datum','EPSG','6001','EPSG','1263','EPSG','1213');
INSERT INTO "geodetic_datum" VALUES('EPSG','6002','Not specified (based on Airy Modified 1849 ellipsoid)',NULL,'EPSG','7002','EPSG','8901',NULL,NULL,NULL,NULL,0);
@@ -738,7 +746,7 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','6275','Nouvelle Triangulation Franca
INSERT INTO "usage" VALUES('EPSG','13616','geodetic_datum','EPSG','6275','EPSG','3694','EPSG','1153');
INSERT INTO "geodetic_datum" VALUES('EPSG','6276','NSWC 9Z-2',NULL,'EPSG','7025','EPSG','8901','1976-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13617','geodetic_datum','EPSG','6276','EPSG','1262','EPSG','1245');
INSERT INTO "geodetic_datum" VALUES('EPSG','6277','Ordnance Survey of Great Britain 1936',NULL,'EPSG','7001','EPSG','8901','1936',NULL,NULL,NULL,0);
INSERT INTO "geodetic_datum" VALUES('EPSG','6277','Ordnance Survey of Great Britain 1936',NULL,'EPSG','7001','EPSG','8901','1936-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13618','geodetic_datum','EPSG','6277','EPSG','4390','EPSG','1153');
INSERT INTO "geodetic_datum" VALUES('EPSG','6278','OSGB 1970 (SN)',NULL,'EPSG','7001','EPSG','8901','1970-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13619','geodetic_datum','EPSG','6278','EPSG','1264','EPSG','1027');
+3 -3
View File
@@ -169,9 +169,9 @@ VALUES
('GGSPM06v1.mnt','fr_ign_ggspm06v1.tif','ggspm06v1.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggspm06v1.tif',1,1,NULL),
-- is_lmi - National Land Survey of Iceland
('Icegeoid_ISN2004.gtx','is_lmi_Icegeoid_ISN2004.tif','Icegeoid_ISN2004.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2004.tif',1,1,NULL),
('Icegeoid_ISN93.gtx','is_lmi_Icegeoid_ISN93.tif','Icegeoid_ISN93.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN93.tif',1,1,NULL),
('Icegeoid_ISN2016.gtx','is_lmi_Icegeoid_ISN2016.tif','Icegeoid_ISN2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2016.tif',1,1,NULL),
('Icegeoid_ISN2004.gri','is_lmi_Icegeoid_ISN2004.tif','Icegeoid_ISN2004.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2004.tif',1,1,NULL),
('Icegeoid_ISN93.gri','is_lmi_Icegeoid_ISN93.tif','Icegeoid_ISN93.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN93.tif',1,1,NULL),
('Icegeoid_ISN2016.gri','is_lmi_Icegeoid_ISN2016.tif','Icegeoid_ISN2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2016.tif',1,1,NULL),
('ISN93_ISN2016.gsb','is_lmi_ISN93_ISN2016.tif','ISN93_ISN2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/is_lmi_ISN93_ISN2016.tif',1,1,NULL),
('ISN2004_ISN2016.gsb','is_lmi_ISN2004_ISN2016.tif','ISN2004_ISN2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/is_lmi_ISN2004_ISN2016.tif',1,1,NULL),
+31 -3
View File
@@ -372,8 +372,8 @@ INSERT INTO "grid_transformation" VALUES('EPSG','5657','GDA94 to AHD (Tasmania)
INSERT INTO "usage" VALUES('EPSG','9489','grid_transformation','EPSG','5657','EPSG','2947','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','5661','ED50 to ETRS89 (14)','When included in concatenation from and to projected CRSs, gives same results as ED50 / UTM zone 31N to ETRS89 / UTM zone 31N (1) - see CRS code 5166.','EPSG','9615','NTv2','EPSG','4230','EPSG','4258',0.05,'EPSG','8656','Latitude and longitude difference file','100800401.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ICC-Esp Cat',0);
INSERT INTO "usage" VALUES('EPSG','9492','grid_transformation','EPSG','5661','EPSG','3732','EPSG','1079');
INSERT INTO "grid_transformation" VALUES('EPSG','5891','MGI to ETRS89 (5)','Not to be used for cadastral purposes as it does not comply with the rules for control network tie-in as per Paragraph 3 of the Land Survey Regulations (Vermessungsverordnung) 2010.','EPSG','9615','NTv2','EPSG','4312','EPSG','4258',0.15,'EPSG','8656','Latitude and longitude difference file','AT_GIS_GRID.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BEV-Aut NTv2',0);
INSERT INTO "usage" VALUES('EPSG','14324','grid_transformation','EPSG','5891','EPSG','1037','EPSG','1078');
INSERT INTO "grid_transformation" VALUES('EPSG','5891','MGI to ETRS89 (5)','Not to be used for cadastral purposes because it does not comply with the rules for control network tie-in as per Paragraph 3 of the Land Survey Regulations (Vermessungsverordnung) 2010. Replaced by GIS-Grid 2021 (MGI to ETRS89 (8), code 9910).','EPSG','9615','NTv2','EPSG','4312','EPSG','4258',0.15,'EPSG','8656','Latitude and longitude difference file','AT_GIS_GRID.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BEV-Aut NTv2',0);
INSERT INTO "usage" VALUES('EPSG','17397','grid_transformation','EPSG','5891','EPSG','1037','EPSG','1144');
INSERT INTO "grid_transformation" VALUES('EPSG','6138','CIGD11 to GCVD54 height (ft) (1)','Care: source CRS heights are in metres, transformation file parameter values and target CRS heights are in feet. For reversible alternative to this transformation see CIGD11 to CIGD11 + GCVD54 height (ft)) (code 9603).','EPSG','1050','Geographic3D to GravityRelatedHeight (CI)','EPSG','6134','EPSG','6130',0.03,'EPSG','8666','Geoid (height correction) model file','GCGM0811.TXT',NULL,NULL,NULL,NULL,NULL,NULL,'LSD-Cym',0);
INSERT INTO "usage" VALUES('EPSG','14268','grid_transformation','EPSG','6138','EPSG','3185','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','6139','CIGD11 to LCVD61 height (ft) (1)','Care: source CRS heights are in metres, transformation file parameter values and target CRS heights are in feet. For reversible alternative to this transformation see CIGD11 to CIGD11 + LCVD61 height (ft) (1) (code 9604).','EPSG','1050','Geographic3D to GravityRelatedHeight (CI)','EPSG','6134','EPSG','6131',0.03,'EPSG','8666','Geoid (height correction) model file','LCGM0811.TXT',NULL,NULL,NULL,NULL,NULL,NULL,'LSD-Cym',0);
@@ -1150,6 +1150,8 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9908','ETRS89 to Ostend height
INSERT INTO "usage" VALUES('EPSG','17367','grid_transformation','EPSG','9908','EPSG','1347','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9909','ETRS89 to ETRS89 + Ostend height (1)','Reversible alternative to ETRS89 to Ostend height (1) (code 9908). In use from 2018-08-01.','EPSG','1098','Geog3D to Geog2D+GravityRelatedHeight (txt)','EPSG','4937','EPSG','9907',0.02,'EPSG','8666','Geoid (height correction) model file','hBG18.dat',NULL,NULL,NULL,NULL,'EPSG','4258','NGI-Bel 2018',0);
INSERT INTO "usage" VALUES('EPSG','17373','grid_transformation','EPSG','9909','EPSG','1347','EPSG','1270');
INSERT INTO "grid_transformation" VALUES('EPSG','9910','MGI to ETRS89 (8)','Replaces GIS-Grid (2010) (CT 5891). Not to be used for cadastral purposes because it does not comply with the rules for control network tie-in as per Paragraph 3 of the Land Survey Regulations (Vermessungsverordnung) 2010.','EPSG','9615','NTv2','EPSG','4312','EPSG','4258',0.14,'EPSG','8656','Latitude and longitude difference file','AT_GIS_GRID_2021_09_28.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BEV-Aut NTv2 2021',0);
INSERT INTO "usage" VALUES('EPSG','17414','grid_transformation','EPSG','9910','EPSG','1037','EPSG','1144');
INSERT INTO "grid_transformation" VALUES('EPSG','9914','ETRS89 to BI height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + BI height (1) (code 9915).','EPSG','9663','Geographic3D to GravityRelatedHeight (OSGM-GB)','EPSG','4937','EPSG','9451',0.02,'EPSG','8666','Geoid (height correction) model file','OSTN15_OSGM15_GB.txt',NULL,NULL,NULL,NULL,NULL,NULL,'OS-Gbr 2015',0);
INSERT INTO "usage" VALUES('EPSG','17330','grid_transformation','EPSG','9914','EPSG','4390','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9915','ETRS89 to ETRS89 + BI height (1)','Reversible alternative to ETRS89 to BI height (1) (code 9914).','EPSG','1097','Geog3D to Geog2D+GravityRelatedHeight (OSGM-GB)','EPSG','4937','EPSG','9452',0.02,'EPSG','8666','Geoid (height correction) model file','OSTN15_OSGM15_GB.txt',NULL,NULL,NULL,NULL,'EPSG','4258','OS-Gbr 2015',0);
@@ -1168,10 +1170,32 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9925','ETRS89 to DHHN2016 heigh
INSERT INTO "usage" VALUES('EPSG','17171','grid_transformation','EPSG','9925','EPSG','3339','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9926','ETRS89 to ETRS89 + DHHN2016 height (1)','Reversible alternative to ETRS89 to DHHN2016 height (1) (code 9925). Accuracy approx. 1 cm in the lowlands, approx. 2 cm in the high mountains and 2 - 6 cm offshore.','EPSG','1098','Geog3D to Geog2D+GravityRelatedHeight (txt)','EPSG','4937','EPSG','9924',0.02,'EPSG','8666','Geoid (height correction) model file','GCG2016.txt',NULL,NULL,NULL,NULL,'EPSG','4258','BKG-Deu 2016',0);
INSERT INTO "usage" VALUES('EPSG','17170','grid_transformation','EPSG','9926','EPSG','3339','EPSG','1270');
INSERT INTO "grid_transformation" VALUES('EPSG','9940','DHDN to ETRS89 (11)','Official transformation of Hesse for the land survey register (ALKIS).','EPSG','9615','NTv2','EPSG','4314','EPSG','4258',0.1,'EPSG','8656','Latitude and longitude difference file','HeTa2010.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'LVGL-Deu HE 2010',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9940','DHDN to ETRS89 (11)','Official transformation of Hessen for the land survey register (ALKIS).','EPSG','9615','NTv2','EPSG','4314','EPSG','4258',0.1,'EPSG','8656','Latitude and longitude difference file','HeTa2010.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'LVGL-Deu HE 2010',0);
INSERT INTO "usage" VALUES('EPSG','17340','grid_transformation','EPSG','9940','EPSG','4660','EPSG','1055');
INSERT INTO "grid_transformation" VALUES('EPSG','9941','ETRS89 to EBBWV14-IRF (1)','In conjunction with EBBWV14-TM map projection (code 9942) applied to EBBWV14-IRF (code 9939), emulates the EBBWV14 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009) defines EBBWV14-IRF hence is errorless. ','EPSG','9615','NTv2','EPSG','4258','EPSG','9939',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-EBBWV14-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr EBBWV14 OSNet2009',0);
INSERT INTO "usage" VALUES('EPSG','17356','grid_transformation','EPSG','9941','EPSG','4661','EPSG','1141');
INSERT INTO "grid_transformation" VALUES('EPSG','9954','ISN93 to ISH2004 height (1)','File is also available in NOAA VDatum format (Icegeoid_ISN93.gtx). For reversible alternative to this transformation see ISN93 to ISN93 + ISH2004 height (1) (CT code 9955). Replaced by Icegeoid_ISN2004 (CT code 9956).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4945','EPSG','8089',0.05,'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN93.gri',NULL,NULL,NULL,NULL,NULL,NULL,'NMI-Isl',0);
INSERT INTO "usage" VALUES('EPSG','17385','grid_transformation','EPSG','9954','EPSG','4662','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9955','ISN93 to ISN93 + ISH2004 height (1)','Reversible alternative to ISN93 to ISH2004 height (1) (code 9954). File is also available in NOAA VDatum format (Icegeoid_ISN93.gtx). Replaced by Icegeoid_ISN2004.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','4945','EPSG','9948',0.05,'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN93.gri',NULL,NULL,NULL,NULL,'EPSG','4659','NMI-Isl',0);
INSERT INTO "usage" VALUES('EPSG','17393','grid_transformation','EPSG','9955','EPSG','4662','EPSG','1270');
INSERT INTO "grid_transformation" VALUES('EPSG','9956','ISN2004 to ISH2004 height (1)','File also available in NOAA VDatum format (Icegeoid_ISN2004.gtx). For reversible alternative to this transformation see ISN2004 to ISN2004 + ISH2004 height (1) (CT code 9957). Replaces Icegeoid_ISN93 (code 9954). Replaced by Icegeoid_ISN2016 (code 9958).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','5323','EPSG','8089',0.05,'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2004.gri',NULL,NULL,NULL,NULL,NULL,NULL,'NMI-Isl',0);
INSERT INTO "usage" VALUES('EPSG','17391','grid_transformation','EPSG','9956','EPSG','4662','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9957','ISN2004 to ISN2004 + ISH2004 height (1)','Reversible alternative to ISN2004 to ISH2004 height (1) (CT code 9956). File is also available in NOAA VDatum format (Icegeoid_ISN2004.gtx). Replaces Icegeoid_ISN93, replaced by Icegeoid_ISN2016.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','5323','EPSG','9949',0.05,'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2004.gri',NULL,NULL,NULL,NULL,'EPSG','5324','NMI-Isl',0);
INSERT INTO "usage" VALUES('EPSG','17394','grid_transformation','EPSG','9957','EPSG','4662','EPSG','1270');
INSERT INTO "grid_transformation" VALUES('EPSG','9958','ISN2016 to ISH2004 height (1)','File also available in NOAA VDatum format (Icegeoid_ISN2016.gtx). For reversible alternative to this transformation see ISN2016 to ISN2016 + ISH2004 height (1) (CT code 9959). Replaces Icegeoid_ISN2004 (code 9956).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','8085','EPSG','8089',0.05,'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2016.gri',NULL,NULL,NULL,NULL,NULL,NULL,'NMI-Isl',0);
INSERT INTO "usage" VALUES('EPSG','17392','grid_transformation','EPSG','9958','EPSG','4662','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9959','ISN2016 to ISN2016 + ISH2004 height (1)','Reversible alternative to ISN2016 to ISH2004 height (1) (CT code 9958). File is also available in NOAA VDatum format (Icegeoid_ISN2016.gtx). Replaces Icegeoid_ISN2004.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','8085','EPSG','9950',0.05,'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2016.gri',NULL,NULL,NULL,NULL,'EPSG','8086','NMI-Isl',0);
INSERT INTO "usage" VALUES('EPSG','17395','grid_transformation','EPSG','9959','EPSG','4662','EPSG','1270');
INSERT INTO "grid_transformation" VALUES('EPSG','9965','ETRS89 to HULLEE13-IRF (1)','In conjunction with the HULLEE13-TM map projection (code 9966) applied to HULLEE13-IRF (code 9964), emulates the HULLEE13 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009) defines HULLEE13-IRF hence is errorless. ','EPSG','9615','NTv2','EPSG','4258','EPSG','9964',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-HULLEE13-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr HULLEE OSNet2009',0);
INSERT INTO "usage" VALUES('EPSG','17458','grid_transformation','EPSG','9965','EPSG','4663','EPSG','1141');
INSERT INTO "grid_transformation" VALUES('EPSG','9970','ETRS89 to SCM22-IRF (1)','In conjunction with the SCM22-TM map projection (code 9971) applied to SCM22-IRF (code 9969), emulates the SCM22 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009) defines SCM22-IRF hence is errorless. ','EPSG','9615','NTv2','EPSG','4258','EPSG','9969',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-SCM22-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr SCM22 OSNet2009',0);
INSERT INTO "usage" VALUES('EPSG','17453','grid_transformation','EPSG','9970','EPSG','4665','EPSG','1141');
INSERT INTO "grid_transformation" VALUES('EPSG','9975','ETRS89 to FNL22-IRF (1)','In conjunction with the FNL22-TM map projection (code 9976) applied to FNL22-IRF (code 9974), emulates the FNL22 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009) defines FNL22-IRF hence is errorless. ','EPSG','9615','NTv2','EPSG','4258','EPSG','9974',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-FNL22-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr FNL22 OSNet2009',0);
INSERT INTO "usage" VALUES('EPSG','17452','grid_transformation','EPSG','9975','EPSG','4664','EPSG','1141');
INSERT INTO "grid_transformation" VALUES('EPSG','9979','SIRGAS 1995 to SIRGAS 2000 (1)','Derived at 48 stations.','EPSG','9615','NTv2','EPSG','4170','EPSG','4674',0.006,'EPSG','8656','Latitude and longitude difference file','SIRGAS1995-to-SIRGAS2000.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SIR-SAm 2021',0);
INSERT INTO "usage" VALUES('EPSG','17507','grid_transformation','EPSG','9979','EPSG','3448','EPSG','1278');
INSERT INTO "grid_transformation" VALUES('EPSG','9980','SIRGAS 2000 to SIRGAS-CON SIR17P01 (1)','Derived at 79 stations at epoch 2015.00. Accuracy deteriorates with time due to intra-plate seismic deformation.','EPSG','9615','NTv2','EPSG','4674','EPSG','8987',0.02,'EPSG','8656','Latitude and longitude difference file','SIRGAS2000-to-SIRGAS-CONSIR17P01.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SIR-SAm 2021',0);
INSERT INTO "usage" VALUES('EPSG','17505','grid_transformation','EPSG','9980','EPSG','4530','EPSG','1255');
INSERT INTO "grid_transformation" VALUES('EPSG','10000','RGF93 v1 to NGF-IGN69 height (1)','May be used for transformations from WGS 84 to NGF-IGN69 height. Accuracy at each 0.1 deg x 0.1 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4965','EPSG','5720',0.5,'EPSG','8666','Geoid (height correction) model file','ggf97a.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra',0);
INSERT INTO "usage" VALUES('EPSG','11001','grid_transformation','EPSG','10000','EPSG','1326','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','10001','ETRS89 to NGF-IGN69 height (1)','Parameter values taken from RGF93 v1 to NGF-IGN69 height (1) (code 10000) assuming that RGF93 v1 is equivalent to ETRS89 within the accuracy of the transformation. Accuracy at each 0.1 deg x 0.1 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4937','EPSG','5720',0.5,'EPSG','8666','Geoid (height correction) model file','ggf97a.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra',0);
@@ -1342,6 +1366,10 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10083','GDA94 to AHD (Tasmania)
INSERT INTO "usage" VALUES('EPSG','11084','grid_transformation','EPSG','10083','EPSG','2947','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','10084','WGS 84 to EGM96 height (1)','Replaces WGS 84 to EGM84 height (1) (CT 15781). Replaced by WGS 84 to EGM2008 height (1) and (2) (CTs 3858-59). For reversible alternative see WGS 84 to WGS 84 + EGM96 height (1) (CT 9708). An executable using spherical harmonics is also available.','EPSG','9661','Geographic3D to GravityRelatedHeight (EGM)','EPSG','4979','EPSG','5773',1.0,'EPSG','8666','Geoid (height correction) model file','WW15MGH.GRD',NULL,NULL,NULL,NULL,NULL,NULL,'NGA-World',0);
INSERT INTO "usage" VALUES('EPSG','11085','grid_transformation','EPSG','10084','EPSG','1262','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','10106','ETRS89 to SVD2006 height (1)','For reversible alternative see ETRS89 to ETRS89 + SVD2006 height (1) (code 10107).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','20000',1.0,'EPSG','8666','Geoid (height correction) model file','arcgp-2006-sk.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NMA-Sjm SV 2006',0);
INSERT INTO "usage" VALUES('EPSG','17961','grid_transformation','EPSG','10106','EPSG','4058','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','10107','ETRS89 to ETRS89 + SVD2006 height (1)','Reversible alternative to ETRS89 to SVD2006 height (1) (code 10106).','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','20001',1.0,'EPSG','8666','Geoid (height correction) model file','arcgp-2006-sk.bin',NULL,NULL,NULL,NULL,'EPSG','4258','NMA-Sjm SV 2006',0);
INSERT INTO "usage" VALUES('EPSG','17960','grid_transformation','EPSG','10107','EPSG','4058','EPSG','1270');
INSERT INTO "grid_transformation" VALUES('EPSG','15486','CH1903 to CH1903+ (1)','For improved accuracy (0.01m) use CHENyx06 interpolation programme FINELTRA. File CHENyx06 replaced by CHENyx06a; there is a small area at the border of the data where some more real data has been introduced. swisstopo consider the change insignificant.','EPSG','9615','NTv2','EPSG','4149','EPSG','4150',0.2,'EPSG','8656','Latitude and longitude difference file','CHENyx06a.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che',0);
INSERT INTO "usage" VALUES('EPSG','11497','grid_transformation','EPSG','15486','EPSG','1286','EPSG','1085');
INSERT INTO "grid_transformation" VALUES('EPSG','15488','RRAF 1991 to IGN 1988 MG height (1)','May be used for transformations from WGS 84 to IGN 1988 MG. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4973','EPSG','5617',0.2,'EPSG','8666','Geoid (height correction) model file','ggg00_mg.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG',1);
-62
View File
@@ -86,68 +86,6 @@ INSERT INTO "usage" VALUES(
'EPSG','1024' -- unknown
);
-- Iceland
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_5323_TO_EPSG_8089','ISN2004 to ISH2004 height',
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','5323', -- source CRS (ISN2004 geographic 3D)
'EPSG','8089', -- target CRS (ISH2004 height)
NULL,
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2004.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_5323_TO_EPSG_8089_USAGE',
'grid_transformation',
'PROJ',
'EPSG_5323_TO_EPSG_8089',
'EPSG','1120', -- area of use: Iceland - onshore and offshore
'EPSG','1024' -- unknown
);
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_4945_TO_EPSG_8089','ISN93 to ISH2004 height',
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4945', -- source CRS (ISN93 geographic 3D)
'EPSG','8089', -- target CRS (ISH2004 height)
NULL,
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN93.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_4945_TO_EPSG_8089_USAGE',
'grid_transformation',
'PROJ',
'EPSG_4945_TO_EPSG_8089',
'EPSG','1120', -- area of use: Iceland - onshore and offshore
'EPSG','1024' -- unknown
);
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_8085_TO_EPSG_8089','ISN2016 to ISH2004 height',
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','8085', -- source CRS (ISN2016 geographic 3D)
'EPSG','8089', -- target CRS (ISH2004 height)
NULL,
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2016.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_8085_TO_EPSG_8089_USAGE',
'grid_transformation',
'PROJ',
'EPSG_8085_TO_EPSG_8089',
'EPSG','1120', -- area of use: Iceland - onshore and offshore
'EPSG','1024' -- unknown
);
-- Japan
INSERT INTO "grid_transformation" VALUES(
+34
View File
@@ -2481,6 +2481,32 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','9937','LUREF to ETRS89 (7)',
INSERT INTO "usage" VALUES('EPSG','17307','helmert_transformation','EPSG','9937','EPSG','1146','EPSG','1283');
INSERT INTO "helmert_transformation" VALUES('EPSG','9938','LUREF to ETRS89 (8)','LUREF 2020 parameters. For an equivalent CT using the Molodensky-Badekas method see CT 9937. Defines LUREF from 2020. Replaces LUREF 2014 parameters (CT 9899). Info source gives CT in reverse direction. Derived using ETRF2000 @2013-01-27.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4181','EPSG','4258',0.0,-189.228,12.0035,-42.6303,'EPSG','9001',0.48171,3.09948,-2.68639,'EPSG','9104',0.46346,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ACT-Lux CF 2020',0);
INSERT INTO "usage" VALUES('EPSG','17308','helmert_transformation','EPSG','9938','EPSG','1146','EPSG','1283');
INSERT INTO "helmert_transformation" VALUES('EPSG','9960','WGS 84 (Transit) to WGS 84 (G730) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Derived through ITRF90 and ITRF91 at epoch 1990.5. Parameter values valid at other epochs including 2005.0.','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','7815','EPSG','7656',0.7,-58.0,521.0,239.0,'EPSG','1025',18.3,-0.3,7.0,'EPSG','1031',10.7,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'KD2022-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17491','helmert_transformation','EPSG','9960','EPSG','1262','EPSG','1026');
INSERT INTO "helmert_transformation" VALUES('EPSG','9961','WGS 84 (G730) to WGS 84 (G873) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Derived via ITRF91 through ITRF94 at epoch 1995.5. Parameter values valid at other epochs including 2005.0.','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','7656','EPSG','7658',0.04,-20.0,-16.0,14.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',-0.69,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'KD2022-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17492','helmert_transformation','EPSG','9961','EPSG','1262','EPSG','1026');
INSERT INTO "helmert_transformation" VALUES('EPSG','9962','WGS 84 (G873) to WGS 84 (G1150) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Derived via ITRF94 through ITRF2000. May be approximated to 0.2m using 7-parameter CF method 1032 with parameters for epoch 1999.50 of tX=1.1mm tY=-8.0mm tZ=14.3mm rX=0 rY=0 rZ=0.05mas dS=1.505ppb.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','7658','EPSG','7660',0.03,1.1,-4.7,22.0,'EPSG','1025',0.0,0.0,0.16,'EPSG','1031',1.45,'EPSG','1028',0.0,0.6,1.4,'EPSG','1027',0.0,0.0,0.02,'EPSG','1032',-0.01,'EPSG','1030',2005.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'KD2022-Wld',0);
INSERT INTO "usage" VALUES('EPSG','18078','helmert_transformation','EPSG','9962','EPSG','1262','EPSG','1026');
INSERT INTO "helmert_transformation" VALUES('EPSG','9963','WGS 84 (G1150) to WGS 84 (G1674) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Derived via ITRF2005. May be approximated to 0.4m using 7-parameter CF method 1032 with parameters for epoch 2007.50 of tX=-2.65mm tY=1.35mm tZ=27.7mm rX=-0.27mas rY=027mas rZ=-0.38 mas dS=1.88ppb.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','7660','EPSG','7662',0.02,-2.4,1.6,23.2,'EPSG','1025',-0.27,0.27,-0.38,'EPSG','1031',2.08,'EPSG','1028',-0.1,-0.1,1.8,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',-0.08,'EPSG','1030',2005.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'KD2022-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17500','helmert_transformation','EPSG','9963','EPSG','1262','EPSG','1026');
INSERT INTO "helmert_transformation" VALUES('EPSG','9991','ITRF2014 to ITRF2020 (1)','IERS describes CT in opposite direction. Estimated using core network of 131 stations at 105 sites. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','7789','EPSG','9988',0.001,1.4,0.9,-1.4,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.42,'EPSG','1028',0.0,0.1,-0.2,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',0.0,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17933','helmert_transformation','EPSG','9991','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9992','ITRF2008 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from those already published between ITRF2020, ITRF2014 and ITRF2008. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','5332','EPSG','9988',0.01,-0.2,-1.0,-3.3,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.29,'EPSG','1028',0.0,0.1,-0.1,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',-0.03,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17946','helmert_transformation','EPSG','9992','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9993','ITRF2005 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4896','EPSG','9988',0.01,-2.7,-0.1,1.4,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',-0.65,'EPSG','1028',-0.3,0.1,-0.1,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',-0.03,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17935','helmert_transformation','EPSG','9993','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9994','ITRF2000 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4919','EPSG','9988',0.01,0.2,-0.8,34.2,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',-2.25,'EPSG','1028',-0.1,0.0,1.7,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',-0.11,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17936','helmert_transformation','EPSG','9994','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9995','ITRF97 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4918','EPSG','9988',0.01,-6.5,3.9,77.9,'EPSG','1025',0.0,0.0,-0.36,'EPSG','1031',-3.98,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17937','helmert_transformation','EPSG','9995','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9996','ITRF96 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4917','EPSG','9988',0.01,-6.5,3.9,77.9,'EPSG','1025',0.0,0.0,-0.36,'EPSG','1031',-3.98,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17938','helmert_transformation','EPSG','9996','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9997','ITRF94 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4916','EPSG','9988',0.01,-6.5,3.9,77.9,'EPSG','1025',0.0,0.0,-0.36,'EPSG','1031',-3.98,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17939','helmert_transformation','EPSG','9997','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9998','ITRF93 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4915','EPSG','9988',0.01,65.8,-1.9,71.3,'EPSG','1025',3.36,4.33,-0.75,'EPSG','1031',-4.47,'EPSG','1028',2.8,0.2,2.3,'EPSG','1027',0.11,0.19,-0.07,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17947','helmert_transformation','EPSG','9998','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9999','ITRF92 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4914','EPSG','9988',0.01,-14.5,1.9,85.9,'EPSG','1025',0.0,0.0,-0.36,'EPSG','1031',-3.27,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17941','helmert_transformation','EPSG','9999','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','10085','Trinidad 1903 to WGS 84 (2)','Parameter values provided to EOG by Trinidad Ministry of Energy and Energy Industries. Used by EOG offshore Trinidad (including Pelican, Kiskadee and Ibis fields) since 1996.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4302','EPSG','4326',3.0,-61.0,285.2,471.6,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EOG-Tto Trin',0);
INSERT INTO "usage" VALUES('EPSG','11086','helmert_transformation','EPSG','10085','EPSG','1339','EPSG','1136');
INSERT INTO "helmert_transformation" VALUES('EPSG','10086','JAD69 to WGS 72 (1)','Derived in 1977 through Transit observations at 2 stations by US DMA.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4242','EPSG','4322',15.0,48.0,208.0,382.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SD-Jam',0);
@@ -2501,6 +2527,14 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10098','KKJ to ETRS89 (2)','
INSERT INTO "usage" VALUES('EPSG','11099','helmert_transformation','EPSG','10098','EPSG','3333','EPSG','1035');
INSERT INTO "helmert_transformation" VALUES('EPSG','10099','KKJ to WGS 84 (2)','Parameter values from KKJ to ETRS89 (2) (code 10098). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces KKJ to WGS 84 (1) (code 1639).','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4123','EPSG','4326',1.0,-96.062,-82.428,-121.753,'EPSG','9001',-4.801,-0.345,1.376,'EPSG','9104',1.496,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Fin JHS153',0);
INSERT INTO "usage" VALUES('EPSG','11100','helmert_transformation','EPSG','10099','EPSG','3333','EPSG','1151');
INSERT INTO "helmert_transformation" VALUES('EPSG','10100','ITRF91 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4913','EPSG','9988',0.01,-26.5,-12.1,91.9,'EPSG','1025',0.0,0.0,-0.36,'EPSG','1031',-4.67,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17942','helmert_transformation','EPSG','10100','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','10103','ITRF90 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4912','EPSG','9988',0.01,-24.5,-8.1,107.9,'EPSG','1025',0.0,0.0,-0.36,'EPSG','1031',-4.97,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17943','helmert_transformation','EPSG','10103','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','10104','ITRF89 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4911','EPSG','9988',0.01,-29.5,-32.1,145.9,'EPSG','1025',0.0,0.0,-0.36,'EPSG','1031',-8.37,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17944','helmert_transformation','EPSG','10104','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','10105','ITRF88 to ITRF2020 (1)','IERS describes CT in opposite direction. Parameter values derived from the those between ITRF2020, ITRF2014 and ITRF2008 and those published between earlier realizations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4910','EPSG','9988',0.01,-24.5,3.9,169.9,'EPSG','1025',-0.1,0.0,-0.36,'EPSG','1031',-11.47,'EPSG','1028',-0.1,0.6,3.1,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "usage" VALUES('EPSG','17948','helmert_transformation','EPSG','10105','EPSG','1262','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','15483','Tokyo to JGD2000 (1)','Derived at Tokyo datum origin. Accuracy on main islands 9m. Also used on remote islands with significantly less accuracy: Io-To 793m, Kitadaito and Minamidaito Jima 642m, Tarama and Minna Shima 560m, Ishigaki and Taketomi Jima 251m, Yonaguni Jima 248m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4612',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'GSI-Jpn',0);
INSERT INTO "usage" VALUES('EPSG','11494','helmert_transformation','EPSG','15483','EPSG','3957','EPSG','1142');
INSERT INTO "helmert_transformation" VALUES('EPSG','15484','Tokyo to WGS 84 (108)','Parameter values from Tokyo to JGD2000 (1) (code 15483). Assumes JGD2000 and WGS 84 can be considered the same to within the accuracy of the transformation.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4326',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Jpn',0);
+3 -3
View File
@@ -9,8 +9,8 @@
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1);
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 2);
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.054');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2022-02-13');
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.064');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2022-05-19');
-- The value of ${PROJ_VERSION} is substituted at build time by the actual
-- value.
@@ -18,4 +18,4 @@ INSERT INTO "metadata" VALUES('PROJ.VERSION', '${PROJ_VERSION}');
-- Version of the PROJ-data package with which this database is the most
-- compatible.
INSERT INTO "metadata" VALUES('PROJ_DATA.VERSION', '1.9');
INSERT INTO "metadata" VALUES('PROJ_DATA.VERSION', '1.10');
+280 -2
View File
@@ -5051,6 +5051,7 @@ INSERT INTO "projected_crs" VALUES('EPSG','6312','CGRS93 / Cyprus Local Transver
INSERT INTO "usage" VALUES('EPSG','4551','projected_crs','EPSG','6312','EPSG','3236','EPSG','1092');
INSERT INTO "projected_crs" VALUES('EPSG','6316','MGI 1901 / Balkans zone 7',NULL,'EPSG','4498','EPSG','3906','EPSG','18277',NULL,0);
INSERT INTO "usage" VALUES('EPSG','4552','projected_crs','EPSG','6316','EPSG','1711','EPSG','1092');
INSERT INTO "usage" VALUES('EPSG','17354','projected_crs','EPSG','6316','EPSG','1148','EPSG','1028');
INSERT INTO "projected_crs" VALUES('EPSG','6328','NAD83(2011) / UTM zone 59N',NULL,'EPSG','4400','EPSG','6318','EPSG','16059',NULL,0);
INSERT INTO "usage" VALUES('EPSG','4562','projected_crs','EPSG','6328','EPSG','3372','EPSG','1211');
INSERT INTO "projected_crs" VALUES('EPSG','6329','NAD83(2011) / UTM zone 60N',NULL,'EPSG','4400','EPSG','6318','EPSG','16060',NULL,0);
@@ -6713,9 +6714,9 @@ INSERT INTO "projected_crs" VALUES('EPSG','8067','NAD83(2011) / PCCS zone 3 (ft)
INSERT INTO "usage" VALUES('EPSG','5608','projected_crs','EPSG','8067','EPSG','4450','EPSG','1207');
INSERT INTO "projected_crs" VALUES('EPSG','8068','NAD83(2011) / PCCS zone 4 (ft)',NULL,'EPSG','4495','EPSG','6318','EPSG','8064',NULL,0);
INSERT INTO "usage" VALUES('EPSG','5609','projected_crs','EPSG','8068','EPSG','4473','EPSG','1207');
INSERT INTO "projected_crs" VALUES('EPSG','8082','NAD83(CSRS)v6 / MTM Nova Scotia zone 4',NULL,'EPSG','4400','EPSG','8252','EPSG','8080',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8082','NAD83(CSRS)v6 / MTM NS 2010 zone 4',NULL,'EPSG','4400','EPSG','8252','EPSG','8080',NULL,0);
INSERT INTO "usage" VALUES('EPSG','5610','projected_crs','EPSG','8082','EPSG','1534','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','8083','NAD83(CSRS)v6 / MTM Nova Scotia zone 5',NULL,'EPSG','4400','EPSG','8252','EPSG','8081',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8083','NAD83(CSRS)v6 / MTM NS 2010 zone 5',NULL,'EPSG','4400','EPSG','8252','EPSG','8081',NULL,0);
INSERT INTO "usage" VALUES('EPSG','5611','projected_crs','EPSG','8083','EPSG','1535','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','8088','ISN2016 / Lambert 2016',NULL,'EPSG','4499','EPSG','8086','EPSG','8087',NULL,0);
INSERT INTO "usage" VALUES('EPSG','5615','projected_crs','EPSG','8088','EPSG','1120','EPSG','1210');
@@ -7437,6 +7438,16 @@ INSERT INTO "projected_crs" VALUES('EPSG','9895','LUREF / Luxembourg TM (3D)',NU
INSERT INTO "usage" VALUES('EPSG','17310','projected_crs','EPSG','9895','EPSG','1146','EPSG','1091');
INSERT INTO "projected_crs" VALUES('EPSG','9943','EBBWV14 Grid',NULL,'EPSG','4400','EPSG','9939','EPSG','9942',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17349','projected_crs','EPSG','9943','EPSG','4661','EPSG','1141');
INSERT INTO "projected_crs" VALUES('EPSG','9945','Macedonia State Coordinate System truncated',NULL,'EPSG','4498','EPSG','3906','EPSG','9911',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17461','projected_crs','EPSG','9945','EPSG','1148','EPSG','1028');
INSERT INTO "projected_crs" VALUES('EPSG','9947','ISN2004 / LAEA Iceland',NULL,'EPSG','4400','EPSG','5324','EPSG','9946',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17376','projected_crs','EPSG','9947','EPSG','1120','EPSG','1162');
INSERT INTO "projected_crs" VALUES('EPSG','9967','HULLEE13 Grid',NULL,'EPSG','4400','EPSG','9964','EPSG','9966',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17429','projected_crs','EPSG','9967','EPSG','4663','EPSG','1141');
INSERT INTO "projected_crs" VALUES('EPSG','9972','SCM22 Grid',NULL,'EPSG','4400','EPSG','9969','EPSG','9971',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17441','projected_crs','EPSG','9972','EPSG','4665','EPSG','1141');
INSERT INTO "projected_crs" VALUES('EPSG','9977','FNL22 Grid',NULL,'EPSG','4400','EPSG','9974','EPSG','9976',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17456','projected_crs','EPSG','9977','EPSG','4664','EPSG','1141');
INSERT INTO "projected_crs" VALUES('EPSG','20004','Pulkovo 1995 / Gauss-Kruger zone 4',NULL,'EPSG','4530','EPSG','4200','EPSG','16204',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6177','projected_crs','EPSG','20004','EPSG','1763','EPSG','1211');
INSERT INTO "projected_crs" VALUES('EPSG','20005','Pulkovo 1995 / Gauss-Kruger zone 5',NULL,'EPSG','4530','EPSG','4200','EPSG','16205',NULL,0);
@@ -8153,12 +8164,73 @@ INSERT INTO "projected_crs" VALUES('EPSG','22196','Campo Inchauspe / Argentina 6
INSERT INTO "usage" VALUES('EPSG','6359','projected_crs','EPSG','22196','EPSG','1613','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22197','Campo Inchauspe / Argentina 7',NULL,'EPSG','4530','EPSG','4221','EPSG','18037',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6360','projected_crs','EPSG','22197','EPSG','1614','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22207','NAD83(CSRS)v2 / UTM zone 7N',NULL,'EPSG','4400','EPSG','8237','EPSG','16007',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18003','projected_crs','EPSG','22207','EPSG','3409','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22208','NAD83(CSRS)v2 / UTM zone 8N',NULL,'EPSG','4400','EPSG','8237','EPSG','16008',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18004','projected_crs','EPSG','22208','EPSG','3410','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22209','NAD83(CSRS)v2 / UTM zone 9N',NULL,'EPSG','4400','EPSG','8237','EPSG','16009',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18005','projected_crs','EPSG','22209','EPSG','3411','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22210','NAD83(CSRS)v2 / UTM zone 10N',NULL,'EPSG','4400','EPSG','8237','EPSG','16010',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18006','projected_crs','EPSG','22210','EPSG','3412','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22211','NAD83(CSRS)v2 / UTM zone 11N',NULL,'EPSG','4400','EPSG','8237','EPSG','16011',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18007','projected_crs','EPSG','22211','EPSG','3528','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22212','NAD83(CSRS)v2 / UTM zone 12N',NULL,'EPSG','4400','EPSG','8237','EPSG','16012',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18008','projected_crs','EPSG','22212','EPSG','3527','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22213','NAD83(CSRS)v2 / UTM zone 13N',NULL,'EPSG','4400','EPSG','8237','EPSG','16013',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17996','projected_crs','EPSG','22213','EPSG','3526','EPSG','1142');
INSERT INTO "usage" VALUES('EPSG','17997','projected_crs','EPSG','22213','EPSG','2375','EPSG','1220');
INSERT INTO "projected_crs" VALUES('EPSG','22214','NAD83(CSRS)v2 / UTM zone 14N',NULL,'EPSG','4400','EPSG','8237','EPSG','16014',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17998','projected_crs','EPSG','22214','EPSG','3413','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22215','NAD83(CSRS)v2 / UTM zone 15N',NULL,'EPSG','4400','EPSG','8237','EPSG','16015',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17999','projected_crs','EPSG','22215','EPSG','3414','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22216','NAD83(CSRS)v2 / UTM zone 16N',NULL,'EPSG','4400','EPSG','8237','EPSG','16016',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18000','projected_crs','EPSG','22216','EPSG','3415','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22217','NAD83(CSRS)v2 / UTM zone 17N',NULL,'EPSG','4400','EPSG','8237','EPSG','16017',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18001','projected_crs','EPSG','22217','EPSG','3416','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22218','NAD83(CSRS)v2 / UTM zone 18N',NULL,'EPSG','4400','EPSG','8237','EPSG','16018',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18002','projected_crs','EPSG','22218','EPSG','3417','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22219','NAD83(CSRS)v2 / UTM zone 19N',NULL,'EPSG','4400','EPSG','8237','EPSG','16019',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17992','projected_crs','EPSG','22219','EPSG','3524','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22220','NAD83(CSRS)v2 / UTM zone 20N',NULL,'EPSG','4400','EPSG','8237','EPSG','16020',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17993','projected_crs','EPSG','22220','EPSG','3525','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22221','NAD83(CSRS)v2 / UTM zone 21N',NULL,'EPSG','4400','EPSG','8237','EPSG','16021',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17994','projected_crs','EPSG','22221','EPSG','2151','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22222','NAD83(CSRS)v2 / UTM zone 22N',NULL,'EPSG','4400','EPSG','8237','EPSG','16022',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17995','projected_crs','EPSG','22222','EPSG','2152','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22234','Cape / UTM zone 34S',NULL,'EPSG','4400','EPSG','4222','EPSG','16134',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6361','projected_crs','EPSG','22234','EPSG','1615','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22235','Cape / UTM zone 35S',NULL,'EPSG','4400','EPSG','4222','EPSG','16135',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6362','projected_crs','EPSG','22235','EPSG','1617','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22236','Cape / UTM zone 36S',NULL,'EPSG','4400','EPSG','4222','EPSG','16136',NULL,1);
INSERT INTO "usage" VALUES('EPSG','6363','projected_crs','EPSG','22236','EPSG','1616','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22239','NAD83(CSRS)v2 / PEI Stereographic',NULL,'EPSG','4496','EPSG','8237','EPSG','19960',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18015','projected_crs','EPSG','22239','EPSG','1533','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22240','NAD83(CSRS)v2 / NB Stereographic',NULL,'EPSG','4500','EPSG','8237','EPSG','19946',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18016','projected_crs','EPSG','22240','EPSG','1447','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22243','NAD83(CSRS)v2 / SCoPQ zone 3',NULL,'EPSG','4499','EPSG','8237','EPSG','17703',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18017','projected_crs','EPSG','22243','EPSG','1446','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22244','NAD83(CSRS)v2 / SCoPQ zone 4',NULL,'EPSG','4499','EPSG','8237','EPSG','17704',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18018','projected_crs','EPSG','22244','EPSG','1422','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22245','NAD83(CSRS)v2 / SCoPQ zone 5',NULL,'EPSG','4499','EPSG','8237','EPSG','17705',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18019','projected_crs','EPSG','22245','EPSG','1423','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22246','NAD83(CSRS)v2 / SCoPQ zone 6',NULL,'EPSG','4499','EPSG','8237','EPSG','17706',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18020','projected_crs','EPSG','22246','EPSG','1424','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22247','NAD83(CSRS)v2 / SCoPQ zone 7',NULL,'EPSG','4499','EPSG','8237','EPSG','17707',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18021','projected_crs','EPSG','22247','EPSG','1425','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22248','NAD83(CSRS)v2 / SCoPQ zone 8',NULL,'EPSG','4499','EPSG','8237','EPSG','17708',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18074','projected_crs','EPSG','22248','EPSG','1426','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22249','NAD83(CSRS)v2 / SCoPQ zone 9',NULL,'EPSG','4499','EPSG','8237','EPSG','17709',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18076','projected_crs','EPSG','22249','EPSG','1427','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22250','NAD83(CSRS)v2 / SCoPQ zone 10',NULL,'EPSG','4499','EPSG','8237','EPSG','17710',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18077','projected_crs','EPSG','22250','EPSG','1428','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22262','NAD83(CSRS)v2 / Alberta 3TM ref merid 111 W',NULL,'EPSG','4400','EPSG','8237','EPSG','17722',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18009','projected_crs','EPSG','22262','EPSG','3543','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22263','NAD83(CSRS)v2 / Alberta 3TM ref merid 114 W',NULL,'EPSG','4400','EPSG','8237','EPSG','17723',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18010','projected_crs','EPSG','22263','EPSG','3542','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22264','NAD83(CSRS)v2 / Alberta 3TM ref merid 117 W',NULL,'EPSG','4400','EPSG','8237','EPSG','17724',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18011','projected_crs','EPSG','22264','EPSG','3541','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22265','NAD83(CSRS)v2 / Alberta 3TM ref merid 120 W',NULL,'EPSG','4400','EPSG','8237','EPSG','17726',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18012','projected_crs','EPSG','22265','EPSG','3540','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22275','Cape / Lo15',NULL,'EPSG','6503','EPSG','4222','EPSG','17515',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6364','projected_crs','EPSG','22275','EPSG','1454','EPSG','1092');
INSERT INTO "projected_crs" VALUES('EPSG','22277','Cape / Lo17',NULL,'EPSG','6503','EPSG','4222','EPSG','17517',NULL,0);
@@ -8181,12 +8253,108 @@ INSERT INTO "projected_crs" VALUES('EPSG','22293','Cape / Lo33',NULL,'EPSG','650
INSERT INTO "usage" VALUES('EPSG','6373','projected_crs','EPSG','22293','EPSG','1463','EPSG','1092');
INSERT INTO "projected_crs" VALUES('EPSG','22300','Carthage (Paris) / Tunisia Mining Grid',NULL,'EPSG','4406','EPSG','4816','EPSG','19937',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6374','projected_crs','EPSG','22300','EPSG','1618','EPSG','1249');
INSERT INTO "projected_crs" VALUES('EPSG','22307','NAD83(CSRS)v3 / UTM zone 7N',NULL,'EPSG','4400','EPSG','8240','EPSG','16007',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17752','projected_crs','EPSG','22307','EPSG','3409','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22308','NAD83(CSRS)v3 / UTM zone 8N',NULL,'EPSG','4400','EPSG','8240','EPSG','16008',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17834','projected_crs','EPSG','22308','EPSG','3410','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22309','NAD83(CSRS)v3 / UTM zone 9N',NULL,'EPSG','4400','EPSG','8240','EPSG','16009',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17771','projected_crs','EPSG','22309','EPSG','3411','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22310','NAD83(CSRS)v3 / UTM zone 10N',NULL,'EPSG','4400','EPSG','8240','EPSG','16010',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17839','projected_crs','EPSG','22310','EPSG','3412','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22311','NAD83(CSRS)v3 / UTM zone 11N',NULL,'EPSG','4400','EPSG','8240','EPSG','16011',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17777','projected_crs','EPSG','22311','EPSG','3528','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22312','NAD83(CSRS)v3 / UTM zone 12N',NULL,'EPSG','4400','EPSG','8240','EPSG','16012',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17783','projected_crs','EPSG','22312','EPSG','3527','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22313','NAD83(CSRS)v3 / UTM zone 13N',NULL,'EPSG','4400','EPSG','8240','EPSG','16013',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17789','projected_crs','EPSG','22313','EPSG','3526','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22314','NAD83(CSRS)v3 / UTM zone 14N',NULL,'EPSG','4400','EPSG','8240','EPSG','16014',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17795','projected_crs','EPSG','22314','EPSG','3413','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22315','NAD83(CSRS)v3 / UTM zone 15N',NULL,'EPSG','4400','EPSG','8240','EPSG','16015',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17801','projected_crs','EPSG','22315','EPSG','3414','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22316','NAD83(CSRS)v3 / UTM zone 16N',NULL,'EPSG','4400','EPSG','8240','EPSG','16016',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17829','projected_crs','EPSG','22316','EPSG','3415','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22317','NAD83(CSRS)v3 / UTM zone 17N',NULL,'EPSG','4400','EPSG','8240','EPSG','16017',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17816','projected_crs','EPSG','22317','EPSG','3416','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22318','NAD83(CSRS)v3 / UTM zone 18N',NULL,'EPSG','4400','EPSG','8240','EPSG','16018',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17822','projected_crs','EPSG','22318','EPSG','3417','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22319','NAD83(CSRS)v3 / UTM zone 19N',NULL,'EPSG','4400','EPSG','8240','EPSG','16019',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17844','projected_crs','EPSG','22319','EPSG','3524','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22320','NAD83(CSRS)v3 / UTM zone 20N',NULL,'EPSG','4400','EPSG','8240','EPSG','16020',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17850','projected_crs','EPSG','22320','EPSG','3525','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22321','NAD83(CSRS)v3 / UTM zone 21N',NULL,'EPSG','4400','EPSG','8240','EPSG','16021',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17857','projected_crs','EPSG','22321','EPSG','2151','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22322','NAD83(CSRS)v3 / UTM zone 22N',NULL,'EPSG','4400','EPSG','8240','EPSG','16022',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17863','projected_crs','EPSG','22322','EPSG','2152','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22332','Carthage / UTM zone 32N',NULL,'EPSG','4400','EPSG','4223','EPSG','16032',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6375','projected_crs','EPSG','22332','EPSG','1489','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22337','NAD83(CSRS)v3 / MTM NS 1997 zone 5',NULL,'EPSG','4400','EPSG','8240','EPSG','9982',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18013','projected_crs','EPSG','22337','EPSG','1535','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22338','NAD83(CSRS)v3 / MTM NS 1997 zone 4',NULL,'EPSG','4400','EPSG','8240','EPSG','9981',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18014','projected_crs','EPSG','22338','EPSG','1534','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22348','NAD83(CSRS)v3 / MTM zone 8',NULL,'EPSG','4496','EPSG','8240','EPSG','17708',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18071','projected_crs','EPSG','22348','EPSG','1429','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22349','NAD83(CSRS)v3 / MTM zone 9',NULL,'EPSG','4496','EPSG','8240','EPSG','17709',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18072','projected_crs','EPSG','22349','EPSG','1430','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22350','NAD83(CSRS)v3 / MTM zone 10',NULL,'EPSG','4496','EPSG','8240','EPSG','17710',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18073','projected_crs','EPSG','22350','EPSG','1431','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22351','NAD83(CSRS)v3 / MTM zone 11',NULL,'EPSG','4400','EPSG','8240','EPSG','17711',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17639','projected_crs','EPSG','22351','EPSG','1432','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22352','NAD83(CSRS)v3 / MTM zone 12',NULL,'EPSG','4400','EPSG','8240','EPSG','17712',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17640','projected_crs','EPSG','22352','EPSG','1433','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22353','NAD83(CSRS)v3 / MTM zone 13',NULL,'EPSG','4400','EPSG','8240','EPSG','17713',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17641','projected_crs','EPSG','22353','EPSG','1434','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22354','NAD83(CSRS)v3 / MTM zone 14',NULL,'EPSG','4400','EPSG','8240','EPSG','17714',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17642','projected_crs','EPSG','22354','EPSG','1435','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22355','NAD83(CSRS)v3 / MTM zone 15',NULL,'EPSG','4400','EPSG','8240','EPSG','17715',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17643','projected_crs','EPSG','22355','EPSG','1436','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22356','NAD83(CSRS)v3 / MTM zone 16',NULL,'EPSG','4400','EPSG','8240','EPSG','17716',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17644','projected_crs','EPSG','22356','EPSG','1437','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22357','NAD83(CSRS)v3 / MTM zone 17',NULL,'EPSG','4400','EPSG','8240','EPSG','17717',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17645','projected_crs','EPSG','22357','EPSG','1438','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22391','Carthage / Nord Tunisie',NULL,'EPSG','4499','EPSG','4223','EPSG','18181',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6376','projected_crs','EPSG','22391','EPSG','1619','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22392','Carthage / Sud Tunisie',NULL,'EPSG','4499','EPSG','4223','EPSG','18182',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6377','projected_crs','EPSG','22392','EPSG','1620','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22407','NAD83(CSRS)v4 / UTM zone 7N',NULL,'EPSG','4400','EPSG','8246','EPSG','16007',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17761','projected_crs','EPSG','22407','EPSG','3409','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22408','NAD83(CSRS)v4 / UTM zone 8N',NULL,'EPSG','4400','EPSG','8246','EPSG','16008',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17835','projected_crs','EPSG','22408','EPSG','3410','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22409','NAD83(CSRS)v4 / UTM zone 9N',NULL,'EPSG','4400','EPSG','8246','EPSG','16009',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17766','projected_crs','EPSG','22409','EPSG','3411','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22410','NAD83(CSRS)v4 / UTM zone 10N',NULL,'EPSG','4400','EPSG','8246','EPSG','16010',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17840','projected_crs','EPSG','22410','EPSG','3412','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22411','NAD83(CSRS)v4 / UTM zone 11N',NULL,'EPSG','4400','EPSG','8246','EPSG','16011',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17778','projected_crs','EPSG','22411','EPSG','3528','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22412','NAD83(CSRS)v4 / UTM zone 12N',NULL,'EPSG','4400','EPSG','8246','EPSG','16012',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17784','projected_crs','EPSG','22412','EPSG','3527','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22413','NAD83(CSRS)v4 / UTM zone 13N',NULL,'EPSG','4400','EPSG','8246','EPSG','16013',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17790','projected_crs','EPSG','22413','EPSG','3526','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22414','NAD83(CSRS)v4 / UTM zone 14N',NULL,'EPSG','4400','EPSG','8246','EPSG','16014',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17796','projected_crs','EPSG','22414','EPSG','3413','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22415','NAD83(CSRS)v4 / UTM zone 15N',NULL,'EPSG','4400','EPSG','8246','EPSG','16015',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17827','projected_crs','EPSG','22415','EPSG','3414','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22416','NAD83(CSRS)v4 / UTM zone 16N',NULL,'EPSG','4400','EPSG','8246','EPSG','16016',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17830','projected_crs','EPSG','22416','EPSG','3415','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22417','NAD83(CSRS)v4 / UTM zone 17N',NULL,'EPSG','4400','EPSG','8246','EPSG','16017',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17817','projected_crs','EPSG','22417','EPSG','3416','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22418','NAD83(CSRS)v4 / UTM zone 18N',NULL,'EPSG','4400','EPSG','8246','EPSG','16018',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17823','projected_crs','EPSG','22418','EPSG','3417','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22419','NAD83(CSRS)v4 / UTM zone 19N',NULL,'EPSG','4400','EPSG','8246','EPSG','16019',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17845','projected_crs','EPSG','22419','EPSG','3524','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22420','NAD83(CSRS)v4 / UTM zone 20N',NULL,'EPSG','4400','EPSG','8246','EPSG','16020',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17851','projected_crs','EPSG','22420','EPSG','3525','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22421','NAD83(CSRS)v4 / UTM zone 21N',NULL,'EPSG','4400','EPSG','8246','EPSG','16021',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17858','projected_crs','EPSG','22421','EPSG','2151','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22422','NAD83(CSRS)v4 / UTM zone 22N',NULL,'EPSG','4400','EPSG','8246','EPSG','16022',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17864','projected_crs','EPSG','22422','EPSG','2152','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22462','NAD83(CSRS)v4 / Alberta 3TM ref merid 111 W',NULL,'EPSG','4400','EPSG','8246','EPSG','17722',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17657','projected_crs','EPSG','22462','EPSG','3543','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22463','NAD83(CSRS)v4 / Alberta 3TM ref merid 114 W',NULL,'EPSG','4400','EPSG','8246','EPSG','17723',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17658','projected_crs','EPSG','22463','EPSG','3542','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22464','NAD83(CSRS)v4 / Alberta 3TM ref merid 117 W',NULL,'EPSG','4400','EPSG','8246','EPSG','17724',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17659','projected_crs','EPSG','22464','EPSG','3541','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22465','NAD83(CSRS)v4 / Alberta 3TM ref merid 120 W',NULL,'EPSG','4400','EPSG','8246','EPSG','17726',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17660','projected_crs','EPSG','22465','EPSG','3540','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22521','Corrego Alegre 1970-72 / UTM zone 21S',NULL,'EPSG','4400','EPSG','4225','EPSG','16121',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6378','projected_crs','EPSG','22521','EPSG','3355','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22522','Corrego Alegre 1970-72 / UTM zone 22S',NULL,'EPSG','4400','EPSG','4225','EPSG','16122',NULL,0);
@@ -8197,8 +8365,116 @@ INSERT INTO "projected_crs" VALUES('EPSG','22524','Corrego Alegre 1970-72 / UTM
INSERT INTO "usage" VALUES('EPSG','6381','projected_crs','EPSG','22524','EPSG','1818','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22525','Corrego Alegre 1970-72 / UTM zone 25S',NULL,'EPSG','4400','EPSG','4225','EPSG','16125',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6382','projected_crs','EPSG','22525','EPSG','3178','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22607','NAD83(CSRS)v6 / UTM zone 7N',NULL,'EPSG','4400','EPSG','8252','EPSG','16007',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17755','projected_crs','EPSG','22607','EPSG','3409','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22608','NAD83(CSRS)v6 / UTM zone 8N',NULL,'EPSG','4400','EPSG','8252','EPSG','16008',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17836','projected_crs','EPSG','22608','EPSG','3410','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22609','NAD83(CSRS)v6 / UTM zone 9N',NULL,'EPSG','4400','EPSG','8252','EPSG','16009',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17768','projected_crs','EPSG','22609','EPSG','3411','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22610','NAD83(CSRS)v6 / UTM zone 10N',NULL,'EPSG','4400','EPSG','8252','EPSG','16010',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17841','projected_crs','EPSG','22610','EPSG','3412','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22611','NAD83(CSRS)v6 / UTM zone 11N',NULL,'EPSG','4400','EPSG','8252','EPSG','16011',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17779','projected_crs','EPSG','22611','EPSG','3528','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22612','NAD83(CSRS)v6 / UTM zone 12N',NULL,'EPSG','4400','EPSG','8252','EPSG','16012',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17786','projected_crs','EPSG','22612','EPSG','3527','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22613','NAD83(CSRS)v6 / UTM zone 13N',NULL,'EPSG','4400','EPSG','8252','EPSG','16013',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17791','projected_crs','EPSG','22613','EPSG','3526','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22614','NAD83(CSRS)v6 / UTM zone 14N',NULL,'EPSG','4400','EPSG','8252','EPSG','16014',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17797','projected_crs','EPSG','22614','EPSG','3413','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22615','NAD83(CSRS)v6 / UTM zone 15N',NULL,'EPSG','4400','EPSG','8252','EPSG','16015',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17803','projected_crs','EPSG','22615','EPSG','3414','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22616','NAD83(CSRS)v6 / UTM zone 16N',NULL,'EPSG','4400','EPSG','8252','EPSG','16016',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17831','projected_crs','EPSG','22616','EPSG','3415','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22617','NAD83(CSRS)v6 / UTM zone 17N',NULL,'EPSG','4400','EPSG','8252','EPSG','16017',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17818','projected_crs','EPSG','22617','EPSG','3416','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22618','NAD83(CSRS)v6 / UTM zone 18N',NULL,'EPSG','4400','EPSG','8252','EPSG','16018',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17824','projected_crs','EPSG','22618','EPSG','3417','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22619','NAD83(CSRS)v6 / UTM zone 19N',NULL,'EPSG','4400','EPSG','8252','EPSG','16019',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17846','projected_crs','EPSG','22619','EPSG','3524','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22620','NAD83(CSRS)v6 / UTM zone 20N',NULL,'EPSG','4400','EPSG','8252','EPSG','16020',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17852','projected_crs','EPSG','22620','EPSG','3525','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22621','NAD83(CSRS)v6 / UTM zone 21N',NULL,'EPSG','4400','EPSG','8252','EPSG','16021',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17859','projected_crs','EPSG','22621','EPSG','2151','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22622','NAD83(CSRS)v6 / UTM zone 22N',NULL,'EPSG','4400','EPSG','8252','EPSG','16022',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17865','projected_crs','EPSG','22622','EPSG','2152','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22639','NAD83(CSRS)v6 / PEI Stereographic',NULL,'EPSG','4496','EPSG','8252','EPSG','19960',NULL,0);
INSERT INTO "usage" VALUES('EPSG','18070','projected_crs','EPSG','22639','EPSG','1533','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22641','NAD83(CSRS)v6 / MTM zone 1',NULL,'EPSG','4496','EPSG','8252','EPSG','17701',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17665','projected_crs','EPSG','22641','EPSG','2226','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22642','NAD83(CSRS)v6 / MTM zone 2',NULL,'EPSG','4496','EPSG','8252','EPSG','17702',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17666','projected_crs','EPSG','22642','EPSG','2227','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22643','NAD83(CSRS)v6 / MTM zone 3',NULL,'EPSG','4496','EPSG','8252','EPSG','17703',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17667','projected_crs','EPSG','22643','EPSG','2275','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22644','NAD83(CSRS)v6 / MTM zone 4',NULL,'EPSG','4496','EPSG','8252','EPSG','17704',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17668','projected_crs','EPSG','22644','EPSG','3875','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22645','NAD83(CSRS)v6 / MTM zone 5',NULL,'EPSG','4496','EPSG','8252','EPSG','17705',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17669','projected_crs','EPSG','22645','EPSG','3865','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22646','NAD83(CSRS)v6 / MTM zone 6',NULL,'EPSG','4496','EPSG','8252','EPSG','17706',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17670','projected_crs','EPSG','22646','EPSG','3880','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22648','NAD83(CSRS)v6 / MTM zone 8',NULL,'EPSG','4496','EPSG','8252','EPSG','17708',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17688','projected_crs','EPSG','22648','EPSG','1429','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22649','NAD83(CSRS)v6 / MTM zone 9',NULL,'EPSG','4496','EPSG','8252','EPSG','17709',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17689','projected_crs','EPSG','22649','EPSG','1430','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22650','NAD83(CSRS)v6 / MTM zone 10',NULL,'EPSG','4496','EPSG','8252','EPSG','17710',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17690','projected_crs','EPSG','22650','EPSG','1431','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22651','NAD83(CSRS)v6 / MTM zone 11',NULL,'EPSG','4400','EPSG','8252','EPSG','17711',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17646','projected_crs','EPSG','22651','EPSG','1432','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22652','NAD83(CSRS)v6 / MTM zone 12',NULL,'EPSG','4400','EPSG','8252','EPSG','17712',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17647','projected_crs','EPSG','22652','EPSG','1433','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22653','NAD83(CSRS)v6 / MTM zone 13',NULL,'EPSG','4400','EPSG','8252','EPSG','17713',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17648','projected_crs','EPSG','22653','EPSG','1434','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22654','NAD83(CSRS)v6 / MTM zone 14',NULL,'EPSG','4400','EPSG','8252','EPSG','17714',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17649','projected_crs','EPSG','22654','EPSG','1435','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22655','NAD83(CSRS)v6 / MTM zone 15',NULL,'EPSG','4400','EPSG','8252','EPSG','17715',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17650','projected_crs','EPSG','22655','EPSG','1436','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22656','NAD83(CSRS)v6 / MTM zone 16',NULL,'EPSG','4400','EPSG','8252','EPSG','17716',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17651','projected_crs','EPSG','22656','EPSG','1437','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22657','NAD83(CSRS)v6 / MTM zone 17',NULL,'EPSG','4400','EPSG','8252','EPSG','17717',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17652','projected_crs','EPSG','22657','EPSG','1438','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22700','Deir ez Zor / Levant Zone',NULL,'EPSG','4499','EPSG','4227','EPSG','19940',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6383','projected_crs','EPSG','22700','EPSG','1623','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22707','NAD83(CSRS)v7 / UTM zone 7N',NULL,'EPSG','4400','EPSG','8255','EPSG','16007',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17756','projected_crs','EPSG','22707','EPSG','3409','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22708','NAD83(CSRS)v7 / UTM zone 8N',NULL,'EPSG','4400','EPSG','8255','EPSG','16008',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17837','projected_crs','EPSG','22708','EPSG','3410','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22709','NAD83(CSRS)v7 / UTM zone 9N',NULL,'EPSG','4400','EPSG','8255','EPSG','16009',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17769','projected_crs','EPSG','22709','EPSG','3411','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22710','NAD83(CSRS)v7 / UTM zone 10N',NULL,'EPSG','4400','EPSG','8255','EPSG','16010',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17842','projected_crs','EPSG','22710','EPSG','3412','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22711','NAD83(CSRS)v7 / UTM zone 11N',NULL,'EPSG','4400','EPSG','8255','EPSG','16011',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17781','projected_crs','EPSG','22711','EPSG','3528','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22712','NAD83(CSRS)v7 / UTM zone 12N',NULL,'EPSG','4400','EPSG','8255','EPSG','16012',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17785','projected_crs','EPSG','22712','EPSG','3527','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22713','NAD83(CSRS)v7 / UTM zone 13N',NULL,'EPSG','4400','EPSG','8255','EPSG','16013',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17792','projected_crs','EPSG','22713','EPSG','3526','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22714','NAD83(CSRS)v7 / UTM zone 14N',NULL,'EPSG','4400','EPSG','8255','EPSG','16014',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17798','projected_crs','EPSG','22714','EPSG','3413','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22715','NAD83(CSRS)v7 / UTM zone 15N',NULL,'EPSG','4400','EPSG','8255','EPSG','16015',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17804','projected_crs','EPSG','22715','EPSG','3414','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22716','NAD83(CSRS)v7 / UTM zone 16N',NULL,'EPSG','4400','EPSG','8255','EPSG','16016',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17832','projected_crs','EPSG','22716','EPSG','3415','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22717','NAD83(CSRS)v7 / UTM zone 17N',NULL,'EPSG','4400','EPSG','8255','EPSG','16017',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17819','projected_crs','EPSG','22717','EPSG','3416','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22718','NAD83(CSRS)v7 / UTM zone 18N',NULL,'EPSG','4400','EPSG','8255','EPSG','16018',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17825','projected_crs','EPSG','22718','EPSG','3417','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22719','NAD83(CSRS)v7 / UTM zone 19N',NULL,'EPSG','4400','EPSG','8255','EPSG','16019',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17847','projected_crs','EPSG','22719','EPSG','3524','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22720','NAD83(CSRS)v7 / UTM zone 20N',NULL,'EPSG','4400','EPSG','8255','EPSG','16020',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17855','projected_crs','EPSG','22720','EPSG','3525','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22721','NAD83(CSRS)v7 / UTM zone 21N',NULL,'EPSG','4400','EPSG','8255','EPSG','16021',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17860','projected_crs','EPSG','22721','EPSG','2151','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22722','NAD83(CSRS)v7 / UTM zone 22N',NULL,'EPSG','4400','EPSG','8255','EPSG','16022',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17866','projected_crs','EPSG','22722','EPSG','2152','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22739','NAD83(CSRS)v7 / PEI Stereographic',NULL,'EPSG','4496','EPSG','8255','EPSG','19960',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17675','projected_crs','EPSG','22739','EPSG','1533','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22762','NAD83(CSRS)v7 / Alberta 3TM ref merid 111 W',NULL,'EPSG','4400','EPSG','8255','EPSG','17722',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17661','projected_crs','EPSG','22762','EPSG','3543','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22763','NAD83(CSRS)v7 / Alberta 3TM ref merid 114 W',NULL,'EPSG','4400','EPSG','8255','EPSG','17723',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17662','projected_crs','EPSG','22763','EPSG','3542','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22764','NAD83(CSRS)v7 / Alberta 3TM ref merid 117 W',NULL,'EPSG','4400','EPSG','8255','EPSG','17724',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17663','projected_crs','EPSG','22764','EPSG','3541','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22765','NAD83(CSRS)v7 / Alberta 3TM ref merid 120 W',NULL,'EPSG','4400','EPSG','8255','EPSG','17726',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17664','projected_crs','EPSG','22765','EPSG','3540','EPSG','1096');
INSERT INTO "projected_crs" VALUES('EPSG','22770','Deir ez Zor / Syria Lambert',NULL,'EPSG','4499','EPSG','4227','EPSG','19948',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6384','projected_crs','EPSG','22770','EPSG','1623','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','22780','Deir ez Zor / Levant Stereographic',NULL,'EPSG','4499','EPSG','4227','EPSG','19949',NULL,0);
@@ -9925,6 +10201,8 @@ INSERT INTO "projected_crs" VALUES('EPSG','32157','NAD83 / Wyoming West Central'
INSERT INTO "usage" VALUES('EPSG','7244','projected_crs','EPSG','32157','EPSG','2272','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','32158','NAD83 / Wyoming West',NULL,'EPSG','4499','EPSG','4269','EPSG','14934',NULL,0);
INSERT INTO "usage" VALUES('EPSG','7245','projected_crs','EPSG','32158','EPSG','2271','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','32159','NAD83 / Wyoming Lambert',NULL,'EPSG','4499','EPSG','4269','EPSG','14930',NULL,0);
INSERT INTO "usage" VALUES('EPSG','17409','projected_crs','EPSG','32159','EPSG','1419','EPSG','1135');
INSERT INTO "projected_crs" VALUES('EPSG','32161','NAD83 / Puerto Rico & Virgin Is.',NULL,'EPSG','4499','EPSG','4269','EPSG','15230',NULL,0);
INSERT INTO "usage" VALUES('EPSG','7246','projected_crs','EPSG','32161','EPSG','2251','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','32164','NAD83 / BLM 14N (ftUS)',NULL,'EPSG','4497','EPSG','4269','EPSG','15914',NULL,0);
+1
View File
@@ -254,6 +254,7 @@ INSERT INTO "scope" VALUES('EPSG','1274','Spatial referencing including water re
INSERT INTO "scope" VALUES('EPSG','1275','Alignment of datasets referenced to WGS 84 which have been derived from GDA2020 via the null transformation EPSG::8450 with GDA94 datasets.',0);
INSERT INTO "scope" VALUES('EPSG','1276','Alignment of datasets referenced to WGS 84 which have been derived from GDA94 via the null transformation EPSG::1150 with GDA2020 datasets.',0);
INSERT INTO "scope" VALUES('EPSG','1277','Derivation of depths from GNSS observations.',0);
INSERT INTO "scope" VALUES('EPSG','1278','Transformation of coordinates at 0.006m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1280','Readjustment of coordinates to account for ground deformation caused by 2011 Tohoku earthquake.',0);
INSERT INTO "scope" VALUES('EPSG','1281','Geodesy. Defines LUREF from 2006 to 2014.',0);
INSERT INTO "scope" VALUES('EPSG','1282','Geodesy. Defines LUREF from 2014 to 2020.',0);
+5
View File
@@ -258,3 +258,8 @@ INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','5483','helmer
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','5485','helmert_transformation','EPSG','9899','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','9898','helmert_transformation','EPSG','9937','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','9899','helmert_transformation','EPSG','9938','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9954','grid_transformation','EPSG','9956','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9955','grid_transformation','EPSG','9957','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9956','grid_transformation','EPSG','9958','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9957','grid_transformation','EPSG','9959','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5891','grid_transformation','EPSG','9910','EPSG',1);
+3 -1
View File
@@ -363,7 +363,7 @@ INSERT INTO "usage" VALUES('EPSG','5532','vertical_crs','EPSG','7890','EPSG','31
INSERT INTO "vertical_crs" VALUES('EPSG','7979','KOC WD height',NULL,'EPSG','6499','EPSG','5187',0);
INSERT INTO "usage" VALUES('EPSG','5571','vertical_crs','EPSG','7979','EPSG','3267','EPSG','1205');
INSERT INTO "vertical_crs" VALUES('EPSG','8089','ISH2004 height',NULL,'EPSG','6499','EPSG','1190',0);
INSERT INTO "usage" VALUES('EPSG','5616','vertical_crs','EPSG','8089','EPSG','3262','EPSG','1178');
INSERT INTO "usage" VALUES('EPSG','5616','vertical_crs','EPSG','8089','EPSG','4662','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','8266','GVR2000 height',NULL,'EPSG','6499','EPSG','1199',0);
INSERT INTO "usage" VALUES('EPSG','5758','vertical_crs','EPSG','8266','EPSG','4461','EPSG','1153');
INSERT INTO "vertical_crs" VALUES('EPSG','8267','GVR2016 height',NULL,'EPSG','6499','EPSG','1200',0);
@@ -466,6 +466,8 @@ INSERT INTO "vertical_crs" VALUES('EPSG','9923','GNTRANS height',NULL,'EPSG','64
INSERT INTO "usage" VALUES('EPSG','17285','vertical_crs','EPSG','9923','EPSG','3339','EPSG','1141');
INSERT INTO "vertical_crs" VALUES('EPSG','9927','GNTRANS2016 height',NULL,'EPSG','6499','EPSG','1318',0);
INSERT INTO "usage" VALUES('EPSG','17286','vertical_crs','EPSG','9927','EPSG','3339','EPSG','1141');
INSERT INTO "vertical_crs" VALUES('EPSG','20000','SVD2006 height',NULL,'EPSG','6499','EPSG','1323',0);
INSERT INTO "usage" VALUES('EPSG','17962','vertical_crs','EPSG','20000','EPSG','4058','EPSG','1180');
INSERT INTO "vertical_crs" VALUES('EPSG','5336','Black Sea depth',NULL,'EPSG','6498','EPSG','5134',0);
INSERT INTO "usage" VALUES('EPSG','3936','vertical_crs','EPSG','5336','EPSG','1102','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5612','Baltic 1977 depth',NULL,'EPSG','6498','EPSG','5105',0);
+3 -1
View File
@@ -133,7 +133,7 @@ INSERT INTO "usage" VALUES('EPSG','13228','vertical_datum','EPSG','1176','EPSG',
INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 2015',NULL,'2015-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13229','vertical_datum','EPSG','1177','EPSG','3183','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1190','Landshaedarkerfi Islands 2004',NULL,'2004-08-07',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13242','vertical_datum','EPSG','1190','EPSG','3262','EPSG','1180');
INSERT INTO "usage" VALUES('EPSG','13242','vertical_datum','EPSG','1190','EPSG','4662','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,'2000-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13251','vertical_datum','EPSG','1199','EPSG','4461','EPSG','1153');
INSERT INTO "vertical_datum" VALUES('EPSG','1200','Greenland Vertical Reference 2016',NULL,'2016-01-01',NULL,NULL,NULL,0);
@@ -232,6 +232,8 @@ INSERT INTO "vertical_datum" VALUES('EPSG','1316','GNTRANS',NULL,'2003-01-01',NU
INSERT INTO "usage" VALUES('EPSG','17277','vertical_datum','EPSG','1316','EPSG','3339','EPSG','1141');
INSERT INTO "vertical_datum" VALUES('EPSG','1318','GNTRANS2016',NULL,'2016-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17278','vertical_datum','EPSG','1318','EPSG','3339','EPSG','1141');
INSERT INTO "vertical_datum" VALUES('EPSG','1323','Svalbard vertical datum 2006',NULL,'2006-01-01',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','17963','vertical_datum','EPSG','1323','EPSG','4058','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13307','vertical_datum','EPSG','5100','EPSG','1262','EPSG','1199');
INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,'1956-01-01',NULL,NULL,NULL,0);
@@ -25,20 +25,20 @@ cache:
build_script:
- set VCPKG_ROOT=C:\Tools\vcpkg
- set VCPKG_INSTALLED=%VCPKG_ROOT%\installed\%platform%-windows
- set VCPKG_DEFAULT_TRIPLET=%platform%-windows
- set VCPKG_DEFAULT_HOST_TRIPLET=%platform%-windows
# If cached directory does not exist, update vcpkg and install dependencies
# The checkout of a precise sha1 for VS2015 is a workaround for https://github.com/microsoft/vcpkg/issues/11666
- if not exist %VCPKG_INSTALLED%\bin (
cd "%VCPKG_ROOT%" &
git pull > nul &
(if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (git checkout a64dc07690bc8806e717e190f62eb58e198b599c)) &
git fetch --depth=1 origin 2022.04.12 &
(if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (git -c advice.detachedHead=false checkout FETCH_HEAD)) &
.\bootstrap-vcpkg.bat -disableMetrics &
vcpkg install sqlite3[core,tool]:"%platform%"-windows &
vcpkg install tiff:"%platform%"-windows &
vcpkg install curl:"%platform%"-windows &
vcpkg install curl sqlite3[core,tool] tiff &
cd %APPVEYOR_BUILD_FOLDER%
)
- dir %VCPKG_INSTALLED%\bin
- set PATH=%VCPKG_INSTALLED%\bin;%PATH%
- set PATH=%VCPKG_INSTALLED%\tools;%PATH%
# See https://www.appveyor.com/docs/lang/cpp/
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if %platform%==x86
(call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86)
@@ -65,11 +65,12 @@ test_script:
- echo test_script
- set PROJ_LIB=%PROJ_DIR%\share\proj
- cd %PROJ_BUILD%
- ctest -V -C Release
- set PATH=%PROJ_DIR%\bin;%PATH%
- ctest --output-on-failure -C Release
- set BUILD_MODE=shared
- if BUILD_SHARED_LIBS==OFF (set BUILD_MODE=static)
- call %APPVEYOR_BUILD_FOLDER%\test\postinstall\test_cmake.bat %PROJ_DIR% %BUILD_MODE%
# Executables in %PROJ_DIR%\bin need runtime from %VCPKG_INSTALLED%\bin
- set PATH=%PROJ_DIR%\bin;%VCPKG_INSTALLED%\bin;%PATH%
- proj
deploy: off
@@ -15,6 +15,7 @@ jobs:
- name: Install PROJ build dependencies
run: |
sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y --no-install-recommends -o APT::Immediate-Configure=0 \
cmake g++ sqlite3 pkg-config libsqlite3-dev libtiff-dev libcurl4-openssl-dev
@@ -22,7 +23,7 @@ jobs:
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/proj
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=/opt/proj ..
make -j$(nproc)
sudo mkdir -p /opt/proj
sudo make install
@@ -31,7 +32,11 @@ jobs:
- name: Install plot dependencies
uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Mambaforge
miniforge-version: latest
use-mamba: true
environment-file: docs/plot/environment.yml
activate-environment: proj
- name: Plot
working-directory: ./docs/plot
@@ -13,8 +13,9 @@ jobs:
- uses: conda-incubator/setup-miniconda@v2
with:
channels: conda-forge
auto-update-conda: true
miniforge-variant: Mambaforge
miniforge-version: latest
use-mamba: true
- name: Cache
uses: actions/cache@v2
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
set -e
mamba install --yes --quiet compilers
mamba install --yes --quiet python=3.8 autoconf automake libtool ccache jsonschema
mamba install --yes --quiet --only-deps proj=7.1.1=h45baca5_3
@@ -113,7 +113,7 @@ cmake -G "Unix Makefiles" \
..
make
# Run a subset of tests that should pass
ctest -R "proj_test_cpp_api|geodesic-test|proj_errno_string_test|proj_angular_io_test|proj_context_test|pj_phi2_test|gie_self_tests|test_network|test_defmodel|test_tinshift|test_misc|test_fork"
ctest --output-on-failure -R "proj_test_cpp_api|geodesic-test|proj_errno_string_test|proj_angular_io_test|proj_context_test|pj_phi2_test|gie_self_tests|test_network|test_defmodel|test_tinshift|test_misc|test_fork"
# TODO: fix failing tests with .gie files; see #2168 and run
# PROJ_LIB=./data/for_tests wine64 ./bin/gie.exe ../test/gie/more_builtins.gie
@@ -45,7 +45,8 @@ jobs:
run: |
set VCPKG_INSTALLED=c:\vcpkg\installed\${{ env.ARCH }}-windows
dir %VCPKG_INSTALLED%\bin
set PATH=%VCPKG_INSTALLED%\bin;%PATH%
dir %VCPKG_INSTALLED%\tools
set PATH=%VCPKG_INSTALLED%\bin;%VCPKG_INSTALLED%\tools;%PATH%
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
mkdir %PROJ_BUILD%
cd %PROJ_BUILD%
@@ -65,7 +66,7 @@ jobs:
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
cd %PROJ_BUILD%
ctest -V -C "${{ env.BUILD_TYPE }}"
ctest --output-on-failure -C "${{ env.BUILD_TYPE }}"
set PATH=%PROJ_DIR%\bin;%PATH%
set BUILD_MODE=shared
if "${{ env.BUILD_SHARED_LIBS }}"=="OFF" (set BUILD_MODE=static)
+15
View File
@@ -0,0 +1,15 @@
name: proj
channels:
- conda-forge
dependencies:
- descartes
- geojson
- matplotlib
- shapely < 1.8
- pip
- pip:
- breathe
- pybtex
- sphinx-rtd-theme
- sphinxcontrib-bibtex
- sphinxcontrib-spelling
+1 -1
View File
@@ -79,7 +79,7 @@
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -61.806305, 49.105060000000122 ], [ -62.29318, 49.08717 ], [ -63.58926, 49.40069 ], [ -64.51912, 49.87304 ], [ -64.17322, 49.95718 ], [ -62.85829, 49.706410000000119 ], [ -61.835585, 49.28855 ], [ -61.806305, 49.105060000000122 ] ] ] } },
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -123.510001587551173, 48.510010891303409 ], [ -124.012890788399588, 48.370846259141501 ], [ -125.655012777338371, 48.825004584338586 ], [ -125.954994466792769, 49.179995835967645 ], [ -126.850004435871895, 49.530000311880514 ], [ -127.029993449544421, 49.814995835970052 ], [ -128.059336304366241, 49.994959011426573 ], [ -128.44458410710206, 50.539137681676038 ], [ -128.358413656255436, 50.770648098343685 ], [ -127.308581096029982, 50.55257355407204 ], [ -126.695000977212317, 50.400903225295394 ], [ -125.755006673823203, 50.295018215529467 ], [ -125.415001587558805, 49.95000051533259 ], [ -124.920768189119357, 49.47527497008349 ], [ -123.922508708321118, 49.062483628935809 ], [ -123.510001587551173, 48.510010891303409 ] ] ] } },
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -56.134035814017039, 50.687009792679305 ], [ -56.795881720595276, 49.81230866149096 ], [ -56.143105027884218, 50.150117499382844 ], [ -55.471492275602969, 49.935815334668462 ], [ -55.822401089081012, 49.587128607778993 ], [ -54.935142584845579, 49.31301097268684 ], [ -54.473775397343701, 49.556691189159181 ], [ -53.476549445191267, 49.249138902374057 ], [ -53.786013759971325, 48.516780503933717 ], [ -53.086133999226263, 48.687803656603535 ], [ -52.958648240762244, 48.157164211614401 ], [ -52.648098720904102, 47.53554840757559 ], [ -53.069158291218343, 46.655498765645035 ], [ -53.521456264852958, 46.61829173439483 ], [ -54.178935512902541, 46.807065741556983 ], [ -53.961868659060571, 47.625207017601923 ], [ -54.240482143762051, 47.752279364607631 ], [ -55.400773078011497, 46.884993801453135 ], [ -55.997480841685842, 46.919720363953218 ], [ -55.291219041552694, 47.389562486350997 ], [ -56.250798712780636, 47.632545070987391 ], [ -57.325229254777014, 47.572807115258087 ], [ -59.26601518414688, 47.603347886742398 ], [ -59.419494188053704, 47.899453843774864 ], [ -58.796586473207498, 48.251525376979373 ], [ -59.231624518456556, 48.523188381537892 ], [ -58.391804979065228, 49.125580552764262 ], [ -57.358689744685961, 50.718274034215938 ], [ -56.738650071832012, 51.28743825947862 ], [ -55.870976935435209, 51.632094224649279 ], [ -55.406974249886616, 51.588272610065644 ], [ -55.600218268442092, 51.317074693398013 ], [ -56.134035814017039, 50.687009792679305 ] ] ] } },
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -132.710007884431207, 54.040009315423447 ], [ -132.710008504905716, 54.040009263721345 ], [ -132.710007697461492, 54.040009263721345 ], [ -132.710007884431207, 54.040009315423447 ], [ -131.749989584003401, 54.120004380909137 ], [ -132.049480347350993, 52.984621487024526 ], [ -131.179042521826602, 52.180432847698285 ], [ -131.577829549823122, 52.182370713909251 ], [ -132.180428426778576, 52.639707139692405 ], [ -132.549992432313871, 53.100014960332231 ], [ -133.054611178755522, 53.411468817755292 ], [ -133.239664482792705, 53.851080227262315 ], [ -133.180004041711811, 54.169975490935315 ], [ -132.710007884431207, 54.040009315423447 ] ] ] } },
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -132.710007884431207, 54.040009315423447 ], [ -131.749989584003401, 54.120004380909137 ], [ -132.049480347350993, 52.984621487024526 ], [ -131.179042521826602, 52.180432847698285 ], [ -131.577829549823122, 52.182370713909251 ], [ -132.180428426778576, 52.639707139692405 ], [ -132.549992432313871, 53.100014960332231 ], [ -133.054611178755522, 53.411468817755292 ], [ -133.239664482792705, 53.851080227262315 ], [ -133.180004041711811, 54.169975490935315 ], [ -132.710007884431207, 54.040009315423447 ] ] ] } },
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 143.648007440362818, 50.747600409541604 ], [ 144.654147577085695, 48.976390692737482 ], [ 143.173927850517288, 49.306551418650372 ], [ 142.558668247650104, 47.861575018905 ], [ 143.533492466404113, 46.836728013692493 ], [ 143.505277134372619, 46.137907619809482 ], [ 142.747700636973917, 46.740764878926456 ], [ 142.092030064054569, 45.966755276058791 ], [ 141.906925083585037, 46.805928860046549 ], [ 142.018442824470952, 47.780132961612935 ], [ 141.904444614835057, 48.85918854429957 ], [ 142.135800002205741, 49.615163072297349 ], [ 142.179983351815309, 50.952342434281917 ], [ 141.594075962490052, 51.935434882202543 ], [ 141.68254601457366, 53.301966457728867 ], [ 142.606934035410831, 53.762145087287905 ], [ 142.209748976815462, 54.225475979216952 ], [ 142.65478641171299, 54.365880845753878 ], [ 142.91461551327663, 53.704577541714826 ], [ 143.260847609632123, 52.740760403039133 ], [ 143.235267775647657, 51.756660264688747 ], [ 143.648007440362818, 50.747600409541604 ] ] ] } },
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -6.788856573910806, 52.260117906292436 ], [ -8.561616583683502, 51.669301255899398 ], [ -9.97708574059024, 51.820454820353035 ], [ -9.166282517930767, 52.864628811242653 ], [ -9.688524542672383, 53.881362616585363 ], [ -8.327987433291923, 54.664518947968588 ], [ -7.572167934590993, 55.131622219454982 ], [ -6.73384701173606, 55.172860012423797 ], [ -5.661948614921926, 54.554603176483766 ], [ -6.197884894220977, 53.867565009163343 ], [ -6.032985398777498, 53.153164170944308 ], [ -6.788856573910806, 52.260117906292436 ] ] ] } },
{ "type": "Feature", "properties": { "featurecla": "Country", "scalerank": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 12.690006137755631, 55.609990953180869 ], [ 12.089991082414713, 54.800014553438018 ], [ 11.043543328504313, 55.364863796604169 ], [ 10.903913608451688, 55.779954738988835 ], [ 12.370904168353377, 56.111407375708922 ], [ 12.690006137755631, 55.609990953180869 ] ] ] } },
-8
View File
@@ -1,8 +0,0 @@
name: proj
channels:
- conda-forge
dependencies:
- descartes
- geojson
- matplotlib
- shapely < 1.8
+47 -3
View File
@@ -239,6 +239,27 @@ def resample_polygon(polygon):
return Polygon(ext, rings)
def plot_with_interruptions(axes, x, y, delta_cut=1e100, **kwargs):
"""
Plot x/y with proper splitting for interrupted projections.
"""
_x = np.atleast_1d(x)
_y = np.atleast_1d(y)
dx = np.nan_to_num(_x[1: ]) - np.nan_to_num(_x[0: -1])
dy = np.nan_to_num(_y[1: ]) - np.nan_to_num(_y[0: -1])
split, = ((np.abs(dx) > delta_cut) | (np.abs(dy) > delta_cut)).nonzero()
split = np.append(split, _x.size - 1)
split += 1
last_part = 0
for part in split:
axes.plot(x[last_part: part],
y[last_part: part],
**kwargs)
last_part = part
def plotproj(plotdef, data, outdir):
'''
Plot map.
@@ -275,7 +296,8 @@ def plotproj(plotdef, data, outdir):
pass
else:
x, y = proj_geom.xy
axes.plot(x, y, color=COLOR_COAST, linewidth=0.5)
plot_with_interruptions(axes, x, y, color=COLOR_COAST, linewidth=0.5,
delta_cut=plotdef.get('delta_cut', 1e100))
# Plot frame
frame = [
@@ -286,7 +308,8 @@ def plotproj(plotdef, data, outdir):
line = project(line, plotdef['projstring'])
x = line[:, 0]
y = line[:, 1]
axes.plot(x, y, '-k')
plot_with_interruptions(axes, x, y, color='black', linestyle='-',
delta_cut=plotdef.get('delta_cut', 1e6))
graticule = build_graticule(
plotdef['lonmin'],
@@ -300,7 +323,28 @@ def plotproj(plotdef, data, outdir):
feature = project(feature, plotdef['projstring'])
x = feature[:, 0]
y = feature[:, 1]
axes.plot(x, y, color=COLOR_GRAT, linewidth=0.4)
plot_with_interruptions(axes, x, y, color=COLOR_GRAT, linewidth=0.4,
delta_cut=plotdef.get('delta_cut', 1e6))
# Plot interrupted boundaries if necessary
interrupted_lines = []
if 'top_interrupted_lons' in plotdef:
for lon in plotdef['top_interrupted_lons']:
for delta in [-0.0001, 0.0001]:
merid = meridian(lon + delta, 0.0, plotdef['latmax'])
interrupted_lines.append(project(merid, plotdef['projstring']))
if 'bottom_interrupted_lons' in plotdef:
for lon in plotdef['bottom_interrupted_lons']:
for delta in [-0.0001, 0.0001]:
merid = meridian(lon + delta, plotdef['latmin'], 0)
interrupted_lines.append(project(merid, plotdef['projstring']))
for line in interrupted_lines:
x = line[:, 0]
y = line[:, 1]
plot_with_interruptions(axes, x, y, color=COLOR_GRAT, linewidth=0.4,
delta_cut=plotdef.get('delta_cut', 1e100))
# Switch off the axis lines...
plt.axis('off')
+27 -12
View File
@@ -145,7 +145,8 @@
"name": "bipc",
"projstring": "+proj=bipc +ns",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e6
},
{
"filename": "boggs.png",
@@ -552,7 +553,10 @@
"name": "igh",
"projstring": "+proj=igh",
"res": "low",
"type": "line"
"type": "line",
"top_interrupted_lons": [-40.0],
"bottom_interrupted_lons": [80.0, -20.0, -100.0],
"delta_cut": 7e5
},
{
"filename": "igh_o.png",
@@ -563,7 +567,10 @@
"name": "igh_o",
"projstring": "+proj=igh_o +lon_0=-160",
"res": "low",
"type": "line"
"type": "line",
"top_interrupted_lons": [110.0, 20.0, -100.0],
"bottom_interrupted_lons": [-70.0, 20.0, 140.0],
"delta_cut": 7e5
},
{
"filename": "imw_p.png",
@@ -585,7 +592,8 @@
"name": "isea",
"projstring": "+proj=isea",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e6
},
{
"filename": "kav5.png",
@@ -740,7 +748,8 @@
"name": "lsat",
"projstring": "+proj=lsat +ellps=GRS80 +lat_1=-60 +lat_2=60 +lsat=2 +path=2",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e6
},
{
"filename": "mbt_s.png",
@@ -839,7 +848,8 @@
"name": "misrsom",
"projstring": "+proj=misrsom +path=1",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e7
},
{
"filename": "moll.png",
@@ -969,7 +979,7 @@
"lonmax": 180,
"lonmin": -180,
"name": "ob_tran",
"projstring": "+proj=ob_tran +o_proj=mill +o_lon_p=40 +o_lat_p=50 +lon_0=60",
"projstring": "+proj=ob_tran +o_proj=moll +o_lon_p=40 +o_lat_p=50 +lon_0=60",
"res": "low",
"type": "poly"
},
@@ -1004,7 +1014,8 @@
"name": "omerc",
"projstring": "+proj=omerc +lat_1=45 +lat_2=55",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e6
},
{
"filename": "ortel.png",
@@ -1081,7 +1092,8 @@
"name": "peirce_q_horizontal",
"projstring": "+proj=peirce_q +lon_0=25 +shape=horizontal",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e6
},
{
"filename": "grieger_triptychial.png",
@@ -1312,7 +1324,8 @@
"name": "gstmerc",
"projstring": "+proj=gstmerc",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e7
},
{
"filename": "tcc.png",
@@ -1334,7 +1347,8 @@
"name": "tcea",
"projstring": "+proj=tcea",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e6
},
{
"filename": "times.png",
@@ -1444,7 +1458,8 @@
"name": "utm",
"projstring": "+proj=utm",
"res": "low",
"type": "line"
"type": "line",
"delta_cut": 1e6
},
{
"filename": "vandg.png",
+12
View File
@@ -0,0 +1,12 @@
#!/bin/sh
set -e
export PATH="$HOME/.local/bin:$PATH"
export PROJ_LIB="$HOME/.local/share/proj"
cd docs/plot
python plot.py plotdefs.json images
cd ../..
mkdir -p docs/source/operations/projections/images/
cp -r docs/plot/images/* docs/source/operations/projections/images/
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
set -e
# https://github.com/readthedocs/readthedocs.org/pull/9888
READTHEDOCS_OUTPUT="_readthedocs"
find ${READTHEDOCS_OUTPUT} -type d
READTHEDOCS_OUTPUT_HTML="${READTHEDOCS_OUTPUT}/html"
# Undoes the hack done in scripts/doxygen.sh
sed "s/io::Convention_/io::Convention/g" < ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html | sed "s/>Convention_/>Convention/g" | sed "s/_WKT2/WKT2/g" | sed "s/_WKT1/WKT1/g" > ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html.tmp
mv ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html.tmp ${READTHEDOCS_OUTPUT_HTML}/development/reference/cpp/io.html
# Copy JSON schemas for public consumption
READTHEDOCS_OUTPUT_SCHEMAS="${READTHEDOCS_OUTPUT_HTML}/schemas"
cp -r schemas ${READTHEDOCS_OUTPUT_SCHEMAS}
cp ./data/triangulation.schema.json ${READTHEDOCS_OUTPUT_SCHEMAS}
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
set -e
mkdir build
cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=$HOME/.local ..
ninja install
+11 -13
View File
@@ -14,7 +14,6 @@
import sys
import os
import datetime
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
@@ -70,29 +69,25 @@ project = 'PROJ'
# See CITATION file
title = 'PROJ coordinate transformation software library'
author = 'PROJ contributors'
now = datetime.datetime.now()
copyright = u'1983-{0}'.format(now.year)
copyright = u'1983-2022'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
version = '9.0.0'
data_version = '1.9'
# use same |release| as |version|
release = version
version = '9.0'
release = '9.0.1'
data_version = '1.10'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# language = 'en'
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
today = 'June 2022'
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
@@ -206,7 +201,7 @@ html_context = {
'github_user': 'OSGeo',
'github_repo': 'PROJ',
# TODO: edit when switching active branch
'github_version': '8.2/docs/source/',
'github_version': '9.0/docs/source/',
}
# Add any extra paths that contain custom files (such as robots.txt or
@@ -279,6 +274,8 @@ preamble = r"""
\ifdefined\DeclareUnicodeCharacter
\DeclareUnicodeCharacter{2032}{$'$}% prime
\fi
\usepackage[notbib]{tocbibind}
"""
latex_elements = {
@@ -290,7 +287,8 @@ latex_elements = {
# Additional stuff for the LaTeX preamble.
'preamble': preamble,
'inputenc':'\\usepackage[utf8]{inputenc}'
'inputenc': r'\usepackage[utf8]{inputenc}',
'makeindex': r'\usepackage[columns=1]{idxlayout}\makeindex',
# Latex figure (float) alignment
#'figure_align': 'htbp',
+1 -1
View File
@@ -30,7 +30,7 @@ Go bindings and idiomatic wrapper for PROJ
Julia
=====
`Proj4.jl <https://github.com/JuliaGeo/Proj4.jl>`_:
`Proj.jl <https://github.com/JuliaGeo/Proj.jl>`_:
Julia bindings and idiomatic wrapper for PROJ.
TCL
+5 -10
View File
@@ -5,23 +5,18 @@ Using PROJ in CMake projects
********************************************************************************
The recommended way to use the PROJ library in a CMake project is to
link to the imported library target ``${PROJ_LIBRARIES}`` provided by
link to the imported library target ``PROJ::proj`` provided by
the CMake configuration which comes with the library. Typical usage is:
.. code::
find_package(PROJ)
find_package(PROJ CONFIG REQUIRED)
target_link_libraries(MyApp PRIVATE ${PROJ_LIBRARIES})
target_link_libraries(MyApp PRIVATE PROJ::proj)
By adding the imported library target ``${PROJ_LIBRARIES}`` to the
By adding the imported library target ``PROJ::proj`` to the
target link libraries, CMake will also pass the include directories to
the compiler. This requires that you use CMake version 2.8.11 or later.
If you are using an older version of CMake, then add
.. code::
include_directories(${PROJ_INCLUDE_DIRS})
the compiler.
The CMake command ``find_package`` will look for the configuration in a
number of places. The lookup can be adjusted for all packages by setting
@@ -880,9 +880,15 @@ Setting custom I/O functions
.. doxygenfunction:: proj_context_set_sqlite3_vfs_name
:project: doxygen_api
.. doxygenfunction:: proj_context_set_file_finder
:project: doxygen_api
.. doxygenfunction:: proj_context_set_search_paths
:project: doxygen_api
.. doxygenfunction:: proj_context_set_ca_bundle_path
:project: doxygen_api
Network related functionality
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+7 -5
View File
@@ -13,9 +13,8 @@ distribution of the source code and various resource file archives. See
Current Release
--------------------------------------------------------------------------------
* **2022-03-01** `proj-9.0.0.tar.gz`_ (`md5`_)
* **2022-03-01** `proj-data-1.9.tar.gz`_
* **PDF Manual** `proj.pdf`_
* **2022-06-15** `proj-9.0.1.tar.gz`_ (`md5`_)
* **2022-06-15** `proj-data-1.10.tar.gz`_
.. note::
@@ -28,6 +27,7 @@ Current Release
Past Releases
--------------------------------------------------------------------------------
* **2022-03-01** `proj-9.0.0.tar.gz`_
* **2022-01-01** `proj-8.2.1.tar.gz`_
* **2021-11-01** `proj-8.2.0.tar.gz`_
* **2021-09-01** `proj-8.1.1.tar.gz`_
@@ -56,6 +56,7 @@ Past Releases
* **2015-09-13** `proj-4.9.2.tar.gz`_
* **2015-03-04** `proj-4.9.1.tar.gz`_
* **2022-03-01** `proj-data-1.9.tar.gz`_
* **2021-11-01** `proj-data-1.8.tar.gz`_
* **2021-07-01** `proj-data-1.7.tar.gz`_
* **2021-05-05** `proj-data-1.6.tar.gz`_
@@ -86,8 +87,9 @@ Past Releases
* **2018-03-01** `proj-datumgrid-oceania-1.1.zip`_
* **2018-03-01** `proj-datumgrid-oceania-1.0.zip`_
.. _`proj-9.0.1.tar.gz`: https://download.osgeo.org/proj/proj-9.0.1.tar.gz
.. _`md5`: https://download.osgeo.org/proj/proj-9.0.1.tar.gz.md5
.. _`proj-9.0.0.tar.gz`: https://download.osgeo.org/proj/proj-9.0.0.tar.gz
.. _`md5`: https://download.osgeo.org/proj/proj-9.0.0.tar.gz.md5
.. _`proj-8.2.1.tar.gz`: https://download.osgeo.org/proj/proj-8.2.1.tar.gz
.. _`proj-8.2.0.tar.gz`: https://download.osgeo.org/proj/proj-8.2.0.tar.gz
.. _`proj-8.2.0.tar.gz`: https://download.osgeo.org/proj/proj-8.2.0.tar.gz
@@ -117,6 +119,7 @@ Past Releases
.. _`proj-4.9.2.tar.gz`: https://download.osgeo.org/proj/proj-4.9.2.tar.gz
.. _`proj-4.9.3.tar.gz`: https://download.osgeo.org/proj/proj-4.9.3.tar.gz
.. _`proj-data-1.10.tar.gz`: https://download.osgeo.org/proj/proj-data-1.10.tar.gz
.. _`proj-data-1.9.tar.gz`: https://download.osgeo.org/proj/proj-data-1.9.tar.gz
.. _`proj-data-1.8.tar.gz`: https://download.osgeo.org/proj/proj-data-1.8.tar.gz
.. _`proj-data-1.7.tar.gz`: https://download.osgeo.org/proj/proj-data-1.7.tar.gz
@@ -147,4 +150,3 @@ Past Releases
.. _`proj-datumgrid-oceania-1.1.zip`: https://download.osgeo.org/proj/proj-datumgrid-oceania-1.1.zip
.. _`proj-datumgrid-oceania-1.2.zip`: https://download.osgeo.org/proj/proj-datumgrid-oceania-1.2.zip
.. _`proj-datumgrid-world-1.0.zip`: https://download.osgeo.org/proj/proj-datumgrid-world-1.0.zip
.. _`proj.pdf`: https://raw.githubusercontent.com/OSGeo/PROJ/gh-pages/proj.pdf
-5
View File
@@ -30,8 +30,3 @@ PROJ
You can download the source code for PROJ on the :ref:`download section<download>`
and find links to prepackaged executables in the
:ref:`installation section<install>`.
In addition to this website the PROJ documentation is also available in `PDF`_
form.
.. _`PDF`: https://raw.githubusercontent.com/OSGeo/proj.4/gh-pages/proj.pdf
+3 -4
View File
@@ -63,7 +63,7 @@ To install PROJ do the following:
already installed. Type "OSGeo4W Shell" in your start menu and check whether
that gives a match.
1. Download either the `32 bit`_ or `64 bit`_ installer.
1. Download the `64 bit`_ installer.
2. Run the OSGeo4W setup program.
3. Select "Advanced Install" and press Next.
4. Select "Install from Internet" and press Next.
@@ -81,11 +81,10 @@ including proj.
For those who are more inclined to the command line, steps 2--10 above can be
accomplished by executing the following command::
C:\temp\osgeo4w-setup-x86-64.exe -q -k -r -A -s https://download.osgeo.org/osgeo4w/ -a x86_64 -P proj
C:\temp\osgeo4w-setup.exe -q -k -r -A -s https://download.osgeo.org/osgeo4w/v2/ -P proj
.. _`OSGeo4W`: https://trac.osgeo.org/osgeo4w/
.. _`32 bit`: https://download.osgeo.org/osgeo4w/osgeo4w-setup-x86.exe
.. _`64 bit`: https://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe
.. _`64 bit`: https://download.osgeo.org/osgeo4w/osgeo4w-setup.exe
Linux
--------------------------------------------------------------------------------
+77 -10
View File
@@ -3,6 +3,73 @@
News
###############################################################################
9.0.1 Release Notes
+++++++++++++++++++
*June 15th 2022*
Database updates
-----------------
* Update to EPSG 10.064 (`#3208 <https://github.com/OSGeo/PROJ/issues/3208>`_)
* Add OGC:CRS84h (WGS 84 longitude-latitude-height) (`#3155 <https://github.com/OSGeo/PROJ/issues/3155>`_)
Bug fixes
---------
* Use :envvar:`CMAKE_INSTALL_MANDIR` to override default (`#3081 <https://github.com/OSGeo/PROJ/issues/3081>`_)
* Increase ``MAX_ITER`` so Mollweide forward projection works near the poles (`#3082 <https://github.com/OSGeo/PROJ/issues/3082>`_)
* Fix wrong results with SQLite 3.38.0 (`#3091 <https://github.com/OSGeo/PROJ/issues/3091>`_)
* Fix issue when transforming from/to BoundCRS of 3D CRS with non-Greenwich
prime meridian, created from WKT (`#3098 <https://github.com/OSGeo/PROJ/issues/3098>`_)
* Fix issues with WKT of concatenated operations (`#3105 <https://github.com/OSGeo/PROJ/issues/3105>`_)
* CMake: fix installation of ``proj.pc`` on Windows (`#3109 <https://github.com/OSGeo/PROJ/issues/3109>`_)
* :cpp:func:`createOperations`: fix issue in transformation northing, easting
projected CRS -> +proj=longlat +lon_wrap (`#3110 <https://github.com/OSGeo/PROJ/issues/3110>`_)
* ``unitconvert``: round to nearest date when converting to yyyymmdd (`#3111 <https://github.com/OSGeo/PROJ/issues/3111>`_)
* Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame (`#3120 <https://github.com/OSGeo/PROJ/issues/3120>`_)
* :cpp:func:`createOperations`: fix transformation involving CompoundCRS, ToWGS84
and PROJ4_GRIDS (`#3124 <https://github.com/OSGeo/PROJ/issues/3124>`_)
* Fix datum names when importing from PROJ4 crs strings (affects some
transformations using geoidgrids) (`#3129 <https://github.com/OSGeo/PROJ/issues/3129>`_)
* Deal with ``PARAMETER["EPSG code for Interpolation CRS",crs_code]`` (`#3149 <https://github.com/OSGeo/PROJ/issues/3149>`_)
* :cpp:func:`createOperations`: fix ``CompoundCRS[BoundCRS[ProjectedCRS],BoundCRS[VerticalCRS]]``
to Geog3DCrs (`#3151 <https://github.com/OSGeo/PROJ/issues/3151>`_)
* ITRF2014: fix ITRF2014:ITRF88,ITRF94 and ITRF96 definitions (`#3159 <https://github.com/OSGeo/PROJ/issues/3159>`_)
* :cpp:func:`createBoundCRSToWGS84IfPossible()`: improve selection logic to generate +towgs84=
taking into account extent (`#3160 <https://github.com/OSGeo/PROJ/issues/3160>`_)
* :cpp:func:`createOperations`: fix some complex cases involving TOWGS84 and CompoundCRS (`#3163 <https://github.com/OSGeo/PROJ/issues/3163>`_)
* Fix CMake CURL dependency (`#3185 <https://github.com/OSGeo/PROJ/issues/3185>`_)
* WKT import: deal with Projected CRS that is a mix of WKT1:GDAL / WKT1:ESRI (`#3189 <https://github.com/OSGeo/PROJ/issues/3189>`_)
* :cpp:func:`createOperations`: fix/improve result of 'BD72 + Ostend height' to 'WGS84+EGM96 height' (`#3199 <https://github.com/OSGeo/PROJ/issues/3199>`_)
* :cpp:func:`Identifier::isEquivalentName()`: fix when ending by ' + ' which could indirectly cause
an infinite stack call in master (`#3202 <https://github.com/OSGeo/PROJ/issues/3202>`_)
* WKT import: correctly deal with absence of Latitude_Of_Origin parameter in
WKT1 ESRI with Stereographic projection (`#3212 <https://github.com/OSGeo/PROJ/issues/3212>`_)
* PROJJSON parser: do not error out if a datum ensemble member is unknown in the database (`#3223 <https://github.com/OSGeo/PROJ/issues/3223>`_)
9.0.0 Release Notes
+++++++++++++++++++
*March 1st 2022*
@@ -51,14 +118,14 @@ Bug fixes
* CMake: fix warning with external googletest (`#2980 <https://github.com/OSGeo/PROJ/issues/2980>`_)
* :c:func:`proj_get_crs_info_list_from_database()``: report ``PJ_TYPE_GEODETIC_CRS`` for
* :c:func:`proj_get_crs_info_list_from_database()`: report ``PJ_TYPE_GEODETIC_CRS`` for
IAU_2015 -ocentric geodetic CRS (`#3013 <https://github.com/OSGeo/PROJ/issues/3013>`_)
* peirce_q: rename ``+type`` parameter wrongly introduced in 8.2.1 to ``+shape`` (`#3014 <https://github.com/OSGeo/PROJ/issues/3014>`_)
* Set more precise error code for parsing errors in :c:func:`proj_create()`` (`#3037 <https://github.com/OSGeo/PROJ/issues/3037>`_)
* Set more precise error code for parsing errors in :c:func:`proj_create()` (`#3037 <https://github.com/OSGeo/PROJ/issues/3037>`_)
* :cpp:func:``createOperations()``: fix transformations from/to a BoundCRS of a
* :cpp:func:`createOperations`: fix transformations from/to a BoundCRS of a
DerivedGeographicCRS coming from WKT (`#3046 <https://github.com/OSGeo/PROJ/issues/3046>`_)
* Better deal with importing strings like ``+init=epsg:XXXX +over`` (`#3055 <https://github.com/OSGeo/PROJ/issues/3055>`_)
@@ -86,7 +153,7 @@ Bug fixes
* Ensure CApi test are cross-platform (`#2934 <https://github.com/OSGeo/PROJ/issues/2934>`_)
* :cpp:func:`createOperations()`: do not stop at the first operation in the PROJ namespace for vertical transformations (`#2937 <https://github.com/OSGeo/PROJ/issues/2937>`_)
* :cpp:func:`createOperations`: do not stop at the first operation in the PROJ namespace for vertical transformations (`#2937 <https://github.com/OSGeo/PROJ/issues/2937>`_)
* :cpp:func:`createOperationsCompoundToCompound()`: fix null pointer dereference when connection to ``proj.db`` doesn't exist. (`#2938 <https://github.com/OSGeo/PROJ/issues/2938>`_)
@@ -94,7 +161,7 @@ Bug fixes
* Cache result of :c:func:`proj_get_type()` to help for performance of :c:func:`proj_factors()` (`#2967 <https://github.com/OSGeo/PROJ/issues/2967>`_)
* :cpp:func:`createOperations()`: improvement for "NAD83(CSRS) + CGVD28 height" to "NAD83(CSRS) + CGVD2013(CGG2013) height" (`#2977 <https://github.com/OSGeo/PROJ/issues/2977>`_)
* :cpp:func:`createOperations`: improvement for "NAD83(CSRS) + CGVD28 height" to "NAD83(CSRS) + CGVD2013(CGG2013) height" (`#2977 <https://github.com/OSGeo/PROJ/issues/2977>`_)
* WKT1 import: correctly deal with missing rectified_grid_angle parameter (`#2986 <https://github.com/OSGeo/PROJ/issues/2986>`_)
@@ -259,7 +326,7 @@ Bug Fixes
* Make sure that :c:func:`proj_crs_promote_to_3D` returns a derived CRS (`#2806 <https://github.com/OSGeo/PROJ/issues/2806>`_)
* :cpp:func:`createOperations()`: fix missing deg<-->rad conversion when transforming with a
* :cpp:func:`createOperations`: fix missing deg<-->rad conversion when transforming with a
CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a
GeographicCRS (`#2808 <https://github.com/OSGeo/PROJ/issues/2808>`_)
@@ -380,7 +447,7 @@ Bug fixes
* fix wrong capitalization of CHENyx06_ETRS.gsb (`#2597 <https://github.com/OSGeo/PROJ/issues/2597>`_)
* :cpp:func:`createOperations()`: improve handling of vertical transforms when
* :cpp:func:`createOperations`: improve handling of vertical transforms when
when compound CRSs are used (`#2592 <https://github.com/OSGeo/PROJ/issues/2592>`_)
* :cpp:func:`CRS::promoteTo3D()`: propagate the extent from the 2D CRS (`#2589 <https://github.com/OSGeo/PROJ/issues/2589>`_)
@@ -471,7 +538,7 @@ Bug fixes
* Do not restrict longitude to [-90;90] range in spherical transverse Mercator
forward projection (`#2471 <https://github.com/OSGeo/PROJ/issues/2471>`_)
* :cpp:func:`createOperations()`: fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height (`#2500 <https://github.com/OSGeo/PROJ/issues/2500>`_)
* :cpp:func:`createOperations`: fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height (`#2500 <https://github.com/OSGeo/PROJ/issues/2500>`_)
* Avoid error messages to be emitted log level is set to ``PJ_LOG_NONE`` (`#2527 <https://github.com/OSGeo/PROJ/issues/2527>`_)
@@ -606,7 +673,7 @@ Bug fixes
* Adjust :cpp:func:`createBoundCRSToWGS84IfPossible()` and operation filtering
(for POSGAR 2007 to WGS84 issues) (`#2357 <https://github.com/OSGeo/PROJ/issues/2357>`_)
* :cpp:func:`createOperations()`: several fixes affecting NAD83 -> NAD83(2011) (`#2364 <https://github.com/OSGeo/PROJ/issues/2364>`_)
* :cpp:func:`createOperations`: several fixes affecting NAD83 -> NAD83(2011) (`#2364 <https://github.com/OSGeo/PROJ/issues/2364>`_)
* WKT2:2019 import/export: handle DATUM (at top level object) with PRIMEM
@@ -764,7 +831,7 @@ Updates
Bug fixes
---------
* :cpp:func:`createOperations()`: do not remove ballpark transformation if there are only grid
* :cpp:func:`createOperations`: do not remove ballpark transformation if there are only grid
based operations, even if they cover the whole area of use (`#2155 <https://github.com/OSGeo/PROJ/issues/2155>`_)
* :cpp:func:`createFromProjString()`: handle default parameters of '+krovak +type=crs', and
@@ -158,6 +158,16 @@ Time units
In the table below all time units supported by PROJ are listed.
.. note::
When converting time units from a date-only format (`yyyymmdd`), PROJ
assumes a time value of 00:00 midnight. When converting time units
to a date-only format, PROJ rounds to the *nearest* date at 00:00
midnight. That is, any time values less than 12:00 noon will round to
00:00 on the same day. Time values greater than or equal to 12:00 noon
will round to 00:00 on the following day.
+--------------+-----------------------------+
| Label | Name |
+==============+=============================+
@@ -35,6 +35,8 @@ Parameters
.. include:: ../options/lon_0.rst
.. include:: ../options/lat_0.rst
.. include:: ../options/R.rst
.. include:: ../options/x_0.rst
Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 490 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 KiB

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 417 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 416 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 518 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 KiB

After

Width:  |  Height:  |  Size: 536 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 538 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 KiB

After

Width:  |  Height:  |  Size: 560 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

After

Width:  |  Height:  |  Size: 523 KiB

@@ -26,7 +26,7 @@ General Oblique Transformation
:align: center
:alt: General Oblique Transformation
proj-string: ``+proj=ob_tran +o_proj=mill +o_lon_p=40 +o_lat_p=50 +lon_0=60``
proj-string: ``+proj=ob_tran +o_proj=moll +o_lon_p=40 +o_lat_p=50 +lon_0=60``
Usage
################################################################################
@@ -7,7 +7,7 @@ Winkel Tripel
+---------------------+----------------------------------------------------------+
| **Classification** | Pseudoazimuthal |
+---------------------+----------------------------------------------------------+
| **Available forms** | Forward spherical projection |
| **Available forms** | Forward and inverse spherical projection |
+---------------------+----------------------------------------------------------+
| **Defined area** | Global |
+---------------------+----------------------------------------------------------+
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -137,23 +137,23 @@ Spherical earth with radius 7000km:
::
proj=laton R=7000000
+proj=latlon +R=7000000
Using the GRS80 ellipsoid:
::
proj=laton ellps=GRS80
+proj=latlon +ellps=GRS80
Expressing ellipsoid by semi-major axis and reverse flattening (:math:`1/f`):
::
proj=laton a=6378137.0 rf=298.25
+proj=latlon +a=6378137.0 +rf=298.25
Spherical earth based on volume of ellipsoid
::
proj=laton a=6378137.0 rf=298.25 +R_V
+proj=latlon +a=6378137.0 +rf=298.25 +R_V
+8
View File
@@ -432,6 +432,10 @@ class PROJ_GCC_DLL GeodeticReferenceFrame : public Datum {
util::IComparable::Criterion criterion =
util::IComparable::Criterion::STRICT,
const io::DatabaseContextPtr &dbContext = nullptr) const override;
PROJ_INTERNAL bool isEquivalentToNoExactTypeCheck(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const;
//! @endcond
protected:
@@ -587,6 +591,10 @@ class PROJ_GCC_DLL VerticalReferenceFrame : public Datum {
util::IComparable::Criterion::STRICT,
const io::DatabaseContextPtr &dbContext = nullptr) const override;
PROJ_INTERNAL bool isEquivalentToNoExactTypeCheck(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const;
PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter)
const override; // throw(io::FormattingException)
+3 -3
View File
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
.TH "CCT" "1" "Mar 1, 2022" "9.0.0" "PROJ"
.SH NAME
cct \- Coordinate Conversion and Transformation
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "CCT" "1" "Jun 15, 2022" "9.0.1" "PROJ"
.SH NAME
cct \- Coordinate Conversion and Transformation
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
+3 -3
View File
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
.TH "CS2CS" "1" "Mar 1, 2022" "9.0.0" "PROJ"
.SH NAME
cs2cs \- Cartographic coordinate system filter
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "CS2CS" "1" "Jun 15, 2022" "9.0.1" "PROJ"
.SH NAME
cs2cs \- Cartographic coordinate system filter
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
+3 -3
View File
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
.TH "GEOD" "1" "Mar 1, 2022" "9.0.0" "PROJ"
.SH NAME
geod \- Geodesic computations
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "GEOD" "1" "Jun 15, 2022" "9.0.1" "PROJ"
.SH NAME
geod \- Geodesic computations
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
+3 -3
View File
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
.TH "GIE" "1" "Mar 1, 2022" "9.0.0" "PROJ"
.SH NAME
gie \- The Geospatial Integrity Investigation Environment
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "GIE" "1" "Jun 15, 2022" "9.0.1" "PROJ"
.SH NAME
gie \- The Geospatial Integrity Investigation Environment
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
+3 -3
View File
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
.TH "PROJ" "1" "Mar 1, 2022" "9.0.0" "PROJ"
.SH NAME
proj \- Cartographic projection filter
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "PROJ" "1" "Jun 15, 2022" "9.0.1" "PROJ"
.SH NAME
proj \- Cartographic projection filter
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
+3 -3
View File
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
.TH "PROJINFO" "1" "Mar 1, 2022" "9.0.0" "PROJ"
.SH NAME
projinfo \- Geodetic object and coordinate operation queries
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "PROJINFO" "1" "Jun 15, 2022" "9.0.1" "PROJ"
.SH NAME
projinfo \- Geodetic object and coordinate operation queries
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
+3 -3
View File
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
.TH "PROJSYNC" "1" "Mar 1, 2022" "9.0.0" "PROJ"
.SH NAME
projsync \- Downloading tool of resource files
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "PROJSYNC" "1" "Jun 15, 2022" "9.0.1" "PROJ"
.SH NAME
projsync \- Downloading tool of resource files
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
+9 -4
View File
@@ -18,6 +18,15 @@ TOPDIR="$SCRIPT_DIR/.."
pushd "${TOPDIR}" > /dev/null || exit
doxygen_version_cmd=$(doxygen --version)
# remove extra info after space
doxygen_version=${doxygen_version_cmd%% *}
echo "Doxygen version $doxygen_version"
if test $doxygen_version = "1.8.17" ; then
echo "Doxygen 1.8.17 is incompatible" && /bin/false;
fi
# HTML generation
# Check that doxygen runs warning free
rm -rf docs/build/html/
@@ -29,10 +38,6 @@ else
echo "No Doxygen warnings found";
fi
if test $(doxygen --version) = "1.8.17" ; then
echo "Doxygen 1.8.17 is incompatible" && /bin/false;
fi
rm -rf docs/build/xml/
(cat Doxyfile; printf "GENERATE_HTML=NO\nGENERATE_XML=YES\nINPUT= src/iso19111 src/iso19111/operation include/proj src/proj.h src/filemanager.cpp src/networkfilemanager.cpp src/4D_api.cpp src/general_doc.dox") | doxygen - > docs/build/docs_log.txt 2>&1
+10 -9
View File
@@ -252,21 +252,22 @@ static double yyyymmdd_to_mjd(double yyyymmdd) {
/***********************************************************************/
static double mjd_to_yyyymmdd(double mjd) {
/************************************************************************
Date given in YYYY-MM-DD format.
Date returned in YYYY-MM-DD format.
************************************************************************/
double mjd_iter = 14 + 31;
int year = 1859, month=0, day=0;
unsigned int date_iter = 14 + 31;
unsigned int year = 1859, month = 0, day = 0;
unsigned int date = (int) lround(mjd);
for (; mjd >= mjd_iter; year++) {
mjd_iter += days_in_year(year);
for (; date >= date_iter; year++) {
date_iter += days_in_year(year);
}
year--;
mjd_iter -= days_in_year(year);
date_iter -= days_in_year(year);
for (month=1; mjd_iter + days_in_month(year, month) <= mjd; month++)
mjd_iter += days_in_month(year, month);
for (month=1; date_iter + days_in_month(year, month) <= date; month++)
date_iter += days_in_month(year, month);
day = (int)(mjd - mjd_iter + 1);
day = date - date_iter + 1;
return year*10000.0 + month*100.0 + day;
}
+59 -15
View File
@@ -574,6 +574,8 @@ CRSNNPtr CRS::createBoundCRSToWGS84IfPossible(
operation::CoordinateOperationFactory::create()
->createOperations(NN_NO_CHECK(geodCRS), hubCRS, ctxt);
CRSPtr candidateBoundCRS;
int candidateCount = 0;
bool candidateHasExactlyMachingExtent = false;
for (const auto &op : list) {
auto transf =
util::nn_dynamic_pointer_cast<operation::Transformation>(
@@ -584,13 +586,31 @@ CRSNNPtr CRS::createBoundCRSToWGS84IfPossible(
} catch (const std::exception &) {
continue;
}
bool unused = false;
auto opExtent =
getExtent(NN_NO_CHECK(transf), false, unused);
const bool exactlyMatchingExtent =
opExtent && extentResolved &&
opExtent->contains(NN_NO_CHECK(extentResolved)) &&
extentResolved->contains(NN_NO_CHECK(opExtent));
if (candidateBoundCRS) {
candidateBoundCRS = nullptr;
break;
if (exactlyMatchingExtent &&
!candidateHasExactlyMachingExtent) {
candidateBoundCRS = nullptr;
} else if (exactlyMatchingExtent ==
candidateHasExactlyMachingExtent) {
candidateCount++;
}
}
if (candidateBoundCRS == nullptr) {
candidateCount = 1;
candidateHasExactlyMachingExtent =
exactlyMatchingExtent;
candidateBoundCRS =
BoundCRS::create(thisAsCRS, hubCRS,
NN_NO_CHECK(transf))
.as_nullable();
}
candidateBoundCRS =
BoundCRS::create(thisAsCRS, hubCRS, NN_NO_CHECK(transf))
.as_nullable();
} else {
auto concatenated =
dynamic_cast<const operation::ConcatenatedOperation *>(
@@ -621,21 +641,42 @@ CRSNNPtr CRS::createBoundCRSToWGS84IfPossible(
} catch (const std::exception &) {
continue;
}
bool unused = false;
auto opExtent = getExtent(
NN_NO_CHECK(transf), false, unused);
const bool exactlyMatchingExtent =
opExtent && extentResolved &&
opExtent->contains(
NN_NO_CHECK(extentResolved)) &&
extentResolved->contains(
NN_NO_CHECK(opExtent));
if (candidateBoundCRS) {
candidateBoundCRS = nullptr;
break;
if (exactlyMatchingExtent &&
!candidateHasExactlyMachingExtent) {
candidateBoundCRS = nullptr;
} else if (
exactlyMatchingExtent ==
candidateHasExactlyMachingExtent) {
candidateCount++;
}
}
if (candidateBoundCRS == nullptr) {
candidateCount = 1;
candidateHasExactlyMachingExtent =
exactlyMatchingExtent;
candidateBoundCRS =
BoundCRS::create(
thisAsCRS, hubCRS,
NN_NO_CHECK(transf))
.as_nullable();
}
candidateBoundCRS =
BoundCRS::create(thisAsCRS, hubCRS,
NN_NO_CHECK(transf))
.as_nullable();
}
}
}
}
}
}
if (candidateBoundCRS) {
if (candidateCount == 1 && candidateBoundCRS) {
return NN_NO_CHECK(candidateBoundCRS);
}
} catch (const std::exception &) {
@@ -1460,7 +1501,8 @@ bool SingleCRS::baseIsEquivalentTo(
const auto &thisDatum = d->datum;
const auto &otherDatum = otherSingleCRS->d->datum;
if (thisDatum) {
if (!thisDatum->_isEquivalentTo(otherDatum.get(), criterion,
if (otherDatum == nullptr ||
!thisDatum->_isEquivalentTo(otherDatum.get(), criterion,
dbContext)) {
return false;
}
@@ -1473,7 +1515,8 @@ bool SingleCRS::baseIsEquivalentTo(
const auto &thisDatumEnsemble = d->datumEnsemble;
const auto &otherDatumEnsemble = otherSingleCRS->d->datumEnsemble;
if (thisDatumEnsemble) {
if (!thisDatumEnsemble->_isEquivalentTo(otherDatumEnsemble.get(),
if (otherDatumEnsemble == nullptr ||
!thisDatumEnsemble->_isEquivalentTo(otherDatumEnsemble.get(),
criterion, dbContext)) {
return false;
}
@@ -4404,7 +4447,8 @@ void ProjectedCRS::addUnitConvertAndAxisSwap(io::PROJStringFormatter *formatter,
formatter->addParam("units", "m");
}
if (!axisSpecFound && !formatter->getCRSExport()) {
if (!axisSpecFound &&
(!formatter->getCRSExport() || formatter->getLegacyCRSToCRSContext())) {
const auto &dir0 = axisList[0]->direction();
const auto &dir1 = axisList[1]->direction();
if (!(&dir0 == &cs::AxisDirection::EAST &&
+53 -8
View File
@@ -1414,7 +1414,8 @@ void GeodeticReferenceFrame::_exportToJSON(
// ---------------------------------------------------------------------------
//! @cond Doxygen_Suppress
bool GeodeticReferenceFrame::_isEquivalentTo(
bool GeodeticReferenceFrame::isEquivalentToNoExactTypeCheck(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const {
auto otherGRF = dynamic_cast<const GeodeticReferenceFrame *>(other);
@@ -1427,6 +1428,19 @@ bool GeodeticReferenceFrame::_isEquivalentTo(
ellipsoid()->_isEquivalentTo(otherGRF->ellipsoid().get(), criterion,
dbContext);
}
// ---------------------------------------------------------------------------
bool GeodeticReferenceFrame::_isEquivalentTo(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const {
if (criterion == Criterion::STRICT &&
!util::isOfExactType<GeodeticReferenceFrame>(*other)) {
return false;
}
return isEquivalentToNoExactTypeCheck(other, criterion, dbContext);
}
//! @endcond
// ---------------------------------------------------------------------------
@@ -1558,11 +1572,20 @@ DynamicGeodeticReferenceFrame::deformationModelName() const {
bool DynamicGeodeticReferenceFrame::_isEquivalentTo(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const {
auto otherDGRF = dynamic_cast<const DynamicGeodeticReferenceFrame *>(other);
if (otherDGRF == nullptr ||
!GeodeticReferenceFrame::_isEquivalentTo(other, criterion, dbContext)) {
if (criterion == Criterion::STRICT &&
!util::isOfExactType<DynamicGeodeticReferenceFrame>(*other)) {
return false;
}
if (!GeodeticReferenceFrame::isEquivalentToNoExactTypeCheck(
other, criterion, dbContext)) {
return false;
}
auto otherDGRF = dynamic_cast<const DynamicGeodeticReferenceFrame *>(other);
if (otherDGRF == nullptr) {
// we can go here only if criterion != Criterion::STRICT, and thus
// given the above check we can consider the objects equivalent.
return true;
}
return frameReferenceEpoch()._isEquivalentTo(
otherDGRF->frameReferenceEpoch(), criterion) &&
metadata::Identifier::isEquivalentName(
@@ -2101,7 +2124,7 @@ void VerticalReferenceFrame::_exportToJSON(
// ---------------------------------------------------------------------------
//! @cond Doxygen_Suppress
bool VerticalReferenceFrame::_isEquivalentTo(
bool VerticalReferenceFrame::isEquivalentToNoExactTypeCheck(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const {
auto otherVRF = dynamic_cast<const VerticalReferenceFrame *>(other);
@@ -2121,6 +2144,19 @@ bool VerticalReferenceFrame::_isEquivalentTo(
}
return true;
}
// ---------------------------------------------------------------------------
bool VerticalReferenceFrame::_isEquivalentTo(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const {
if (criterion == Criterion::STRICT &&
!util::isOfExactType<VerticalReferenceFrame>(*other)) {
return false;
}
return isEquivalentToNoExactTypeCheck(other, criterion, dbContext);
}
//! @endcond
// ---------------------------------------------------------------------------
@@ -2195,11 +2231,20 @@ DynamicVerticalReferenceFrame::deformationModelName() const {
bool DynamicVerticalReferenceFrame::_isEquivalentTo(
const util::IComparable *other, util::IComparable::Criterion criterion,
const io::DatabaseContextPtr &dbContext) const {
auto otherDGRF = dynamic_cast<const DynamicVerticalReferenceFrame *>(other);
if (otherDGRF == nullptr ||
!VerticalReferenceFrame::_isEquivalentTo(other, criterion, dbContext)) {
if (criterion == Criterion::STRICT &&
!util::isOfExactType<DynamicVerticalReferenceFrame>(*other)) {
return false;
}
if (!VerticalReferenceFrame::isEquivalentToNoExactTypeCheck(
other, criterion, dbContext)) {
return false;
}
auto otherDGRF = dynamic_cast<const DynamicVerticalReferenceFrame *>(other);
if (otherDGRF == nullptr) {
// we can go here only if criterion != Criterion::STRICT, and thus
// given the above check we can consider the objects equivalent.
return true;
}
return frameReferenceEpoch()._isEquivalentTo(
otherDGRF->frameReferenceEpoch(), criterion) &&
metadata::Identifier::isEquivalentName(
+16 -5
View File
@@ -252,7 +252,7 @@ class SQLiteHandle {
}
// cppcheck-suppress functionStatic
void registerFunctions();
void initialize();
SQLResultSet run(const std::string &sql,
const ListOfParams &parameters = ListOfParams(),
@@ -344,7 +344,7 @@ std::shared_ptr<SQLiteHandle> SQLiteHandle::open(PJ_CONTEXT *ctx,
#ifdef ENABLE_CUSTOM_LOCKLESS_VFS
handle->vfs_ = std::move(vfs);
#endif
handle->registerFunctions();
handle->initialize();
handle->checkDatabaseLayout(path, path, std::string());
return handle;
}
@@ -359,7 +359,7 @@ SQLiteHandle::initFromExisting(sqlite3 *sqlite_handle, bool close_handle,
new SQLiteHandle(sqlite_handle, close_handle));
handle->nLayoutVersionMajor_ = nLayoutVersionMajor;
handle->nLayoutVersionMinor_ = nLayoutVersionMinor;
handle->registerFunctions();
handle->initialize();
return handle;
}
@@ -370,7 +370,7 @@ SQLiteHandle::initFromExistingUniquePtr(sqlite3 *sqlite_handle,
bool close_handle) {
auto handle = std::unique_ptr<SQLiteHandle>(
new SQLiteHandle(sqlite_handle, close_handle));
handle->registerFunctions();
handle->initialize();
return handle;
}
@@ -547,7 +547,18 @@ void SQLiteHandle::checkDatabaseLayout(const std::string &mainDbPath,
#define SQLITE_DETERMINISTIC 0
#endif
void SQLiteHandle::registerFunctions() {
void SQLiteHandle::initialize() {
// There is a bug in sqlite 3.38.0 with some complex queries.
// Cf https://github.com/OSGeo/PROJ/issues/3077
// Disabling Bloom-filter pull-down optimization as suggested in
// https://sqlite.org/forum/forumpost/7d3a75438c
const int sqlite3VersionNumber = sqlite3_libversion_number();
if (sqlite3VersionNumber == 3 * 1000000 + 38 * 1000) {
sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS, sqlite_handle_,
0x100000);
}
sqlite3_create_function(sqlite_handle_, "pseudo_area_from_swne", 4,
SQLITE_UTF8 | SQLITE_DETERMINISTIC, nullptr,
PROJ_SQLITE_pseudo_area_from_swne, nullptr,
+319 -89
View File
@@ -1233,6 +1233,14 @@ std::string WKTNode::toString() const {
//! @cond Doxygen_Suppress
struct WKTParser::Private {
struct ci_less_struct {
bool operator()(const std::string &lhs,
const std::string &rhs) const noexcept {
return ci_less(lhs, rhs);
}
};
bool strict_ = true;
std::list<std::string> warningList_{};
std::vector<double> toWGS84Parameters_{};
@@ -1356,6 +1364,22 @@ struct WKTParser::Private {
const UnitOfMeasure &defaultLinearUnit,
const UnitOfMeasure &defaultAngularUnit);
const ESRIMethodMapping *
getESRIMapping(const WKTNodeNNPtr &projCRSNode,
const WKTNodeNNPtr &projectionNode,
std::map<std::string, std::string, ci_less_struct>
&mapParamNameToValue);
ConversionNNPtr
buildProjectionFromESRI(const GeodeticCRSNNPtr &baseGeodCRS,
const WKTNodeNNPtr &projCRSNode,
const WKTNodeNNPtr &projectionNode,
const UnitOfMeasure &defaultLinearUnit,
const UnitOfMeasure &defaultAngularUnit,
const ESRIMethodMapping *esriMapping,
std::map<std::string, std::string, ci_less_struct>
&mapParamNameToValue);
ConversionNNPtr
buildProjectionFromESRI(const GeodeticCRSNNPtr &baseGeodCRS,
const WKTNodeNNPtr &projCRSNode,
@@ -1408,6 +1432,10 @@ struct WKTParser::Private {
CRSPtr buildCRS(const WKTNodeNNPtr &node);
CRSPtr dealWithEPSGCodeForInterpolationCRSParameter(
std::vector<OperationParameterNNPtr> &parameters,
std::vector<ParameterValueNNPtr> &values);
TransformationNNPtr buildCoordinateOperation(const WKTNodeNNPtr &node);
ConcatenatedOperationNNPtr
@@ -3261,6 +3289,37 @@ WKTParser::Private::buildConversion(const WKTNodeNNPtr &node,
// ---------------------------------------------------------------------------
CRSPtr WKTParser::Private::dealWithEPSGCodeForInterpolationCRSParameter(
std::vector<OperationParameterNNPtr> &parameters,
std::vector<ParameterValueNNPtr> &values) {
// Transform EPSG hacky PARAMETER["EPSG code for Interpolation CRS",
// crs_epsg_code] into proper interpolation CRS
if (dbContext_ != nullptr) {
for (size_t i = 0; i < parameters.size(); ++i) {
if (parameters[i]->nameStr() ==
EPSG_NAME_PARAMETER_EPSG_CODE_FOR_INTERPOLATION_CRS) {
const int code =
static_cast<int>(values[i]->value().getSIValue());
try {
auto authFactory = AuthorityFactory::create(
NN_NO_CHECK(dbContext_), Identifier::EPSG);
auto interpolationCRS =
authFactory
->createGeographicCRS(internal::toString(code))
.as_nullable();
parameters.erase(parameters.begin() + i);
values.erase(values.begin() + i);
return interpolationCRS;
} catch (const util::Exception &) {
}
}
}
}
return nullptr;
}
// ---------------------------------------------------------------------------
TransformationNNPtr
WKTParser::Private::buildCoordinateOperation(const WKTNodeNNPtr &node) {
const auto *nodeP = node->GP();
@@ -3305,6 +3364,10 @@ WKTParser::Private::buildCoordinateOperation(const WKTNodeNNPtr &node) {
consumeParameters(node, false, parameters, values, defaultLinearUnit,
defaultAngularUnit);
if (interpolationCRS == nullptr)
interpolationCRS =
dealWithEPSGCodeForInterpolationCRSParameter(parameters, values);
std::vector<PositionalAccuracyNNPtr> accuracies;
auto &accuracyNode = nodeP->lookForChild(WKTConstants::OPERATIONACCURACY);
if (/*!isNull(accuracyNode) && */ accuracyNode->GP()->childrenSize() == 1) {
@@ -3448,10 +3511,9 @@ selectSphericalOrEllipsoidal(const MethodMapping *mapping,
// ---------------------------------------------------------------------------
ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
const GeodeticCRSNNPtr &baseGeodCRS, const WKTNodeNNPtr &projCRSNode,
const WKTNodeNNPtr &projectionNode, const UnitOfMeasure &defaultLinearUnit,
const UnitOfMeasure &defaultAngularUnit) {
const ESRIMethodMapping *WKTParser::Private::getESRIMapping(
const WKTNodeNNPtr &projCRSNode, const WKTNodeNNPtr &projectionNode,
std::map<std::string, std::string, ci_less_struct> &mapParamNameToValue) {
const std::string esriProjectionName =
stripQuotes(projectionNode->GP()->children()[0]);
@@ -3460,19 +3522,10 @@ ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
// on the parameters / their values
const auto esriMappings = getMappingsFromESRI(esriProjectionName);
if (esriMappings.empty()) {
return buildProjectionStandard(baseGeodCRS, projCRSNode, projectionNode,
defaultLinearUnit, defaultAngularUnit);
return nullptr;
}
struct ci_less_struct {
bool operator()(const std::string &lhs,
const std::string &rhs) const noexcept {
return ci_less(lhs, rhs);
}
};
// Build a map of present parameters
std::map<std::string, std::string, ci_less_struct> mapParamNameToValue;
for (const auto &childNode : projCRSNode->GP()->children()) {
if (ci_equal(childNode->GP()->value(), WKTConstants::PARAMETER)) {
const auto &childNodeChildren = childNode->GP()->children();
@@ -3525,11 +3578,18 @@ ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
bestMatchCount = matchCount;
}
}
if (esriMapping == nullptr) {
return buildProjectionStandard(baseGeodCRS, projCRSNode, projectionNode,
defaultLinearUnit, defaultAngularUnit);
}
return esriMapping;
}
// ---------------------------------------------------------------------------
ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
const GeodeticCRSNNPtr &baseGeodCRS, const WKTNodeNNPtr &projCRSNode,
const WKTNodeNNPtr &projectionNode, const UnitOfMeasure &defaultLinearUnit,
const UnitOfMeasure &defaultAngularUnit,
const ESRIMethodMapping *esriMapping,
std::map<std::string, std::string, ci_less_struct> &mapParamNameToValue) {
std::map<std::string, const char *> mapWKT2NameToESRIName;
for (const auto *param = esriMapping->params; param->esri_name; ++param) {
if (param->wkt2_name) {
@@ -3537,6 +3597,8 @@ ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
}
}
const std::string esriProjectionName =
stripQuotes(projectionNode->GP()->children()[0]);
const char *projectionMethodWkt2Name = esriMapping->wkt2_name;
if (ci_equal(esriProjectionName, "Krovak")) {
const std::string projCRSName =
@@ -3549,8 +3611,10 @@ ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
const auto *wkt2_mapping = getMapping(projectionMethodWkt2Name);
if (ci_equal(esriProjectionName, "Stereographic")) {
try {
if (std::fabs(io::asDouble(
mapParamNameToValue["Latitude_Of_Origin"])) == 90.0) {
const auto iterLatitudeOfOrigin =
mapParamNameToValue.find("Latitude_Of_Origin");
if (iterLatitudeOfOrigin != mapParamNameToValue.end() &&
std::fabs(io::asDouble(iterLatitudeOfOrigin->second)) == 90.0) {
wkt2_mapping =
getMapping(EPSG_CODE_METHOD_POLAR_STEREOGRAPHIC_VARIANT_A);
}
@@ -3648,6 +3712,26 @@ ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
// ---------------------------------------------------------------------------
ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
const GeodeticCRSNNPtr &baseGeodCRS, const WKTNodeNNPtr &projCRSNode,
const WKTNodeNNPtr &projectionNode, const UnitOfMeasure &defaultLinearUnit,
const UnitOfMeasure &defaultAngularUnit) {
std::map<std::string, std::string, ci_less_struct> mapParamNameToValue;
const auto esriMapping =
getESRIMapping(projCRSNode, projectionNode, mapParamNameToValue);
if (esriMapping == nullptr) {
return buildProjectionStandard(baseGeodCRS, projCRSNode, projectionNode,
defaultLinearUnit, defaultAngularUnit);
}
return buildProjectionFromESRI(baseGeodCRS, projCRSNode, projectionNode,
defaultLinearUnit, defaultAngularUnit,
esriMapping, mapParamNameToValue);
}
// ---------------------------------------------------------------------------
ConversionNNPtr WKTParser::Private::buildProjection(
const GeodeticCRSNNPtr &baseGeodCRS, const WKTNodeNNPtr &projCRSNode,
const WKTNodeNNPtr &projectionNode, const UnitOfMeasure &defaultLinearUnit,
@@ -3803,6 +3887,20 @@ ConversionNNPtr WKTParser::Private::buildProjectionStandard(
std::string projectionName(wkt1ProjectionName);
const MethodMapping *mapping =
tryToIdentifyWKT1Method ? getMappingFromWKT1(projectionName) : nullptr;
if (!mapping) {
// Sometimes non-WKT1:ESRI looking WKT can actually use WKT1:ESRI
// projection definitions
std::map<std::string, std::string, ci_less_struct> mapParamNameToValue;
const auto esriMapping =
getESRIMapping(projCRSNode, projectionNode, mapParamNameToValue);
if (esriMapping != nullptr) {
return buildProjectionFromESRI(
baseGeodCRS, projCRSNode, projectionNode, defaultLinearUnit,
defaultAngularUnit, esriMapping, mapParamNameToValue);
}
}
if (mapping) {
mapping = selectSphericalOrEllipsoidal(mapping, baseGeodCRS);
} else if (metadata::Identifier::isEquivalentName(
@@ -4341,10 +4439,10 @@ createBoundCRSSourceTransformationCRS(const crs::CRSPtr &sourceCRS,
sourceCRS->extractGeographicCRS();
sourceTransformationCRS = sourceGeographicCRS;
if (sourceGeographicCRS) {
if (sourceGeographicCRS->datum() != nullptr &&
sourceGeographicCRS->primeMeridian()
->longitude()
.getSIValue() != 0.0) {
const auto &sourceDatum = sourceGeographicCRS->datum();
if (sourceDatum != nullptr && sourceGeographicCRS->primeMeridian()
->longitude()
.getSIValue() != 0.0) {
sourceTransformationCRS =
GeographicCRS::create(
util::PropertyMap().set(
@@ -4354,13 +4452,12 @@ createBoundCRSSourceTransformationCRS(const crs::CRSPtr &sourceCRS,
datum::GeodeticReferenceFrame::create(
util::PropertyMap().set(
common::IdentifiedObject::NAME_KEY,
sourceGeographicCRS->datum()->nameStr() +
sourceDatum->nameStr() +
" (with Greenwich prime meridian)"),
sourceGeographicCRS->datum()->ellipsoid(),
sourceDatum->ellipsoid(),
util::optional<std::string>(),
datum::PrimeMeridian::GREENWICH),
cs::EllipsoidalCS::createLatitudeLongitude(
common::UnitOfMeasure::DEGREE))
sourceGeographicCRS->coordinateSystem())
.as_nullable();
}
} else {
@@ -4709,11 +4806,14 @@ BoundCRSNNPtr WKTParser::Private::buildBoundCRS(const WKTNodeNNPtr &node) {
consumeParameters(abridgedNode, true, parameters, values, defaultLinearUnit,
defaultAngularUnit);
auto interpolationCRS =
dealWithEPSGCodeForInterpolationCRSParameter(parameters, values);
const auto sourceTransformationCRS(
createBoundCRSSourceTransformationCRS(sourceCRS, targetCRS));
auto transformation = Transformation::create(
buildProperties(abridgedNode), sourceTransformationCRS,
NN_NO_CHECK(targetCRS), nullptr, buildProperties(methodNode),
NN_NO_CHECK(targetCRS), interpolationCRS, buildProperties(methodNode),
parameters, values, std::vector<PositionalAccuracyNNPtr>());
return BoundCRS::create(buildProperties(node, false, false),
@@ -6153,6 +6253,7 @@ DatumEnsembleNNPtr JSONParser::buildDatumEnsemble(const json &j) {
"Unexpected type for value of a \"members\" member");
}
auto datumName(getName(memberJ));
bool datumAdded = false;
if (dbContext_ && memberJ.contains("id")) {
auto id = getObject(memberJ, "id");
auto authority = getString(id, "authority");
@@ -6169,11 +6270,16 @@ DatumEnsembleNNPtr JSONParser::buildDatumEnsemble(const json &j) {
}
try {
datums.push_back(authFactory->createDatum(codeStr));
datumAdded = true;
} catch (const std::exception &) {
throw ParsingException("No Datum of code " + codeStr);
// Silently ignore, as this isn't necessary an error.
// If an older PROJ version parses a DatumEnsemble object of
// a more recent PROJ version where the datum ensemble got
// a new member, it might be unknown from the older PROJ.
}
continue;
} else if (dbContext_) {
}
if (dbContext_ && !datumAdded) {
auto authFactory = AuthorityFactory::create(NN_NO_CHECK(dbContext_),
std::string());
auto list = authFactory->createObjectsFromName(
@@ -6185,19 +6291,21 @@ DatumEnsembleNNPtr JSONParser::buildDatumEnsemble(const json &j) {
throw ParsingException(
"DatumEnsemble member is not a datum");
datums.push_back(NN_NO_CHECK(datum));
continue;
datumAdded = true;
}
}
// Fallback if no db match
if (hasEllipsoid) {
datums.emplace_back(GeodeticReferenceFrame::create(
buildProperties(memberJ),
buildEllipsoid(getObject(j, "ellipsoid")),
optional<std::string>(), PrimeMeridian::GREENWICH));
} else {
datums.emplace_back(
VerticalReferenceFrame::create(buildProperties(memberJ)));
if (!datumAdded) {
// Fallback if no db match
if (hasEllipsoid) {
datums.emplace_back(GeodeticReferenceFrame::create(
buildProperties(memberJ),
buildEllipsoid(getObject(j, "ellipsoid")),
optional<std::string>(), PrimeMeridian::GREENWICH));
} else {
datums.emplace_back(
VerticalReferenceFrame::create(buildProperties(memberJ)));
}
}
}
return DatumEnsemble::create(
@@ -8130,6 +8238,42 @@ const std::string &PROJStringFormatter::toString() const {
}
}
// detect a step and its inverse
if (curStep.inverted != prevStep.inverted &&
curStep.name == prevStep.name &&
curStepParamCount == prevStepParamCount) {
bool allSame = true;
for (size_t j = 0; j < curStepParamCount; j++) {
if (curStep.paramValues[j] != prevStep.paramValues[j]) {
allSame = false;
break;
}
}
if (allSame) {
deletePrevAndCurIter();
continue;
}
}
++iterCur;
}
}
{
auto iterCur = steps.begin();
if (iterCur != steps.end()) {
++iterCur;
}
while (iterCur != steps.end()) {
assert(iterCur != steps.begin());
auto iterPrev = std::prev(iterCur);
auto &prevStep = *iterPrev;
auto &curStep = *iterCur;
const auto curStepParamCount = curStep.paramValues.size();
const auto prevStepParamCount = prevStep.paramValues.size();
// +step +proj=hgridshift +grids=grid_A
// +step +proj=vgridshift [...] <== curStep
// +step +inv +proj=hgridshift +grids=grid_A
@@ -8168,19 +8312,102 @@ const std::string &PROJStringFormatter::toString() const {
}
}
// detect a step and its inverse
if (curStep.inverted != prevStep.inverted &&
curStep.name == prevStep.name &&
curStepParamCount == prevStepParamCount) {
bool allSame = true;
for (size_t j = 0; j < curStepParamCount; j++) {
if (curStep.paramValues[j] != prevStep.paramValues[j]) {
allSame = false;
break;
// +step +proj=unitconvert +xy_in=rad +xy_out=deg
// +step +proj=axisswap +order=2,1
// +step +proj=push +v_1 +v_2
// +step +proj=axisswap +order=2,1
// +step +proj=unitconvert +xy_in=deg +xy_out=rad
// +step +proj=vgridshift ...
// +step +proj=unitconvert +xy_in=rad +xy_out=deg
// +step +proj=axisswap +order=2,1
// +step +proj=pop +v_1 +v_2
// ==>
// +step +proj=vgridshift ...
// +step +proj=unitconvert +xy_in=rad +xy_out=deg
// +step +proj=axisswap +order=2,1
if (prevStep.name == "unitconvert" && prevStepParamCount == 2 &&
prevStep.paramValues[0].equals("xy_in", "rad") &&
prevStep.paramValues[1].equals("xy_out", "deg") &&
curStep.name == "axisswap" && curStepParamCount == 1 &&
curStep.paramValues[0].equals("order", "2,1")) {
auto iterNext = std::next(iterCur);
bool ok = false;
if (iterNext != steps.end()) {
auto &nextStep = *iterNext;
if (nextStep.name == "push" &&
nextStep.paramValues.size() == 2 &&
nextStep.paramValues[0].keyEquals("v_1") &&
nextStep.paramValues[1].keyEquals("v_2")) {
ok = true;
iterNext = std::next(iterNext);
}
}
if (allSame) {
deletePrevAndCurIter();
if (ok && iterNext != steps.end()) {
ok = false;
auto &nextStep = *iterNext;
if (nextStep.name == "axisswap" &&
nextStep.paramValues.size() == 1 &&
nextStep.paramValues[0].equals("order", "2,1")) {
ok = true;
iterNext = std::next(iterNext);
}
}
if (ok && iterNext != steps.end()) {
ok = false;
auto &nextStep = *iterNext;
if (nextStep.name == "unitconvert" &&
nextStep.paramValues.size() == 2 &&
nextStep.paramValues[0].equals("xy_in", "deg") &&
nextStep.paramValues[1].equals("xy_out", "rad")) {
ok = true;
iterNext = std::next(iterNext);
}
}
auto iterVgridshift = iterNext;
if (ok && iterNext != steps.end()) {
ok = false;
auto &nextStep = *iterNext;
if (nextStep.name == "vgridshift") {
ok = true;
iterNext = std::next(iterNext);
}
}
if (ok && iterNext != steps.end()) {
ok = false;
auto &nextStep = *iterNext;
if (nextStep.name == "unitconvert" &&
nextStep.paramValues.size() == 2 &&
nextStep.paramValues[0].equals("xy_in", "rad") &&
nextStep.paramValues[1].equals("xy_out", "deg")) {
ok = true;
iterNext = std::next(iterNext);
}
}
if (ok && iterNext != steps.end()) {
ok = false;
auto &nextStep = *iterNext;
if (nextStep.name == "axisswap" &&
nextStep.paramValues.size() == 1 &&
nextStep.paramValues[0].equals("order", "2,1")) {
ok = true;
iterNext = std::next(iterNext);
}
}
if (ok && iterNext != steps.end()) {
ok = false;
auto &nextStep = *iterNext;
if (nextStep.name == "pop" &&
nextStep.paramValues.size() == 2 &&
nextStep.paramValues[0].keyEquals("v_1") &&
nextStep.paramValues[1].keyEquals("v_2")) {
ok = true;
}
}
if (ok) {
steps.erase(iterPrev, iterVgridshift);
steps.erase(iterNext, std::next(iterNext));
iterPrev = std::prev(iterVgridshift);
iterCur = iterVgridshift;
continue;
}
}
@@ -9201,13 +9428,22 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
PrimeMeridianNNPtr pm(buildPrimeMeridian(step));
PropertyMap grfMap;
const auto &nadgrids = getParamValue(step, "nadgrids");
const auto &towgs84 = getParamValue(step, "towgs84");
std::string datumNameSuffix;
if (!nadgrids.empty()) {
datumNameSuffix = " using nadgrids=" + nadgrids;
} else if (!towgs84.empty()) {
datumNameSuffix = " using towgs84=" + towgs84;
}
// It is arguable that we allow the prime meridian of a datum defined by
// its name to be overridden, but this is found at least in a regression
// test
// of GDAL. So let's keep the ellipsoid part of the datum in that case and
// use the specified prime meridian.
const auto overridePmIfNeeded =
[&pm](const GeodeticReferenceFrameNNPtr &grf) {
[&pm, &datumNameSuffix](const GeodeticReferenceFrameNNPtr &grf) {
if (pm->_isEquivalentTo(PrimeMeridian::GREENWICH.get())) {
return grf;
} else {
@@ -9215,7 +9451,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
PropertyMap().set(IdentifiedObject::NAME_KEY,
"Unknown based on " +
grf->ellipsoid()->nameStr() +
" ellipsoid"),
" ellipsoid" + datumNameSuffix),
grf->ellipsoid(), grf->anchorDefinition(), pm);
}
};
@@ -9232,7 +9468,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
Length(R), guessBodyName(R));
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" : title.c_str()),
title.empty() ? "unknown" + datumNameSuffix : title),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
}
@@ -9281,21 +9517,23 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
}
else if (!ellpsStr.empty()) {
auto l_datum = [&ellpsStr, &title, &grfMap, &optionalEmptyString,
&pm]() {
auto l_datum = [&ellpsStr, &title, &grfMap, &optionalEmptyString, &pm,
&datumNameSuffix]() {
if (ellpsStr == "WGS84") {
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty()
? "Unknown based on WGS84 ellipsoid"
: title.c_str()),
? "Unknown based on WGS84 ellipsoid" +
datumNameSuffix
: title),
Ellipsoid::WGS84, optionalEmptyString, pm);
} else if (ellpsStr == "GRS80") {
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty()
? "Unknown based on GRS80 ellipsoid"
: title.c_str()),
? "Unknown based on GRS80 ellipsoid" +
datumNameSuffix
: title),
Ellipsoid::GRS1980, optionalEmptyString, pm);
} else {
auto proj_ellps = proj_list_ellps();
@@ -9331,7 +9569,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
title.empty()
? std::string("Unknown based on ") +
proj_ellps[i].name +
" ellipsoid"
" ellipsoid" + datumNameSuffix
: title),
NN_NO_CHECK(ellipsoid), optionalEmptyString, pm);
}
@@ -9358,6 +9596,15 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
}
}
const auto createGRF = [&grfMap, &title, &optionalEmptyString,
&datumNameSuffix,
&pm](const EllipsoidNNPtr &ellipsoid) {
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" + datumNameSuffix : title),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
};
if (a > 0 && (b > 0 || !bStr.empty())) {
if (!bStr.empty()) {
try {
@@ -9370,10 +9617,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
Ellipsoid::createTwoAxis(createMapWithUnknownName(), Length(a),
Length(b), guessBodyName(a))
->identify();
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" : title.c_str()),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
return createGRF(ellipsoid);
}
else if (a > 0 && (rf >= 0 || !rfStr.empty())) {
@@ -9388,10 +9632,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
createMapWithUnknownName(), Length(a), Scale(rf),
guessBodyName(a))
->identify();
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" : title.c_str()),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
return createGRF(ellipsoid);
}
else if (a > 0 && !fStr.empty()) {
@@ -9405,10 +9646,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
createMapWithUnknownName(), Length(a),
Scale(f != 0.0 ? 1.0 / f : 0.0), guessBodyName(a))
->identify();
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" : title.c_str()),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
return createGRF(ellipsoid);
}
else if (a > 0 && !eStr.empty()) {
@@ -9424,10 +9662,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
createMapWithUnknownName(), Length(a),
Scale(f != 0.0 ? 1.0 / f : 0.0), guessBodyName(a))
->identify();
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" : title.c_str()),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
return createGRF(ellipsoid);
}
else if (a > 0 && !esStr.empty()) {
@@ -9442,10 +9677,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
createMapWithUnknownName(), Length(a),
Scale(f != 0.0 ? 1.0 / f : 0.0), guessBodyName(a))
->identify();
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" : title.c_str()),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
return createGRF(ellipsoid);
}
// If only a is specified, create a sphere
@@ -9453,10 +9685,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) {
esStr.empty()) {
auto ellipsoid = Ellipsoid::createSphere(createMapWithUnknownName(),
Length(a), guessBodyName(a));
return GeodeticReferenceFrame::create(
grfMap.set(IdentifiedObject::NAME_KEY,
title.empty() ? "unknown" : title.c_str()),
ellipsoid, optionalEmptyString, fixupPrimeMeridan(ellipsoid, pm));
return createGRF(ellipsoid);
}
if (!bStr.empty() && aStr.empty()) {
@@ -9834,8 +10063,9 @@ PROJStringParser::Private::buildBoundOrCompoundCRSIfNeeded(int iStep,
const auto &geoidgrids = getParamValue(step, "geoidgrids");
if (!geoidgrids.empty()) {
auto vdatum =
VerticalReferenceFrame::create(createMapWithUnknownName());
auto vdatum = VerticalReferenceFrame::create(
PropertyMap().set(common::IdentifiedObject::NAME_KEY,
"unknown using geoidgrids=" + geoidgrids));
const UnitOfMeasure unit = buildUnit(step, "vunits", "vto_meter");

Some files were not shown because too many files have changed in this diff Show More