Compare commits

...
808 Commits
Author SHA1 Message Date
Mike Taves 580ec77e4a ReadTheDocs: fix branch ref, improve skipping pattern [ci skip] 2023-01-25 22:59:17 +13:00
Mike Taves aa1afbdeb7 ReadTheDocs: update output directory for artefacts, other updates 2023-01-25 16:08:33 +13:00
Mike Taves 096fcd733b Implement ReadTheDocs for 8.1, disable other CI workflows (#3556) 2023-01-13 23:02:19 +13:00
Kristian Evers 3f72fa4a9d Disable website build on 8.1 branch 2021-11-01 18:18:36 +01:00
Kristian Evers 4ce2c8b15e Merge pull request #2915 from OSGeo/backport-2880-to-8.1
[Backport 8.1] RFC 7: Drop Autotools, maintain CMake
2021-10-27 14:33:10 +02:00
Mike Taves 45d40553b1 RFC 7: Drop Autotools, maintain CMake (#2880) 2021-10-26 23:00:54 +00:00
Kristian Evers 40001a6c27 Merge pull request #2879 from OSGeo/backport-2878-to-8.1
[Backport 8.1] doc: clarify use of +datum option with +proj=latlon
2021-09-29 22:03:54 +02:00
Kristian Evers 9739bb3797 Merge pull request #2878 from kbevers/fix-latlon-doc
doc: clarify use of +datum option with +proj=latlon
2021-09-29 16:51:10 +00:00
Kristian Evers f3c363acb6 Merge pull request #2871 from OSGeo/backport-2865-to-8.1
[Backport 8.1] DOC: Add content for Development/Error handling page.
2021-09-27 10:09:08 +02:00
Kristian Evers d4c7584cf8 Merge pull request #2870 from OSGeo/backport-2863-to-8.1
[Backport 8.1] DOC: Refresh Development/Quickstart and remove Development/Threads
2021-09-27 09:38:29 +02:00
Kristian Evers 69c2e03497 Merge pull request #2865 from direvus/doc/2864-error-handling
DOC: Add content for Development/Error handling page.
2021-09-27 07:20:39 +00:00
Brendan Jurd e33ddabcf8 DOC: Refresh Development/Quickstart and remove Development/Threads (#2863)
* DOC: Refresh Development/Quickstart and remove Development/Threads

The document Development/Threads was severely out of date, and was
focussed on contrasting the current API with an old API that was
deprecated several years ago, and removed from the current PROJ earlier
this year.

Update Development/Quickstart to give more information about the use of
threading context, as a replacement for the content that was previously
in Threads.

Also give the example code examples/pj_obs_api_mini_demo.c a cleanup
pass to make it at least internally consistent with its own code style.

The header comments of the example code are still, much like the Threads
document, fixated on comparing proj.h against proj_api.h, which is an
interesting historical curio to be sure, but probably doesn't need to
persist here.  It might be worth cleaning this up further as a separate
exercise.

Fixes #2451
2021-09-27 07:18:25 +00:00
Joris Van den Bossche 15a619c4e5 DOC: fix the inclusion of the custom css file 2021-09-17 10:24:24 +02:00
Even Rouault a0de673b62 Merge pull request #2856 from waheedi/patch-1
update projsync command line to sync --all
2021-09-16 10:25:33 +02:00
Waheed Barghouthi 0bc84c65e0 update projsync command
I added the --all arg to the command, it seems its now a requirement, not sure if this is meant to be like this
2021-09-16 10:19:50 +02:00
Kristian Evers 8694b94a58 Merge pull request #2849 from OSGeo/backport-2848-to-8.1
[Backport 8.1] Update docs About page to pull in license text from COPYING.
2021-09-11 15:21:32 +02:00
Kristian Evers 5719526d7f Merge pull request #2848 from direvus/docs/about-license
Update docs About page to pull in license text from COPYING.
2021-09-11 11:01:54 +00:00
Even Rouault f5d3997e37 Merge pull request #2836 from OSGeo/rouault-patch-1
ortho.rst: fix typo
2021-09-02 13:58:58 +02:00
Even Rouault 1a18dace60 ortho.rst: fix typo 2021-09-02 13:58:31 +02:00
Kristian Evers 92e751b8f7 Merge pull request #2834 from OSGeo/backport-2833-to-8.1
[Backport 8.1] Doc: mentions EPSG methods that corresponds to topocentric and ortho (fixes #2832)
2021-09-01 22:34:45 +02:00
Kristian Evers 831489b72e Merge pull request #2833 from rouault/doc_topocentric_ortho_epsg_ref
Doc: mentions EPSG methods that corresponds to topocentric and ortho (fixes #2832)
2021-09-01 19:33:35 +00:00
Kristian Evers bde10ed187 Merge pull request #2828 from OSGeo/backport-2826-to-8.1
[Backport 8.1] Doc: projjson.rst: update to PROJJSON v0.3
2021-09-01 21:20:28 +02:00
Kristian Evers 40471bbac5 Update website for 8.1.1 release 2021-09-01 20:19:45 +02:00
Kristian Evers 131d5a48e7 Use correct CMake build version for 8.1.1 release 2021-08-29 16:21:03 +02:00
Even Rouault 29c349d21d Merge pull request #2826 from rouault/doc_projjson_0.3
Doc: projjson.rst: update to PROJJSON v0.3
2021-08-27 18:39:02 +00:00
Kristian Evers 827fe90d1a Fix version number of latest release in NEWS 2021-08-26 05:53:02 +02:00
Kristian Evers 3950a6ac47 Update version numbers for 8.1.1 release 2021-08-26 05:48:21 +02:00
Kristian Evers e9024b77d8 Update NEWS for 8.1.1 release 2021-08-26 05:36:53 +02:00
Kristian Evers c91bd3f9cf Update man-pages from Sphinx-docs 2021-08-26 05:18:29 +02:00
Kristian Evers 52eb54c922 Update ABI numbers for 8.1.1 release 2021-08-26 05:03:26 +02:00
Even Rouault 34707b1ed5 Merge pull request #2819 from OSGeo/backport-2818-to-8.1
[Backport 8.1] ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps…
2021-08-20 19:54:59 +02:00
Even Rouault c26bc402a4 Merge pull request #2818 from rouault/fix_2817
ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps…
2021-08-20 16:52:38 +00:00
Even Rouault ff682bff13 Merge pull request #2815 from OSGeo/backport-2814-to-8.1
[Backport 8.1] BoundCRS: accept importing/exporting in WKT2 and PROJJSON the scope/area/extent/id attributes (fixes #2813)
2021-08-19 15:47:55 +02:00
Even Rouault dff8e5df3f Merge pull request #2814 from rouault/fix_2813
BoundCRS: accept importing/exporting in WKT2 and PROJJSON the scope/area/extent/id attributes (fixes #2813)
2021-08-19 08:34:01 +00:00
Even Rouault b8ab915083 Merge pull request #2812 from OSGeo/backport-2809-to-8.1
[Backport 8.1] WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[]…
2021-08-17 10:11:05 +02:00
Even Rouault ac3b405df6 Merge pull request #2809 from rouault/preserve_proj4_crs_string_wkt2_remarks
WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[]…
2021-08-16 20:07:24 +00:00
Even Rouault 2924282425 Merge pull request #2808 from OSGeo/backport-2807-to-8.1
[Backport 8.1] 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 (fixes #2804)
2021-08-16 14:48:27 +02:00
Even Rouault fa4c5c645f Merge pull request #2807 from rouault/fix_2804
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 (fixes #2804)
2021-08-16 11:49:41 +00:00
Even Rouault 2ddf80a41b Merge pull request #2806 from OSGeo/backport-2805-to-8.1
[Backport 8.1] Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803)
2021-08-16 12:25:07 +02:00
Even Rouault bc97ca6356 Merge pull request #2805 from rouault/fix_2803
Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803)
2021-08-16 09:59:05 +00:00
Even Rouault 0d64108dc8 factory.cpp: fix latest clang -Wstring-concatenation (false positive) warning 2021-08-15 18:08:30 +02:00
Even Rouault a7ee29e57a Merge pull request #2801 from OSGeo/backport-2800-to-8.1
[Backport 8.1] Inverse laea ellipsoidal: return PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when appropriates (fixes OSGeo/gdal#4224)
2021-08-13 21:20:39 +02:00
Even Rouault a768a013f7 Merge pull request #2800 from rouault/fix_gdal_4224
Inverse laea ellipsoidal: return PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when appropriates (fixes OSGeo/gdal#4224)
2021-08-13 15:53:04 +00:00
Kristian Evers 0dc5cba6b8 Merge pull request #2798 from OSGeo/backport-2797-to-8.1
[Backport 8.1] Docs: Improve order of instructions for installing from source.
2021-08-12 09:41:44 +02:00
Brendan Jurd 57a64a1340 Fix order of instructions for installing from source. (#2797)
The note about running autogen.sh was previously placed below the
instructions to run configure.
2021-08-11 22:54:03 +00:00
Even Rouault 5497b10e46 Merge pull request #2796 from OSGeo/backport-2795-to-8.1
[Backport 8.1] Conversion::createUTM(): avoid integer overflow
2021-08-10 11:55:23 +02:00
Even Rouault d2b0877bd8 Merge pull request #2795 from rouault/fix_ossfuzz_36751
Conversion::createUTM(): avoid integer overflow
2021-08-10 08:48:51 +00:00
Even Rouault d8b85102bc Merge pull request #2788 from OSGeo/backport-2787-to-8.1
[Backport 8.1] GeoTIFF grid reading: perf improvements (fixes #2785)
2021-07-23 10:12:53 +02:00
Even Rouault 80dddb6752 Merge pull request #2787 from rouault/vgrid_perf_improvements
GeoTIFF grid reading: perf improvements (fixes #2785)
2021-07-23 07:17:18 +00:00
Even Rouault 3b4f53a409 Merge pull request #2786 from OSGeo/backport-2784-to-8.1
[Backport 8.1] Doc: fix links to :c:func:`proj_...` by specifying "h" as "c" domain
2021-07-22 20:18:25 +02:00
Even Rouault 618ce76ba0 Merge pull request #2784 from mwtoews/docs-fix
Doc: fix links to :c:func:`proj_...` by specifying "h" as "c" domain
2021-07-22 17:05:44 +00:00
Even Rouault d973e5a568 Merge pull request #2783 from OSGeo/backport-2782-to-8.1
[Backport 8.1] createOperations(): fix SourceTargetCRSExtentUse::NONE mode
2021-07-20 17:02:53 +02:00
Even Rouault 3126383beb Merge pull request #2782 from rouault/fix_crs_extent_use_none
createOperations(): fix SourceTargetCRSExtentUse::NONE mode
2021-07-20 09:16:36 +00:00
Even Rouault ff2d8357be Merge pull request #2781 from OSGeo/backport-2780-to-8.1
[Backport 8.1] CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES target
2021-07-14 15:20:42 +02:00
Even Rouault 1cb0b8021f Merge pull request #2780 from mwtoews/nlohmann_json_interface_lib
CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES target
2021-07-14 13:02:07 +00:00
Even Rouault 66f595e485 Merge pull request #2777 from OSGeo/backport-2776-to-8.1
[Backport 8.1] ortho: remove useless and invalid log trace (CID 350886, 350887)
2021-07-12 15:06:22 +02:00
Even Rouault faea5fcac1 Merge pull request #2776 from rouault/fix_coverity_350886
ortho: remove useless and invalid log trace (CID 350886, 350887)
2021-07-12 10:38:30 +00:00
Even Rouault 93e96a5e47 Merge pull request #2775 from OSGeo/backport-2774-to-8.1
[Backport 8.1] Logging: avoid some overhead when logging is not enabled (fixes #2770)
2021-07-10 13:34:59 +02:00
Even Rouault 747faf54b3 Merge pull request #2774 from rouault/fix_2770
Logging: avoid some overhead when logging is not enabled (fixes #2770)
2021-07-10 09:59:24 +00:00
Even Rouault d7752784f1 Merge pull request #2773 from OSGeo/backport-2772-to-8.1
[Backport 8.1] Database: update to EPSG v10.028
2021-07-08 17:11:44 +02:00
Even Rouault 0b32eaf1b1 Merge pull request #2772 from rouault/epsg_10_028
Database: update to EPSG v10.028
2021-07-08 13:30:27 +00:00
Even Rouault fedebd60c8 Merge pull request #2771 from OSGeo/backport-2769-to-8.1
[Backport 8.1] createOperations(): make sure to associate an extent to the transform…
2021-07-08 15:22:01 +02:00
Even Rouault 18fc6a629e Merge pull request #2769 from rouault/fix_2768
createOperations(): make sure to associate an extent to the transform…
2021-07-08 11:24:30 +00:00
Even Rouault 345900742c Merge pull request #2766 from OSGeo/backport-2764-to-8.1
[Backport 8.1] CMake: fix installation of executables on iOS
2021-07-06 08:34:24 +02:00
Even Rouault 9a19768a86 Merge pull request #2764 from SpaceIm/fix/install-exec-ios
CMake: fix installation of executables on iOS
2021-07-05 12:23:42 +00:00
Even Rouault 1e4b38675b Merge pull request #2761 from OSGeo/backport-2760-to-8.1
[Backport 8.1] test_factory.cpp: fix build, in particular on Alpine Edge (fixes #2759)
2021-07-03 14:00:33 +02:00
Even Rouault 84ce2c9a7d Merge pull request #2760 from rouault/fix_2759
test_factory.cpp: fix build, in particular on Alpine Edge (fixes #2759)
2021-07-01 22:51:51 +00:00
Kristian Evers f062ae54e6 docs: update edit on github link to 8.1 branch 2021-06-30 22:42:35 +02:00
Kristian Evers 64bb0ebdbd Make sure to publish docs from 8.1 branch 2021-06-30 22:41:24 +02:00
Kristian Evers b7935442d8 Update website for 8.1.0 release 2021-06-30 22:20:20 +02:00
Kristian Evers b8fe7719b9 Update news for 8.1.0 release 2021-06-25 09:57:35 +02:00
Kristian Evers a07d1599a1 Update man-pages from Sphinx-docs 2021-06-25 08:47:41 +02:00
Kristian Evers 8fb12787fc Update ABI numbers for 8.1.0 release 2021-06-25 08:44:22 +02:00
Charles Karney 9d1bc0b3d4 Merge pull request #2752 from cffk/geodesic-1.52-sync
Minor changes to address lint in geodesic.c
2021-06-23 08:01:45 -04:00
Charles Karney 9a570991f5 Minor changes to address lint in geodesic.c (courtesy of Marc Emery <memery@myotest.com>) 2021-06-22 18:48:49 -04:00
Even Rouault c959db170f Merge pull request #2751 from rouault/epsg_10_027
Database: update to EPSG v10.027
2021-06-19 23:14:53 +02:00
Even Rouault 9a2f2ed950 Database: update to EPSG v10.027 2021-06-19 21:15:39 +02:00
Even Rouault a79b5558da Merge pull request #2750 from rouault/better_operation_selection
proj_trans/cs2cs: If two operations have the same accuracy, use the one that is contained within a larger one
2021-06-18 14:24:38 +02:00
Even Rouault 916eaa4349 operations_computation.rst: add note about proj_create_crs_to_crs not necessarily using the operation that appears as first 2021-06-18 13:59:43 +02:00
Even Rouault 5f6fac3afd proj_trans/cs2cs: If two operations have the same accuracy, use the one that is contained within a larger one
Relates to https://github.com/OSGeo/gdal/issues/3998

Before that change, cs2cs on a NAD83(HARN) to WGS84 transformation would
use the "NAD83(HARN) to WGS 84 (1)" transformation (a null Helmert
shift) that is valid for whole US, including non-CONUS areas, even when
used on points located on CONUS that has a "NAD83(HARN) to WGS 84 (3)"
transformation (non-null Helmert shift) with same accuracy (1m).

But if doing  EPSG:2874 "NAD83(HARN) / California zone 5 (ftUS)" to
WGS84, we would use this later "NAD83(HARN) to WGS 84 (3)"
transformation because the area of use of EPSG:2874 restricts to CONUS.
This isn't consistant.

With that change, we now have more consistent behavior, even if it can
be argued which of the 2 transformations is the best...

$ echo 34 -120 | src/cs2cs -d 8 EPSG:4326 "NAD83(HARN)" | src/cs2cs "NAD83(HARN)"  EPSG:2874
5955507.74	1828410.98 0.00

$ echo 34 -120 | src/cs2cs  EPSG:4326   EPSG:2874
5955507.74	1828410.98 0.00
2021-06-17 17:53:11 +02:00
Even Rouault 987c8e9a45 Fix build with -DPROJ_INTERNAL_CPP_NAMESPACE 2021-06-14 12:07:31 +02:00
Even Rouault 385ca0ecb4 Merge pull request #2747 from rouault/fix_gdal_3958
BoundCRS::identify(): avoid incompatible transformation for WKT1 / TOWGS84 export (fixes OSGeo/gdal#3958)
2021-06-10 20:53:51 +02:00
Even Rouault db10e86c2c BoundCRS::identify(): avoid incompatible transformation for WKT1 / TOWGS84 export (fixes OSGeo/gdal#3958) 2021-06-10 19:36:16 +02:00
Even Rouault 51ec5e346a Merge pull request #2745 from rouault/epsg_10_026
Database: update to EPSG v10.026
2021-06-10 13:13:33 +02:00
Even Rouault 230012325a Database: update to EPSG v10.026 2021-06-10 12:25:35 +02:00
Even Rouault 5436e8aa46 Merge pull request #2738 from rouault/share_sqlite_handle
Share SQLite database handle among all contexts
2021-06-09 19:58:12 +02:00
Even Rouault fae861c75a Merge pull request #2740 from RoelvandenBerg/master
Update link in docs to Dutch coord transform website.
2021-06-05 11:47:27 +02:00
Roel van den Berg 72af007280 Update link to dutch coord transform website. 2021-06-04 16:59:57 +02:00
Even Rouault 61e25ec859 factory.cpp: lint: make memoryHandle_ a unique_ptr 2021-06-03 12:23:24 +02:00
Even Rouault dd416fd8d3 Run database layout checks only at first DB opening 2021-06-03 12:23:24 +02:00
Even Rouault 85512dd3a7 proj_cleanup(): make sure it frees the database context of the default PJ_CONTEXT 2021-06-03 11:29:56 +02:00
Even Rouault 1c80b05e00 Check that database connection sharing properly works 2021-06-03 11:29:16 +02:00
Even Rouault 9ce2d6fc0e Make proj_context_set_autoclose_database() a no-op as it would defeat the purpose of the new database connection sharing 2021-06-03 11:29:16 +02:00
Even Rouault e0a1b88e82 Database: use shared sqlite handle 2021-06-03 11:29:16 +02:00
Even Rouault 590840d6ff factory.cpp: preparation steps for global sqlite3* handle, but no functional change 2021-06-03 11:29:16 +02:00
Even Rouault dcc2a94eb1 test_c_api.cpp: avoid use of undefined .t component 2021-06-03 11:28:55 +02:00
Even Rouault 29f849485b Merge pull request #2736 from rouault/cleanup_mutex
Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutex
2021-06-02 19:06:15 +02:00
Even Rouault a77df0d81b Merge pull request #2735 from rouault/fix_2734
proj_create(): do not open proj.db if string is a PROJ string, …
2021-06-02 18:09:46 +02:00
Even Rouault e297475f0d Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutex 2021-06-02 18:08:48 +02:00
Even Rouault 77de7651fd proj_create(): do not open proj.db if string is a PROJ string, even if proj_context_set_autoclose_database() has been set (fixes #2734) 2021-06-02 17:33:50 +02:00
Even Rouault fdfeae1908 Merge pull request #2732 from rouault/epsg_10_024
Database: update to EPSG v10.024
2021-05-28 12:57:26 +02:00
Even Rouault edc6df3dc1 ConcatenatedOperation::fixStepsDirection(): remove recently introdued hack specific to EPSG:9731 now that is is deprecated 2021-05-27 11:57:05 +02:00
Even Rouault 548a6ab050 Database: update to EPSG v10.024 2021-05-27 11:49:06 +02:00
Even Rouault d83db69821 build_db.py: add hack to minimize diff now that we use WITHOUT ROWID 2021-05-27 11:48:54 +02:00
Even Rouault 7b407e36e6 Merge pull request #2730 from rouault/without_rowid
Database: decrease DB size by using WITHOUT ROWID tables
2021-05-25 14:47:27 +02:00
Even Rouault ee04c2725f Database: decrease DB size by using WITHOUT ROWID tables
None of our tables are indexed by a INTEGER PRIMARY KEY, but most of
them are by a (auth_name, code) primary key. Consequently they can
benefit from being created as WITHOUT ROWID tables
(https://sqlite.org/withoutrowid.html), which avoids an index to be
created on the rowid we don't use. WITHOUT ROWID is a feature added in
SQLite 3.8.2, so as our baseline is 3.11, we can use it.

This decreases the DB size from 7,749,632 to 7,229,440 bytes, without
any measurable consequence on performance.
2021-05-24 14:40:37 +02:00
Even Rouault c44a3008b0 DatabaseContext::getTransformationsForGridName(): make it work properly when different EPSG grid names map to the same PROJ grid name 2021-05-24 13:59:32 +02:00
Even Rouault e814dce2de Merge pull request #2729 from rouault/analyze_db
Database: add a ANALYZE step during proj.db creation
2021-05-24 13:29:33 +02:00
Even Rouault 08d4b05771 projinfo: fix error message regarding --output-id 2021-05-23 12:58:06 +02:00
Even Rouault 1720b0586c Database: add a ANALYZE step during proj.db creation
This will create the sqlite_stat* table (generally sqlite_stat1). This
speeds up a bit the test suite. Runtime of ``make test_cpp_api-check``
goes from the range [14.0 s, 14.6 s] to [13.0s, 13.5s] on my machine.
2021-05-23 00:48:25 +02:00
Even Rouault bfa170c032 code formatting fix 2021-05-23 00:41:46 +02:00
Kristian Evers 6a9dbe7fd9 Merge pull request #2726 from heidivanparys/projinfo_doc
Add projinfo example; update note Windows installation
2021-05-18 15:15:15 +02:00
Heidi Vanparys f671ae712b Update install.rst: update Windows note
Add info that OSGeo4W Shell may be present already when QGIS is present.
2021-05-18 12:19:53 +02:00
Heidi Vanparys 4b37ed7322 Update projinfo doc: add example --single-line 2021-05-18 12:03:01 +02:00
Even Rouault abf680353d Merge pull request #2725 from rouault/projsync_version_filtering
projsync: make it filter out files not intended for the current version
2021-05-18 11:15:32 +02:00
Even Rouault 5fbcc3a731 HOWTO-RELEASE: mention updating PROJ_DATA.VERSION 2021-05-17 19:36:25 +02:00
Even Rouault aee1709d6c projsync: make it filter out files not intended for the current version
* Add a PROJ_DATA.VERSION in proj.db to indicate the target PROJ-data
  package version
* Make projsync use that information and the version_added and
  version_removed properties added in https://github.com/OSGeo/PROJ-data/pull/67
  to filter out files that are not relevant
* Add --no-version-filtering and --verbose switches
2021-05-17 16:00:12 +02:00
Even Rouault 5fe51fad2c Merge pull request #2723 from rouault/grid_alternatives_AGQG_20201120
grid_alternatives.sql: reference AGQG_20201120.gsb
2021-05-17 12:26:59 +02:00
Even Rouault 7d2f766940 Database: map ESRI spain/peninsula and spain/baleares grids 2021-05-16 21:21:56 +02:00
Even Rouault 6cca5d6df5 grid_alternatives.sql: reference AGQG_20201120.gsb (cf OSGeo/PROJ-data#63) 2021-05-16 21:10:20 +02:00
Even Rouault cc1aca389c Merge pull request #2722 from rouault/epsg_10_022
Database: update to EPSG v10.022
2021-05-16 19:51:48 +02:00
Even Rouault 5da981bcb9 scripts/grid_checks.py: improve --not-in-grid-alternatives output 2021-05-16 15:40:26 +02:00
Even Rouault 752696eb8a Database: update to EPSG v10.022 2021-05-16 12:41:07 +02:00
Even Rouault 68a11b7724 Merge pull request #2721 from rouault/fix_2720
Fix export of transformation to PROJ string in a particular situation…
2021-05-12 16:55:52 +02:00
Even Rouault dedd291692 Fix export of transformation to PROJ string in a particular situation where CompoundCRS are involved (fixes #2720) 2021-05-12 15:36:11 +02:00
Even Rouault a962fdc54a Formatting fixes 2021-05-12 15:11:00 +02:00
Even Rouault a78f0834d9 Merge pull request #2717 from nyalldawson/esri128
Update ESRI projection db to 12.8
2021-05-11 04:22:25 +02:00
Nyall Dawson 716a2ed2d7 Minor formatting/pep fixes 2021-05-11 08:47:32 +10:00
Nyall Dawson 4df65e61e1 Update metadata 2021-05-11 08:41:20 +10:00
Nyall Dawson 6718349c7e Update build_db_from_esri.py
- Use argparse to handle arguments
- Make version and date mandatory arguments, so that they must
always be stated
- Use pathlib for paths
2021-05-11 08:40:18 +10:00
Nyall Dawson 32486209c5 Update ESRI projection db to 12.8 2021-05-10 10:33:58 +10:00
積丹尼 Dan Jacobson 3a79f0dbca Mention what the default +units are 2021-05-09 19:26:47 +02:00
Mike Taves 592a6017bc CMake: "make dist" workalike via CPack (#2690) 2021-05-09 00:09:56 +12:00
Even Rouault 641ee7029c Merge pull request #2708 from mwtoews/stereographic
Fix typo: "Mod. Stererographics" -> "Modified Stereographic"
2021-05-07 21:47:26 +02:00
Even Rouault 060151460c Doc: fix URL 2021-05-07 21:46:25 +02:00
Even Rouault c645d6b5ef Doc: update GDAL version 2021-05-07 21:31:16 +02:00
Mike Taves 71a496c4bb Fix typo: "Mod. Stererographics" -> "Modified Stereographic" 2021-05-04 09:06:11 +12:00
Mike Taves ea3f53746c DOC: configure and add spelling wordlist; fix typos, apply Sphinx syntax (#2705) 2021-05-04 09:05:06 +12:00
Even Rouault 371bc3c5e7 Merge pull request #2702 from rouault/run_nkg_gie
CMake build: run nkg.gie tests (dependent on CURL_ENABLED and RUN_NETWORK_DEPENDENT_TESTS settings)
2021-05-01 14:29:29 +02:00
Even Rouault 2b2e307af8 test/gie/Makefile.am: add nkg.gie 2021-04-30 15:38:20 +02:00
Even Rouault 1709be294d CMake build: run nkg.gie tests (dependent on CURL_ENABLED and RUN_NETWORK_DEPENDENT_TESTS settings) 2021-04-30 15:26:38 +02:00
Even Rouault 9182c15a21 nkg.gie: fix operation line. The repetition of operation worked previously by accident and wasn't necessary 2021-04-30 14:34:25 +02:00
Even Rouault 9e4205573d Fix ossfuzz builds [ci skip] 2021-04-30 14:11:26 +02:00
Even Rouault 9d1a7a68c5 Merge pull request #2686 from rouault/nlohmann_json_update
Update internal nlohmann/json to 3.9.1, and add a CMake option to be able to use external nlohmann/json
2021-04-30 14:06:29 +02:00
Even RouaultandMike Taves 29ac85d552 CMake build: add a NLOHMANN_JSON_ORIGIN=auto/external/internal setting allowing to choose which nlohmann/json to use
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2021-04-30 13:27:25 +02:00
Even Rouault 36ac12c742 Update nlohmann/json to latest 3.9.1 release 2021-04-30 13:27:15 +02:00
Mike Taves 546743c838 TST/DOC: upgrade CSA to use ubuntu-18.04; sync docs (#2698) 2021-04-30 22:28:13 +12:00
Even Rouault 0f9e6bf1a2 docs/Makefile: copy triangulation.schema.json (fixes #2699) 2021-04-28 15:44:38 +02:00
Kristian Evers ee177a7b9f Update NEWS for 8.0.1 release 2021-04-28 11:16:07 +02:00
Even Rouault 4a355bcd46 CI: msys2 build: build with -Werror (#2697) 2021-04-25 21:13:56 +12:00
Even Rouault ea196217fd Merge pull request #2696 from rouault/derived_vertical_crs_unit_height_depth
Improvements related to DerivedVerticalCRS using Change Unit and Height/Depth reversal methods
2021-04-24 19:07:55 +02:00
Even Rouault 7898eaba11 Improvements related to DerivedVerticalCRS using Change Unit and Height/Depth reversal methods
- For instantiation from urn combined references, create a better name,
  using conventions of EPSG vertical CRS
- For exportToWKT(), allow export in WKT < WKT2 for such
  DerivedVerticalCRS
2021-04-24 15:51:19 +02:00
Even Rouault 01a5c03c05 test: test urn:ogc:def:ensemble: syntax 2021-04-24 15:50:13 +02:00
Even Rouault 3ffa2c50ad getInsertStatementsFor(): replace while with if (master only, CID 320133) 2021-04-24 11:39:47 +02:00
Javier Jimenez Shaw 93dc8422c4 Add proj_get_geoid_models_from_database() (#2681)
to list all geoid model names that apply to a vertical CRS
2021-04-24 10:37:19 +02:00
Even Rouault a002a3e9da Merge pull request #2692 from rouault/test_network_msys_warning
test_network.cpp: try to fix 'Please include winsock2.h before windows.h' warning with msys
2021-04-23 20:34:47 +02:00
Even Rouault d94d493979 Merge pull request #2691 from rouault/remove_useless_files
Remove useless files
2021-04-23 20:31:49 +02:00
Even Rouault 0ca0b7c537 Merge pull request #2689 from rouault/update_generated_parsers
wkt1_parser/wkt2_parser: regenerate them with bison 3.5.1 to hopefully make Coverity Scan happier
2021-04-23 20:31:35 +02:00
Even Rouault 57102f42c6 Merge pull request #2687 from rouault/pj_vlog_buffer_overflow
pj_vlog(): fix buffer overflow in case of super lengthy error message
2021-04-23 18:06:37 +02:00
Even Rouault 088c269810 test_network.cpp: try to fix 'Please include winsock2.h before windows.h' warning with msys
```
In file included from D:/a/_temp/msys/msys64/mingw64/include/curl/system.h:422,
                 from D:/a/_temp/msys/msys64/mingw64/include/curl/curl.h:38,
                 from D:/a/PROJ/PROJ/test/unit/test_network.cpp:48:
D:/a/_temp/msys/msys64/mingw64/x86_64-w64-mingw32/include/winsock2.h:15:2: warning: #warning Please include winsock2.h before windows.h [-Wcpp]
   15 | #warning Please include winsock2.h before windows.h
      |  ^~~~~~~
```

Seems to be what is described in https://curl.se/mail/lib-2016-12/0047.html
2021-04-23 16:07:55 +02:00
Even Rouault 0db141863f wkt1_parser/wkt2_parser: regenerate them with bison 3.5.1 to hopefully make Coverity Scan happier 2021-04-23 16:03:00 +02:00
Even Rouault 889ccf481b Move data/proj_outIGNF.dist-real to test/cli 2021-04-23 15:57:03 +02:00
Even Rouault 61736e153c Remove useless src/runmultistresstest.sh 2021-04-23 15:56:22 +02:00
Even Rouault 37fadb2963 Remove uselss data/epsg-deprecated and update data/README 2021-04-23 15:55:47 +02:00
Even Rouault 3a8a9f4329 Remove useless file data/sql/method_triggers.sql 2021-04-23 15:54:34 +02:00
Even Rouault 2733271888 test_o.cpp: add more sensical example for DerivedVerticalCRS built from urn: syntax 2021-04-23 15:43:04 +02:00
Even Rouault c221134bc3 pj_vlog(): fix buffer overflow in case of super lengthy error message
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33594
2021-04-23 14:57:22 +02:00
Even Rouault 64f5b18c0a projinfo: increase file size limit of files opened with @filename to 1MB to be able to read file generated by ossfuzz 2021-04-23 14:44:16 +02:00
Even Rouault 399cba5726 getInsertStatementsFor(): replace while with if (master only, CID 320133) 2021-04-23 12:39:35 +02:00
Even Rouault a275d45912 projinfo: catch potential exception (master only, CID 193527) 2021-04-23 12:37:36 +02:00
Even Rouault 52e0536a88 Merge pull request #2685 from rouault/ci_coverity_scan
CI: add Coverity Scan weekly job
2021-04-23 11:35:38 +02:00
Even Rouault 9e8fd3a7f0 coverity-scan.yml: do not build tests 2021-04-23 11:33:21 +02:00
Even Rouault d590798d32 CI: add Coverity Scan weekly job 2021-04-23 11:03:58 +02:00
Even Rouault 99939f327e Merge pull request #2683 from rouault/epsg_10_019
Database: update to EPSG v10.019
2021-04-23 10:10:15 +02:00
Even Rouault f6abb7d75c Database: update to EPSG v10.019
Non-trivial updates:
- some vertical CRS are now encoded as DerivedVerticalCRS. e.g EPSG:8228
  "NAVD88 height (ft)", with base EPSG:5703 "NAVD88 height". As we don't
  have support in our PROJ db model for DerivedVerticalCRS, modify the
  import script to 'resolve' the derivation up to the original datum.
- Method EPSG:1069 'Change of Vertical Unit' is no longer used. It is
  replaced by a generic-purpose EPSG:1104 method that doesn't take any
  conversion factor. And generic conversions EPSG:7812 and EPSG:7813 are
  now used in concatenated operations, which require code changes as
  well.
2021-04-23 01:07:04 +02:00
Even Rouault c6dba3fffb ConcatenatedOperation::fixStepsDirection(): fix potential nullptr dereference 2021-04-22 22:51:19 +02:00
Even Rouault 81899cee11 Merge pull request #2680 from jjimenezshaw/run-clang-format
run reformat_cpp.sh to fix some leftovers
2021-04-20 20:53:39 +02:00
Javier Jimenez Shaw 11b422cbc7 run reformat_cpp.sh to fix some leftovers 2021-04-20 20:41:28 +02:00
Even Rouault 8d0c7cef4b Merge pull request #2678 from rouault/revert_ebe3425bf
Revert "proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified"
2021-04-20 11:20:16 +02:00
Even Rouault f9d034afb7 Revert "proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified"
This reverts commit ebe3425bf6.

It was found to break gdalwarp usage in
https://github.com/OSGeo/gdal/issues/3695 when passing a bbox that is
quite large.
2021-04-20 00:32:49 +02:00
Even Rouault bd1d3d9a79 Merge pull request #2677 from rouault/change_name_of_urn_combined_references
createFromUserInput(): change name of CRS built from URN combined references to match the convention of EPSG projected CRS
2021-04-18 17:08:05 +02:00
Even Rouault c70a7447c1 Merge pull request #2676 from rouault/fix_geog_to_geog_deprecated
createOperations(): fix Geog to Geog when one is deprecated (fix master regression)
2021-04-18 16:29:57 +02:00
Even Rouault 16c50fbe33 createFromUserInput(): change name of CRS built from URN combined references to match the convention of EPSG projected CRS 2021-04-18 16:12:50 +02:00
Even Rouault dd79ca70ed createOperations(): fix Geog to Geog when one is deprecated (fix master regression) 2021-04-18 14:28:34 +02:00
Alan D. Snow e4e2991b17 Added proj_get_celestial_body_list_from_database (#2674)
Closes #2667
2021-04-18 12:34:29 +02:00
Even Rouault 3d1c573dc9 Merge pull request #2672 from rouault/utm_invalid_zone
utm: error out when value of +zone= is not an integer (fixes #2671)
2021-04-15 23:47:40 +02:00
Even Rouault 773583b448 utm: error out when value of +zone= is not an integer (fixes #2671) 2021-04-15 21:07:49 +02:00
Javier Jimenez Shaw a850aac5e0 createFromUserInput(): parse compound id with two authorities, like ESRI:103668+EPSG:5703 (#2669) 2021-04-13 14:48:35 +02:00
Even Rouault 58b991b8b9 Merge pull request #2668 from rouault/reformat_cpp_docker
reformat_cpp.sh: run inside Docker image if clang-format is not at version 10
2021-04-13 12:22:18 +02:00
Even Rouault 2a64d4c8b0 reformat_cpp.sh: run inside Docker image if clang-format is not at version 10 2021-04-13 00:31:54 +02:00
Even Rouault ff771264d7 Merge pull request #2662 from rouault/celestial_body
Add proj_get_celestial_body_name() and …
2021-04-12 13:29:22 +02:00
Even Rouault d582ac8bae Add proj_get_celestial_body_name() and make proj_get_crs_info_list_from_database() filter on and return celestial body name 2021-04-12 12:48:42 +02:00
Even Rouault 3bc25ac8a9 Merge pull request #2659 from rouault/fix_2603
CRS::normalizeForVisualization(): propagate domains/extent of original CRS (fixes #2603)
2021-04-12 11:51:10 +02:00
Even Rouault 3361e52868 Merge pull request #2664 from rouault/improve_projinfo_listcrs_area
projinfo --list-crs --area: make it work when multiple areas matches the specified name
2021-04-11 23:29:51 +02:00
Even Rouault 2ac8170863 projinfo --list-crs --area: make it work when multiple areas matches the specified name 2021-04-11 22:50:12 +02:00
Even Rouault f683aa04d6 Reformatting fix 2021-04-11 22:24:15 +02:00
Javier Jimenez Shaw 78792a7e42 projinfo: add option --list-crs (#2663) 2021-04-11 21:44:52 +02:00
Even Rouault 6fffba7efa Merge pull request #2660 from rouault/getCRSInfoList_deterministic_result_order
getCRSInfoList(): make result order deterministic (by increasing auth_name, code)
2021-04-11 01:03:55 +02:00
Even Rouault 88426c18e4 projinfo: add a --normalize-axis-order undocument switch 2021-04-11 00:22:03 +02:00
Even Rouault d870b33803 CRS::normalizeForVisualization(): propagate domains/extent of original CRS (fixes #2603) 2021-04-11 00:22:03 +02:00
Even Rouault ea51372c79 createFromUserInput(): support URN:OGC:DEF:CRS:OGC:1.3:CRS84 2021-04-11 00:04:10 +02:00
Even Rouault f92383ae58 getCRSInfoList(): make result order deterministic (by increasing auth_name, code) 2021-04-10 22:56:36 +02:00
Even Rouault 5f3fda7527 Merge pull request #2657 from rouault/cmake_test_cli
CMake: for test/cli, generate the output files in /test/cli like autoconf builds
2021-04-10 21:59:22 +02:00
Even Rouault d52de4dc0b Doc: remove mention of k_0 and lat_ts in aeqd projection. They are not used. Fixes #2638 and fixes #2639 2021-04-10 20:58:02 +02:00
Even Rouault 51e57204e0 CMake: for test/cli, generate the output files in /test/cli like autoconf builds 2021-04-10 20:30:54 +02:00
Even Rouault 16183da6c1 fix typo in comment 2021-04-10 20:16:06 +02:00
Even Rouault 34ea139137 Merge pull request #2656 from rouault/createFromUserInput_improvements
createFromUserInput(): various enhancements
2021-04-10 20:15:34 +02:00
Even Rouault a77ce5cf34 Recognize OGC:84 as an alias of OGC:CRS84 2021-04-10 19:17:40 +02:00
Even Rouault b6c12e6968 createFromUserInput(): add support for WMS AUTO: syntax 2021-04-10 19:17:40 +02:00
Even Rouault efef14e274 Add UnitOfMeasure::FOOT and US_FOOT 2021-04-10 19:17:39 +02:00
Even Rouault 0db805dfab createFromUserInput(): add support for (legacy) urn:x-ogc:def:crs:EPSG:XXXX syntax 2021-04-10 19:17:39 +02:00
Even Rouault 76d8cb9daf createFromUserInput(): add support for (legacy) urn:opengis:crs:EPSG:0:XXXX syntax 2021-04-10 19:17:39 +02:00
Even Rouault 35a9ffc2d1 Add hard-coded definitions for OGC:AnsiDate/JulianDate/UnixTime 2021-04-10 19:17:39 +02:00
Even Rouault 21f0af0f8b createFromUserInput(): add support for OGC URLs
e.g:
http://www.opengis.net/def/crs/EPSG/0/4326
http://www.opengis.net/def/crs-compound?1=http://www.opengis.net/def/crs/EPSG/0/4326&2=http://www.opengis.net/def/crs/EPSG/0/3855
2021-04-10 19:17:39 +02:00
Even Rouault 84a679954b projinfo: remove spurious -- in help message (master only) 2021-04-10 11:46:56 +02:00
Even Rouault fc6ff7a481 Merge pull request #2647 from rouault/integer_or_text
Database: decrease db size
2021-04-08 19:29:54 +02:00
Even Rouault 78e3768a71 Merge pull request #2653 from mwtoews/ci-msys2
CI: build and test on MSYS2 with Windows
2021-04-08 00:03:22 +02:00
Even Rouault 1918883532 Merge pull request #2654 from rouault/show_that_pr_2616_is_wrong
test: add datum shift related tests for transformations crossing antimeridian
2021-04-07 23:28:20 +02:00
Mike Taves f21b552108 Drop set/export of PROJ_LIB for Windows CI runs 2021-04-08 09:23:59 +12:00
Even Rouault 3a267909e4 proj_trans(): add a more expressive log message 2021-04-07 22:54:28 +02:00
Even Rouault 86c6761674 test: add datum shift related tests for transformations crossing antimeridian
If using the proposed patch in PR #2616 refreshed as,

```
diff --git a/src/4D_api.cpp b/src/4D_api.cpp
index c7725d3a..3bd58a97 100644
--- a/src/4D_api.cpp
+++ b/src/4D_api.cpp
@@ -998,7 +998,7 @@ static void reproject_bbox(PJ* pjGeogToCrs,
         constexpr int XY_SIZE = N_STEPS_P1 * 4;
         std::vector<double> x(XY_SIZE);
         std::vector<double> y(XY_SIZE);
-        const double step_lon = (east_lon - west_lon) / N_STEPS;
+        const double step_lon = (((east_lon >= west_lon) ? east_lon : east_lon + 360) - west_lon) / N_STEPS;
         const double step_lat = (north_lat - south_lat) / N_STEPS;
         for( int j = 0; j <= N_STEPS; j++ )
         {
@@ -1244,7 +1244,7 @@ std::vector<PJCoordOperation> pj_create_prepared_operations(PJ_CONTEXT *ctx,
             {
                 const bool isOffshore =
                     areaName && strstr(areaName, "- offshore");
-                if( west_lon <= east_lon )
+                if( true || west_lon <= east_lon )
                 {
                     op = add_coord_op_to_list(i, op,
                         west_lon, south_lat, east_lon, north_lat,
```

we'd get an incorrect result on one point, using the 'Pulkovo 1942 to WGS 84 (16)' less accurate transformation
due to mis-computation of bounding boxes.
```
--- ../test/cli/tv_out.dist	2021-04-07 22:29:02.706095239 +0200
+++ test/cli/tv_out	2021-04-07 22:29:35.809579495 +0200
@@ -499,7 +499,7 @@
 ##############################################################
 Check that we can use a transformation spanning the antimeridian (should use Pulkovo 1942 to WGS 84 (20))
 50 179.999999999	49d59'59.36"N	179d59'52.133"W 0.000
-50 -179.999999999	49d59'59.36"N	179d59'52.133"W 0.000
+50 -179.999999999	49d59'59.422"N	179d59'52.184"W 0.000
 ##############################################################
 Check that we can use a transformation spanning the antimeridian (should use Pulkovo 1942 to WGS 84 (20))
 5540944.47  499999.999	49d59'59.36"N	179d59'52.133"W 0.000
```
2021-04-07 22:34:03 +02:00
Even Rouault b5d3f2a250 Database: more thorough consistency checks on extent of coordinate operations 2021-04-07 12:49:54 +02:00
Mike Taves 0abacbc927 CI: build and test on MSYS2 with Windows 2021-04-07 13:08:22 +12:00
Even Rouault ec25bdc7b5 Merge pull request #2652 from rouault/extra_consistency_checks
Database: extra consistency checks
2021-04-07 00:01:02 +02:00
Even Rouault 950ce787b2 Database: nullify auth_name, code of usage table
We never select by those columns, so don't set them. Reduce from 8.4 to
7.9 MB.

Upgrade the minor version of the database layout. (that database can
still be read by PROJ 8.0)
2021-04-06 23:30:19 +02:00
Even Rouault ea624e0d29 Database: more consistency checks on helmert_transformation and grid_transformation 2021-04-06 23:28:14 +02:00
Even Rouault 59f344df91 Database: do not create Helmert transformations in IGNF between CRS of different nature, and also adjust the method code/name to the nature of the CRS 2021-04-06 23:28:12 +02:00
Even Rouault 9a6c7c7814 Database: minor refresh of ignf.sql and import script with new locations of resources 2021-04-06 23:26:37 +02:00
Even Rouault cfe5615b5b Merge pull request #2646 from rouault/db_proj_version
Database: add a PROJ.VERSION metadata entry
2021-04-06 22:16:31 +02:00
Even Rouault 754e1eef9b Merge pull request #2650 from rouault/fix_createBetweenGeodeticCRSWithDatumBasedIntermediates
createOperations(): make createBetweenGeodeticCRSWithDatumBasedIntermediates() reachable...
2021-04-05 22:47:48 +02:00
Even Rouault 34e93f1139 createOperations(): make createBetweenGeodeticCRSWithDatumBasedIntermediates() reachable...
... and optimize its execution time by rewriting it completely.

This code path was no longer triggered in tests since EPSG got a direct
transformation for GDA94 to WGS 84 (G1762).
2021-04-05 21:30:52 +02:00
Kristian Evers 3ae02ac091 Merge pull request #2648 from jidanni/patch-1
Add missing comma
2021-04-05 07:05:29 +02:00
積丹尼 Dan Jacobson 1abe7a7a82 Add missing comma
For https://github.com/OSGeo/PROJ/issues/2645 .
2021-04-05 09:47:33 +08:00
Even Rouault f85b072313 Database: decrease db size by using a INTEGER_OR_TEXT data type on codes
Most codes (especially *all* in EPSG) are integers. As integers are
stored as variable-length in the db, it is preferable to store them as
such when possible.

So use a special INTEGER_OR_TEXT data type. This is a
"non-standard" type declaration, but this is perfectly legal as SQLite is
loosely typed.

As this declaration contains the string INT, it is assigned INTEGER affinity.
Which means that values provided either as text (that contains integer value)
or integer will be stored as integers, whereas text values will be stored as
text. See paragraph 3 and 3.1 of https://www.sqlite.org/datatype3.html.
The "INTEGER_OR_TEXT" name is a hint for the user, and software like
GDAL (>= 3.3) to expose the column as string...

The effect of using this rather than TEXT is making the DB size go from
9 MB to 8.4.

There is no need to change the DATABASE.LAYOUT version numbering as this
is completely forward and backward compatible.
2021-04-04 21:51:10 +02:00
Even Rouault 5c9e2e9d43 Database: add missing column type specifir for method_name in grid_transformation and other_transformation. No practical impact 2021-04-04 21:07:36 +02:00
Even Rouault 399a833219 Database: add a PROJ.VERSION metadata entry 2021-04-04 20:09:00 +02:00
Even Rouault b6210a0e25 Merge pull request #2637 from rouault/hyperbolic_cass
Add support for hyperbolic Cassini-Soldner
2021-04-03 21:59:05 +02:00
Even Rouault 2594b3a224 Add mapping between EPSG method 'Hyperbolic Cassini-Soldner' and +proj=cass +hyperbolic 2021-04-03 20:18:10 +02:00
Even Rouault 970c849cc7 cass: add +hyperbolic switch for variant used by EPSG:3139 'Vanua Levu 1915 / Vanua Levu Grid' 2021-04-03 20:18:08 +02:00
Even Rouault bf79113d1d Generic inverse: fix when initial guess if super close to result 2021-04-03 20:17:15 +02:00
Even Rouault d436d4fbbf cass: rewrite ellipsoidal formulas in a clearer way using EPSG guidance note names 2021-04-03 17:54:39 +02:00
Even Rouault 722cf8840c reproject_bbox(): reduce number of magic values 2021-04-03 17:52:58 +02:00
Even Rouault d6d46c2102 Merge pull request #2635 from rouault/epsg_10_018
Database: update to EPSG v10.018
2021-04-02 18:12:01 +02:00
Even Rouault c8e0c2c14b Database: update to EPSG v10.018
Just fixes 4 wrong transformations of v10.017
2021-04-02 17:35:41 +02:00
積丹尼 Dan Jacobson b964253ccd Doc: geod.rst: reduce doubled information (#2631)
Don't repeat neighboring information.
2021-04-02 12:17:51 +02:00
Even Rouault 8d9e27c875 Merge pull request #2627 from rouault/improve_grid_transformation_check
Database: refine checks for 'Geog3D to Geog2D+XXX' transformations, …
2021-04-01 23:21:35 +02:00
Even Rouault 17b42f68f3 Database: stronger checks on extent of grid_transformation regarding the extent of the source and target CRS 2021-04-01 22:45:23 +02:00
Even Rouault dbf4789414 Database: add extra check for 'Vertical Offset by Grid Interpolation' transformations 2021-04-01 22:26:12 +02:00
Even Rouault a028ecd97b Database: refine checks for 'Geog3D to Geog2D+XXX' transformations, and create less synthetic 'Geographic3D to GravityRelatedHeight' synthetic transformations 2021-04-01 22:20:21 +02:00
Even Rouault 5c56836dd1 Merge pull request #2625 from rouault/epsg_10_017
Database: update to EPSG 10.017
2021-04-01 21:11:32 +02:00
Even Rouault e6a0966a47 Database: update to EPSG 10.017 2021-04-01 15:59:35 +02:00
Even Rouault 381d4f6ff3 Merge pull request #2622 from rouault/fix_sped2etv2_supersession
createOperation(): make sure no to discard deprecated operations...
2021-03-29 12:31:54 +02:00
Even Rouault b7f9a9b834 createOperation(): make sure no to discard deprecated operations...
if the replacement uses a grid unknown to us.

Fixes issue reported at https://lists.osgeo.org/pipermail/gdal-dev/2021-March/053771.html

The issue comes from the fact that EPSG has created 2 transformations
using grids BALR2009.gsb ad PENR2009.gsb that supersede the one which
uses the single grid SPED2ETV2 we have in PROJ-data.
2021-03-28 23:42:34 +02:00
Even Rouault 292943edbe Merge pull request #2620 from rouault/fix_build_solaris
Fix build on Solaris 11.4
2021-03-28 22:29:55 +02:00
Howard Butler 79c90906be GitHub Action to build both the 'proj' and 'proj-docs' container (#2618)
* adapt PDAL's docker build script for PROJ

* try building doc builder container too

* don't push containers on pull_request
2021-03-28 15:03:58 -05:00
Even Rouault 50fd9af378 Fix build on Solaris 11.4 2021-03-28 21:59:50 +02:00
Even Rouault 72f53cf06e Merge pull request #2613 from rouault/doc_fix_app_typo
Doc: fix typo in man page of utilities, and reduce copy&paste
2021-03-28 13:07:56 +02:00
Even Rouault 2153dd96bd Doc: fix typo in man page of utilities, and reduce copy&paste 2021-03-27 21:48:38 +01:00
Even Rouault b10e98fe43 Dockerfile osgeo/proj-docs: update to doxygen 1.9.1 (fixes OSGeo/gdal#3619) 2021-03-27 20:45:56 +01:00
Even Rouault 703bc5b4a9 Merge pull request #2611 from rouault/fix_2610
Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610)
2021-03-27 19:50:42 +01:00
Even Rouault f20b4870a6 Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610) 2021-03-27 16:45:12 +01:00
Even Rouault 14ce3d9fa8 Build: simplify proj.db generation (#2605)
- change foreign key check, so that it is enabled outside of the
  transaction where we insert things, and can make the sqlite3
  process fail in case of violations, without the postcheck done
  in the autoconf build
- autoconf and cmake builds: simplification related to the above
  (which also means that cmake builds now have the fkey check, which
  was omitted until now)
2021-03-26 12:49:35 +01:00
Javier Jimenez Shaw 969ae0712c Database: add grid alternatives and transformation custom for ch_swisstopo_chgeo2004_ETRS89_LHN95 and ch_swisstopo_chgeo2004_ETRS89_LN02 (#2584) 2021-03-25 14:47:23 +01:00
Even Rouault e3d7e18f98 Merge pull request #2598 from himsve/nkg_sweden
Incorrect EPGS extent code for EPSG:7789>EPSG:4976 NKG transformation
2021-03-23 15:31:54 +01:00
Sveinung Himle b0cc7eae01 Incorrect EPGS extent code for EPSG:7789>EPSG:4976 transformation 2021-03-23 14:40:10 +01:00
Javier Jimenez Shaw 0d4c31f787 data/CH: fix wrong capitalization of CHENyx06_ETRS.gsb (#2596)
The file data/CH containing the +proj string to use CHENyx06_ETRS.gsb was wrongly capitalized. It was not consistent with EPSG and therefore other entries in proj.db.
2021-03-23 12:24:15 +01:00
Even Rouault cf89f95ad8 Merge pull request #2594 from rouault/fix_of_fix_2588
createOperations(): fix regression for the fix of #2588
2021-03-21 00:23:09 +01:00
Even Rouault 6206a37ac9 createOperations(): fix regression for the fix of #2588
Issue spotted by GDAL autotest suite.
2021-03-20 23:34:38 +01:00
Even Rouault e04029cbc0 Merge pull request #2592 from rouault/fix_2588
createOperations(): fix Compound to Geog3D CRS computations in the ca…
2021-03-20 12:02:48 +01:00
Even Rouault dd8edd87e8 createOperations(): fix Compound to Geog3D CRS computations in the case... (fixes #2588)
when the source and target CRS share the same geog CRS, but the interpolation
CRS of the vertical transformation isn't the same, and a Helmert
transformation exists between them...

For example, for "CH1903+ + EGM96" to CH1903+ 3D where the interpolation
CRS is WGS84.
2021-03-20 01:14:01 +01:00
Kristian Evers 3697e946c9 Merge pull request #2590 from kbevers/update-foss4g
docs: update community site with links to FOSS4G 2021
2021-03-19 18:39:56 +01:00
Kristian Evers 3e5c5187d5 docs: update community site with links to FOSS4G 2021 2021-03-19 18:09:43 +01:00
Kristian Evers 15119f29cd backport action: specify pull_request_target instead of pull_request 2021-03-19 17:40:19 +01:00
Kristian Evers 8f4074e428 Add missing(?) id to backport action 2021-03-19 17:36:47 +01:00
Even Rouault ac9c36e1b4 Merge pull request #2589 from rouault/fix_2587
CRS::promoteTo3D(): propagate the extent from the 2D CRS (fixes #2587)
2021-03-19 16:46:33 +01:00
Even Rouault 573d5ea0fd CRS::promoteTo3D(): propagate the extent from the 2D CRS (fixes #2587)
This will help getting more consistent results between the 2D and 3D
cases, as identified in
https://github.com/OSGeo/PROJ/issues/2587#issue-836061171
2021-03-19 16:00:29 +01:00
Kristian Evers bbdf037bc6 Merge pull request #2586 from kbevers/update-backport-bot
Update backport action to what is currently used by QGIS
2021-03-19 15:04:40 +01:00
Kristian Evers 5edc28e933 Update backport action to what is currently used by QGIS 2021-03-19 13:38:40 +01:00
Even Rouault 338a3c4a26 Merge pull request #2585 from rouault/insert_sql_improvements
SQL output: make it possible to export non-EPSG projection methods or…
2021-03-19 13:07:04 +01:00
Even Rouault ed9b63dcce Tests: add new error cases of SQL output 2021-03-19 12:01:17 +01:00
Even Rouault 219758a4c9 SQL output: make it possible to export non-EPSG projection methods or methods and params lacking an explicit EPSG id 2021-03-19 11:30:54 +01:00
Even Rouault 76906029f3 Database: relax trigger check when inserting a conversion to accept any conversion method in the PROJ namespace
Helps for example to use CRS definitions using the non-EPSG codified
Sinusoidal method.
2021-03-19 11:26:42 +01:00
Even Rouault 663a77095d Merge pull request #2575 from mwtoews/container-locale
Set the container locale for spelling
2021-03-19 10:15:56 +01:00
Even Rouault d20145a979 Merge pull request #2583 from rouault/improve_perf_createFromCRSCodesWithIntermediates
createFromCRSCodesWithIntermediates(): improve perf when no match
2021-03-18 16:04:19 +01:00
Even Rouault 862cb97c22 createFromCRSCodesWithIntermediates(): improve perf when no match
createFromCRSCodesWithIntermediates() runs a rather costly self-join.
Only run it if the source and target CRS are the source/target of a
coordinate operation. This helps for the performance of
proj_create_crs_to_crs() when run on projected CRS for example that are
extremely unlikely to be the source/target of an operation (except
currently the Finish ones). For the EPSG:26915 to EPSG:3857 case of
https://github.com/OSGeo/gdal/issues/3470, this helps decreasing the
time of proj_create_crs_to_crs() from 18 ms to 10 ms.
2021-03-18 15:18:48 +01:00
Even Rouault 1e4ad55fbe Code formatting fix 2021-03-18 15:01:31 +01:00
Even Rouault d4e5e1a833 Merge pull request #2577 from rouault/insert_sql
Add capability to get SQL statements to add custom CRS in the database
2021-03-18 14:49:13 +01:00
Even Rouault 979e3a3ba0 Merge pull request #2581 from rouault/proj_version_number
proj.h: add PROJ_COMPUTE_VERSION, PROJ_VERSION_NUMBER, PROJ_AT_LEAST_VERSION macros
2021-03-17 16:30:22 +01:00
Even Rouault ee19a2d4d3 Merge pull request #2582 from rouault/fix_proj_clone
Fix proj_clone() to work on 'meta' coordinate operation PJ* objects that can be returned by proj_create_crs_to_crs()
2021-03-17 16:30:13 +01:00
Even Rouault b37d7a72ee Doc: add a page to document macros 2021-03-17 15:52:22 +01:00
Even Rouault cbbf3d6040 Fix proj_clone() to work on 'meta' coordinate operation PJ* objects that can be returned by proj_create_crs_to_crs() 2021-03-17 14:56:50 +01:00
Even Rouault 130d70228f proj.h: add PROJ_COMPUTE_VERSION, PROJ_VERSION_NUMBER, PROJ_AT_LEAST_VERSION macros
Makes it easier for users to test if they build against a PROJ version
later than a given x.y.z version.
2021-03-17 14:00:25 +01:00
Even Rouault eae06c94db Doc improvements regarding recomandation not to alter official registries and use auxiliary databases 2021-03-15 16:50:02 +01:00
Even Rouault 72f4f49bf3 Add support for PROJ_AUX_DB environment variable to set the path to one or several auxiliary DBs 2021-03-15 16:16:32 +01:00
Even Rouault eda2311513 projinfo: add a --dump-db-structure switch 2021-03-15 16:16:32 +01:00
Even Rouault 80ef9cee87 Add proj_context_get_database_structure() to dump structure of empty valid auxiliary DB 2021-03-15 16:16:32 +01:00
Even Rouault 7293d657a6 SQL export: add support for DatumEnsemble 2021-03-15 16:16:32 +01:00
Even Rouault d618dcc33b SQL export: add publication_date and frame_reference_epoch to datums 2021-03-15 16:16:32 +01:00
Even Rouault 8a67a3fb96 SQL output: add capability to restrict the authorities into which to look for intermediate objects 2021-03-15 16:16:31 +01:00
Even Rouault e33f6b5ecc CRS::identify(): take into account allowed authority to identify hard-coded WGS84-based CRSs 2021-03-15 16:16:31 +01:00
Even Rouault a234207957 projinfo: add a '-o SQL --output-id AUTH:CODE' SQL output 2021-03-15 16:16:31 +01:00
Even Rouault 5ddddfac62 Add C/C++ API to get SQL statements to insert a CRS into database 2021-03-15 16:16:31 +01:00
Even Rouault 1b07ef00c5 mingw_w64/start.sh: switch to http due to osgeo SSL certificate expiration 2021-03-15 16:16:13 +01:00
Even Rouault 5f1e54eb04 Merge pull request #2578 from cffk/geod-1.52-fix
geodesic.c: fix conditions under which hypot workaround is applied.
2021-03-14 13:20:11 +01:00
Charles Karney 7dbfc2590d geodesic.c: fix conditions under which hypot workaround is applied.
Now it applies with 32-bit compiles for all versioins of Visual Studio;
versions tested on: 2015, 2017, 2019.
2021-03-14 07:28:35 -04:00
Charles Karney 468b43c289 Merge pull request #2576 from cffk/geod-1.52
Update geodesic routines from GeographicLib 1.52
2021-03-13 16:18:14 -05:00
Charles Karney 70a6188c3c Work around inaccurate hypot for Visual Studio 2105 (32-bit) 2021-03-13 13:50:36 -05:00
Mike Taves 955bb4e9b6 Set the container locale for spelling [skip ci] 2021-03-14 07:06:07 +13:00
Charles Karney eb881d2957 Update geodesic routines from GeographicLib 1.52
Be more aggressive in preventing negative s12 and m12 for short lines.
Initialize reference argument to remquo.
2021-03-13 09:28:00 -05:00
Even Rouault 56dce02c70 typo fix in comment 2021-03-13 12:58:25 +01:00
Even Rouault fba602f3a1 Doxyfile: remove obsolete COLS_IN_ALPHA_INDEX tag 2021-03-13 12:14:12 +01:00
Even Rouault 9167cd4dc2 fix_typos.sh: update while lists 2021-03-13 12:11:30 +01:00
Even Rouault b2fde1adf4 Merge pull request #2573 from mwtoews/breathe
Use breathe>=4.27 to support Doxygen \page, \section, etc.
2021-03-12 12:44:52 +01:00
Even Rouault a3246a4d14 Merge pull request #2574 from mwtoews/patch-sphinxcontrib-spelling
CI: workaround for sphinxcontrib-spelling 7.1.0 on Python 3.6.9
2021-03-12 11:52:45 +01:00
Mike Taves 83af3dca00 CI: workaround for sphinxcontrib-spelling 7.1.0 on Python 3.6.9 2021-03-12 23:26:47 +13:00
Mike Taves 8b4bb4409d DOC: Use breathe>=4.27 to support Doxygen \page, \section, etc. 2021-03-12 07:33:22 +13:00
Even Rouault e10a849cd0 Database: fix NKG transformations 2021-03-11 16:12:30 +01:00
Sveinung HimleandEven Rouault 763939849b Database: Additions to the norwegian NKG2020 transformation (#2548)
* Correction grid NKG:ETRF14 to EPSG:7922

* Added NKG:ITRF_TO_NO GIE test

* Correction grid no_kv_NKGETRF14_EPSG7922_2000 added to grid_alternatives.sql

* proj_method 'velocity_grid' added in check_grid_alternatives_proj_method. NKG velocity grid added to grid_alternatives.sql

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2021-03-11 10:48:49 +01:00
Mike Taves b2d8e255da Fix configuration for sphinxcontrib-bibtex version 2 or later (#2572) 2021-03-11 21:44:17 +13:00
Kristian Evers cf86b44bdd Merge pull request #2571 from kbevers/proj_lp_dist_docs
Improve docs for geodesic distance functions in proj.h
2021-03-10 21:19:41 +01:00
Even Rouault 554f95d705 Merge pull request #2570 from rouault/fix_proj_lp_dist_crs
Make proj_lp_dist() and proj_geod() work on a PJ* CRS object
2021-03-10 20:44:42 +01:00
Kristian Evers 77d6e671ab Improve docs for geodesic distance functions in proj.h 2021-03-10 20:08:13 +01:00
Even Rouault 1e47f2bda5 Make proj_lp_dist() and proj_geod() work on a PJ* CRS object 2021-03-10 19:44:56 +01:00
Even Rouault e6b20d968a Merge pull request #2569 from rouault/cleanup_SQLITE_OPEN_URI
Code cleanup: remove conditional testing of SQLITE_OPEN_URI.
2021-03-10 19:09:25 +01:00
Even Rouault 3c27205bf0 Code cleanup: remove conditional testing of SQLITE_OPEN_URI. It is present in sqlite >= 3.11 2021-03-10 18:22:29 +01:00
Even Rouault 47dd37ff79 Fix comment 2021-03-10 16:37:52 +01:00
Sveinung Himle ffc6e876d0 Database: add NGO48 (EPSG:4273) to ETRS89 (EPSG:4258) triangulation-based transformation (#2554) 2021-03-10 10:36:24 +01:00
Even Rouault 20295afe2f Merge pull request #2567 from rouault/fix_s45b_pol
s45b.pol: remove trailing backslashes that prevent it from being used
2021-03-09 15:09:45 +01:00
Even Rouault 7aa6383566 s45b.pol: remove trailing backslashes that prevent it from being used 2021-03-09 12:45:11 +01:00
Even Rouault d7a2bdefb8 typo fixes 2021-03-07 20:31:43 +01:00
Even Rouault 36a5a178cb doc: typo fixes 2021-03-07 20:31:43 +01:00
Even Rouault 044d4c305f README.md: comment out Cirrus CI [ci skip] 2021-03-07 19:53:18 +01:00
Even Rouault c021126079 pipeline: avoid CLang Static Analyzer 10.0 likely false positive about dereferencing a nullptr 2021-03-07 19:18:58 +01:00
Even Rouault b0fa082511 dmstor_ctx(): avoid setting a variable that is not read 2021-03-07 19:18:33 +01:00
Even Rouault 4cc4e038bc Merge pull request #2560 from rouault/coverityscan_fixes
Several fixes/improvements spotted by CoverityScan
2021-03-07 11:57:55 +01:00
Even Rouault 5b9d009293 Merge pull request #2561 from rouault/cppcheck_fixes
Two Cppcheck fixes
2021-03-07 11:57:33 +01:00
Even Rouault 5089106b18 Merge pull request #2562 from rouault/travis_arm64
Travis ARM64: set NPROC=4 to avoid the autodetected 32 to blow out RAM
2021-03-07 11:57:16 +01:00
Even Rouault 23ef6450fa Travis ARM64: set NPROC=4 to avoid the autodetected 32 to blow out RAM 2021-03-07 00:41:17 +01:00
Even Rouault 8d786107bd insertIntoHierarchy(): avoid confusing cppcheck about potential use of moved grid 2021-03-07 00:30:19 +01:00
Even Rouault a14026d715 NTv2Grid: remove useless m_name member (redundant with one of base class) 2021-03-07 00:27:13 +01:00
Even Rouault e3b0dda249 igh: check return value of setup_zone() (CID 314816) 2021-03-07 00:20:21 +01:00
Even Rouault 23e5bf8535 Check return value of curl_easy_setopt() (CID 314805) 2021-03-07 00:20:21 +01:00
Even Rouault 63823ccc76 is2DPartOf3D(): catch potential exception (CID 314817) 2021-03-07 00:20:21 +01:00
Even Rouault ec67ee73d1 initcache.cpp: add assertions for potential failed mem alloc (CID 314809, 314812) 2021-03-07 00:20:21 +01:00
Even Rouault ecd5a542c1 projinfo: catch exception on bad value for --accuracy (CID 314810) 2021-03-07 00:20:21 +01:00
Even Rouault 7e4c94f5fd gie.cpp: use correct type in error message (CID 314813) 2021-03-07 00:20:20 +01:00
Even Rouault 9093dc498e cs2cs: catch exception on bad value for --accuracy (CID 314818) 2021-03-07 00:20:20 +01:00
Even Rouault 58d59c3617 cct: remove useless nullptr checking (CID 314822) 2021-03-07 00:20:20 +01:00
Even Rouault bef4d8fe2e proj_info(): remove useless nullptr checking (CID 314807) 2021-03-07 00:20:20 +01:00
Even Rouault 43e1235334 BaseObject: add a move assignment operator (CID 314820) 2021-03-07 00:20:20 +01:00
Even Rouault 6dae91bd06 UnitOfMeasure: add a move assignment operator (CID 314811) 2021-03-06 23:14:25 +01:00
Even Rouault 3af34fc1c4 Merge pull request #2559 from rouault/gcc11_wnonnull
Fix gcc 11 -Wnonnull warnings
2021-03-06 22:40:35 +01:00
Even Rouault 194b13a876 Merge pull request #2558 from rouault/gie_self_tests_fix_uninitialized
gie_self_tests: fix use of uninitialized memory (fixes #2557)
2021-03-06 22:40:00 +01:00
Even Rouault feeca61287 Fix gcc 11 -Wnonnull warnings
```
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp: In function 'osgeo::proj::operation::TransformationNNPtr osgeo::proj::operation::createBallparkGeographicOffset(const CRSNNPtr&, const CRSNNPtr&, const DatabaseContextPtr&)':
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1860:36: warning: 'this' pointer is null [-Wnonnull]
 1860 |                 ->coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1864:36: warning: 'this' pointer is null [-Wnonnull]
 1864 |                 ->coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/factory.cpp: In member function 'std::vector<dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::CoordinateOperation> > > osgeo::proj::io::AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates(const CRSNNPtr&, const string&, const string&, const CRSNNPtr&, const string&, const string&, bool, bool, bool, bool, const std::vector<std::__cxx11::basic_string<char> >&, const ExtentPtr&, const ExtentPtr&) const':
/proj-8.0.0/src/iso19111/factory.cpp:4724:66: warning: 'this' pointer is null [-Wnonnull]
 4724 |         dynamic_cast<crs::GeodeticCRS *>(sourceCRS.get())->datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
/proj-8.0.0/src/iso19111/factory.cpp:4726:66: warning: 'this' pointer is null [-Wnonnull]
 4726 |         dynamic_cast<crs::GeodeticCRS *>(targetCRS.get())->datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
```
2021-03-06 22:21:57 +01:00
Even Rouault 27e1f4076c gie_self_tests: fix use of uninitialized memory (fixes #2557) 2021-03-06 22:12:27 +01:00
Even Rouault 652f86b4fb Merge pull request #2556 from rouault/uint_t
grids.cpp: use C99/C++11 uint16_t/uint32_t
2021-03-06 20:13:19 +01:00
Even Rouault c750f874af grids.cpp: use C99/C++11 uint16_t/uint32_t
libtiff has historically defined uint16 and uint32 as custom typedefs,
but those will be deprecated in the next libtiff release, and using them
will emit warnings, so use standard types as recommended.
2021-03-06 19:13:59 +01:00
Even Rouault 667b7c1f11 Merge pull request #2555 from rouault/fix_2541
createOperations(): fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (fixes #2541)
2021-03-05 21:17:02 +01:00
Even Rouault c6a241f2fe createOperations(): fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (fixes #2541) 2021-03-05 18:18:35 +01:00
Even Rouault f278b5bee6 Merge pull request #2551 from rouault/clang_format
Reformat code with clang-format-10 from ubuntu 20.04
2021-03-04 11:39:14 +01:00
Even Rouault 948f39a4da Merge pull request #2552 from rouault/disable_freebsd
CI: disable FreeBSD / Cirrus builds
2021-03-03 18:40:44 +01:00
Even Rouault de9c1ecf64 CI: disable FreeBSD / Cirrus builds
They started to fail a few weeks ago with the following error
```
./autogen.sh
Running aclocal
autom4te-2.69: need GNU m4 1.4 or later: /usr/local/bin/gm4
aclocal: error: autom4te failed with exit status: 1

  Something went wrong, giving up!
```
2021-03-03 18:23:38 +01:00
Even Rouault 095731d534 Reformat code with clang-format-10 from ubuntu 20.04 2021-03-03 17:45:53 +01:00
Kristian Evers 9e2eb06758 +proj=latlon docs: Datum list is given with cs2cs -ld
Closes #2549
2021-03-01 13:31:18 +01:00
Kristian Evers 82665e3baf HOWTORELEASE: Do not up update proj_api.h version numbers 2021-03-01 13:22:14 +01:00
Kristian Evers 316ea22bd2 Bump version numbers in anticipation of 8.1.0 release 2021-03-01 13:21:12 +01:00
Kristian Evers bd3702ed99 reconfigure 'edit on github' links to 8.0 branch 2021-03-01 13:05:34 +01:00
Kristian Evers b6c588ee75 Update web docs for 8.0.0 release 2021-03-01 13:01:25 +01:00
Mike Taves 12e7a43957 Update NEWS for CMake pkg-config support 2021-02-26 11:31:15 +13:00
Kristian Evers cbd4506ddd Merge pull request #2544 from sebastic/spelling-errors
Fix spelling errors.
2021-02-25 19:18:22 +01:00
Mike Taves 3d22f6f0a7 CMake: add support for pkg-config (#2547) 2021-02-26 00:45:42 +13:00
Even Rouault 1a51877361 Merge pull request #2545 from rouault/fix_gdal_test_issue_due_to_intl_rename
isEquivalentName(): fix for GDAL test failure
2021-02-22 17:05:21 +01:00
Even Rouault 6ef286ec69 isEquivalentName(): fix for GDAL test failure
https://github.com/OSGeo/PROJ/pull/2536 changed the name of the
ellps=intl to "International 1924 (Hayford 1909, 1910)"
When writing a GeoTIFF file from GDAL using a SRS built from a
PROJ string, GDAL massages the datum name to
"Unknown_based_on_International_1924_Hayford_1909_1910_ellipsoid"
Before this fix, this wasn't considered as equivaleent to the non-massaged
datum name "Unknown based on International 1924 (Hayford 1909, 1910) ellipsoid"
2021-02-22 16:37:26 +01:00
Even Rouault 4dcce2a857 Formatting fix 2021-02-22 16:36:45 +01:00
Bas Couwenberg 6b449e5533 Fix spelling errors.
* Allow to <verb> -> Allows <verb>ing
2021-02-20 15:40:13 +01:00
Kristian Evers 6a8d39c11e Updated NEWS for 8.0.0 2021-02-20 14:21:48 +01:00
Kristian Evers bc5f652914 Update man-pages from Sphinx-docs 2021-02-20 12:30:25 +01:00
Kristian Evers 57214ee34a Bump ABI numbers for 8.0.0 release 2021-02-20 12:23:24 +01:00
Kristian Evers c4015280a4 Merge pull request #2514 from mloskot/ml/enable-build-with-static-curl
Enable linking against static cURL on Windows
2021-02-20 11:58:29 +01:00
Kristian Evers 7645c38d2f Merge pull request #2542 from snowman2/warn
LOG: Default log level PJ_LOG_ERROR
2021-02-20 11:57:43 +01:00
snowman2 650ed38f31 LOG: Default log level PJ_LOG_ERROR 2021-02-19 20:39:53 -06:00
Kristian Evers d7f8b0ef22 Merge branch 'master' into ml/enable-build-with-static-curl 2021-02-19 14:01:21 +01:00
Kristian Evers 9c299f3848 Merge pull request #2538 from mwtoews/cmake-target-name
CMake: replace '${PROJ_CORE_TARGET}' with 'proj'
2021-02-19 13:51:41 +01:00
Mateusz Łoskot 842ed0e1b5 Enable linking against static cURL on Windows
This is preliminary fix to allow linking the library
as well as its dependants (e.g. PROJ apps) against cURL
built as static library on Windows with support of native
Windows TLS/SSL.
On Windows, such static cURL (and its dependants) requires linking
against Winsock, CryptoAPI and other networking libaries.
2021-02-19 13:18:03 +01:00
Kristian Evers 584a475207 Merge pull request #2532 from snowman2/autoclose
BUG: Close database connection when autoclose set to True
2021-02-19 08:14:59 +01:00
Kristian Evers ac7b1b1638 Merge pull request #2539 from nyalldawson/10_015
Update to EPSG v10.015
2021-02-19 05:32:17 +01:00
Nyall Dawson 7c52fed34c Update to EPSG v10.015 2021-02-19 13:26:23 +10:00
Mike Taves 59803d8222 CMake: replace '${PROJ_CORE_TARGET}' with 'proj' 2021-02-19 08:54:18 +13:00
Kristian Evers e8a535ee02 Merge pull request #2536 from OSGeo/busstoptaktik-patch-1
International ellipsoid designation correction
2021-02-16 12:07:35 +01:00
Thomas Knudsen c7543c2ff4 International ellipsoid designation correction
The "International 1909 (Hayford)" designation is an unfortunate mix of different aspects of the same ellipsoid.

The Hayford ellipsoid was based on investigations in 1909, published in 1910 as J.F. Hayford: *Supplementary Investigation in 1909 of the Figure of the Earth and Isostasy*, Coast and Geodetic Survey, 80pp. (freely accessible through Google Books).

In 1924 Hayford's ellipsoid was adopted by the IUGG as "the International Ellipsoid".

Hence either of 

- Hayford, 1909 (for the year the work was done),
- Hayford, 1910 (for the year of publication), or
- International, 1924

are reasonable names, in common use, but the "International, 1909" really is a peculiar mix of concepts.

Resolves #2534
2021-02-16 11:03:37 +01:00
Kristian Evers cd10468ece Merge pull request #2533 from mloskot/ml/cmake-keyword-target-commands
CMake: Prefer keyword signature of target_link_libraries command
2021-02-14 11:33:47 +01:00
Mateusz Łoskot 5fc8ab2de9 CMake: Prefer keyword signature of target_link_libraries command
Closes #2515
2021-02-14 10:21:21 +01:00
snowman2 6353da92f1 BUG: Close database connection if autoclose set to True 2021-02-13 19:14:29 -06:00
Even Rouault 32d442ddc6 Merge pull request #2527 from rouault/fix_2526
C API: avoid error messages to be emitted in PJ_LOG_NONE log level (fixes #2526)
2021-02-12 12:23:40 +01:00
Even Rouault d79850629a C API: avoid error messages to be emitted in PJ_LOG_NONE log level (fixes #2526) 2021-02-11 15:44:08 +01:00
Even Rouault 7f6c35f0cc Merge pull request #2525 from rouault/epsg_10_014
Database: update to EPSG v10.014
2021-02-11 12:05:32 +01:00
Even Rouault d3a6ca45ad Database: update to EPSG v10.014 2021-02-11 11:06:49 +01:00
Even Rouault 93d2571d56 Merge pull request #2521 from rouault/boundcrs_proj_based_method
Allow a BoundCRS to use a PROJ string transformation
2021-02-11 10:43:31 +01:00
Even Rouault 755d6d396e Merge pull request #2524 from rouault/fix_2510
Fix handling of +proj=ob_tran +o_proj=longlat combined with +over (fixes #2510)
2021-02-10 18:53:54 +01:00
Even Rouault 36d8691b20 Merge pull request #2522 from rouault/update_operations_computation
operations_computation.rst: update 'Filtering and sorting of coordinate operations' section
2021-02-10 18:53:27 +01:00
Even Rouault 836af9dcf1 Fix handling of +proj=ob_tran +o_proj=longlat combined with +over (fixes #2510) 2021-02-10 17:51:13 +01:00
Even Rouault 3ea7abc133 operations_computation.rst: update 'Filtering and sorting of coordinate operations' section 2021-02-10 17:05:03 +01:00
Even Rouault 4b44a55f6f Allow a BoundCRS to use a PROJ string transformation
Related to https://lists.osgeo.org/pipermail/proj/2021-February/010040.html

Given test.wkt with
```
BOUNDCRS[
    SOURCECRS[
        GEOGCRS["unknown",
            DATUM["Unknown based on GRS80 ellipsoid",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",7019]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8901]],
            CS[ellipsoidal,2],
                AXIS["longitude",east,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]],
                AXIS["latitude",north,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]]]],
    TARGETCRS[
        GEOGCRS["WGS 84",
            DATUM["World Geodetic System 1984",
                ELLIPSOID["WGS 84",6378137,298.257223563,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,2],
                AXIS["latitude",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["longitude",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
            ID["EPSG",4326]]],
    ABRIDGEDTRANSFORMATION["Transformation from unknown to WGS84",
        METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"]]]
```

``projinfo -s @test.wkt -t "WGS 84" -o PROJ -q``

outputs:
```
+proj=pipeline
  +step +proj=unitconvert +xy_in=deg +xy_out=rad
  +step +proj=axisswap +order=2,1
  +step +proj=cart +ellps=GRS80
  +step +proj=helmert +convention=coordinate_frame +exact
  +step +inv +proj=cart +ellps=WGS84
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=rad +xy_out=deg
```
2021-02-10 15:48:29 +01:00
Even Rouault a7f6b40744 test_operation: use correct variable name 2021-02-10 15:43:16 +01:00
Kristian Evers 617f92e3d1 Merge pull request #2519 from nyalldawson/esri_update
Update ESRI projection db to 12.7 (10.8.1/2.6)
2021-02-10 07:03:36 +01:00
Nyall Dawson 2275b2dad9 Update ESRI projection db to 12.7 (10.8.1/2.6) 2021-02-10 08:34:41 +10:00
Kristian Evers 6ce2c1174a Merge pull request #2518 from rouault/epsg_10_013
Database: update to EPSG v10.013
2021-02-09 21:24:14 +01:00
Even Rouault c72dabdc3f Database: update to EPSG v10.013 2021-02-09 19:46:25 +01:00
Even Rouault ad2cb7a120 Merge pull request #2517 from nyalldawson/epsg_update
Database: update to EPSG v10.012
2021-02-09 18:02:42 +01:00
Even Rouault 0b8f6e3586 createOperations(): remove involved logic that was done for GDA94 -> WGS84 (G1762)
It is no longer needed for that particular case, since there's now a concatenated
operation for it. It could in theory be useful for other cases, but removing it
doesn't break existing tests, so...
2021-02-09 16:54:17 +01:00
Nyall Dawson 88618bb412 Database: update to EPSG v10.012 2021-02-09 16:53:36 +01:00
Even Rouault 6882017ff6 Merge pull request #2513 from jjimenezshaw/ahd-tasmania
Better grid_alternatives entries to include 'GDA94 to AHD (Tasmania) height' using 'au_ga_AUSGeoid98.tif'
2021-02-08 18:50:52 +01:00
Kristian Evers 5366db1b15 Merge pull request #2511 from mwtoews/remove-cmake-configurations-8.0
CMake: remove old configuration option aliases
2021-02-07 11:24:58 +01:00
Kristian Evers 197ea0569b Merge pull request #2476 from rouault/fix_2399
Add build time option to make PROJ_LIB env var tested last (fixes #2399)
2021-02-07 11:16:21 +01:00
Kristian Evers c0fb0041c2 Merge pull request #2503 from havingsexonthebeach/epsg10_011
Database: update to EPSG v10.011
2021-02-07 11:14:18 +01:00
Mike Taves af7cbf0ad1 CI: specify pip < 21.0; avoid using pip3 script (#2516) 2021-02-07 23:04:39 +13:00
Javier Jimenez Shaw 58840ddd5a change grid_alternatives entries to include 'GDA94 to AHD (Tasmania) height' 2021-02-03 16:20:10 +01:00
Mike Taves 2ceb24ce20 CMake: remove old configuration option aliases 2021-02-03 05:38:59 +13:00
Kristian Evers db2950e56e Merge pull request #2505 from visr/typos
fix a few typos in the docs
2021-01-17 16:29:38 +01:00
Martijn Visser f0bff3680a update julia binding description
This matches the go binding description. And fixes the colon.
2021-01-17 11:58:56 +01:00
Martijn Visser 169ccbb7a0 fix a few typos in the docs 2021-01-17 11:57:39 +01:00
Modern Slave 7b33d9180e Database: update to EPSG v10.011 2021-01-15 23:27:33 +01:00
Even Rouault 1e7f6c68bf Merge pull request #2502 from rouault/bug_projjson_geoid
createOperations(): fix bug involving geoidmodel and non-metre vertical unit
2021-01-14 23:01:22 +01:00
Even Rouault 9bbd56fca9 createOperations(): fix bug involving geoidmodel and non-metre vertical unit 2021-01-14 21:44:52 +01:00
Even Rouault 84c65702d1 formatting fix 2021-01-14 20:46:53 +01:00
Even Rouault bf5a2f6c79 Merge pull request #2501 from rouault/32bit_immediate
workflow linux_gcc_32bit: fix Could not perform immediate configuration on 'libgcc-s1:i386'
2021-01-13 18:11:31 +01:00
Even Rouault 99b2e8e24e Merge pull request #2500 from rouault/fix_compound_to_geog_non_metre_vert
createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height
2021-01-13 17:57:52 +01:00
Even Rouault e854ed469a workflow linux_gcc_32bit: fix Could not perform immediate configuration on 'libgcc-s1:i386' 2021-01-13 17:36:31 +01:00
Even Rouault 4a10b0f864 createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height 2021-01-13 17:23:34 +01:00
Even Rouault 99b06ef5e7 ellps_size(): do not log error if ellipsoid absent and not needed 2021-01-12 14:36:46 +01:00
Sveinung Himle f44df597b9 Database: add Norwegian height transformations grids to grid_alternatives table (#2359) 2021-01-06 15:20:10 +01:00
Even Rouault 93d8fccd51 createFromUserInput(): accept leading white space (fixes #2498) 2021-01-05 16:49:56 +01:00
Kristian Evers 367771f4ba Update website for 7.2.1 2021-01-01 17:09:45 +01:00
Even Rouault 26e07082d3 Merge pull request #2496 from rouault/proj_crs_is_derived
C API: add proj_crs_is_derived()
2020-12-28 22:25:48 +01:00
Even Rouault 882d84b086 C API: add proj_crs_is_derived() 2020-12-28 17:07:44 +01:00
Kristian Evers 9e7c39abac Update CITATION year to 2021 2020-12-26 19:57:07 +01:00
Kristian Evers 4424a9caeb Update NEWS for 7.2.1 release 2020-12-26 19:42:14 +01:00
Kristian Evers 5aad0d25f8 Merge remote-tracking branch 'osgeo/master' 2020-12-21 17:28:48 +01:00
Kristian Evers 1cafe3e602 Merge pull request #2494 from kbevers/nkg_trans_final
Implementing the NKG transformations in proj.db
2020-12-21 17:26:21 +01:00
Kristian Evers f969d51e0b Implementing the NKG transformations in proj.db
This adds the NKG 2008 and 2020 transformations to proj.db. The NKG
transformations offers transformations between global reference frames
and the national realisations of ETRS89 in Denmark, Estonia, Finland,
Latvia, Lithuania, Norway and Sweden.

The 2008 transformations are already implemented in the NKG 2008 file
but will now be more accessible with the modern API.

The 2020 transformations are new to PROJ and offers and updated version
of the 2008 transformations using a new and improved deformation model
(eu_nkg_nkgrf17vel.tif). A 2020 version of the NKG transformations are
currently not available for Norway but will in all likelyhood be
included at a later point in time.
2020-12-21 16:37:57 +01:00
Even Rouault fd98b78140 test_factory.cpp: add missing checks 2020-12-19 17:38:21 +01:00
Even Rouault a2f4d61f72 Database: register AGQG_20191107.gsb grid. Related to https://github.com/OSGeo/PROJ-data/pull/53 2020-12-18 22:42:31 +01:00
Even Rouault edcf6a2ea6 Merge pull request #2491 from glostis/documentation
Fix typos in resource_files.rst
2020-12-17 15:31:34 +01:00
Even Rouault 7766b1aad7 Merge pull request #2488 from rouault/crs_to_crs_improved_filtering
Improved coordinate operation filtering
2020-12-16 21:02:37 +01:00
Even Rouault da066800e5 cs2cs: add --no-ballpark and --accuracy options 2020-12-16 18:48:46 +01:00
Guillaume Lostis e685921b45 Fix typos in resource_files.rst 2020-12-16 16:50:47 +01:00
Even Rouault 1a84a71349 Merge pull request #2489 from rouault/update_to_epsg_10.0.8
Database: update to EPSG v10.008
2020-12-16 16:09:07 +01:00
Even Rouault 643ce02edf Database: update to EPSG v10.008 2020-12-16 15:24:16 +01:00
Even Rouault 5e07772927 Merge pull request #2487 from rouault/error_mgt_improvements
Error management: revise error codes and expose them to the public API
2020-12-16 15:12:51 +01:00
Even Rouault 37755e4edc proj_create_crs_to_crs_from_pj(): add ACCURACY and ALLOW_BALLPARK options 2020-12-15 18:30:50 +01:00
Even Rouault e570630579 projinfo: add a --accuracy option to define the minimum accuracy 2020-12-15 18:30:24 +01:00
Even Rouault a27c0255e7 Remap ENOMEM from PROJ_ERR_INVALID_OP to PROJ_ERR_OTHER 2020-12-15 17:53:29 +01:00
Even Rouault b020666081 horner.cpp: remove uses of EINVAL and EDOM errno 2020-12-15 17:48:24 +01:00
Even Rouault 41c4e54f03 Remove internal use of PJ_LOG_DEBUG_MINOR and PJ_LOG_DEBUG_MAJOR 2020-12-15 17:24:55 +01:00
Even Rouault df96a13d2c Various operations: remove explicit short name prefixing in log messages now that it is automatically added 2020-12-15 17:24:55 +01:00
Even Rouault ab7b02702a proj_log_XXX functions(): add the short name of the operation as prefix in the error message 2020-12-15 17:24:54 +01:00
Even Rouault 1d803550e7 proj_trans_array(): make it transform all coordinates even when an error occurs 2020-12-15 17:24:54 +01:00
Even Rouault 2abc0aaf3a tmerc exact: set errno to PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when it returns invalid coordinate 2020-12-15 14:59:52 +01:00
Even Rouault 54b861e140 Doc: document error codes and proj_context_errno_string() 2020-12-15 14:59:52 +01:00
Even Rouault 244a24104d Revise error codes to have a reduced set exposed in the public API.
Fixes #2482

And also add proj_context_errno_string()

Revise gie 'expect failure errno XXXX' strings
2020-12-15 01:13:43 +01:00
Even Rouault 1e9894b0e2 Remove ancient no longer used implementation of pj_ell_set() 2020-12-15 00:52:51 +01:00
Even Rouault 0af437949d Move proj_log_XXX() functions from internal.cpp to log.cpp 2020-12-15 00:52:51 +01:00
Even Rouault 8b1ef9504d Merge pull request #2486 from rouault/fix_bound_proj_ntf_paris_to_bound_geog_ntf_paris_rebased
createOperations(): fix inconsistent chaining exception when transforming from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris
2020-12-14 21:42:15 +01:00
Even Rouault 95340fb1d1 createOperations(): fix inconsistent chaining exception when transforming from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris. Fixes https://github.com/OSGeo/gdal/issues/3273 2020-12-14 21:12:43 +01:00
Even Rouault bfc54bbac8 Merge pull request #2483 from rouault/split_coordinateoperation
Split coordinateoperation.cpp and test_operation.cpp in several parts
2020-12-14 18:14:31 +01:00
Even Rouault 69994f1922 CMake: install data/*.json files (fixes #2485) 2020-12-13 21:22:56 +01:00
Kristian Evers c3efbd23a5 Merge remote-tracking branch 'osgeo/master' 2020-12-13 15:30:47 +01:00
Even Rouault 49c6a49d83 Split test_operation.cpp in two parts 2020-12-12 22:34:11 +01:00
Even Rouault 4bc3fec94a Split coordinateoperation.cpp in many files in iso19111/operation directory
The big size of coordinateoperation.cpp could require significant amount
of RAM to build it with -O2 level, and cause compiler crashes in some
environments.
2020-12-12 22:23:28 +01:00
Even Rouault 6857d1a4a8 conda.yml: restrict to main repository builds, otherwise fails to build in forks 2020-12-11 22:15:38 +01:00
Even Rouault f51c723b45 .github/workflows/clang_static_analyzer/start.sh: add apt update 2020-12-11 21:50:49 +01:00
Even Rouault acab18920e funtions.rst: fix sphynx syntax 2020-12-11 21:50:35 +01:00
Even Rouault 2e13f14493 test_operation.cpp: remove debug message 2020-12-11 20:37:03 +01:00
Even Rouault 372b5b7480 Doc: fix return data type of proj_trans_array() 2020-12-09 19:28:27 +01:00
Zac Miller 29d2542cc3 Update isea.rst
Clarifying defaults for ISEA.
2020-12-08 23:02:32 +01:00
Even Rouault f3c51143b5 Merge pull request #2477 from rouault/fix_2442
cs2cs / proj_create_crs_to_crs_from_pj(): add a --authority switch to  control where coordinate operations are looked for (fixes #2442)
2020-12-04 23:52:23 +01:00
Even Rouault fe2c5e04d5 Merge pull request #2481 from rouault/ci_build_with_sqlite_dqs_zero
CI: test with a SQLite3 binary built with SQLITE_DQS=0 to avoid issue #2480
2020-12-04 23:51:28 +01:00
Even Rouault bf81813e9f CI: test with a SQLite3 binary built with SQLITE_DQS=0 to avoid issue #2480 2020-12-04 22:46:45 +01:00
Even Rouault 73ff92cfeb Merge pull request #2480 from rouault/fix_build_with_sqlite_3_29
Database: fix building proj.db with SQLite built with -DSQLITE_DQS=0
2020-12-04 22:45:49 +01:00
Even Rouault 2fc8821480 Database: fix building proj.db with SQLite built with -DSQLITE_DQS=0
That is the option to make SQLite reject misuses of double quotes instead
of single quotes. Most SQLite builds are forgiving, but some forks proposing
a CMake build system default to SQLITE_DQS=0
2020-12-04 22:29:58 +01:00
Even Rouault 18ab7ef2e3 cs2cs / proj_create_crs_to_crs_from_pj(): add a --authority switch to control where coordinate operations are looked for (fixes #2442) 2020-12-02 21:11:41 +01:00
Even Rouault 9488b26ca5 Add build time option to make PROJ_LIB env var tested last (fixes #2399)
If PROJ is built with the PROJ_LIB_ENV_VAR_TRIED_LAST CMake option /
--enable-proj-lib-env-var-tried-last configure switch, then the
hard-wired path ($prefix/share/proj) will be tried before looking at the
environment PROJ_LIB.
2020-12-02 15:41:53 +01:00
Even Rouault ebe00831b7 fix build 2020-12-02 15:22:48 +01:00
Even Rouault b7fb045ebd Merge pull request #2444 from rouault/topocentric
Add +proj=topocentric geocentric->topocentric conversion (fixes #500)
2020-12-02 14:42:33 +01:00
Even Rouault f9655458a9 Merge pull request #2474 from rouault/database_version_number
Database: add metadata with the version number of the database layout …
2020-11-30 17:37:49 +01:00
Even Rouault dc7a0c3c6f Merge pull request #2466 from rouault/fix_2423
cs2cs: add --area and --bbox  options to restrict candidate coordinate operations (fixes #2423)
2020-11-30 16:39:18 +01:00
Even Rouault e9f7439946 Merge pull request #2471 from rouault/extent_spherical_tmerc_domain
Spherical tmerc forward: do not restrict to [-90,90] longitude range
2020-11-30 15:18:54 +01:00
Even Rouault eef73e3eca Database: add metadata with the version number of the database layout and check it in the code
This is aimed at detecting running a PROJ version against a proj.db that is not
meant to work with it. This happens sometimes in complex setups mixing PROJ
versions. Hopefully this will help spotting the issue earlier.
2020-11-30 14:09:37 +01:00
Even Rouault 36c700192c test_io.cpp: formatting fix 2020-11-30 13:35:33 +01:00
Even Rouault 89deeee6c0 Merge pull request #2473 from rouault/further_old_api_cleanup
API cleanup: unexport number of internal symbols, and remove/replace …
2020-11-30 12:57:04 +01:00
Even Rouault 2bd09af7d0 Merge pull request #2467 from rouault/gha_windows
Migrate appveyor VS2017 build to github action VS2019
2020-11-30 01:43:31 +01:00
Even Rouault f4dc79075c API cleanup: unexport number of internal symbols, and remove/replace a few unused ones 2020-11-30 01:35:59 +01:00
Even Rouault ebf63e1fd7 Merge pull request #2472 from rouault/improve_pj_datum_set
pj_datum_set(): make code more obvious to humans and analyzers
2020-11-30 01:19:41 +01:00
Even Rouault ee534a70ef pj_datum_set(): make code more obvious to humans and analyzers 2020-11-30 00:32:32 +01:00
Even Rouault 284feecd27 Spherical tmerc forward: do not restrict to [-90,90] longitude range
The restriction was a copy&paste from the Evenden/Snyder approximate
ellipsoidal implementation, but the spherical one is exact, so this
restriction isn't needed.

Also tune a bit the handling of lat=0, |lon| > 90
2020-11-29 20:57:40 +01:00
Even Rouault edd7f165f8 Merge pull request #2450 from rouault/setAllowEllipsoidalHeightAsVerticalCRS
Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL
2020-11-29 17:30:16 +01:00
Even Rouault 2ae0766eef Merge pull request #2469 from rouault/fix_2468
Inverse tmerc spherical: fix wrong sign of latitude when lat_0 is used (fixes #2468)
2020-11-29 16:30:26 +01:00
Even Rouault bc0c9f3e96 Inverse tmerc spherical: fix wrong sign of latitude when lat_0 is used (fixes #2468)
Corrected formula given by @evanmiller
2020-11-29 15:46:23 +01:00
Even Rouault 87270ae6f1 createOperations(): get a '+proj=noop' instead of '+proj=affine +s33=-1' when attempting (non-sensical) EPSG:3855 to EPSG:4326 2020-11-28 23:39:33 +01:00
Even Rouault c6dda7637c WKT1 import: better deal with apps.epsg.org output w.r.t datum ensemble names 2020-11-28 20:02:15 +01:00
Even Rouault e44a2acd9b test/fuzzers: remove standard_fuzzer that used proj_api.h now removed 2020-11-28 19:10:58 +01:00
Even Rouault cc5d46523e appveyor.yml: disable VS2017 x64 build 2020-11-28 18:08:22 +01:00
Even Rouault 2a13213dcf Add github action for VS2019 x64 build 2020-11-28 18:08:22 +01:00
Even Rouault ebe3425bf6 proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified 2020-11-28 15:57:17 +01:00
Even Rouault 0b4c8b0a76 cs2cs: add --area and --bbox options to restrict candidate coordinate operations (fixes #2423) 2020-11-28 15:51:27 +01:00
Houder 24c74a4d1c Use same arguments to printf format string for both radians and degrees in output by cct (#2453)
Currently the output of the cct utility is different between radians
and degrees (as expected by cct), because of a bug in cct:

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad
  1.0000000000    2.0000000000        0.0000        0.0000

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=deg
       1.0000         2.0000        0.0000        0.0000

The arguments to the printf format string are as follows:

 * radians: width 14, precision 10
 * degrees: width 13, precision  4 (this is by mistake. bug!)

After the suggested fix has been applied, output will be the same for
both radians and degrees:

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad
  1.0000000000    2.0000000000        0.0000        0.0000

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=deg
  1.0000000000    2.0000000000        0.0000        0.0000

The cause of the bug is that cct does test if it "has radians to output",
but "neglects" to test if it "has degrees to output", resulting in using
different arguments to the printf format string in the latter case.

The fix makes cct test if it "has either radians or degrees to output".
2020-11-28 13:45:06 +01:00
Even Rouault 5283d926f7 Merge pull request #2462 from rouault/improve_createObjectsFromName
createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone 32N' return only the exact match
2020-11-28 02:08:06 +01:00
Even Rouault 4de6f0bd24 createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone 32N' return only the exact match 2020-11-28 00:15:11 +01:00
Even Rouault 24c3bbb299 testcct: create 'a' and 'b' from scratch 2020-11-27 23:43:28 +01:00
Even Rouault 9e8a790fc4 Merge pull request #2460 from rouault/gha_linux_gcc4.8
Move linux_gcc 4.8 job to github action, and on Travis-CI only keep the doc publishing
2020-11-27 22:43:00 +01:00
Even Rouault 90737bcf69 Move linux_gcc 4.8 job to github action, and on Travis-CI only keep the doc publishing 2020-11-27 22:00:33 +01:00
Even Rouault c85a44110d Add github action for cppcheck 2020-11-27 21:27:59 +01:00
Even Rouault 59b112687a crs.hpp: add cppcheck suppression for cppcheck 1.90 of ubuntu 20.04 2020-11-27 21:27:31 +01:00
Even Rouault 60ae9abbf9 Merge pull request #2459 from rouault/gha_gcc_32bit
Move linux gcc 32bit job to Github actions
2020-11-27 21:26:17 +01:00
Even Rouault 3b0102df6f Travis-CI: remove linux_gcc8 job 2020-11-27 20:41:42 +01:00
Even Rouault cdac370a9c Github action: add a linux_gcc_32bit job 2020-11-27 20:41:42 +01:00
Even Rouault a24c02199f Merge pull request #2455 from rouault/primem_fixes
PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from WKT1:GDAL/ESRI when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export
2020-11-27 13:15:28 +01:00
Even Rouault f5b4060847 formatting fixes 2020-11-27 00:39:49 +01:00
Even Rouault b27efedef0 PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from WKT1:GDAL/ESRI when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export 2020-11-27 00:39:18 +01:00
Even Rouault 968b06fbb6 Merge pull request #2457 from rouault/gha_linux_clang
Move linux_clang Travis-CI job to Github action
2020-11-27 00:36:52 +01:00
Even Rouault 74944e3af4 Merge pull request #2458 from rouault/fix_mingw_w64_pj_mutex_warning
Fix mingw_w64 warning about pj_acquire_lock() prototype being missing
2020-11-27 00:36:37 +01:00
Even Rouault 83754e1f77 Fix mingw_w64 warning about pj_acquire_lock() prototype being missing 2020-11-26 21:12:00 +01:00
Kristian Evers 3cb26a406a Merge pull request #2403 from kbevers/remove-proj_api.h
Remove proj_api.h
2020-11-26 20:58:01 +01:00
Even Rouault f0842bb0b0 Travis-CI: remove linux_clang job 2020-11-26 20:31:08 +01:00
Even Rouault 7562eee171 Github action: add a clang linux build job 2020-11-26 20:31:08 +01:00
Even Rouault e7fc87b21e travis/install.sh: make it robust to objdump on 20.04 and/or clang outputing symbols in different order 2020-11-26 20:31:07 +01:00
Even Rouault f5b3616bb0 Merge pull request #2456 from rouault/gha_csa
Move Clang Static Analyzer job to Github action
2020-11-26 20:08:59 +01:00
Even Rouault eeec780b20 Travis-CI: remove CSA job 2020-11-26 19:14:25 +01:00
Even Rouault 7cce6e6444 Github action: add a clang static analyzer job 2020-11-26 19:14:25 +01:00
Even Rouault 4caf32aedd Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL
as CompoundCRS with a VerticalCRS being an ellipsoidal height, which is
not conformant. But needed for LAS 1.4 that only supports WKT1
2020-11-24 19:52:39 +01:00
Even Rouault 5172091009 Merge pull request #2449 from rouault/geoidmodel_ballpark
createOperation(): add a ballpark vertical transformation when dealing with GEOIDMODEL[]
2020-11-24 17:29:09 +01:00
Even Rouault d6f6862352 createOperation(): add a ballpark vertical transformation when dealing with GEOIDMODEL[] 2020-11-24 16:41:06 +01:00
Even Rouault 28aa4f1309 Merge pull request #2448 from rouault/gha_mingw_w64
CI: move mingw job to GitHub actions
2020-11-24 11:39:17 +01:00
Charles Karney 2414eb2bb6 Sync w GeographicLib 1.51. Remove C99 compatibility functions. (#2445)
Should be no changes in the compiled code.
2020-11-24 01:13:24 +01:00
Even Rouault 452f1dbb25 mutex.cpp: replace NULL by nullptr 2020-11-24 01:04:23 +01:00
Even Rouault 5d867c43a7 .travis.yml: remove mingw job 2020-11-24 00:56:25 +01:00
Even Rouault 78c8889a76 GitHub action: add a mingw_w64 build 2020-11-24 00:56:25 +01:00
Even Rouault d8fe9964bc Add +proj=topocentric geocentric->topocentric conversion (fixes #500) 2020-11-23 20:58:26 +01:00
Even Rouault 5974b85665 Merge pull request #2447 from rouault/gha_osx
CI: move Mac job to GitHub actions with Conda as the base for dependencies
2020-11-23 20:51:07 +01:00
Even Rouault 95fd9665ef .travis.yml: remove mac job 2020-11-23 20:23:50 +01:00
Even Rouault 42b8c2012d GitHub action: add a Mac build 2020-11-23 20:23:50 +01:00
Even Rouault 97eea25cb1 Merge pull request #2446 from rouault/fix_projectedCRS_3D_is_WKT1_equivalent_to_WKT2
GeographicCRS::_isEquivalentTo(EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS):…
2020-11-23 19:22:53 +01:00
Even Rouault b503c2e5ae GeographicCRS::_isEquivalentTo(EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS): make it work when comparing easting,northing,up and northing,easting,up 2020-11-23 16:56:44 +01:00
Even Rouault 765faba898 Remove no longer used build_db_create_ignf.py script 2020-11-22 23:53:22 +01:00
Even Rouault 6bc444c1b0 Database ESRI: map 2 grids in grid_alternatives 2020-11-22 23:52:42 +01:00
Even Rouault f50221ed66 projinfo.cpp: improve hint when to use --spatial-test intersects 2020-11-22 23:16:48 +01:00
Even Rouault 427a4545e0 Merge pull request #2443 from rouault/fix_parse_wkt2_2019_projected_with_base_geocentric
WKT parsing: fix ingestion of WKT with a Geocentric CRS as the base of the projected CRS
2020-11-22 01:23:12 +01:00
Even Rouault 650e37f159 PROJJSON parsing: fix parsing of a Geodetic CRS with a DatumEnsemble, and fix parsing of a ProjectedCRS whose base is a Geocentric CRS 2020-11-21 23:59:33 +01:00
Even Rouault eb66679cde WKT parsing: fix ingestion of WKT with a Geocentric CRS as the base of the projected CRS 2020-11-21 23:58:50 +01:00
Even Rouault 3f4058308b Merge pull request #2441 from rouault/fix_obtran_towgs84
createOperation(): make it work properly when one of the CRS is a BoundCRS of a DerivedGeographicCRS (+proj=ob_tran +o_proj=lonlat +towgs84=....)
2020-11-21 15:20:56 +01:00
Even Rouault c2edd467c5 createOperation(): make it work properly when one of the CRS is a BoundCRS of a DerivedGeographicCRS (+proj=ob_tran +o_proj=lonlat +towgs84=....) 2020-11-21 13:56:18 +01:00
Even Rouault 3dea81d9be Make GeographicCRS/GeodeticCRS::isEquivalentTo() work properly when comparing to a DerivedGeographicCRS/DerivedGeodeticCRS 2020-11-21 13:55:11 +01:00
Even Rouault 3b3ec2bd6a Merge pull request #2440 from rouault/update_backport_action
backport.yml: update to what QGIS uses
2020-11-21 13:13:18 +01:00
Even Rouault c3a83ef5ea backport.yml: update to what QGIS uses 2020-11-21 13:11:59 +01:00
Nomit Rawat 571096201b Update utm.rst
Typo
2020-11-20 17:04:25 +01:00
Kristian Evers d9205b9245 Update list of exported symbols 2020-11-20 16:40:40 +01:00
Kristian Evers 046270a85f Remove old pj_ memory (de)allocation functions
Gone are pj_malloc, pj_calloc, pj_dalloc and pj_dealloc. Their primary
function as API memory functions in proj_api.h is no longer there and
the other use as a workaround for old errno problems is no longer valid
either.

Replaced with malloc and free across the codebase.
2020-11-20 16:40:40 +01:00
Kristian Evers 56f0ad7005 Remove pj_errno and related functions 2020-11-20 16:40:40 +01:00
Kristian Evers 43efca4ab8 Remove pj_free() and move it's functional parts to proj_destroy() 2020-11-20 16:40:40 +01:00
Kristian Evers ddb3b8da07 Removed unused function pj_set_searchpath() and pj_set_finder() 2020-11-20 16:40:40 +01:00
Kristian Evers eb04ffca4c Remove unused pj_apply_gridshift() 2020-11-20 16:40:40 +01:00
Kristian Evers 8e13c3acd8 Removed unused functions from src/utils.cpp 2020-11-20 16:40:40 +01:00
Kristian Evers a74b985b50 Remove pj_ctx_* functions and use their proj_context counterparts 2020-11-20 16:40:40 +01:00
Kristian Evers 7f79fe7325 Remove legacy file API 2020-11-20 16:40:40 +01:00
Kristian Evers 70c4c41731 Convert multistresstest to new API 2020-11-20 16:40:40 +01:00
Kristian Evers aa46197d66 Weed out proj_api.h datatypes and replace them with their proj.h counterparts 2020-11-20 16:40:40 +01:00
Kristian Evers e2dd223c56 Remove src/transform.cpp and related tests 2020-11-20 16:40:40 +01:00
Kristian Evers eb82aa83f2 Raise error when ACCEPT_USE_OF_DEPRECATED_PROJ_API_H is defined 2020-11-20 16:40:40 +01:00
Kristian Evers 9e50c8c0e2 Remove ACCEPT_USE_OF_DEPRECATED_PROJ_API_H macro 2020-11-20 16:40:40 +01:00
Kristian Evers 9419b42ade Remove proj_api.h
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed. The only exception to
this is the API migration guides which still mention the old API.

Fixes #837
2020-11-20 16:40:39 +01:00
J.H. van de Water 2cbf659bfc Replace line feed in input line by null character
As result of a modification in logging (adding a line feed),
many changes had to be made in different places of cct.cpp.
However, one missed the line feed in input to cct.
As result of missing this, the output from cct showed a
superfluous empty line after each output line, but only if
the corresponding input line ended with comment.
Replacing the LF in the "comment" string (present if the
input line ended with comment) by a null character ('\0')
solves this issue.

Modification in logging?
https://github.com/OSGeo/PROJ/commit/37da5e243191c04607597f6b8a77acfa017a5c99
( cct: revise end-of-line handling in logging, and always output debug )

See also:
https://github.com/OSGeo/PROJ/issues/1677
( cct outputs excessive whitespace comments are included in input data )
2020-11-19 11:45:47 +01:00
Even Rouault 4478eed4f5 Merge pull request #2434 from rouault/update_to_epsg_10.0.7
Database: update to EPSG v10.007
2020-11-18 18:05:53 +01:00
Even Rouault 0476db2b05 Database: update to EPSG v10.007 2020-11-18 17:19:41 +01:00
Even Rouault c560b79576 cs2cs, cct, proj and geod: fflush(stdout) after each line to emit each result as soon as it is produced
This is needed when working with pipes, when stdout is not an interactive terminal,
and thus the behaviour is to have it buffered as a regular file, whereas with
an interactive terminal, each newline character causes an implicit flush.
2020-11-17 17:27:50 +01:00
Even Rouault 7eda8aacb6 github actions: update to conda-incubator/setup-miniconda@v2 to be compatible with latest github action security fix constraints 2020-11-17 16:35:39 +01:00
Even Rouault 63f9f4e09a WKT2 parsing: several fixes related to map projection parameter units
- WKT2 grammar: accept PARAMETER[name,value,id] without unit
- Recognize "Ellipsoid scaling factor" as a parameter with a scaling unit,
  and defaults to Unity when not specified
- WKT2 parsing: implement the requirement of 18-010r7.html#80, that is
  when a map projection parameter has no explicit unit, use metre/degree/unity
  as the default unit (contrary to WKT1 parsing rules where they are deduced
  from the GeogCRS angular unit and coordinate system)
2020-11-16 14:34:33 +01:00
Even Rouault 1a98229ed2 Merge pull request #2422 from rouault/fix_polar_stere_at_pole
Polar stereographic at pole: make it return (0,0)
2020-11-12 11:46:38 +01:00
Even Rouault b38d0143a6 Polar stereographic at pole: make it return (0,0)
Due to the improved accuracy of pj_tsfn(), it no longer returns
0 when phi=90° due to the conversion in radians.
Some GDAL tests are very sensitive to the pole transforming to (0,0)
exactly, so add a special case for that.

master only
2020-11-12 00:05:31 +01:00
Even Rouault d5b0ea29b6 Merge pull request #2420 from rouault/cct_improvements
cct: allow @filename syntax
2020-11-10 15:45:20 +01:00
Even Rouault 6be4e25c66 cct: allow @filename syntax
Similarly as for projinfo, allow "cct @filename" to mean read filename and
use its content as if it was provided inline. Useful for WKT or PROJJSON

And a tiny improvements, when the object definition contains ':', only try
proj_create_from_database() if the left part (authority name) matches a known
authority, to avoid a warning.
2020-11-10 14:47:41 +01:00
Even Rouault a8be7bc87c cct.rst: fix indentation 2020-11-10 14:23:09 +01:00
Kristian Evers af342bf74c Allow cct to instantiate operations via object codes or names (#2419)
Running cct like

    cct EPSG:8366

or

    cct "ITRF2014 to ETRF2014 (1)"

is now possible.
2020-11-10 14:08:30 +01:00
Even Rouault bcfb194060 Merge pull request #2417 from rouault/refresh_COPYING
COPYING: update and install COPYING, NEWS and AUTHORS
2020-11-09 20:36:56 +01:00
Even Rouault c87ace6908 automake and cmake: install COPYING, NEWS and AUTHORS in /share/doc/proj 2020-11-06 19:32:38 +01:00
Even Rouault b56f39dec5 COPYING: update
Fixes #2415

- Change mention of PROJ.4 to PROJ
- Change 'I' pronoun to Frank Warmerdam
2020-11-06 19:32:12 +01:00
Even Rouault 848ee7b6a8 createBoundCRSToWGS84IfPossible(): make it return same result with a CRS built from EPSG code or WKT1
Related to https://github.com/OSGeo/gdal/issues/3144
2020-11-04 18:50:36 +01:00
Even Rouault 9c28184f6f Code formatting 2020-11-04 15:27:56 +01:00
Even Rouault 20c987854f docs/Makefile: restore custom 'html' target
Fixes #2408

https://github.com/OSGeo/PROJ/pull/2377 removed our customized 'html' and
.doxygen_up_to_date targets. Let's restore them
2020-11-04 06:38:35 +01:00
Kristian Evers 126445148d Fix vim regex for making github links 2020-11-03 07:15:03 +01:00
Martin Steinisch c64c209f4a Correct links to github issues in release notes from 7.1.0 to 7.2.0 2020-11-03 07:12:39 +01:00
Olli Raisa dd829c94ff cmake build: set CURL_ENABLED definition on projinfo build (#2404)
Fixes projinfo operation, when --remote-data command line option is parsed.
2020-11-02 08:25:48 +01:00
Even Rouault 3b7c3a6ad4 Merge pull request #2371 from rouault/epsg10_part2
EPSG v10 update part 2: ingest DatumEnsemble from the database
2020-11-01 18:50:58 +01:00
Even Rouault 119888b041 proj.h: add PJ_CATEGORY_DATUM_ENSEMBLE for proj_create_from_database() 2020-11-01 12:57:35 +01:00
Even Rouault 1e5acb00a0 projinfo / createObjectsFromName(): support returning a datum ensemble 2020-11-01 12:57:34 +01:00
Even Rouault c2b0dcc468 When reading from database, possibly return VerticalCRS with a DatumEnsemble
Only occurence for now is EPSG:9451 'BI height' using the
'British Isles height ensemble'
2020-11-01 12:57:34 +01:00
Even Rouault 82695cce86 When reading from database, possibly return Geographic/GeodeticCRS with a DatumEnsemble, typically for WGS 84 and ETRS89 ('breaking change') 2020-11-01 12:57:34 +01:00
Charles Karney cccd65e50d Merge pull request #2397 from cffk/merc-update
Update Mercator projection, more accurate, faster
2020-11-01 06:53:02 -05:00
Even Rouault b7bf499b84 Merge pull request #2402 from rouault/improved_comments_datum
Doxygen: improve doc of functions related to Datum/DatumEnsemble
2020-11-01 11:25:29 +01:00
Even Rouault 2d778088f1 Merge pull request #2401 from rouault/improve_remarks
Fill remarks on coordinate operations in more situations
2020-11-01 11:25:19 +01:00
Even Rouault 12274943fb Merge pull request #2400 from rouault/proj_create_ellipsoidal_2D_cs_doc_improvement
proj_create_ellipsoidal_2D/3D_cs(): doc improvement
2020-11-01 11:25:03 +01:00
Kristian Evers 42634f5d71 Switch website 'edit on GitHub' to 7.2 branch 2020-11-01 11:04:07 +01:00
Kristian Evers ed782cb37f Update version numbers in preparation for 8.0.0 release 2020-11-01 11:00:45 +01:00
Kristian Evers a7b98870d8 Merge remote-tracking branch 'osgeo/master' 2020-11-01 10:41:05 +01:00
Kristian Evers c6ede221ed Update docs for 7.2.0 release 2020-11-01 10:40:17 +01:00
Even Rouault 6e7124c8b1 Doxygen: improve doc of functions related to Datum/DatumEnsemble 2020-10-31 15:53:15 +01:00
Even Rouault 67718853e1 Fill remarks for PROJ-based operation mixing horizontal and vertical transformations 2020-10-31 15:47:52 +01:00
Even Rouault baed8dae49 Make sure that remarks is preserved when substituting (EPSG) grid name by PROJ one 2020-10-31 13:59:25 +01:00
Even Rouault c08da1a660 proj_create_ellipsoidal_2D/3D_cs(): doc improvement 2020-10-31 10:52:44 +01:00
Even Rouault 64d46a6b29 Merge pull request #2398 from hernando/japanese-geoid
Update GSIGEO2011 grid alternative to latest PROJ-data
2020-10-28 11:56:51 +01:00
Juan Hernando 2d679fd66f Update GSIGEO2011 grid alternative to latest PROJ-data 2020-10-28 08:55:43 +01:00
Charles Karney 692fc26b6d merc.cpp + phi2.cpp: Avoid declaring multiple variables in 1 statement. 2020-10-27 16:44:43 -04:00
Charles Karney 94e36270ca Use nm units in builtins.gie. Remove backward looking comments in code. 2020-10-27 10:02:27 -04:00
Charles Karney 6bd7c777f8 Fix/add some comments. 2020-10-26 19:03:26 -04:00
Charles Karney 75a8436b24 Use sincos optimization in merc_e_forward. Revised timing data...
Times per call in ns = nanoseconds.

                Fedora 31    Ubuntu 18
                g++-9.3.1    g++-7.5.0
                fwd   inv    fwd   inv
    old merc    207   461    217   522
    new merc    159   457    137   410
      etmerc    212   196    174   147

The new forward method is now 25% faster (resp 35% faster) on Fedora
31 (resp Ubuntu 18).  The new inverse method is the same speed (resp 20%
faster) on Fedora 31 (resp Ubuntu 18).

The accuracy is hardly affected: rms error increases from 0.30 nm to
0.33 nm, max error increases from 1.83 nm to 1.84 nm (a barely
noticeable degradation).
2020-10-26 18:29:19 -04:00
Charles Karney ee35d15db5 phi2.cpp: Slight cosmetic changes to sinpsi2tanphi. 2020-10-26 17:50:51 -04:00
Charles Karney 1081e496a0 lcc.cpp: fix abs -> fabs
Also some corrected information...

Timing UPDATED
--------------

Sorry the previous timing data was wrong.  Here are corrected values..

Here's what I get with g++ -O3 on two Linux machines with recent
versions of g++.  As always, you should take these with a grain of
salt.  Times per call in ns = nanoseconds.

                Fedora 31    Ubuntu 18
                g++-9.3.1    g++-7.5.0
                fwd   inv    fwd   inv
    old merc    207   461    217   522
    new merc    228   457    168   410
      etmerc    212   196    174   147

The new forward method is the 10% slower (resp 20% faster) on Fedora
31 (resp Ubuntu 18).  The new inverse method is the same speed (resp
20% faster) on Fedora 31 (resp Ubuntu 18).

Roughly speaking the speed comparison is a wash.  Maybe we should pay
attention more to the Fedora 31 results since these are with a newer
version of the compiler.  I would still make the argument that a 20%
time penalty (which in a full PROJ pipeline would probably be no more
than a 5% penalty) would be a worthwhile price to pay for a more
robust implementation of the projection.
2020-10-26 16:06:19 -04:00
Charles Karney 6c2363e88f phi2.cpp: remove unused static consts + minor code tweak 2020-10-26 14:57:52 -04:00
Charles Karney 1b484f8530 Address comments by @schwehr 2020-10-26 14:05:06 -04:00
Charles Karney b3a20c5b9c Try to fix compiler complaints for max and constexpr sqrt 2020-10-26 13:58:42 -04:00
Charles Karney 5d22d137b1 Update Mercator projection
Introduction
------------

The existing formulation for the Mercator projection is
"satisfactory"; it is reasonably accurate.  However for a core
projection like Mercator, I think we should strive for full double
precision accuracy.

This commit uses cleaner, more accurate, and faster methods for
computing the forward and inverse projections.  These use the
formulation in terms of hyperbolic functions that are manifestly odd
in latitude

    psi = asinh(tan(phi)) - e * atanh(e  * sin(phi))

(phi = latitude; psi = isometric latitude = Mercator y coordinate).
Contrast this with the existing formulation

    psi = log(tan(pi/4 - phi/2))
          - e/2 * log((1 + e * sin(phi)) / (1 - e * sin(phi)))

where psi(-phi) isn't exactly equal to -psi(phi) and psi(0) isn't
guaranteed to be 0.

Implementation
--------------

There's no particular issue implementing the forward projection, just
apply the formulas above.  The inverse projection is tricky because
there's no closed form solution for the inverse.  The existing code
for the inverse uses an iterative method from Snyder.  This is the
usual hokey function iteration, and, as usual, the convergence rate is
linear (error reduced by a constant factor on each iteration).  This
is OK (just) for low accuracy work.  But nowadays, something with
quadratic convergence (e.g., Newton's method, number of correct digits
doubles on each iteration) is preferred (and used here).  More on this
later.

The solution for phi(psi) I use is described in my TM paper and I
lifted the specific formulation from GeographicLib's Math::tauf, which
uses the same underlying machinery for all conformal projections.  It
solves for tan(phi) in terms of sinh(psi) which as a near identity
mapping is ideal for Newton's method.

For comparison I also look at the approach adopted by Poder + Engsager
in their TM paper and implemented in etmerc.  This uses trigonometric
series (accurate to n^6) to convert phi <-> chi.  psi is then given by

    psi = asinh(tan(chi))

Accuracy
--------

I tested just the routines for transforming phi <-> psi from merc.cpp
and measured the errors (converted to true nm = nanometers) for the
forward and inverse mapping.  I also included in my analysis the
method used by etmerc.  This uses a trigonometric series to convert
phi <-> chi = atan(sinh(psi)), the conformal latitude.

		forward      inverse
		max  rms     max    rms
    old merc    3.60 0.85 2189.47 264.81
      etmerc    1.82 0.38    1.42   0.37
    new merc    1.83 0.30    2.12   0.31

1 nm is pretty much the absolute limit for accuracy in double
precision (1 nm = 10e6 m / 2^53, approximately), and 5 nm is probably
the limit on what you should routinely expect.  So the old merc
inverse is considerably less accurate that it could be.  The old merc
forward is OK on accuracy -- except that if does not preserve the
parity of the projection.

The accuracy of etmerc is fine (the truncation error of the 6th order
series is small compared with the round-off error).  However,
situation reverses as the flattening is increased.  E.g., at f =
1/150, the max error for the inverse projection is 8 nm.  etmerc is OK
for terrestrial applications, but couldn't be used for Mars.

Timing
------

Here's what I get with g++ -O3 on various Linux machines with recent
versions of g++.  As always, you should take these with a grain of
salt.  You might expect the relative timings to vary by 20% or so when
switching between compilers/machines.  Times per call in ns =
nanoseconds.

               forward inverse
    old merc     121      360
      etmerc    4e-6      1.4
    new merc      20      346

The new merc method is 6 times faster at the forward projection and
modestly faster at the inverse projection (despite being more
accurate).  The latter result is because it only take 2 iterations of
Newton's method to get full accuracy compared with an average of 5
iterations for the old method to get only um accuracy.

A shocking aspect of these timings is how fast etmerc is.  Another is
that forward etmerc is streaks faster that inverse etmerc (it made be
doubt my timing code).  Evidently, asinh(tan(chi)) is a lot faster to
compute than atan(sinh(psi)).  The hesitation about adopting etmerc
then comes down to:

  * the likelihood that Mercator may be used for non-terrestrial
    bodies;

  * the question of whether the timing benefits for the etmerc method
    would be noticeable in a realistic application;

  * need to duplicate the machinery for evaluating the coefficients
    for the series and for Clenshaw summation in the current code
    layout.

Ripple effects
==============

The Mercator routines used the the Snyder method, pj_tsfn and pj_phi2,
are used in other projections.  These relate phi to t = exp(-psi) (a
rather bizarre choice in my book).  I've retrofitted these to use the
more accurate methods.  These do the "right thing" for phi in [-pi/2,
pi/2] , t in [0, inf], and e in [0, 1).  NANs are properly handled.

Of course, phi = pi/2 in double precision is actually less than pi/2,
so cos(pi/2) > 0.  So no special handling is needed for pi/2.  Even if
angles were handled in such a way that 90deg were exactly represented,
these routines would still "work", with, e.g., tan(pi/2) -> inf.

(A caution: with long doubles = a 64-bit fraction, we have cos(pi/2) <
0; and now we would need to be careful.)

As a consequence, there no need for error handling in pj_tsfn; the
HUGE_VAL return has gone and, of course, HUGE_VAL is a perfectly legal
input to tsfn's inverse, phi2, which would return -pi/2.  This "error
handling" was only needed for e = 1, a case which is filtered out
upstream.  I will note that bad argument handling is much more natural
using NAN instead of HUGE_VAL.  See issue #2376

I've renamed the error condition for non-convergence of the inverse
projection from "non-convergent inverse phi2" to "non-convergent
sinh(psi) to tan(phi)".

Now that pj_tsfn and pj_phi2 now return "better" results, there were
some malfunctions in the projections that called them, specifically
gstmerc, lcc, and tobmerc.

  * gstmerc invoked pj_tsfn(phi, sinphi, e) with a value of sinphi
    that wasn't equal to sin(phi).  Disaster followed.  I fixed this.
    I also replaced numerous occurrences of "-1.0 * x" by "-x".
    (Defining a function with arguments phi and sinphi is asking for
    trouble.)

  * lcc incorrectly thinks that the projection isn't defined for
    standard latitude = +/- 90d.  This happens to be false (it reduces
    to polar stereographic in this limit).  The check was whether
    tsfn(phi) = 0 (which only tested for the north pole not the south
    pole).  However since tsfn(pi/2) now (correctly) returns a nonzero
    result, this test fails.  I now just test for |phi| = pi/2.  This
    is clearer and catches both poles (I'm assuming that the current
    implementation will probably fail in these cases).

  * tobmerc similarly thinks that phi close to +/- pi/2 can't be
    transformed even though psi(pi/2) is only 38.  I'm disincline to
    fight this.  However I did tighten up the failure condition
    (strict equality of |phi| == pi/2).

OTHER STUFF
===========

Testing
-------

builtins.gei: I tightened up the tests for merc (and while I was about
it etmerc and tmerc) to reflect full double precision accuracy.  My
test values are generated with MPFR enabled code and so should be
accurate to all digits given.  For the record, for GRS80 I use f =
1/298.2572221008827112431628366 in these calculations.

pj_phi2_test: many of the tests were bogus testing irrelevant input
parameters, like negative values of exp(-psi), and freezing in the
arbitrary behavior of phi2.  I've reworked most for the tests to be
semi-useful.  @schwehr can you review.

Documentation
-------------

I've updated merc.rst to outline the calculation of the inverse
projection.

phi2.cpp includes detailed notes about applying Newton's method to
find tan(phi) in terms of sinh(psi).

Future work
-----------

lcc needs some tender loving care.  It can easily (and should) be
modified to allow stdlat = +/- 90 (reduces to polar stereographic),
stdlat = 0 and stdlat_1 + stdlat_2 = 0 (reduces to Mercator).  A
little more elbow grease will allow the treatment of stdlat_1 close to
stdlat_2 using divided differences.  (See my implementation of the
LambertConformalConic class in GeographicLib.)

All the places where pj_tsfn and pj_phi2 are called need to be
reworked to cut out the use of Snyder's t = exp(-psi() variable and
instead use sinh(psi).

Maybe include the machinery for series conversions between all
auxiliary latitudes as "support functions".  Then etmerc could use
this (as could mlfn for computing meridional distance).  merc could
offer the etmerc style projection via chi as an option when the
flattening is sufficiently small.
2020-10-26 12:44:18 -04:00
Kristian Evers 91a767b0cd Use correct PROJ_API_VERSION following updated procedure in HOWTORELEASE 2020-10-26 14:32:19 +01:00
Kristian Evers 16a8e74ca0 Update PROJ_API_VERSION instructions 2020-10-26 14:06:40 +01:00
Kristian Evers e1a43ab05b Update NEWS for 7.2 release 2020-10-26 11:59:31 +01:00
Kristian Evers 37b645059c Update man-pages from Sphinx-docs 2020-10-26 11:02:11 +01:00
Kristian Evers 3bd548d816 Bump ABI version numbers for 7.2 release 2020-10-26 10:42:18 +01:00
Even Rouault 8e4399f668 build_esri_projection_mapping.py: use symbolic name EPSG_NAME_METHOD_COLOMBIA_URBAN 2020-10-26 00:31:13 +01:00
Even Rouault 177143442a Merge pull request #2396 from nyalldawson/notes
Remove 'Local' from list of unsupported ESRI projections
2020-10-26 00:18:22 +01:00
Even Rouault 8850bcb275 Map ESRI IGAC_Plano_Cartesiano to EPSG Colombia Urban (refs #2395) 2020-10-26 00:17:13 +01:00
Nyall Dawson 619994e2b8 Remove 'Local' from list of unsupported ESRI projections 2020-10-26 08:23:52 +10:00
Even Rouault a1513668db Merge pull request #2395 from rouault/colombia_urban
Add +proj=col_urban projection, implementing a EPSG projection method used by a number of projected CRS in Colombia (fixes #589)
2020-10-25 22:19:42 +01:00
Even Rouault 4559a3f702 Add +proj=col_urban projection, implementing a EPSG projection method used by a number of projected CRS in Colombia (fixes #589) 2020-10-25 21:17:29 +01:00
Even Rouault 6476108774 Fix issues spotted by cppcheck 2020-10-25 19:18:06 +01:00
Even Rouault 9f2500e74e More typo fixes 2020-10-25 16:24:37 +01:00
Even Rouault d0f552bd4d scripts/fix_typos.sh: adjust qgis.txt for our script 2020-10-25 16:24:31 +01:00
Even Rouault 64312b3367 Fix typos spotted by scripts/fix_typos.sh 2020-10-25 16:18:58 +01:00
Even Rouault 32f92851c0 projsync: fix --list-files to be compatible with filtering options 2020-10-24 21:18:51 +02:00
Even Rouault 4e95a04f1b triangulation.schema.json: add a 'name' member in 'extent' 2020-10-24 20:57:03 +02:00
Even Rouault 99a84ae742 triangulation.schema.json: add an 'extent' member 2020-10-24 19:45:09 +02:00
Even Rouault 99152afb0b Database: move NZGD2000 deformation model from customizations.sql to new other_tranformation_custom.sql 2020-10-24 17:39:52 +02:00
Even Rouault 469520cbc8 grid_checks.py: rename variables / messages to proj-data 2020-10-24 17:27:33 +02:00
Even Rouault eb1eee51ab Merge pull request #2393 from hernando/japanese-geoid
Added transformation from JGD2011 Geographic 3D to JGD2011 height using GSIGEO2011
2020-10-24 17:14:35 +02:00
Juan Hernando 3fc4b3d4a9 Added transformation from JDG2011 geog 3D to JGD2011 height using GSIGEO2011 2020-10-24 16:37:56 +02:00
Juan Hernando 0b86cc9bce Sort grid_alternatives.sql by agency alphabetically 2020-10-24 16:13:15 +02:00
Charles Karney f27c3d3c2e Merge branch 'master' of github.com:OSGeo/PROJ 2020-10-23 15:32:44 -04:00
Charles Karney f0458a9c79 Minor fixes to tmerc documentation 2020-10-23 15:32:35 -04:00
Even Rouault 2dabb14ec8 Merge pull request #2392 from rouault/fi_nls_tins
Database (and tweaks in core): Add Finland tinshift operations
2020-10-23 19:03:23 +02:00
Even Rouault e30be68ce1 Database: add Finland tinshift operations 2020-10-23 17:44:51 +02:00
Even Rouault 06162ef3cc PROJStringFormatter::getUsedGridNames(): recognize +file= parameter of operation +proj=tinshift 2020-10-23 17:44:29 +02:00
Even Rouault 19b4bba25c Add logic to handle interpolationCRS in PROJBasedOperation and ConcatenatedOperation 2020-10-23 17:44:07 +02:00
Even Rouault ef443bdf0e Database: add interpolation_crs_auth_name and interpolation_crs_code columns to other_transformation table 2020-10-23 17:42:39 +02:00
Charles Karney 30e0b09275 Merge pull request #2388 from cffk/merc-doc-update
Improve the documentation for the Mercator projection
2020-10-23 09:10:09 -04:00
Charles Karney f472a97490 merc.rst: change "origins from 15th cent" to 16th cent. 2020-10-23 08:20:17 -04:00
Even Rouault e6a992b599 AuthorityFactory::createCoordinateOperation(): correctly compute accuracy of concatenated operation when there is a conversion step 2020-10-23 14:17:13 +02:00
Even Rouault 03bede92da Merge pull request #2390 from rouault/db_interleave_usage
Database: for clarity, put usage records after the object they are for
2020-10-23 13:27:57 +02:00
Even Rouault b45891d778 Database: for clarity, put usage records after the object they are for 2020-10-23 12:11:30 +02:00
Even Rouault aaa159247b Merge pull request #2389 from rouault/wkt_parse_implict_compound_crs_esri
WKT1_ESRI: fix import and export of CompoundCRS
2020-10-23 10:28:05 +02:00
Even Rouault 6351422cc2 WKT1_ESRI export: try to export Geographic3D and Projected3D CRS when we can find a corresponding ellipsoidal vertical datum 2020-10-23 00:03:40 +02:00
Even Rouault 4969076c15 Database: import ESRI VERTCS that uses a (geodetic) datum to express ellipsoidal height 2020-10-23 00:03:40 +02:00
Even Rouault 9a11293155 WKT1_ESRI export: generate VERTCS[...,DATUM[...,SPHEROID[]] syntax when ellipsoidal height is found 2020-10-23 00:03:29 +02:00
Even Rouault 82cd218a7a WKT1_ESRI export: export CompoundCRS as PROJCS[...],VERTCS[...] or GEOGCS[...],VERTCS[...] 2020-10-22 21:22:43 +02:00
Even Rouault f2cd2b3b99 WKT parser: accept ESRI VERTCS[...,DATUM[...,SPHEROID[]] syntax to express ellipsoidal heights 2020-10-22 21:13:03 +02:00
Charles Karney 5b72015b0a merc.rst: revert to ln instead of log.
Also define merc (resp. tmerc) as the conformal projection in which the
equator (resp. a chosen meridan} projects to a straight line at constant
scale.
2020-10-22 13:53:45 -04:00
Even Rouault 698e51f476 WKT parser: accept implicit compoundCRS from ESRI WKT, like "PROJCS[...],VERTCS[...]" 2020-10-22 19:34:23 +02:00
Even Rouault 4fa0c250c1 WKTParser::createFromWKT(): minor adjustement for DATUM[],PRIMEM[] constructs
The WKT parser on the second part was called with "RIMEM[...]" (leading P skipped),
which has no visible consequence, as we didn't care about the actual value of the
keyword due to how we used it. But this is better fixing that.

Only applies to recent master changes.
2020-10-22 18:15:39 +02:00
Charles Karney 02ef4ed32e Flesh out the documentation for Mercator
This addresses item 1 in issue #2387

Things to note:

* I made "editorial" changes to the text.  The virtues and vices of
  Mercator are a hot topic.  So check these out.  (I judged that the
  text I replaced to be pretty misleading.)

* I include the radius of the sphere/ellipsoid in the formulas (and I
  did this also for my mods for tmerc documentation).  Surely this is
  better than leaving the reader to figure out how this is introduced.

* I include the "old-style" (ca 18th century) formulas and the newer
  ones in terms of hyperbolic functions.  The former may be the familiar
  ones, but the latter are better for computation (more succinct, more
  accurate, faster, preserve parity).

* For the inverse ellipsoidal transformation, I just say that the
  formula for psi is inverted iteratively.  This is probably sufficient,
  but it could be expanded later.
2020-10-22 11:01:29 -04:00
Even Rouault b61a1d0575 Merge pull request #2386 from rouault/improve_compoundcrs_identification
Improve CompoundCRS identification and name morphing in VerticalCRS with ESRI WKT1
2020-10-21 11:41:51 +02:00
Even Rouault 31f272708e VerticalCRS: morph CRS and datum name using ESRI aliases on import from / export to WKT1:ESRI 2020-10-20 21:51:45 +02:00
Even Rouault 45c819b69f Improve identification of compound CRS from ESRI WKT1, and for compound CRS whose result is not in the DB but whose horiz and vertical parts are known 2020-10-20 21:14:30 +02:00
Even Rouault 6b8ef545c4 projinfo: make '-q -o WKT1:ESRI' work 2020-10-20 20:37:49 +02:00
Even Rouault d18c1972df Orthographic projection: do not add f=0 to PROJ string if the ellipsoid is a sphere (fixes GDAL PDS4 tests) 2020-10-20 14:43:57 +02:00
Even Rouault a8ca9b4b9f test_c_api.cpp: reformat 2020-10-20 14:43:22 +02:00
Even Rouault 5180f5ceb3 Merge pull request #2363 from rouault/reactivate_s390x
.travis.yml: re-enable s390x and add arm64
2020-10-20 12:12:29 +02:00
Alan D. Snow 084f5f6cb3 C API: add proj_context_clone() (#2383)
Fixes #2382
2020-10-19 17:20:27 +02:00
Charles KarneyandCharles Karney 85137d9354 Document the default poder_engsager algorithm for tmerc. (#2379)
* Document the default poder_engsager algorithm for tmerc.

* Give exact expression for phi' in terms of phi

* Aadd another datapoint on range of applicability + explanation for
complex numbers.

* Update tmerc figure with one reflecting poder/engsager algo.

Courtesy of @hobu.

Co-authored-by: Charles Karney <charles.karney@sri.com>
2020-10-18 23:36:24 +02:00
Even Rouault 2357d264d4 Merge pull request #2381 from rouault/fix_1453
Add multi-line PROJ string export capability, and use it by default in projinfo (unless --single-line is specified) (fixes #1543)
2020-10-18 18:42:31 +02:00
Even Rouault 3a2df3462c CompoundCRS with ellipsoidal height: make sure the vertical axis has 'ellipsoid height' as name and 'h' as abbreviation 2020-10-17 22:41:55 +02:00
Even Rouault ffe1922d54 travis/install.sh: make output less verbose to hopefully avoid log size limitation on Mac 2020-10-16 18:49:58 +02:00
Even Rouault d981e01e3f projinfo: restrict PROJ multiline output to coordinate operations only 2020-10-16 18:49:58 +02:00
Even Rouault 53e716f80f projinfo.rst: fix typo 2020-10-16 18:49:58 +02:00
Even Rouault 149366116a Add multi-line PROJ string export capability, and use it by default in projinfo (unless --single-line is specified) (fixes #1543) 2020-10-16 18:49:58 +02:00
Even Rouault 82b496fb32 Merge pull request #2370 from rouault/epsg10
Update to EPSG 10.003 and make code base robust to dealing with WKT CRS with DatumEnsemble
2020-10-16 18:26:09 +02:00
Even Rouault 93508fbec1 Merge pull request #2378 from rouault/enable_gigs_5104
test/gigs: 5104 is passing now. Enable it
2020-10-15 11:28:33 +02:00
Even Rouault 3f575aec77 test/gigs: 5104 is passing now. Enable it 2020-10-15 10:56:43 +02:00
Howard Butler a762daddb5 Plot building Github Action (#2377)
* implement conda package building

* paths

* need libtool

* PLATFORM check

* point to my PROJ feedstock for now

* point to PROJ repos

* plot building and artifact upload

* syntax

* add proj conda package for plotting

* retab

* no doxygen

* syntax

* update docs Makefile

* doc building

* needs

* consolidate doc/plots

* plot updates

* put updated plot output into docs

* register spelling module

* use v2 download-artifact

* artifact upload
2020-10-14 14:40:42 -05:00
Howard Butler bb7dde0752 Add Conda package GitHub Action (#2373)
* implement conda package building

* paths

* need libtool

* PLATFORM check

* point to my PROJ feedstock for now

* point to PROJ repos
2020-10-14 12:30:50 -05:00
Even Rouault 686713479e C API: add proj_dynamic_datum_get_frame_reference_epoch() 2020-10-11 20:13:42 +02:00
Even Rouault d1a0d95da5 Database query: add AuthorityFactory::ObjectType::DYNAMIC_GEODETIC_REFERENCE_FRAME and DYNAMIC_VERTICAL_REFERENCE_FRAME, and make corresponding C API work 2020-10-11 20:01:29 +02:00
Even Rouault ad80dc88a7 Database: add a frame_reference_epoch column in vertical_datum to be able to handle dynamic vertical datums, and instanciate them properly from database 2020-10-11 19:50:09 +02:00
Even Rouault 9751f31ca9 Merge pull request #2372 from rouault/datum_with_pm
WKT2:2019 import/export: handle DATUM (at top level object) with PRIMEM
2020-10-10 15:38:54 +02:00
Even Rouault 5163741254 WKT2:2019 import/export: handle DATUM (at top level object) with PRIMEM
This is a peculiarity of the WKT grammar. Despite ISO 19111 saying that the
prime meridian is a component of the datum, in WKT, they are placed at the
same level, for backward compatibility with earlier WKT versions. So handle
exporting and importing that. The fix is only for situation where DATUM is
the top level object (was working fine otherwise), which is a uncommon use
case. And to limit the amount of issue, on export emit the prime meridian only
if it is not Greenwich.
2020-10-10 14:23:50 +02:00
Even Rouault a5dd7bbb85 Merge pull request #2369 from rouault/fix_2368
promoteTo3D(): add a remark with the original CRS identifier (fixes #2368)
2020-10-09 16:05:59 +02:00
Even Rouault d83c7af5ee projinfo: fix usage formatting 2020-10-09 01:43:32 +02:00
Even Rouault f0f9ec43e5 promoteTo3D(): add a remark with the original CRS identifier (fixes #2368)
```
$ projinfo EPSG:32631 --3d

WKT2:2019 string:
PROJCRS["WGS 84 / UTM zone 31N",
[ ...snip ]
    REMARK["Promoted to 3D from EPSG:32631"]]
```
2020-10-08 18:06:50 +02:00
Even Rouault acd1cf3278 Make GeographicCRS::is2DPartOf3D() work with DatumEnsemble 2020-10-08 17:31:57 +02:00
Even Rouault 67af1d5741 Make proj_create_crs_to_crs() / cs2cs work with CRS with DatumEnsemble 2020-10-08 17:31:57 +02:00
Even Rouault f147821920 Add C API to work with datum ensemble
Add:
- proj_crs_get_datum_ensemble()
- proj_crs_get_datum_forced()
- proj_datum_ensemble_get_member_count()
- proj_datum_ensemble_get_accuracy()
- proj_datum_ensemble_get_member()

Make proj_create_geographic_crs_from_datum() and
proj_create_geocentric_crs_from_datum() accept a datum ensemble.
2020-10-08 17:31:57 +02:00
Even Rouault 4049f4cc96 createGeodeticCRS(): more DatumEnsemble compatibility in the case when creating from text_definition 2020-10-08 17:31:57 +02:00
Even Rouault 492c95ce77 Make createOperations() work with DatumEnsemble 2020-10-08 17:31:57 +02:00
Even Rouault 53672bdf70 Make CRS identification work with CRS with DatumEnsemble 2020-10-08 17:31:56 +02:00
Even Rouault 9dc3bf503b Add DatumEnsemble::asDatum() and use it in exportToWkt()
to allow exporting DatumEnsemble to WKT < 2019.
2020-10-08 17:31:56 +02:00
Even Rouault b5369cc79e Add a AuthorityFactory::createDatumEnsemble() method, and make it inherit from ObjectUsage
as mandated by ISO 19111:2019
2020-10-08 17:31:56 +02:00
Even Rouault fece8a6c6e Database: add aliases for 'old' names of WGS84 and ETRS89 datums, and remove one hack 2020-10-08 17:31:56 +02:00
Even Rouault e51a7db2bd Database: avoid importing duplicated alias names 2020-10-08 17:31:55 +02:00
Even Rouault ff9a386c72 Database: import datum ensemble accuracy and members (but do not use them) 2020-10-08 17:31:55 +02:00
Even Rouault ecf9cf0d97 getCRSInfoList(): make it use area description 2020-10-08 17:31:54 +02:00
Even Rouault 3ed9a613d8 Database: use extended description for extent/area of use, as done by epsg.org WKT export 2020-10-08 17:31:50 +02:00
Even Rouault 2cfdd6f7fc Database: instanciate DynamicGeodeticReferenceFrame (things like ITRFxxx, WGS 84 (Gxxxx), etc.) when possible 2020-10-06 23:48:52 +02:00
Even Rouault 4c992038ea Database: add a reference_frame_epoch column to the geodetic_datum for dynamic datums, but not yet used 2020-10-06 23:48:52 +02:00
Even Rouault a9b6f39494 Database: "minimal" update to EPSG v10.003
Content mostly unchanged since v9.9

This update is "minimal" in that it mostly reflects the removal of the 'area'
table, replaced now by 'extent', 'scope' and 'usage'

Other new aspects of EPSG v10 are left aside.
2020-10-06 23:48:52 +02:00
Even Rouault 7cec30b85e Merge pull request #2366 from rouault/fix_reference_exported_symbols
Update scripts/reference_exported_symbols.txt and fix checking of them in travis/install.sh
2020-10-06 23:32:39 +02:00
Even Rouault 80c00d2727 Update scripts/reference_exported_symbols.txt and fix checking of them in travis/install.sh 2020-10-06 22:55:23 +02:00
Even Rouault f9c17392ad Merge pull request #2365 from rouault/bound_crs_to_wgs84_vertcrs
proj_crs_create_bound_crs_to_WGS84(): make it work on verticalCRS/compoundCRS such as EPSG:4326+5773 and EPSG:4326+3855
2020-10-05 21:02:32 +02:00
Even Rouault a227423cda proj_crs_create_bound_crs_to_WGS84(): make it work on verticalCRS/compoundCRS such as EPSG:4326+5773 and EPSG:4326+3855 2020-10-05 18:14:53 +02:00
Even Rouault 390d1ee101 Merge pull request #2364 from rouault/fix_issue_NAD83_NAD83_2011
createOperations(): several fixes affecting NAD83 -> NAD83(2011)
2020-10-05 11:32:22 +02:00
Even Rouault 7f7f2921ad createOperations(): avoid elimination of ballpark transformation that can help for NAD83->WGS84->NAD83(2011) hops 2020-10-02 23:58:08 +02:00
Even Rouault cd00bd6d0c createOperations(): when combining transformations, reject those with a non-intersecting area of validity 2020-10-02 23:57:18 +02:00
Even Rouault d00b2bdec0 CoordinateOperation: fix issue with ballpark flag not being copied with shallowClone() which affected result sorting 2020-10-02 21:52:33 +02:00
Even Rouault 3feddc89cb .travis.yml: add a arm64 platform 2020-10-02 11:05:51 +02:00
Even Rouault c939d1f9c5 Revert ".travis.yml: disable s390x target since Travis-CI infra is KO regarding this"
This reverts commit 11d2e04051.

This is now stable again
2020-10-02 11:02:28 +02:00
Even Rouault 1cd25bb01d Merge pull request #2361 from rouault/ortho_ellipsoidal
Implement ellipsoidal formulation of +proj=ortho (fixes #397)
2020-09-30 13:37:40 +02:00
Even Rouault 48c3a9a225 Merge pull request #2344 from rouault/tinshift
Add a +proj=tinshift for triangulation-based transformations
2020-09-30 13:37:21 +02:00
Even Rouault 164c85cc8e Add a +proj=tinshift for triangulation-based transformations
Implements RFC-6
2020-09-30 11:26:48 +02:00
Even Rouault 016e8e6074 ortho.cpp: more precise reference to guidance note 2020-09-30 11:17:13 +02:00
Kristian Evers 63541cc268 Merge pull request #2362 from rouault/tmerc_tidy_setup
tmerc: setup_exact(): do not recompute third flattening already available as P->n
2020-09-30 10:32:50 +02:00
Even Rouault 713a5ad61b tmerc: setup_exact(): do not recompute third flattening already available as P->n 2020-09-27 19:43:46 +02:00
Even Rouault 5e7d58ec69 Ortho ellipsoidal inverse: improve accuracy in polar case with (x,y) close to (0,0) 2020-09-27 16:19:56 +02:00
Even Rouault fedeeec68f Ortho ellipsoidal inverse: add domain check for oblique case, and slighly improve initial guessing 2020-09-27 13:51:15 +02:00
Even Rouault b04894819e Ortho ellipsoidal inverse: add non iterative implementations for polar and equatorial 2020-09-26 19:07:55 +02:00
Even Rouault 3d88b6fc89 Ortho: add visibility condition for ellipsoidal case. Credits to @cffk 2020-09-26 18:55:25 +02:00
Even Rouault 2e104e0925 Implement ellipsoidal formulation of +proj=ortho (fixes #397)
- Map ESRI 'Local' to +proj=ortho when Scale_Factor = 1 and Azimuth = 0
- Map ESRI 'Orthographic' to a PROJ WKT2 'Orthographic (Spherical)'
  which maps to +proj=ortho +f=0 to froce spherical evaluation
2020-09-26 11:09:23 +02:00
Even Rouault 485509f3b3 build_db.py: fix previous commit (those files were transient only) 2020-09-24 16:43:10 +02:00
Even Rouault 4376e2233b build_db.py: remove unneeded files 2020-09-24 16:13:56 +02:00
Howard Butler ae2f258a94 update Dockerfile for osgeo/proj-docs to include spell checking 2020-09-22 15:36:16 +02:00
Even Rouault 81aaa47b4e Merge pull request #2357 from rouault/fix_2356
Adjust createBoundCRSToWGS84IfPossible() and operation filtering (for POSGAR 2007 to WGS84 issues) (fixes #2356)
2020-09-18 13:31:36 +02:00
Even Rouault 75074ce863 createOperations(): tune sorting of transformations so that the ones with greater 'version numbers' are prefered over other ones, when all other comparison criteria are equal. Helps with Amersfoort RD New to EPSG:4326 2020-09-17 19:46:07 +02:00
Even Rouault aeb024f2df Adjust createBoundCRSToWGS84IfPossible() and operation filtering (for POSGAR 2007 to WGS84 issues) (fixes #2356)
- We make createBoundCRSToWGS84IfPossible() more restrictive. If there are more
  than one Helmert transformation from the CRS to WGS 84 covering the area of
  use of the CRS, we do not create a BoundCRS / +towgs84
- In createOperations() filtering, we are less aggressive in discarding operations
  that have the same area of use but worse accuracy. We do it only if they involve
  more transformation steps.

We now get:
```
$ projinfo EPSG:5340 -o PROJ
PROJ.4 string:
+proj=longlat +ellps=GRS80 +no_defs +type=crs

$ projinfo -s EPSG:5340 -t EPSG:4326 --spatial-test intersects --summary
Candidate operations found: 2
EPSG:9264, POSGAR 2007 to WGS 84 (2), 0.5 m, Argentina
EPSG:5351, POSGAR 2007 to WGS 84 (1), 1.0 m, Argentina
```
2020-09-17 18:36:22 +02:00
Even Rouault 1e11bf646d projjson.schema.json: indicate v0.2.1 (refs #2354) 2020-09-17 13:31:20 +02:00
Even Rouault 339f1e57d3 projjson.schema.json: update to reflect that prime_meridian.longitude can just be a number, in which case the unit is implicitly degrees (fixes #2354) 2020-09-17 00:19:24 +02:00
Even Rouault e3905b559a Merge pull request #2353 from rouault/fix_2352
proj_trans(): reset errno before attemptying a retry with a new coordinate operation (fixes #2352)
2020-09-11 11:49:44 +02:00
Even Rouault eedfc8908d proj_trans(): reset errno before attemptying a retry with a new coordinate operation (fixes #2352) 2020-09-10 21:17:14 +02:00
Even Rouault ed32f8e4f4 Merge pull request #2351 from rouault/update_to_epsg_9_9
Database: update to EPSG 9.9
2020-09-10 12:14:08 +02:00
Even Rouault ca7f41d0c4 Merge pull request #2350 from rouault/ogc_crs27_crs83
Database: add OGC:CRS27 and OGC:CRS83 CRS entries for NAD27 and NAD83 in longitude, latitude order
2020-09-09 22:41:00 +02:00
Even Rouault 9436c84196 Map EPSG:1083 'Geog3D to Geog2D+Vertical (AUSGeoid v2)' method to +proj=vgridshift 2020-09-09 22:29:19 +02:00
Even Rouault b69aa99cab Database: update to EPSG 9.9 2020-09-09 22:28:41 +02:00
Even Rouault eb2705fb93 Database: add OGC:CRS27 and OGC:CRS83 CRS entries for NAD27 and NAD83 in longitude, latitude order 2020-09-08 13:21:07 +02:00
Even Rouault 7c2718623d Merge pull request #2347 from saprykin/master
Fix compiling warnings when using GCC 4.8.x
2020-09-04 18:30:24 +02:00
Alexander Saprykin 97f06e4c5e Fix compiling warnings when using GCC 4.8.x 2020-09-04 14:50:16 +02:00
Alan D. Snow 50bf1180df DOC: Fix reference to proj_get_codes_from_database in proj_get_crs_info_list_from_database docstring (#2345) 2020-09-04 08:35:45 +02:00
Even Rouault 252bb9d461 Merge pull request #2283 from rouault/rfc6_text
Add RFC-6 text: triangulation-based transformations
2020-09-02 12:52:16 +02:00
Even Rouault 30bfb38c0a Add RFC-6 text 2020-09-02 11:58:49 +02:00
Even Rouault af2ab20b50 Doc: document members of C structures generated from Doxygen 2020-09-02 11:12:39 +02:00
Kristian Evers ff25c66351 Update docs for 7.1.1 release
Conflicts:
	docs/source/conf.py
2020-09-01 16:20:09 +02:00
Javier Jimenez Shaw f38c54e7fb fix typo in Canary Islands 2020-09-01 16:18:28 +02:00
Kristian Evers 55addc07a0 Update NEWS for 7.1.1 2020-09-01 16:18:15 +02:00
Kristian Evers 310fa2ce67 docs: Document missing members of PJ_COORD 2020-08-31 13:33:52 +02:00
Even Rouault ef48acb4ab Merge pull request #2342 from rouault/proj_create_vertical_crs_ex_accuracy
proj_create_vertical_crs_ex(): add a ACCURACY option to provide an explicit accuracy, or derive it from the grid name if it is known
2020-08-26 20:10:22 +02:00
Even Rouault 138555c249 proj_create_vertical_crs_ex(): add a ACCURACY option to provide an explicit accuracy, or derive it from the grid name if it is known 2020-08-26 00:18:36 +02:00
Even Rouault 683d3097ff lcc: avoid harmless division by zero in untypical case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24442 2020-08-23 18:11:43 +02:00
Even Rouault 403bd8b267 createObjectsFromName(): add back case insensitivity when comparing names
Fixes #2332
Didn't affect released versions
2020-08-21 08:46:38 +02:00
Even Rouault b104bc7afb Helmert: fix regression when rotation terms are 0, but scale is not
Fixes #2333
Was due to 3dc92ad701
Doesn't affect released versions
2020-08-21 08:45:47 +02:00
Alan D. Snow bc1dcf2cd5 projCtx_t: Copy ini file settings, proj4_init_rules, etc.. when initializing context from global (#2331) 2020-08-20 17:48:40 +02:00
Even Rouault 2b3475c853 Code reformatting 2020-08-19 16:31:27 +02:00
Even Rouault 846455f958 Merge pull request #2329 from snowman2/ensure_cpp_context
Add methods to projCtx_t for safer interactions with cpp_context
2020-08-19 16:19:40 +02:00
snowman2 8c41cfc3a7 Add methods to ensure safer interactions with cpp_context 2020-08-19 08:06:18 -05:00
Alan D. Snow 84713021ed Clone projCppContext context when copying projCtx_t (#2324) 2020-08-19 15:02:42 +02:00
Even Rouault 62ad09fe02 Revert compiler generated Fused Multiply Addition optimized routines (#2327)
Fixes #2326

Partially reverts commit b84c9d0cb6 to
remove the use of the gcc 6 mechanism of generated multiple versions of
functions with different optimization flags, which was found to causes
crashes when dlopen'ing PROJ on CentOS 7.8 with gcc 8.3.1
2020-08-19 14:25:28 +02:00
Alan D. Snow e1dc2d5516 ENH: Add support for custum CA Bundle path (#2323)
Fixes #2320
2020-08-16 12:30:58 +02:00
Even Rouault b8c198897d WKT importer: tune for Oracle WKT and 'Lambert Conformal Conic' (#2321)
Fixes https://github.com/qgis/QGIS/issues/37898
2020-08-13 18:06:22 +02:00
Kristian Evers 9701afb98c cs2cs/cct docs: Align versionadded directives correctly for -d option 2020-08-13 12:22:53 +02:00
Even Rouault 6f78d5604e WKT parser: avoid null pointer dereference on corrupted WKT
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24809
2020-08-11 09:51:05 +02:00
Even Rouault 56bacd3dc9 ProjectedCRS::identify(): fix to be able to identify EPSG:2154 as a candidate for 'RGF93_Lambert_93' (contributes to fixes https://github.com/qgis/QGIS/issues/32255) (#2315) 2020-08-07 17:22:31 +02:00
Javier Jimenez Shaw 916026cc34 Fix url for CDN GitHub project (#2313) 2020-08-06 13:36:58 +02:00
Even Rouault 17827338d0 Merge pull request #2312 from jjimenezshaw/add-canary-islands-geoid
Add Canary Islands geoid file
2020-08-06 11:19:08 +02:00
Javier Jimenez Shaw ca1a6ab916 add Canary Islands geoid file in grid_alternatives.sql 2020-08-05 12:58:58 +02:00
Even Rouault 14f868d922 Merge pull request #2309 from rouault/update_to_epsg_9_8_15
Database: update to EPSG v9.8.15 database
2020-08-03 11:40:09 +02:00
6d6229ca7b Database: update to EPSG v9.8.15 database
Co-authored-by: jmckenna <jmckenna@gatewaygeomatics.com>
Co-authored-by: Javier Jimenez Shaw <j1@jimenezshaw.com>
Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2020-08-02 12:18:11 +02:00
Even Rouault 53abcb0425 PROJ CRS string ingestion: fix typo in identification of projection steps (fixes #2307) 2020-07-30 17:42:27 +02:00
Even Rouault 9488a7264a Merge pull request #2304 from rouault/fix_helmert_2D
Helmert 2D: do not require a useless convention= parameter
2020-07-24 16:00:47 +02:00
Even Rouault 886499e3a2 Helmert 2D: do not require a useless convention= parameter 2020-07-24 15:22:53 +02:00
Even Rouault 062c7f160f Transverse Mercator South Orientated: restrict export to PROJ string to cases where false_easting and false_northing are 0 2020-07-09 15:45:28 +02:00
Even Rouault 668fb0aacd Merge pull request #2300 from rouault/krovak_czech
PROJ string export of +proj=krovak +czech: make sure we export +czech…
2020-07-09 11:50:44 +02:00
Even Rouault 24624869b4 Merge pull request #2298 from rouault/gh_workflows_doc_build
Move doc building (without deployment) to github action
2020-07-09 00:12:32 +02:00
Even Rouault 5c9bd6e722 PROJ string export of +proj=krovak +czech: make sure we export +czech instead of +axis=swu (fixes #2299) 2020-07-09 00:11:28 +02:00
Even Rouault cf3caffd45 formatting fix 2020-07-08 23:47:59 +02:00
Even Rouault b5e13c2118 github workflows: add a workflow for doc building 2020-07-08 16:50:06 +02:00
Even Rouault dd38200142 travis/osx/before_install.sh: remove most brew actions and doc building
Brew is just to unstable
2020-07-08 16:35:58 +02:00
Even Rouault 08f287dc5d Merge pull request #2294 from dg0yt/mingw
CMake build: Check "target_clones" before use
2020-07-08 13:11:05 +02:00
Even Rouault 35468fd4f7 travis/osx/before_install.sh: fix related to installing python (#2295) 2020-07-07 23:14:33 +02:00
Kai Pastor 7ab3ee7370 CMake build: Check "target_clones" before use
gcc's "target_clones" and "ifunc" function attributes rely on
extensions to the ELF standard. Using them on MinGW causes "error:
the call requires 'ifunc', which is not supported by this target".
Amends 5396b72.
2020-07-07 21:04:16 +02:00
Even Rouault 7cfde8d0b3 Merge pull request #2274 from snowman2/pjtype
ENH: Added temporal, engineering, and parametric datum PJ_TYPE enumerations
2020-07-06 11:25:59 +02:00
Even Rouault b8fef0901b C API: missing a few SANITIZE_CTX() in entry points (#2292)
Found when investigating https://github.com/OSGeo/gdal/issues/2744
but the root cause of the GDAL issue is different.
2020-07-04 18:31:10 +02:00
Even Rouault c859c40dae Doc: improve cs2cs doc by mentionning possibility to use EPSG CRS names (#2290) 2020-07-03 11:18:29 +02:00
Even Rouault 66d5ffd529 Parse '+proj=something_not_latlong +vunits=' without +geoidgrids as a Projected3D CRS and not a compound CRS with a unknown datum (fixes #2287) (#2288) 2020-07-02 15:05:12 +02:00
anbj 6458c7cf2e improve cmake instructions (#2278) 2020-07-02 20:27:49 +12:00
Even Rouault becef63fbc news.rst: fix version number 2020-07-01 16:21:15 +02:00
Even Rouault f80567bf31 PROJ 7.1.0 NEWS and release notes: add missing mention of +proj=defmodel 2020-07-01 15:19:28 +02:00
Even Rouault ab2acccadf Doc: add alias in pages of transformation methods 2020-07-01 15:13:41 +02:00
anbj ce952dbe58 Doc: add projsync info (#2279) 2020-07-01 14:28:25 +02:00
Even Rouault 75ab93d19c Database: register Brazil' grids (refs https://github.com/OSGeo/PROJ-data/pull/39) (#2277) 2020-07-01 14:15:05 +02:00
Even Rouault c99cfa8ee7 WKT parser: do not raise warning when parsing a WKT2:2015 TIMECRS whose TIMEUNIT is at the CS level, and not inside (#2276)
Adresses testTemporal() and testCompoundWithTime() cases of
https://github.com/OSGeo/PROJ/issues/2275#issuecomment-650765730
2020-07-01 14:14:24 +02:00
Even Rouault 42cd771306 Update version numbers 2020-07-01 13:04:47 +02:00
Kristian Evers bb15481e66 Post release updates (#2270)
* Minor updates to HOWTO-RELEASE

* Update webpage for 7.1.0 release
2020-07-01 12:40:35 +02:00
snowman2 71ddcf9757 move new enums to bottom 2020-06-27 08:06:42 -05:00
snowman2 ed1eb90ef3 ENH: Added temporal, engineering, and parametric datum PJ_TYPE enumerations 2020-06-26 20:22:50 -05:00
Kristian Evers 0a995bb421 Mention new API function deprecations 2020-06-24 21:26:17 +02:00
Even Rouault d989bf3919 ESRI WKT: correctly map 'Goode Homolosine' from ESRI:54052 (resp. 54053) to 'Interrupted Googe Homolosine' (resp. 'Interrupted Googe Homolosine Ocean') 2020-06-24 17:19:16 +02:00
Even Rouault f40ab9fd0b c_api.cpp: code reformating 2020-06-24 17:06:12 +02:00
Alan D. Snow b8c2a2dba1 Replace assert with errors in c_api.cpp when some preconditions are not met (#2269)
Closes #2268
2020-06-24 15:22:56 +02:00
529 changed files with 113100 additions and 66636 deletions
-20
View File
@@ -1,20 +0,0 @@
name: Backport
on:
pull_request:
types:
- closed
- labeled
jobs:
backport:
runs-on: ubuntu-18.04
name: Backport
steps:
- name: Backport Bot
if: contains( join(github.event.pull_request.labels.*.name), 'backport')
uses: Gaurav0/backport@v1.0.24
with:
bot_username: PROJ-BOT
bot_token: c1c49a5799d0a3a3885db8a4792880cbe509c1d6
bot_token_key: b01bdebf64595ed77207019258316df1b05ff6ac
github_token: ${{ secrets.GITHUB_TOKEN }}
+7 -1
View File
@@ -93,11 +93,12 @@ install_manifest.txt
/data/stlrnc
/data/stpaul
/data/tv_out
/data/for_tests/
# docs
tmp_breathe
/docs/.doxygen_up_to_date
/docs/build
/docs/plot/images
/latex
# m4
@@ -117,6 +118,7 @@ m4/lt~obsolete.m4
/src/proj_config.h
/src/proj_config.h.in
/src/projinfo
/src/projsync
/src/stamp-h1
/src/test-suite.log
@@ -130,6 +132,10 @@ m4/lt~obsolete.m4
/test/unit/proj_context_test
/test/unit/test_cpp_api
/test/unit/proj_errno_string_test
/test/unit/test_defmodel
/test/unit/test_network
/test/unit/test_tinshift
/tmp_alias/
# jniwrap
jniwrap/out
+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/8.1 -- 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
-119
View File
@@ -1,119 +0,0 @@
# This is the config file for building proj and running its test suite
# with Travis-ci.org
language: cpp
branches:
except:
- /^(cherry-pick-)?backport-\d+-to-/
cache:
directories:
- $HOME/.ccache
matrix:
fast_finish: true
include:
- os: linux
dist: xenial
compiler: gcc
services:
- docker
env:
- BUILD_NAME=linux_gcc
- DETAILS="linux, gcc-4.8"
- CC=gcc-4.8
- CXX=g++-4.8
addons:
apt:
packages:
- g++-4.8
- os: linux
dist: bionic
compiler: gcc
services:
- docker
env:
- BUILD_NAME=linux_gcc8
- DETAILS="linux, gcc8"
- DETAILS="linux, gcc8, i386"
- ARCH=i386
- CC=gcc-8
- CXX=g++-8
- CXXFLAGS='-g -O2 -m32 -D_GLIBCXX_ASSERTIONS'
- CFLAGS='-g -O2 -m32'
- TIFF_CFLAGS=-I/usr/include/i386-linux-gnu
- TIFF_LIBS="-L/usr/lib/i386-linux-gnu -ltiff"
- SQLITE3_CFLAGS=-I/usr/include/i386-linux-gnu
- SQLITE3_LIBS="-L/usr/lib/i386-linux-gnu -lsqlite3"
addons:
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
packages:
- g++-8-multilib
- make
- autoconf
- automake
- os: linux
dist: xenial
compiler: clang
services:
- docker
env:
- BUILD_NAME=linux_clang
- DETAILS="linux, clang"
# - os: linux
# dist: bionic
# compiler: gcc
# arch: s390x
# env:
# - BUILD_NAME=linux_s390x
# - DETAILS="linux, s390x"
- os: osx
env:
- BUILD_NAME=osx
- DETAILS="osx"
- os: linux
dist: xenial
compiler: gcc
env:
- BUILD_NAME=mingw32
- DETAILS="mingw32"
- os: linux
compiler: gcc
dist: xenial
env:
- BUILD_NAME=csa
- DETAILS="CLang Static Analyzer"
allow_failures:
- env: BUILD_NAME=mingw32
before_install: ./travis/${BUILD_NAME}/before_install.sh
install: ./travis/${BUILD_NAME}/install.sh
script:
- echo "done"
after_success: ./travis/${BUILD_NAME}/after_success.sh
notifications:
irc:
channels:
- "irc.freenode.org#proj-activity"
# - "irc.freenode.org#gdal"
# - "irc.freenode.org#proj"
use_notice: true
# #email:
# # recipients:
# # - gdal-commits@lists.osgeo.org
#
+2 -2
View File
@@ -1,6 +1,6 @@
To cite PROJ in publications use:
PROJ contributors (2020). PROJ coordinate transformation software
PROJ contributors (2021). PROJ coordinate transformation software
library. Open Source Geospatial Foundation. URL https://proj.org/.
A BibTeX entry for LaTeX users is
@@ -11,6 +11,6 @@ A BibTeX entry for LaTeX users is
title = {{PROJ} coordinate transformation software library},
author = {{PROJ contributors}},
organization = {Open Source Geospatial Foundation},
year = {2020},
year = {2021},
url = {https://proj.org/},
}
+122 -9
View File
@@ -110,9 +110,9 @@ message(STATUS "Configuring PROJ:")
#PROJ version information
################################################################################
include(ProjVersion)
proj_version(MAJOR 7 MINOR 1 PATCH 0)
set(PROJ_API_VERSION "20")
set(PROJ_BUILD_VERSION "20.0.1")
proj_version(MAJOR 8 MINOR 1 PATCH 1)
set(PROJ_API_VERSION "22")
set(PROJ_BUILD_VERSION "22.1.1")
################################################################################
# Build features and variants
@@ -121,9 +121,49 @@ include(ProjConfig)
include(ProjMac)
include(policies)
################################################################################
# Check for nlohmann_json
################################################################################
set(NLOHMANN_JSON_ORIGIN "auto" CACHE STRING
"nlohmann/json origin. The default auto will try to use external \
nlohmann/json if possible")
set_property(CACHE NLOHMANN_JSON_ORIGIN PROPERTY STRINGS auto internal external)
# Probably not the strictest minimum, but known to work with it
set(MIN_NLOHMANN_JSON_VERSION 3.7.0)
if(NLOHMANN_JSON_ORIGIN STREQUAL "external")
find_package(nlohmann_json REQUIRED)
set(NLOHMANN_JSON "external")
elseif(NLOHMANN_JSON_ORIGIN STREQUAL "internal")
set(NLOHMANN_JSON "internal")
else()
find_package(nlohmann_json QUIET)
if(nlohmann_json_FOUND)
set(NLOHMANN_JSON "external")
else()
set(NLOHMANN_JSON "internal")
endif()
endif()
if(NLOHMANN_JSON STREQUAL "external")
# Check minimum version
if(nlohmann_json_VERSION VERSION_LESS MIN_NLOHMANN_JSON_VERSION)
message(STATUS "external nlohmann/json version ${nlohmann_json_VERSION} "
"is older than minimum requirement ${MIN_NLOHMANN_JSON_VERSION}")
set(NLOHMANN_JSON "internal")
else()
message(STATUS "found nlohmann/json version ${nlohmann_json_VERSION}")
endif()
endif()
message(STATUS "nlohmann/json: ${NLOHMANN_JSON}")
################################################################################
# Check for sqlite3
################################################################################
find_program(EXE_SQLITE3 sqlite3)
if(NOT EXE_SQLITE3)
message(SEND_ERROR "sqlite3 binary not found!")
@@ -176,6 +216,13 @@ if(ENABLE_CURL)
endif()
endif()
################################################################################
option(PROJ_LIB_ENV_VAR_TRIED_LAST "Whether the PROJ_LIB environment variable should be tried after the hardcoded location" OFF)
if(PROJ_LIB_ENV_VAR_TRIED_LAST)
add_definitions(-DPROJ_LIB_ENV_VAR_TRIED_LAST)
endif()
################################################################################
# threading configuration
################################################################################
@@ -252,12 +299,6 @@ set(CMAKECONFIGDIR "${DEFAULT_CMAKEDIR}"
################################################################################
include(CTest)
# Support older option, to be removed by PROJ 8.0
if(DEFINED PROJ_TESTS)
message(DEPRECATION "PROJ_TESTS has been replaced with BUILD_TESTING")
set(BUILD_TESTING ${PROJ_TESTS})
endif()
if(BUILD_TESTING)
include(ProjTest)
else()
@@ -277,3 +318,75 @@ add_subdirectory(cmake)
if(BUILD_TESTING)
add_subdirectory(test)
endif()
set(docfiles COPYING NEWS AUTHORS)
install(FILES ${docfiles}
DESTINATION "${DOCDIR}")
################################################################################
# pkg-config support
################################################################################
if(UNIX OR MINGW)
configure_proj_pc()
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/proj.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif()
################################################################################
# "make dist" workalike
################################################################################
set(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "proj-${PROJ_VERSION}")
set(CPACK_PACKAGE_VENDOR "OSGeo")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJ_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJ_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJ_VERSION_PATCH})
set(CPACK_VERBATIM_VARIABLES TRUE)
set(CPACK_SOURCE_IGNORE_FILES
/\\..* # any file/directory starting with .
/.*\\.yml
/.*\\.gz
/.*\\.zip
/.*build.*/
\\.deps
/autogen\\.sh
/autom4te\\.cache
/CODE_OF_CONDUCT.md
/CONTRIBUTING.md
/Dockerfile
/docs/
/Doxyfile
/examples/
/HOWTO-RELEASE
/m4/lt*
/m4/libtool*
/media/
/schemas/
/scripts/
/test/fuzzers/
/test/gigs/.*gie\\.failing
/test/postinstall/
/travis/
${PROJECT_BINARY_DIR}
)
include(CPack)
# Simplify README.md to README
add_custom_target(README
COMMAND ${CMAKE_COMMAND}
-D PROJ_SOURCE_DIR=${PROJ_SOURCE_DIR}
-P ${PROJ_SOURCE_DIR}/cmake/ProjReadme.cmake
)
get_property(_is_multi_config_generator GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT _is_multi_config_generator)
add_custom_target(dist
COMMAND ${CMAKE_MAKE_PROGRAM} package_source
DEPENDS README
)
message(STATUS "PROJ: Configured 'dist' target")
endif()
+9 -9
View File
@@ -1,19 +1,20 @@
All source, data files and other contents of the PROJ.4 package are
All source, data files and other contents of the PROJ package are
available under the following terms. Note that the PROJ 4.3 and earlier
was "public domain" as is common with US government work, but apparently
this is not a well defined legal term in many countries. I am placing
everything under the following MIT style license because I believe it is
this is not a well defined legal term in many countries. Frank Warmerdam placed
everything under the following MIT style license because he believed it is
effectively the same as public domain, allowing anyone to use the code as
they wish, including making proprietary derivatives.
they wish, including making proprietary derivatives.
Though I have put my own name as copyright holder, I don't mean to imply
I did the work. Essentially all work was done by Gerald Evenden.
Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright
holder, but he didn't mean to imply he did the work. Essentially all work was
done by Gerald Evenden.
Copyright information can be found in source files.
--------------
Copyright (c) 2000, Frank Warmerdam
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
@@ -31,4 +32,3 @@ I did the work. Essentially all work was done by Gerald Evenden.
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
+1 -1
View File
@@ -601,7 +601,7 @@
2010-03-16 Frank Warmerdam <warmerdam@pobox.com>
* src/pj_transform.c, src/pj_init.c, src/projects.h, src/pj_gridlist.c,
src/pj_apply_gridshit.c: rework the translation of nadgrids parameters
src/pj_apply_gridshift.c: rework the translation of nadgrids parameters
into a list of gridshift files to avoid use of static "lastnadgrids"
information which screws up multithreading. Changes the PJ structure.
+2 -9
View File
@@ -766,7 +766,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = src/iso19111 include/proj src/proj.h src/proj_experimental.h src/general_doc.dox src/filemanager.cpp src/networkfilemanager.cpp
INPUT = src/iso19111 src/iso19111/operation include/proj src/proj.h src/proj_experimental.h src/general_doc.dox src/filemanager.cpp src/networkfilemanager.cpp
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1033,13 +1033,6 @@ VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = YES
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
# Minimum value: 1, maximum value: 20, default value: 5.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1880,7 +1873,7 @@ MAN_LINKS = NO
# captures the structure of the code including all documentation.
# The default value is: NO.
GENERATE_XML = NO
GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+15 -7
View File
@@ -52,7 +52,7 @@ Update the following files with the new ABI version number:
- `src/Makefile.am` Update -version-info
- `CMakeLists.txt`: Update PROJ_BUILD_VERSION (cur:rev:age) and
PROJ_API_VERSION (current)
PROJ_API_VERSION (current-age)
*Commit the changes to master.*
@@ -99,7 +99,16 @@ If needed, update the year in `CITATION`.
*Commit the changes to master.*
1.5 Create maintenance branch
1.5 Update `PROJ_DATA.VERSION`
-------------------------------------------------------------------------------
If the database references data from an updated PROJ-data package, update
`PROJ_DATA.VERSION` in `data/sql/metadata.sql`.
*Commit the changes to master.*
1.6 Create maintenance branch
-------------------------------------------------------------------------------
*Skip this step if you are preparing a patch release or RC2 and later.*
@@ -117,7 +126,7 @@ subsequently cherry-picked to the maintenance branch.
*Push branch upstream.*
1.6 Prepare and upload archives
1.7 Prepare and upload archives
-------------------------------------------------------------------------------
Run autoconf and configure the build:
@@ -148,13 +157,13 @@ scp proj-x.y.zRCn.* warmerdam@download.osgeo.org:/osgeo/download/proj
Adjust version numbers and usernames accordingly.
1.7 Announce the release candidate
1.8 Announce the release candidate
-------------------------------------------------------------------------------
Announce the release candidate on the PROJ mailing list.
1.8 Promotion to final release
1.9 Promotion to final release
-------------------------------------------------------------------------------
When you are confident that the latest release candidate is ready for promotion
@@ -179,7 +188,7 @@ See step 1.6 above. Do not rename the archives with RC postfixes.
These vim substitutions are helpfull when converting NEWS to rst:
:!(\#(\d\{4}\))!(`\#\1 <https://github.com/OSGeo/issues/\1>`_)!
:s!(\#\(\d\{4}\))!(`\#\1 <https://github.com/OSGeo/PROJ/issues/\1>`_)!
:s/^o/*/
- Update download links in `docs/source/download.rst`
@@ -235,7 +244,6 @@ version numbers in the files.
- configure.ac: Update the version number in AC_INIT().
- src/proj.h: Update PROJ_VERSION_MAJOR, PROJ_VERSION_MINOR and
PROJ_VERSION_PATCH.
- src/proj_api.h: Update PJ_VERSION.
- src/release.cpp: Update date to the scheduled release date.
- CMakeLists.txt: Update proj_version()
- docs/source/conf.py: Update version number
+2
View File
@@ -3,6 +3,8 @@ DIST_SUBDIRS = include src man data cmake test
EXTRA_DIST = CMakeLists.txt CITATION README.md
dist_doc_DATA = COPYING NEWS AUTHORS
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = proj.pc
+536 -4
View File
@@ -1,9 +1,537 @@
8.1.1 Release Notes
-------------------
Updates
-------
o EPSG Database updated to version 10.028 (#2773)
Bug Fixes
---------
o Include algorithm header file to avoid build errors on Alpine Linux (#2769)
o CMake: fix installation of executables on iOS (#2766)
o Associate extents to transformations of CRS's that include GEOIDMODEL (#2769)
o Logging: avoid some overhead when logging is not enabled (#2775)
o ortho: remove useless and invalid log trace (#2777)
o CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES target (#2781)
o reateOperations(): fix SourceTargetCRSExtentUse::NONE mode (#2783)
o GeoTIFF grid reading: perf improvements (#2788)
o Conversion::createUTM(): avoid integer overflow (#2796)
o Inverse laea ellipsoidal: return PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN
when appropriates (#2801)
o Make sure that proj_crs_promote_to_3D returns a derived CRS (#2806)
o 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)
o WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (#2812)
o BoundCRS: accept importing/exporting in WKT2 and PROJJSON the
scope/area/extent/id attributes (#2815)
o ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps when
inverse map projection is involved in non-final step (#2819)
THANKS TO
---------
Brendan Jurd
Kristian Evers
Even Rouault
8.1.0 Release Notes
-------------------
Updates
-------
+ Database
o Update to EPSG v10.027 (#2751)
o Decrease DB size by using WITHOUT ROWID tables (#2730) (#2647)
o Add a ANALYZE step during proj.db creation allowing for
faster lookups (#2729)
o Added a PROJ.VERSION metadata entry (#2646)
o Added NGO48 (EPSG:4273) to ETRS89 (EPSG:4258) triangulation-based
transformation (#2554)
o Additions to the norwegian NKG2020 transformation (#2548)
o ESRI projection database updated to version 12.8 (#2717)
+ API additions
o Added proj_get_geoid_models_from_database() function that returns a list of
geoid models available for a given CRS (#2681)
o Added proj_get_celestial_body_list_from_database that returns a list
of celestial bodies in the PROJ database (#2667)
o Added proj_get_celestial_body_name() (#2662)
+ Various improvements
o proj_trans/cs2cs: If two operations have the same accuracy,
use the one that is contained within a larger one (#2750)
o Share SQLite database handle among all contexts (#2738)
o Add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutex (#2736)
o projsync: make it filter out files not intended for the current version (#2725)
o Improvements related to DerivedVerticalCRS using Change Unit and
Height/Depth reversal methods (#2696)
o Update internal nlohmann/json to 3.9.1, and add a CMake option to
be able to use external nlohmann/json (#2686)
o createFromUserInput(): change name of CRS built from URN combined references to match the convention of EPSG projected CRS (#2677)
o Parse compound id with two authorities, like ESRI:103668+EPSG:5703 (#2669)
o Added projinfo option --list-crs (supports --area) (#2663)
o Added support for hyperbolic Cassini-Soldner (#2637)
o Added capability to get SQL statements to add custom CRS in the database (#2577)
Bug fixes
---------
o Fix 'Please include winsock2.h before windows.h' warning with msys (#2692)
o Minor changes to address lint in geodesic.c (#2752)
o BoundCRS::identify(): avoid incompatible transformation for
WKT1 / TOWGS84 export (#2747)
o proj_create(): do not open proj.db if string is a PROJ string,
even if proj_context_set_autoclose_database() has been set (#2735)
o Fix export of transformation to PROJ string in a particular situation
where CompoundCRS are involved (#2721)
Thanks to
---------
Howard Butler
Alan D. Snow
Roel van den Berg
Heidi Vanparys
Sveinung Himle
積丹尼 Dan Jacobson
Nyall Dawson
Javier Jimenez Shaw
Charles Karney
Mike Taves
Kristian Evers
Even Rouault
8.0.1 Release Notes
-------------------
Updates
-------
o Database: update to EPSG v10.018 (#2636)
o Add transformations for CHGeo2004, Swiss geoid model (#2604)
o Additions to the norwegian NKG2020 transformation (#2600)
Bug fixes
---------
o pj_vlog(): fix buffer overflow in case of super lengthy error message (#2693)
o Revert "proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified" (#2679)
o UTM: error out when value of +zone= is not an integer (#2672)
o getCRSInfoList(): make result order deterministic (by increasing auth_name,
code) (#2661)
o createOperation(): make sure no to discard deprecated operations if the
replacement uses an unknow grid (#2623)
o Fix build on Solaris 11.4 (#2621)
o Add mapping of ESRI Equal_Area projection method to EPSG (#2612)
o Fix incorrect EPGS extent code for EPSG:7789>EPSG:4976 NKG transformation (#2599)
o fix wrong capitalization of CHENyx06_ETRS.gsb (#2597)
o createOperations(): improve handling of vertical transforms when
when compound CRSs are used (#2592)
o CRS::promoteTo3D(): propagate the extent from the 2D CRS (#2589)
o createFromCRSCodesWithIntermediates(): improve performance when there is
no match (#2583)
o Fix proj_clone() to work on 'meta' coordinate operation PJ* objects that
can be returned by proj_create_crs_to_crs() (#2582)
o add PROJ_COMPUTE_VERSION, PROJ_VERSION_NUMBER,
PROJ_AT_LEAST_VERSION macros (#2581)
o Make proj_lp_dist() and proj_geod() work on a PJ* CRS object (#2570)
o Fix gcc 11 -Wnonnull compilation warnings (#2559)
o Fix use of uninitialized memory in gie tests (#2558)
o createOperations(): fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (#2555)
THANKS TO
---------
Dan Jacobson
Sveinung Himle
Mike Taves
Javier Jimenez Shaw
Kristian Evers
Even Rouault
8.0.0 Release Notes
-------------------
With the release of PROJ 8 the proj_api.h API is finally removed. See
https://proj.org/development/migration.html for more info on how to migrate
from the old to the proj.h API.
With the removal of proj_api.h it has been possible to simplify error codes
and messages given by the software. The error codes are exposed in the API.
Several improvements has been made to the command line utilities as well as
tweaks in the underlying API.
Updates
-------
o Public header file proj_api.h removed (#837)
o Improved accuracy of the Mercator projection (#2397)
o Copyright statement wording updated (#2417)
o Allow cct to instantiate operations via object codes or names (#2419)
o Allow @filename syntax in cct (#2420)
o Added geocentric->topocentric conversion (+proj=topocentric) (#2444)
o Update GeographicLib to version 1.51 (#2445)
o Added option to allow export of Geographic/Projected 3D CRS
in WKT1_GDAL (#2450)
o Added --area and --bbox options in cs2cs to restrict candidate
coordinate operations (#2466)
o Added build time option to make PROJ_LIB env var tested last (#2476)
o Added --authority switch in cs2cs to control where coordinate operations
are looked for. C API function proj_create_crs_to_crs_from_pj() updated
accordingly (#2477)
o Error codes revised and exposed in the public API (#2487)
o Added --accuracy options to projinfo. C API function
proj_create_crs_to_crs_from_pj() updated accordingly (#2488)
o Added proj_crs_is_derived() function to C API (#2496)
o Enabled linking against static cURL on Windows (#2514)
o Updated ESRI CRS database to 12.7 (10.8.1/2.6) (#2519)
o Allow a WKT BoundCRS to use a PROJ string transformation (#2521)
o Update to EPSG v10.015 (#2539)
o Default log level set to PJ_LOG_ERROR (#2542)
o CMake installs a pkg-config file proj.pc, where supported (#2547)
Bug fixes
---------
o Do not restrict longitude to [-90;90] range in spherical transverse Mercator
forward projection (#2471)
o createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height (#2500)
o Avoid error messages to be emitted log level is set to PJ_LOG_NONE (#2527)
o Close database connection when autoclose set to True (#2532)
THANKS TO
---------
Zac Miller
Juan Hernando
Thomas Knudsen
Sveinung Himle
Olli Raisa
Nomit Rawat
Modern Slave
J.H. van de Water
Guillaume Lostis
Martin Steinisch
Javier Jimenez Shaw
Mateusz Łoskot
Martijn Visser
Alan D. Snow
Mike Taves
Nyall Dawson
Charles Karney
Kristian Evers
Even Rouault
7.2.1 Release Notes
-------------------
Updates
-------
o Add metadata with the version number of the database layout (#2474)
o Split coordinateoperation.cpp and test_operation.cpp in several parts (#2484)
o Update to EPSG v10.008 (#2490)
o Added the NKG 2008 and 2020 transformations in proj.db (#2495)
Bug fixes
---------
o Set CURL_ENABLED definition on projinfo build (#2405)
o createBoundCRSToWGS84IfPossible(): make it return same result with a CRS
built from EPSG code or WKT1 (#2412)
o WKT2 parsing: several fixes related to map projection parameter units (#2428)
o createOperation(): make it work properly when one of the CRS is a BoundCRS of
a DerivedGeographicCRS (+proj=ob_tran +o_proj=lonlat +towgs84=....) (#2441)
o WKT parsing: fix ingestion of WKT with a Geocentric CRS as the base of the
projected CRS (#2443)
o GeographicCRS::_isEquivalentTo(EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS):
make it work when comparing easting,northing,up and northing,easting,up (#2446)
o createOperation(): add a ballpark vertical transformation when dealing
with GEOIDMODEL[] (#2449)
o Use same arguments to printf format string for both radians and degrees in
output by cct (#2453)
o PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from WKT1:GDAL/ESRI
when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export (#2455)
o createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone 32N'
return only the exact match (#2462)
o Inverse tmerc spherical: fix wrong sign of latitude when lat_0 is used (#2469)
o Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL (#2470)
o Fix building proj.db with SQLite built with -DSQLITE_DQS=0 (#2480)
o Include JSON Schema files in CMake builds (#2485)
o createOperations(): fix inconsistent chaining exception when transforming from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris (#2486)
THANKS TO
---------
Zac Miller
Nomit Rawat
Guillaume Lostis
J.H. van de Water
Kristian Evers
Even Rouault
7.2.0 Release Notes
-------------------
Updates
-------
+ Command line tools:
o Add multi-line PROJ string export capability, and use it by default in
projinfo (unless --single-line is specified) (#2381)
+ Coordinate operations:
o +proj=col_urban projection, implementing a EPSG projection method
used by a number of projected CRS in Colombia (#2395)
o +proj=tinshift for triangulation-based transformations (#2344)
o Added ellipsoidal formulation of +proj=ortho (#2361)
+ Database
o Update to EPSG 10.003 and make code base robust to dealing with
WKT CRS with DatumEnsemble (#2370)
o Added Finland tinshift operations (#2392)
o Added transformation from JGD2011 Geographic 3D to JGD2011
height using GSIGEO2011 (#2393)
o Improve CompoundCRS identification and name morphing in VerticalCRS
with ESRI WKT1 (#2386)
o Added OGC:CRS27 and OGC:CRS83 CRS entries for NAD27 and NAD83
in longitude, latitude order (#2350)
+ API
o Added temporal, engineering, and parametric datum
PJ_TYPE enumerations (#2274)
o Various improvements to context handling (#2329, #2331)
o proj_create_vertical_crs_ex(): add a ACCURACY option to provide
an explicit accuracy, or derive it from the grid name if it is
known (#2342)
o proj_crs_create_bound_crs_to_WGS84(): make it work on
verticalCRS/compoundCRS such as EPSG:4326+5773 and
EPSG:4326+3855 (#2365)
o promoteTo3D(): add a remark with the original CRS identifier (#2369)
o Added proj_context_clone (#2383)
Bug fixes
---------
o Avoid core dumps when copying contexts in certain scenarios (#2324)
o proj_trans(): reset errno before attemptying a retry with a new
coordinate operation (#2353)
o PROJJSON schema corrected to allow prime meridians values with
explicitly stating a unit (degrees assumed) (#2354)
o Adjust createBoundCRSToWGS84IfPossible() and operation filtering
(for POSGAR 2007 to WGS84 issues) (#2357)
o createOperations(): several fixes affecting NAD83 -> NAD83(2011) (#2364)
o WKT2:2019 import/export: handle DATUM (at top level object) with PRIMEM
o WKT1_ESRI: fix import and export of CompoundCRS (#2389)
THANKS TO
---------
Alexander Saprykin
Jeff McKenna
Nyall Dawson
Kai Pastor
Juan Hernando
Javier Jimenez Shaw
Howard Butler
Alan D. Snow
Charles Karney
Kristian Evers
Even Rouault
7.1.1 Release Notes
-------------------
Updates
-------
o Added various Brazillian grids to the database #2277
o Added geoid file for Canary Islands to the database #2312
o Updated EPSG database to version 9.8.15 #2310
Bug fixes
---------
o WKT parser: do not raise warning when parsing a WKT2:2015 TIMECRS
whose TIMEUNIT is at the CS level, and not inside #2281
o Parse '+proj=something_not_latlong +vunits=' without +geoidgrids as a
Projected3D CRS and not a compound CRS with a unknown datum #2289
o C API: Avoid crashing due to missing SANITIZE_CTX() in entry points #2293
o CMake build: Check "target_clones" before use #2297
o PROJ string export of +proj=krovak +czech: make sure we export +czech… #2301
o Helmert 2D: do not require a useless +convention= parameter #2305
o Fix a few spelling errors ("vgridshit" vs. "vgridshift") #2307
o Fix ability to identify EPSG:2154 as a candidate for 'RGF93_Lambert_93' #2316
o WKT importer: tune for Oracle WKT and 'Lambert Conformal Conic' #2322
o Revert compiler generated Fused Multiply Addition optimized routines #2328
THANKS TO
---------
Jeff McKenna
Kai Pastor
Javier Jimenez Shaw
Kristian Evers
Even Rouault
7.1.0 Release Notes
-------------------
Updates
-------
+ New transformations:
o Add a +proj=defmodel transformation for multi-component time-based deformation models (#2206)
+ New projections:
o Add square conformal projections from libproject:
@@ -26,7 +554,7 @@
o Update to EPSG 9.8.12, ESRI 10.8.1 and import scope and remarks for
conversion (#2238) (#2267)
o Map the Behrman projection to cae when converting ESRI CRSes (#1986)
o Map the Behrmann projection to cae when converting ESRI CRSes (#1986)
o Support conversion of Flat_Polar_Quartic projection method (#1987)
@@ -67,6 +595,10 @@
use discard change of ellipsoidal height if a Helmert transformation is
involved (#2227)
o proj_list_units() deprecated, superceeded by proj_get_units_from_database()
o proj_list_angular_units() deprecated, superceeded by proj_get_units_from_database()
+ Optimizations:
o tmerc/utm: add a +algo=auto/evenden_snyder/poder_engsager parameter (#2030)
@@ -1366,13 +1898,13 @@ o The PROJ.4 project also distributes the datum-grid package,
o Return correct latitude when using negative northings in
Transverse Mercator (tmerc). #138.
o Return correct result at origin in inverse Mod. Stererographic
o Return correct result at origin in inverse Modified Stereographic
of Alaska. #161.
o Return correct result at origin in inverse Mod. Stererographic
o Return correct result at origin in inverse Modified Stereographic
of 48 U.S. #162.
o Return correct result at origin in inverse Mod. Stererographic
o Return correct result at origin in inverse Modified Stereographic
of 50 U.S. #163.
o Return correct result at origin in inverse Lee Oblated
+2 -1
View File
@@ -2,13 +2,14 @@
[![Travis Status](https://travis-ci.com/OSGeo/PROJ.svg?branch=master)](https://travis-ci.com/OSGeo/PROJ)
[![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/OSGeo/PROJ?branch=master&svg=true)](https://ci.appveyor.com/project/OSGeo/PROJ?branch=master)
[![Cirrus Status](https://img.shields.io/cirrus/github/OSGeo/PROJ)](https://cirrus-ci.com/github/OSGeo/PROJ/master)
[![Docker build Status](https://img.shields.io/docker/cloud/build/osgeo/proj)](https://hub.docker.com/r/osgeo/proj/builds)
[![Coveralls Status](https://coveralls.io/repos/github/OSGeo/PROJ/badge.svg?branch=master)](https://coveralls.io/github/OSGeo/PROJ?branch=master)
[![Gitter](https://badges.gitter.im/OSGeo/proj.4.svg)](https://gitter.im/OSGeo/proj.4)
[![Mailing List](https://img.shields.io/badge/PROJ-mailing%20list-4eb899.svg)](http://lists.osgeo.org/mailman/listinfo/proj)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
<!-- [![Cirrus Status](https://img.shields.io/cirrus/github/OSGeo/PROJ)](https://cirrus-ci.com/github/OSGeo/PROJ/master) -->
PROJ is a generic coordinate transformation software, that transforms
coordinates from one coordinate reference system (CRS) to another.
This includes cartographic projections as well as geodetic transformations.
+1
View File
@@ -4,6 +4,7 @@ EXTRA_DIST = CMakeLists.txt \
proj_config.cmake.in \
ProjConfig.cmake \
ProjMac.cmake \
ProjReadme.cmake \
ProjTest.cmake \
ProjVersion.cmake \
policies.cmake \
+3 -1
View File
@@ -29,7 +29,7 @@ if(UNIX)
set(DEFAULT_LIB_SUBDIR ${CMAKE_INSTALL_LIBDIR})
set(DEFAULT_DATA_SUBDIR ${CMAKE_INSTALL_DATAROOTDIR}/proj)
set(DEFAULT_INCLUDE_SUBDIR ${CMAKE_INSTALL_INCLUDEDIR})
set(DEFAULT_DOC_SUBDIR ${CMAKE_INSTALL_DOCDIR})
set(DEFAULT_DOC_SUBDIR share/doc/${PROJECT_NAME_LOWER})
set(DEFAULT_CMAKE_SUBDIR ${CMAKE_INSTALL_LIBDIR}/cmake)
else()
# Common locations for Unix and Mac OS X
@@ -40,6 +40,8 @@ else()
set(DEFAULT_INCLUDE_SUBDIR include)
set(DEFAULT_DOC_SUBDIR share/doc/proj)
set(DEFAULT_CMAKE_SUBDIR lib/cmake)
# Used for proj.pc
set(CMAKE_INSTALL_DATAROOTDIR share)
endif()
# Locations are changeable by user to customize layout of PROJ installation
+28
View File
@@ -0,0 +1,28 @@
#
# CMake script to modify README.md to create simpler README file
#
# This is equivalent to: fgrep -v "[!["
#
set(SourceFile "${PROJ_SOURCE_DIR}/README.md")
set(DestFile "${PROJ_SOURCE_DIR}/README")
# Below is based on https://stackoverflow.com/a/30227627
file(READ ${SourceFile} Contents)
# Set the variable "Esc" to the ASCII value 27 as a special escape value
string(ASCII 27 Esc)
# Turn the contents into a list of strings, each ending with Esc
string(REGEX REPLACE "\n" "${Esc};" ContentsAsList "${Contents}")
unset(ModifiedContents)
foreach(Line ${ContentsAsList})
if(NOT "${Line}" MATCHES "\\[!\\[")
# Swap the appended Esc character back out in favour of a line feed
string(REGEX REPLACE "${Esc}" "\n" Line ${Line})
set(ModifiedContents "${ModifiedContents}${Line}")
endif()
endforeach()
file(WRITE ${DestFile} ${ModifiedContents})
+22 -1
View File
@@ -14,7 +14,7 @@ function(proj_add_test_script_sh SH_NAME BIN_USE)
get_filename_component(testname ${SH_NAME} NAME_WE)
add_test(NAME "${testname}"
WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/data
WORKING_DIRECTORY ${PROJ_BINARY_DIR}/test/cli
COMMAND bash ${PROJ_SOURCE_DIR}/test/cli/${SH_NAME}
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${${BIN_USE}}
)
@@ -36,3 +36,24 @@ function(proj_add_gie_test TESTNAME TESTCASE)
proj_test_set_properties(${TESTNAME})
endfunction()
# Create user writable directory for tests
add_custom_target(create_tmp_user_writable_dir ALL
COMMAND ${CMAKE_COMMAND} -E make_directory {PROJ_BINARY_DIR}/tmp_user_writable_dir)
function(proj_add_gie_network_dependent_test TESTNAME TESTCASE)
set(GIE_BIN $<TARGET_FILE_NAME:gie>)
set(TESTFILE ${PROJ_SOURCE_DIR}/test/${TESTCASE})
add_test(NAME ${TESTNAME}
WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/test
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${GIE_BIN}
${TESTFILE}
)
set_property(TEST ${TESTNAME}
PROPERTY ENVIRONMENT
"PROJ_USER_WRITABLE_DIRECTORY=${PROJ_BINARY_DIR}/tmp_user_writable_dir"
"PROJ_NETWORK=ON"
"PROJ_LIB=${PROJ_BINARY_DIR}/data/for_tests")
endfunction()
+30 -1
View File
@@ -14,7 +14,8 @@
# Macros in this module:
#
# print_variable
# proj_target_output_name:
# proj_target_output_name
# configure_proj_pc
#
################################################################################
@@ -60,3 +61,31 @@ function(proj_target_output_name TARGET_NAME OUTPUT_NAME)
set(${OUTPUT_NAME} ${TARGET_NAME}${SUFFIX} PARENT_SCOPE)
endfunction()
#
# Configure a pkg-config file proj.pc
# See also ProjInstallPath.cmake
#
function(configure_proj_pc)
set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "$\{prefix\}")
set(libdir "$\{exec_prefix\}/${PROJ_LIB_SUBDIR}")
set(includedir "$\{prefix\}/${PROJ_INCLUDE_SUBDIR}")
set(datarootdir "$\{prefix\}/${CMAKE_INSTALL_DATAROOTDIR}")
set(datadir "$\{datarootdir\}")
set(PACKAGE "proj")
set(VERSION ${PROJ_VERSION})
set(SQLITE3_LIBS -lsqlite3)
if(TIFF_ENABLED)
set(TIFF_LIBS -ltiff)
endif()
if(CURL_ENABLED)
set(CURL_LIBS -lcurl)
endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/proj.pc.in
${CMAKE_CURRENT_BINARY_DIR}/proj.pc
@ONLY)
endfunction()
+18 -24
View File
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT([PROJ], [7.1.0],
AC_INIT([PROJ], [8.1.1],
[https://github.com/OSGeo/PROJ/issues], proj, [https://proj.org])
AC_CONFIG_MACRO_DIR([m4])
AC_LANG(C)
@@ -127,27 +127,6 @@ AC_DEFINE_UNQUOTED(HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT, 1,
fi
AC_LANG_POP([C++])
dnl ---------------------------------------------------------------------------
dnl Check if __attribute__((target_clones("fma","default"))) works
dnl This is needed for example on Alpine Linux where for some reason, building
dnl such tagged functions fails with 'error: the call requires 'ifunc', which is not supported by this target'
dnl ---------------------------------------------------------------------------
TARGET_CLONES_FMA_FLAGS=""
AC_MSG_CHECKING([if target_clones_fma works])
SAVED_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Werror"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[
__attribute__((target_clones("fma","default"))) void foo() {}
]])],
[AC_MSG_RESULT([yes])]
[TARGET_CLONES_FMA_FLAGS="-DTARGET_CLONES_FMA_ALLOWED"],
[AC_MSG_RESULT([no])])
CFLAGS="$SAVED_CFLAGS"
AC_SUBST(TARGET_CLONES_FMA_FLAGS,$TARGET_CLONES_FMA_FLAGS)
dnl ---------------------------------------------------------------------------
dnl Check for --enable-lto
dnl ---------------------------------------------------------------------------
@@ -342,6 +321,19 @@ AC_SUBST(CURL_LIBS,$CURL_LIBS)
AC_SUBST(CURL_ENABLED_FLAGS,$CURL_ENABLED_FLAGS)
AM_CONDITIONAL(HAVE_CURL, [test "x$FOUND_CURL" = "xyes"])
dnl ---------------------------------------------------------------------------
dnl proj-lib-env-var-tried-last
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(proj-lib-env-var-tried-last,
AS_HELP_STRING([--enable-proj-lib-env-var-tried-last],
[Whether the PROJ_LIB environment variable should be tried after the hardcoded location [default=no]]))
if test "x$enable_proj_lib_env_var_tried_last" = "xyes"; then
AC_SUBST(PROJ_LIB_ENV_VAR_TRIED_LAST_FLAGS,-DPROJ_LIB_ENV_VAR_TRIED_LAST)
fi
dnl ---------------------------------------------------------------------------
dnl Check for external Google Test
dnl ---------------------------------------------------------------------------
@@ -366,8 +358,10 @@ dnl ---------------------------------------------------------------------------
dnl Generate files
dnl ---------------------------------------------------------------------------
AC_CONFIG_FILES([Makefile cmake/Makefile src/Makefile include/Makefile include/proj/Makefile include/proj/internal/Makefile
include/proj/internal/nlohmann/Makefile
AC_CONFIG_FILES([Makefile cmake/Makefile src/Makefile include/Makefile include/proj/Makefile
include/proj/internal/Makefile
include/proj/internal/vendor/Makefile
include/proj/internal/vendor/nlohmann/Makefile
test/Makefile test/cli/Makefile test/gie/Makefile test/gigs/Makefile test/unit/Makefile
man/Makefile man/man1/Makefile data/Makefile])
if ! test "x$with_external_gtest" = "xyes" ; then
+2 -2
View File
@@ -18,6 +18,6 @@
#
<metadata> +origin=Swisstopo +lastupdate=2012-02-27
# CH1903/LV03
<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENYX06_etrs.gsb +no_defs
<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENyx06_ETRS.gsb +no_defs
# CH1903
<1903> +proj=longlat +ellps=bessel +nadgrids=CHENYX06_etrs.gsb +no_defs <>
<1903> +proj=longlat +ellps=bessel +nadgrids=CHENyx06_ETRS.gsb +no_defs <>
+7 -15
View File
@@ -27,29 +27,20 @@ file(GLOB GSB_FILES *.gsb)
file(GLOB GTX_FILES *.gtx)
set(GRIDSHIFT_FILES ${GSB_FILES} ${GTX_FILES})
file(GLOB SCHEMA_FILES *.json)
set(ALL_SQL_IN "${CMAKE_CURRENT_BINARY_DIR}/all.sql.in")
set(PROJ_DB "${CMAKE_CURRENT_BINARY_DIR}/proj.db")
include(sql_filelist.cmake)
add_custom_command(
OUTPUT ${ALL_SQL_IN}
COMMAND ${CMAKE_COMMAND} "-DALL_SQL_IN=${ALL_SQL_IN}"
-P "${CMAKE_CURRENT_SOURCE_DIR}/generate_all_sql_in.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS ${SQL_FILES}
COMMENT "Generating all.sql.in"
VERBATIM
)
add_custom_target(generate_all_sql_in ALL DEPENDS ${ALL_SQL_IN})
add_custom_command(
OUTPUT ${PROJ_DB}
COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJ_DB}
COMMAND ${EXE_SQLITE3} -init ${ALL_SQL_IN} ${PROJ_DB} .quit
COMMAND ${CMAKE_COMMAND} "-DALL_SQL_IN=${ALL_SQL_IN}" "-DEXE_SQLITE3=${EXE_SQLITE3}" "-DPROJ_DB=${PROJ_DB}" "-DPROJ_VERSION=${PROJ_VERSION}"
-P "${CMAKE_CURRENT_SOURCE_DIR}/generate_proj_db.cmake"
COMMAND ${CMAKE_COMMAND} -E copy ${PROJ_DB} ${CMAKE_CURRENT_BINARY_DIR}/for_tests
# note: we didn't port yet the foreign_key_check done in Makefile.am
DEPENDS generate_all_sql_in ${ALL_SQL_IN}
DEPENDS ${SQL_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/generate_proj_db.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating proj.db"
VERBATIM
)
@@ -106,6 +97,7 @@ set(ALL_DATA_FILE
${PROJ_DICTIONARY}
${GRIDSHIFT_FILES}
${PROJ_DB}
${SCHEMA_FILES}
)
install(
FILES ${ALL_DATA_FILE}
+23 -21
View File
@@ -4,20 +4,24 @@ pkgdata_DATA = proj.ini GL27 nad.lst nad27 nad83 world other.extra \
CH \
ITRF2000 ITRF2008 ITRF2014 proj.db \
projjson.schema.json \
deformation_model.schema.json
deformation_model.schema.json \
triangulation.schema.json
SQL_ORDERED_LIST = sql/begin.sql \
sql/proj_db_table_defs.sql \
sql/conversion_triggers.sql \
sql/metadata.sql \
sql/unit_of_measure.sql \
sql/area.sql \
sql/extent.sql \
sql/scope.sql \
sql/coordinate_system.sql \
sql/axis.sql \
sql/ellipsoid.sql \
sql/prime_meridian.sql \
sql/geodetic_datum.sql \
sql/geodetic_datum_ensemble_member.sql \
sql/vertical_datum.sql \
sql/vertical_datum_ensemble_member.sql \
sql/conversion.sql \
sql/geodetic_crs.sql \
sql/projected_crs.sql \
@@ -27,6 +31,7 @@ SQL_ORDERED_LIST = sql/begin.sql \
sql/grid_transformation.sql \
sql/grid_transformation_custom.sql \
sql/other_transformation.sql \
sql/other_transformation_custom.sql \
sql/concatenated_operation.sql \
sql/concatenated_operation_step.sql \
sql/alias_name.sql \
@@ -34,9 +39,11 @@ SQL_ORDERED_LIST = sql/begin.sql \
sql/deprecation.sql \
sql/esri.sql \
sql/ignf.sql \
sql/nkg.sql \
sql/grid_alternatives.sql \
sql/grid_alternatives_generated_noaa.sql \
sql/customizations.sql \
sql/nkg_post_customizations.sql \
sql/commit.sql
EXTRA_DIST = proj.ini GL27 nad.lst nad27 nad83 \
@@ -45,6 +52,7 @@ EXTRA_DIST = proj.ini GL27 nad.lst nad27 nad83 \
ITRF2000 ITRF2008 ITRF2014 \
projjson.schema.json \
deformation_model.schema.json \
triangulation.schema.json \
CMakeLists.txt \
tests/test_nodata.gtx \
tests/test_vgrid_bigendian_bigtiff.tif \
@@ -116,7 +124,10 @@ EXTRA_DIST = proj.ini GL27 nad.lst nad27 nad83 \
tests/simple_model_wrap_west.json \
tests/simple_model_wrap_west.tif \
tests/simple_model_projected.json \
generate_all_sql_in.cmake sql_filelist.cmake \
tests/tinshift_crs_implicit.json \
tests/tinshift_simplified_kkj_etrs.json \
tests/tinshift_simplified_n60_n2000.json \
generate_proj_db.cmake sql_filelist.cmake \
$(SQL_ORDERED_LIST)
install-data-local:
@@ -131,41 +142,32 @@ install-data-local:
fi; \
done
# head -c1 not handled on Solaris
proj.db: $(DATAPATH)/sql/*.sql
@echo "Make proj.db"
$(RM) proj.db
@export SQL_EXPANDED_LIST=""; \
for x in $(SQL_ORDERED_LIST); do \
export SQL_EXPANDED_LIST="$${SQL_EXPANDED_LIST} $(DATAPATH)/$$x"; \
export SQL_EXPANDED_LIST="$${SQL_EXPANDED_LIST} $(DATAPATH)/$$x"; \
done; \
cat $${SQL_EXPANDED_LIST} | sed 's/$${PROJ_VERSION}/${PACKAGE_VERSION}/' > all.sql.in; \
if test "x$(PROJ_DB_CACHE_DIR)" != "x" -a -x "$$(command -v md5sum)" -a -f "$(PROJ_DB_CACHE_DIR)/proj.db" -a -f "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5" ; then \
cat $${SQL_EXPANDED_LIST} | md5sum | diff - "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5" > /dev/null \
cat all.sql.in | md5sum | diff - "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5" > /dev/null \
&& (echo "Reusing cached proj.db"; cp "$(PROJ_DB_CACHE_DIR)/proj.db" proj.db); \
fi; \
if test ! -f proj.db ; then \
cat $${SQL_EXPANDED_LIST} | sqlite3 proj.db; \
cat all.sql.in | sqlite3 proj.db; \
fi; \
if [ $$? -ne 0 ] ; then \
echo "Build of proj.db failed"; \
$(RM) proj.db; \
exit 1; \
fi; \
echo "" | head -c1; \
if [ $$? -eq 0 ] ; then \
echo "Running foreign_key_check"; \
if [ $$(echo "pragma foreign_key_check;" | sqlite3 proj.db | head -c1 | wc -c) -ne 0 ]; then \
echo "Foreign key check failed"; \
$(RM) proj.db; \
exit 1; \
else \
if test "x$(PROJ_DB_CACHE_DIR)" != "x" -a -x "$$(command -v md5sum)" ; then \
fi; \
if test "x$(PROJ_DB_CACHE_DIR)" != "x" -a -x "$$(command -v md5sum)" ; then \
mkdir -p "$(PROJ_DB_CACHE_DIR)"; \
cat $${SQL_EXPANDED_LIST} | md5sum > "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5"; \
cat all.sql.in | md5sum > "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5"; \
cp proj.db "$(PROJ_DB_CACHE_DIR)"; \
fi \
fi \
fi
fi; \
$(RM) all.sql.in
# For out-of-tree builds, link all file of the source data dir to the generated data
# Also link select resource files in a for_tests subdirectory so that we are not
+1 -16
View File
@@ -4,16 +4,6 @@ File Contents:
README --- This file
epsg --- Translation of EPSG GCS/PCS codes into PROJ via init= mechanism.
epsg-deprecated --- EPSG definitions that have been deprecated. They are
not part of 'epsg' anymore, but may have been delivered
with earlier versions of 'epsg'.
Thus, they might occur e.g. in WMS (Web Mapping Services)
running with old EPSG definitions.
This file is not complete at all - it contains just
definitions that were individually reported.
nad27 --- North American Datum 1927 for "init=" definition of
State Plane Coordinate Systems (SPCS).
@@ -25,9 +15,4 @@ world --- Proj specifications for several international grid systems.
nad.lst --- Reference list of SPCS States and NGS datum identifiers
IGNF --- Translation of French Mapping Agency codes into PROJ via init= mechanism.
install --- Unix shell (sh) script to install proj init files.
Read beginning for usage instructions.
Additional data files are available in https://github.com/OSGeo/proj-datumgrid/
Additional data files are available in https://github.com/OSGeo/PROJ-data
-2
View File
@@ -1,2 +0,0 @@
# DHDN / Germany zone 3
<31493> +proj=tmerc +lat_0=0.000000000 +lon_0=9.000000000 +k=1.000000 +x_0=3500000.000 +y_0=0.000 +ellps=bessel +units=m no_defs <>
-10
View File
@@ -1,10 +0,0 @@
function(cat IN_FILE OUT_FILE)
file(READ ${IN_FILE} CONTENTS)
file(APPEND ${OUT_FILE} "${CONTENTS}")
endfunction()
file(WRITE "${ALL_SQL_IN}" "")
include(sql_filelist.cmake)
foreach(SQL_FILE ${SQL_FILES})
cat(${SQL_FILE} "${ALL_SQL_IN}")
endforeach()
+23
View File
@@ -0,0 +1,23 @@
function(cat IN_FILE OUT_FILE)
file(READ ${IN_FILE} CONTENTS)
file(APPEND ${OUT_FILE} "${CONTENTS}")
endfunction()
file(WRITE "${ALL_SQL_IN}" "")
include(sql_filelist.cmake)
foreach(SQL_FILE ${SQL_FILES})
cat(${SQL_FILE} "${ALL_SQL_IN}")
endforeach()
# Do ${PROJ_VERSION} substitution
file(READ ${ALL_SQL_IN} CONTENTS)
string(REPLACE "\${PROJ_VERSION}" "${PROJ_VERSION}" CONTENTS_MOD "${CONTENTS}")
file(WRITE "${ALL_SQL_IN}" "${CONTENTS_MOD}")
execute_process(COMMAND "${EXE_SQLITE3}" "${PROJ_DB}"
INPUT_FILE "${ALL_SQL_IN}"
RESULT_VARIABLE STATUS)
if(STATUS AND NOT STATUS EQUAL 0)
message(FATAL_ERROR "SQLite3 failed")
endif()
+19 -4
View File
@@ -1,7 +1,7 @@
{
"$id": "https://proj.org/schemas/v0.2/projjson.schema.json",
"$id": "https://proj.org/schemas/v0.3/projjson.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Schema for PROJJSON",
"description": "Schema for PROJJSON (v0.3)",
"$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_CURRENT_VERSION accordingly in io.cpp",
"oneOf": [
@@ -111,12 +111,20 @@
"bound_crs": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["BoundCRS"] },
"name": { "type": "string" },
"source_crs": { "$ref": "#/definitions/crs" },
"target_crs": { "$ref": "#/definitions/crs" },
"transformation": { "$ref": "#/definitions/abridged_transformation" }
"transformation": { "$ref": "#/definitions/abridged_transformation" },
"scope": {},
"area": {},
"bbox": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
},
"required" : [ "source_crs", "target_crs", "transformation" ],
"additionalProperties": false
@@ -756,7 +764,7 @@
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["PrimeMeridian"] },
"name": { "type": "string" },
"longitude": { "$ref": "#/definitions/value_and_unit" },
"longitude": { "$ref": "#/definitions/value_in_degree_or_value_and_unit" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
@@ -912,6 +920,13 @@
"additionalProperties": false
},
"value_in_degree_or_value_and_unit": {
"oneOf": [
{ "type": "number" },
{ "$ref": "#/definitions/value_and_unit" }
]
},
"value_in_metre_or_value_and_unit": {
"oneOf": [
{ "type": "number" },
+259 -38
View File
@@ -56,7 +56,7 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6172','POSGAR','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6202','AGD66','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6203','AGD84','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6204','Ain el Abd','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6215','Belge 1950','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6215','BD50','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6230','ED50','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6231','ED87','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6237','HD72','EPSG');
@@ -78,7 +78,7 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6297','Tananarive','EPS
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6303','TC(1948)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6308','RT38','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6312','MGI','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6313','Belge 1972','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6313','BD72','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6314','DHDN','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6318','NGN','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6319','KUDAMS','EPSG');
@@ -192,7 +192,6 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1192','NAD83(CSRS96)','
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1195','NAD83(CSRS)v4','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6265','Rome 1940','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6806','Rome 1940 (Rome)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6670','IGM95','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6673','CI1979','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5172','NG-L','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5174','NN1954','EPSG');
@@ -333,7 +332,6 @@ INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5202','Bora Bora 2001',
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5124','Fahud HD','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5132','DNN','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5138','ODN Orkney','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5215','EVRF2007','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6743','Karbala 1979 (Polservice)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5149','British Vertical Datum','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1029','IGRS','EPSG');
@@ -347,7 +345,7 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1147','ONGD14','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1031','D48','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6805','MGI (Ferro)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1033','RGRDC 2005','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6728','Pico de las Nieves','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5207','HVRD71','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6728','PN84','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1027','EGM2008','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1152','WGS 84 (G730)','EPSG');
@@ -356,10 +354,18 @@ INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5203','EGM84','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1154','WGS 84 (G1150)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5171','EGM96','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1155','WGS 84 (G1674)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1273','AbInvA96_2020-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6903','Madrid','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1156','WGS 84 (G1762)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1157','PZ-90.02','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1158','PZ-90.11','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1275','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1276','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1277','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1160','Kyrg-06','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1286','PN68','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1278','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1279','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1165','ITRF2014','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6818','Systém Jednotnej trigonometrickej siete katastrálnej (Ferro)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1167','BGS2005','EPSG');
@@ -377,6 +383,7 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1173','WGS 84 Tritan St
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1177','SHVD2015','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1180','ETRF91','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1178','ETRF89','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1280','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1179','ETRF90','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1181','ETRF92','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1182','ETRF93','EPSG');
@@ -387,6 +394,7 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1186','ETRF2000','EPSG'
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1176','MSL Tritan','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1175','MSL 1971','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1176','St. Helena Tritan 2011','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1281','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1193','NAD83(CSRS)v2','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1187','ISN2016','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1190','ISH2004','EPSG');
@@ -464,6 +472,7 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1237','SIRGAS Multi-Yea
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1238','SIRGAS-CON SIR11P01','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1238','SIRGAS Multi-Year Solution 2011','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1035','REGCAN95','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1282','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6761','HTRS96','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1047','RRAF91','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1251','KOSOVAREF12','EPSG');
@@ -482,11 +491,29 @@ INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1260','SRVN16','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6160','Quiñi-Huao','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1261','EVRF2000 Austria','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1262','SA LLD','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1264','HS2-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1263','ONGD17','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1269','KSA-VRF14','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1265','HS2-VRF','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5207','Croatian Vertical Reference System 1971','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1255','NGNC08','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1268','KSA-GRF17','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1266','TPEN11-IRF','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1283','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1284','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1285','REDNAP','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1243','SIRGAS-Chile 2010','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1289','GBK19-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1291','ATRF2014','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1270','MSL NL','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1290','LAT NL','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1292','AVWS','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1080','Lowest Astronomic Tide','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1082','Highest Astronomic Tide','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1293','SRGI2013','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1293','Indonesian Geospatial Reference System 2013','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1293','Jaring Kontrol Geodesi (JKG)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1294','INAGEOID2020','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1042','Red Geodesica Nacional 1992','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1046','Morro do Papagaio','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1046','Island of Principe datum','EPSG');
@@ -577,6 +604,32 @@ INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1131','JGD2011 (vertica
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1130','JGD2000 (vertical)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1129','JSLD72','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1132','RDN2008','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1288','BI','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6258','European Terrestrial Reference System 1989','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6326','World Geodetic System 1984','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6670','IGM95','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1295','LTF2004','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5215','EVRF2007','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1274','EVRF2019','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1287','EVRF2019mean','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1298','EH2000','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1299','LAS07','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1300','BGS2005','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1302','Pago Pago 2020','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1303','NVD 1992','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1301','CD Norway','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1199','Greenland Vertical Reference 2000','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1304','REDGEOMIN','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1297','EVRF2007-PL','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1305','ETRF2000-PL','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6277','OSGB36','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6277','OSGB 1936','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1051','Genoa','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1308','EOS21-IRF','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6282','Pointe Noire','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6215','Belge 1950','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6313','Belge 1972','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6809','BD50 (Brussels)','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');
@@ -679,16 +732,15 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3564','Old Hawaiian / SP
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3565','Old Hawaiian / SP zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3991','Puerto Rico SPCS 27','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4134','PDO Survey Datum 1993','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4215','BD 50','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4215','Belge 1950','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4268','NAD Michigan','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4313','BD 72','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4313','Belge 1972','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4609','CGQ77','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4809','BD 50 (Brussels)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4809','Belge 1950 (Brussels)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5701','Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5702','National Geodetic Vertical Datum of 1929 height (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5703','North American Vertical Datum of 1988 height (m)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5709','Normaal Amsterdams Peil height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','Australian Height Datum height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5712','Australian Height Datum (Tasmania) height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5713','Canadian Geodetic Vertical Datum of 1928 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5714','mean sea level height','EPSG');
@@ -995,7 +1047,6 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29849','Timbalai 1948 /
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29850','Timbalai 1948 / UTM 50N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29871','Timbalai / Borneo (ch)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29872','Timbalai / Borneo (ftSe)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29873','Timbalai / Borneo (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29900','TM65 / Irish Nat Grid','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','30161','Tokyo / Japan zone I','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','30162','Tokyo / Japan zone II','EPSG');
@@ -1031,7 +1082,7 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31268','MGI / Gauss zone
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31291','MGI / Austria West','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31292','MGI / Austria Central','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31293','MGI / Austria East','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31370','BD 72 / Lambert 72','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31370','BD72 / Lambert 72','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31461','DHDN / Gauss zone 1','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31462','DHDN / Gauss zone 2','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31463','DHDN / Gauss zone 3','EPSG');
@@ -1598,7 +1649,6 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6859','NAD83(2011) / OCR
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6870','KRGJSH-2010','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6862','NAD83(2011) / OCRS_SAN (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6862','NAD83(2011) / Oregon Sweet Home-Sisters zone (m)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4289','Stelsel van de Rijksdriehoeksmeting','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6863','NAD83(2011) / OCRS_SAN (ft)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3019','RT90 7.5 gon V 0:-15','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6798','NAD83(2011) / OCRS_BBU (m)','EPSG');
@@ -1682,8 +1732,6 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6861','CORS96 / OCRS_SAN
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3069','NAD27 / WTM 27','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5723','Japanese Standard Levelling Datum height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7005','Nahrwan 1934 / UTM 37N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6875','RDN2008 / Fuso Italia (N-E)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6876','RDN2008 / Fuso 12 (N-E)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5787','Baltic 1980 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5782','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3072','Maine Coordinate System of 2000 East Zone','EPSG');
@@ -1909,7 +1957,7 @@ INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5758','IGN 1989 height','
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5793','IGN 1950 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5794','IGN 1955 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5795','IGN 1951 height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan / Bangladesh TM','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan 303 / Bangladesh UTM','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3108','ETRS89 / New Guernsey Grid','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3109','ETRS89 / JTM','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5713','CVD28 height','EPSG');
@@ -2093,11 +2141,11 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2172','System 1965 zone
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2173','System 1965 zone III','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2174','System 1965 zone IV','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2175','System 1965 zone V','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2176','System 2000/15','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2177','System 2000/18','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2178','System 2000/21','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2179','System 2000/24','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2180','System 1992','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2176','PL-2000/15','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2177','PL-2000/18','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2178','PL-2000/21','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2179','PL-2000/24','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2180','PL-1992','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3120','System 1965 zone I','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3346','LKS94','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3346','LT_LKS94 / LT_TM','EPSG');
@@ -2173,10 +2221,8 @@ INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4298','Timbalai 1968','EP
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4298','BT68','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29849','BT68 / UTM zone 49N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29850','BT68 / UTM zone 50N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29873','BT68 / RSO Borneo (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29849','Timbalai 1968 / UTM zone 49N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29850','Timbalai 1968 / UTM zone 50N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29873','Timbalai 1968 / RSO Borneo (m)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4245','MRT68','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','24500','MRT68 / Singapore Grid','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','24547','MRT68 / UTM zone 47N','EPSG');
@@ -2710,7 +2756,7 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3816','NAD83(NSRS2007) /
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9378','IGb14 - XYZ','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3812','ETRS89 / LB08','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3447','ETRS89 / LB05','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31370','BD 72 / LB72','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31370','BD72 / LB72','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4236','Hu Tzu Shan','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4179','Pulkovo 1942(56)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4178','Uniform Astro-Geodetic Network (UAGN) 1983','EPSG');
@@ -2761,7 +2807,6 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2058','ED50(ED77) / UTM
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2059','ED50(ED77) / UTM 39N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2060','ED50(ED77) / UTM 40N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2061','ED50(ED77) / UTM 41N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2062','Madrid (Madrid) / Spain','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2063','Dabola 1981 / UTM 28N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2064','Dabola 1981 / UTM 29N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2104','Lake / La Rosa Grid','EPSG');
@@ -4214,8 +4259,6 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3088','NAD83 / KY1Z (m)'
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9379','726','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3857','WGS 84 / Popular Visualisation Pseudo-Mercator','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9379','IGb14 - LatLonEHt','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9380','725','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9380','IGb14 - LatLon','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','3886','National Elevation Network height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3893','ED50 / Iraq Nat. Grid','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4743','Karbala 1979 (Polservice)','EPSG');
@@ -4585,9 +4628,9 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7535','NAD83(2011) / WIS
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7535','NAD83(2011) / WISCRS Fond du Lac (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7561','WISCRS Menominee (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7548','WISCRS Grant (m)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4728','Pico de las Nieves','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4728','PN84','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4728','Pico de las Nieves 1984','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7538','WISCRS Columbia (m)','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5610','HR_HRVD71 / NOH','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7580','WISCRS Walworth (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7562','WISCRS Monroe (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7564','WISCRS Oneida (m)','EPSG');
@@ -4719,6 +4762,9 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7617','WISCRS Lincoln (f
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7638','WISCRS Vilas (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7618','WISCRS Marathon (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7639','WISCRS Walworth (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9377','MAGNA-SIRGAS / CTM12','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9387','ETRS89 / AbInvA96_2020 SnakeGrid','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9388','ETRS89 / AbInvA96_2020 SnakeGrid + Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7640','WISCRS Washburn (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7641','WISCRS Washington (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7642','WISCRS Waukesha (ftUS)','EPSG');
@@ -4727,12 +4773,18 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7644','WISCRS Waushara (
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7645','WISCRS Wood (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6316','Macedonia State Coordinate System zone 7','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3857','Web Mercator','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9391','BGS2005 / UTM zone 35 (E-N)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5634','REGCAN95 - LCC','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9400','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9392','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7692','Kyrg06-68','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7693','Kyrg06-71','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7694','Kyrg06-74','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7695','Kyrg06-77','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7696','Kyrg06-80','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','7700','LAS-2000 height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5635','REGCAN95 - LAEA','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9401','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5754','Poolbeg height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7791','RDN2008 / UTM zone 32N (E-N)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7792','RDN2008 / TM33 (E-N)','EPSG');
@@ -4743,7 +4795,7 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7800','CS2005 zone 35','
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7794','RDN2008 / Fuso Italia (E-N)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7795','RDN2008 / Fuso 12 (E-N)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7799','CS2005 zone 34','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7799','Coordinate System 2005 zone 35','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7799','Coordinate System 2005 zone 34','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','7815','WGS 84 (Original)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7800','Coordinate System 2005 zone 35','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7803','BGS2005 / UTM zone 34N (E-N)','EPSG');
@@ -4780,6 +4832,7 @@ INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4919','419','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4919','ITRF2000 - XYZ','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4918','349','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7887','SHGD2015 / UTM zone 30S','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9393','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','7887','St. Helena Map Grid 2015','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','7888','MSL 1971 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','7889','MSL Tritan height','EPSG');
@@ -5031,7 +5084,6 @@ INSERT INTO "alias_name" VALUES('compound_crs','EPSG','8360','ETRS89 [ETRF2000]
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4417','Pulkovo 42(83) / 3GK zn7','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','8357','Bpv','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4434','Pulkovo 42(83) / 3GK zn8','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','8360','ETRS89 [ETRF2000] + Bpv','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8351','S-JTSK (JTSK03)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8352','S-JTSK (JTSK03) / Krovak','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','8357','SK_KRON / NH','EPSG');
@@ -5046,8 +5098,6 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8383','NCRS Las Vegas (m
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8387','NCRS Las Vegas high (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8433','Macao 1920 Grid System','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5514','S-JTSK [JTSK] / Krovak East North','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','AHD71 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','AHD-TAS83 height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4414','GGN93 / Guam Map Grid','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4414','Guam Geodetic Network 1993 / Guam Map Grid','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4414','NAD83 / Guam Map Grid','EPSG');
@@ -5568,8 +5618,6 @@ INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4202','298','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4202','AGD66 - LatLon','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4203','350','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4203','AGD84 - LatLon','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','339','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','AHD - NOHt','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','7844','284','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','7844','GDA2020 - LatLon','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','7843','329','EPSG');
@@ -6014,19 +6062,46 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2081','Quini-Huao / Arge
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9254','MMS / Argentina zone 2','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9254','MMS / Gauss-Kruger zone 2','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9284','Pampa del Castillo / Gauss-Kruger zone 1','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','28992','Stelsel van de Rijksdriehoeksmeting','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9284','Pampa del Castillo / Argentina zone 1','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9285','Pampa del Castillo / Gauss-Kruger zone 3','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9285','Pampa del Castillo / Argentina zone 3','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4289','RD-Bessel','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4289','RD Bessel','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4776','New Beijing / 3GK zone 40','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9306','ETRS89 / HS2P1+14 Snake + HS2-VRF height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4777','New Beijing / 3GK zone 41','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9300','ETRS89 / HS2P1+14 Snake','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5753','NGNC height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9311','US National Atlas EA','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9354','WGS 84 / IBCSO PS','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5709','Hoogte boven Normaal Amsterdams Peil','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9394','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31289','MGI (Ferro) / M31','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31290','MGI (Ferro) / M34','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31288','MGI (Ferro) / M28','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9402','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9395','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9396','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9403','Pico de las Nieves 1968','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9397','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4903','Madrid','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9398','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9399','REDNAP height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','8690','SI_KOP / NH','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5195','SI_TRIE / NOH','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5195','MK_TRIE / NOH','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4826','WGS 84 / Cape Verde New','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4479','732','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4480','733','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9450','ETRS89 + Belfast Lough height','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4480','CGCS 2000 - LatLonEht','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4490','734','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4490','CGCS 2000 - LatLon','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5737','735','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5737','National Height Datum 1985 - NHt','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9456','ETRS89 / GBK19 SnakeGrid','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9457','ETRS89 / GBK19 SnakeGrid + Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9473','GDA2020 / Aus Albers','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','4647','ETRS89 / UTM zone 32N','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4824','Morro do Papagaio','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4824','Island of Principe datum','EPSG');
@@ -6497,7 +6572,7 @@ INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5868','Mean High Water he
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5869','Mean Higher High Water height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5870','Mean High Water Spring Tides height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5871','Higher High Water Large Tide height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5872','Highest Astronomic Tide height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5872','Highest Astronomical Tide height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5829','sea level height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5865','Mean Low Water Spring Tides depth','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5867','Mean Low Water depth','EPSG');
@@ -6506,7 +6581,7 @@ INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5866','Mean Lower Low Wat
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5831','sea level depth','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5863','Indian Spring Low Water depth','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5863','Indian Tidal Plane depth','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5861','Lowest Astronomic Tide depth','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5861','Lowest Astronomical Tide depth','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5862','Lower Low Water Large Tide depth','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5874','High Tide height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5873','Low Tide depth','EPSG');
@@ -7121,6 +7196,152 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6677','JGD2011 / Japan z
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','6693','Japan Levelling Datum height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','6693','Japanese Standard Levelling Datum height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','6693','JSLD height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6707','RDN2008 / TM32','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2062','Madrid (Madrid) / Spain LCC','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2062','Madrid - LCC','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9380','725','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9380','IGb14 - LatLon','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','Australian Height Datum height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','AHD71 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','AHD-TAS83 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','339','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5711','AHD - NOHt','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9502','CIGD11 + CBVD61 height','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9504','CIGD11 + LCVD61 height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29873','Timbalai / Borneo (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29873','BT68 / RSO Borneo (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29873','Timbalai 1968 / RSO Borneo (m)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','29874','BT68 / RSO Sarawak LSD (m)','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','6705','ETRF2000 epoca 2008.0','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','6704','ETRF2000 epoca 2008.0','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','6706','ETRF2000 epoca 2008.0','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6708','RDN2008 / TM33','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6708','ETRF2000 epoca 2008.0 fuso 33','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6707','RDN2008 / TM32','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6707','ETRF2000 epoca 2008.0 fuso 32','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6709','RDN2008 / TM34','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6709','ETRF2000 epoca 2008.0 fuso 34','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6875','RDN2008 / Fuso Italia (N-E)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6875','ETRF2000 epoca 2008.0 fuso Italia','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6876','RDN2008 / Fuso 12 (N-E)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6876','ETRF2000 epoca 2008.0 fuso 12','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9503','CIGD11 + GCVD54 height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9498','CABA-P07','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9389','EVRF2019_AMST / NH','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9390','EVRF2019mean_AMST / NH','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9675','741','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9675','LT at Pago Pago - NOHt','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan 303 / Bangladesh Transverse Mercator','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan 303 / BUTM','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9678','Gulshan / Bangladesh TM','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9680','WGS 84 / Bangladesh Universal Transverse Mercator','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9680','WGS 84 / BUTM 2010','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6893','WGS 84 / World Mercator + EGM2008 height','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','7955','St. Helena Tritan / UTM zone 30S + Tritan 2011 height','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','7956','SHMG2015 + SHVD2015 height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2176','ETRS89 / Poland CS2000 zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2177','ETRS89 / Poland CS2000 zone 6','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2178','ETRS89 / Poland CS2000 zone 7','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2179','ETRS89 / Poland CS2000 zone 8','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2180','ETRS89 / Poland CS92','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9650','PL_KRON / NH','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9650','Kronzstad 86','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9650','Kronstadt 1986 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9651','PL_AMST / NH','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9651','PL-EVRF2007-NH','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9700','PL-ETRF2000','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9701','PL-ETRF2000','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8401','748','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8401','ETRF2014 - XYZ','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8403','747','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8403','ETRF2014 - LatLonEHt','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9069','746','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9069','ETRF2014- LatLon','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9672','CD Norway','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9656','PL-ETRF2000 + Kronzstad 86','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9657','PL-ETRF2000 + Kronzstad 86','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4277','OSGB 1936','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','27700','OSGB 1936 / British National Grid','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','9702','PL-ETRF2000','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9713','NAD83(CSRS) / UTM 24N','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4265','Roma40','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4982','ETRF89 IT','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4983','ETRF89 IT','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4670','ETRF89 IT','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3065','ETRF89 IT / UTM zone 33N','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3064','ETRF89 IT / UTM zone 32N','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5214','Genoa height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9741','ETRS89 / EOS21 SnakeGrid','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9742','ETRS89 / EOS21 SnakeGrid + Newlyn height','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9716','ETRF89 IT / UTM zone 34N','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5608','770','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5608','IGLD (1955) - DHt','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5609','771','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5609','IGLD (1985) - DHt','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9390','766','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9390','EVRF2019mean-NHt','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9389','765','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9389','EVRF2019-NHt','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9749','NAD83(2011) / AL W (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9748','NAD83(2011) / AL E (ftUS)','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20904','GSK-2011 / 6-degree Gauss-Kruger zone 4','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20906','GSK-2011 / 6-degree Gauss-Kruger zone 6','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20907','GSK-2011 / 6-degree Gauss-Kruger zone 7','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20905','GSK-2011 / 6-degree Gauss-Kruger zone 5','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20908','GSK-2011 / 6-degree Gauss-Kruger zone 8','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20909','GSK-2011 / 6-degree Gauss-Kruger zone 9','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20910','GSK-2011 / 6-degree Gauss-Kruger zone 10','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20911','GSK-2011 / 6-degree Gauss-Kruger zone 11','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20912','GSK-2011 / 6-degree Gauss-Kruger zone 12','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20913','GSK-2011 / 6-degree Gauss-Kruger zone 13','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20914','GSK-2011 / 6-degree Gauss-Kruger zone 14','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20915','GSK-2011 / 6-degree Gauss-Kruger zone 15','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20916','GSK-2011 / 6-degree Gauss-Kruger zone 16','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20917','GSK-2011 / 6-degree Gauss-Kruger zone 17','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20919','GSK-2011 / 6-degree Gauss-Kruger zone 19','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20920','GSK-2011 / 6-degree Gauss-Kruger zone 20','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20921','GSK-2011 / 6-degree Gauss-Kruger zone 21','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20922','GSK-2011 / 6-degree Gauss-Kruger zone 22','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20923','GSK-2011 / 6-degree Gauss-Kruger zone 23','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20924','GSK-2011 / 6-degree Gauss-Kruger zone 24','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20925','GSK-2011 / 6-degree Gauss-Kruger zone 25','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20926','GSK-2011 / 6-degree Gauss-Kruger zone 26','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20927','GSK-2011 / 6-degree Gauss-Kruger zone 27','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20929','GSK-2011 / 6-degree Gauss-Kruger zone 29','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20930','GSK-2011 / 6-degree Gauss-Kruger zone 30','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20931','GSK-2011 / 6-degree Gauss-Kruger zone 31','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20932','GSK-2011 / 6-degree Gauss-Kruger zone 32','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20928','GSK-2011 / 6-degree Gauss-Kruger zone 28','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21005','GSK-2011 / 6-degree Gauss-Kruger CM 27E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21006','GSK-2011 / 6-degree Gauss-Kruger CM 33E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21007','GSK-2011 / 6-degree Gauss-Kruger CM 39E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21008','GSK-2011 / 6-degree Gauss-Kruger CM 45E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21010','GSK-2011 / 6-degree Gauss-Kruger CM 57E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21011','GSK-2011 / 6-degree Gauss-Kruger CM 63E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21012','GSK-2011 / 6-degree Gauss-Kruger CM 69E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21013','GSK-2011 / 6-degree Gauss-Kruger CM 75E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21014','GSK-2011 / 6-degree Gauss-Kruger CM 81E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21015','GSK-2011 / 6-degree Gauss-Kruger CM 87E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21016','GSK-2011 / 6-degree Gauss-Kruger CM 93E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21017','GSK-2011 / 6-degree Gauss-Kruger CM 99E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21018','GSK-2011 / 6-degree Gauss-Kruger CM 105E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21019','GSK-2011 / 6-degree Gauss-Kruger CM 111E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21020','GSK-2011 / 6-degree Gauss-Kruger CM 117E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21021','GSK-2011 / 6-degree Gauss-Kruger CM 123E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21022','GSK-2011 / 6-degree Gauss-Kruger CM 129E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21023','GSK-2011 / 6-degree Gauss-Kruger CM 135E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21024','GSK-2011 / 6-degree Gauss-Kruger CM 141E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21025','GSK-2011 / 6-degree Gauss-Kruger CM 147E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21026','GSK-2011 / 6-degree Gauss-Kruger CM 153E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21027','GSK-2011 / 6-degree Gauss-Kruger CM 159E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21028','GSK-2011 / 6-degree Gauss-Kruger CM 165E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21029','GSK-2011 / 6-degree Gauss-Kruger CM 171E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21030','GSK-2011 / 6-degree Gauss-Kruger CM 177E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21031','GSK-2011 / 6-degree Gauss-Kruger CM 177W','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21032','GSK-2011 / 6-degree Gauss-Kruger CM 171W','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21004','GSK-2011 / 6-degree Gauss-Kruger CM 21E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21009','GSK-2011 / 6-degree Gauss-Kruger CM 51E','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','20918','GSK-2011 / 6-degree Gauss-Kruger zone 18','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21500','Belge 1950 (Brussels) / Belge Lambert 50','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31300','Belge 1972 / Belge Lambert 72','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','31370','Belge 1972 / Belgian Lambert 72','EPSG');
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6190','Belge 1972 / Belgian Lambert 72 + Ostend height','EPSG');
-3565
View File
File diff suppressed because it is too large Load Diff
+42 -38
View File
@@ -1,7 +1,7 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "axis" VALUES('EPSG','1039','Easting','M','east','EPSG','1024',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1040','Northing','P','north','EPSG','1024',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32773','Easting','M','east','EPSG','1024',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32774','Northing','P','north','EPSG','1024',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1062','Easting','X','North along 130°W','EPSG','1025',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1063','Northing','Y','North along 140°E','EPSG','1025',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1065','Easting','E','South along 90°E','EPSG','1026',1,'EPSG','9001');
@@ -12,7 +12,6 @@ INSERT INTO "axis" VALUES('EPSG','1073','Easting','E','east','EPSG','1028',1,'EP
INSERT INTO "axis" VALUES('EPSG','1074','Northing','N','north','EPSG','1028',2,'EPSG','9037');
INSERT INTO "axis" VALUES('EPSG','1078','Northing','N','north','EPSG','1029',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1079','Easting','E','east','EPSG','1029',2,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1082','Gravity-related height','H','up','EPSG','1030',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1101','Northing','Y','north','EPSG','1031',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1102','Westing','X','west','EPSG','1031',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1110','Plant East','x','east','EPSG','1032',1,'EPSG','9001');
@@ -41,7 +40,6 @@ INSERT INTO "axis" VALUES('EPSG','1032','Platform Down','z','Downward','EPSG','1
INSERT INTO "axis" VALUES('EPSG','1036','Starboard','x','Starboard','EPSG','1042',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1037','Forward','y','Ahead','EPSG','1042',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1038','Platform Up','z','Upward','EPSG','1042',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1516','Depth','D','down','EPSG','1043',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','1525','Northing','N','North along 180°E','EPSG','1044',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1526','Easting','E','North along 90°W','EPSG','1044',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1044','Starboard','x','Starboard','EPSG','1045',1,'EPSG','9001');
@@ -51,8 +49,6 @@ INSERT INTO "axis" VALUES('EPSG','1042','Local northing','n','north','EPSG','104
INSERT INTO "axis" VALUES('EPSG','1043','Local easting','e','east','EPSG','1047',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1049','Local northing','n','north','EPSG','1048',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1050','Local easting','e','east','EPSG','1048',2,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1051','Local depth','d','down','EPSG','1049',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1053','Local depth','d','down','EPSG','1050',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1','Easting','E','east','EPSG','4400',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','2','Northing','N','north','EPSG','4400',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','3','Easting','E','east','EPSG','4401',1,'EPSG','9062');
@@ -172,6 +168,46 @@ INSERT INTO "axis" VALUES('EPSG','180','Northing','X','north','EPSG','4533',1,'E
INSERT INTO "axis" VALUES('EPSG','179','Easting','Y','east','EPSG','4533',2,'EPSG','9098');
INSERT INTO "axis" VALUES('EPSG','183','Northing','none','north','EPSG','4534',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','184','Easting','none','east','EPSG','4534',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','63','Geodetic latitude','Lat','north','EPSG','6405',1,'EPSG','9102');
INSERT INTO "axis" VALUES('EPSG','64','Geodetic longitude','Long','east','EPSG','6405',2,'EPSG','9102');
INSERT INTO "axis" VALUES('EPSG','65','Geodetic latitude','Lat','north','EPSG','6406',1,'EPSG','9116');
INSERT INTO "axis" VALUES('EPSG','66','Geodetic longitude','Long','east','EPSG','6406',2,'EPSG','9116');
INSERT INTO "axis" VALUES('EPSG','106','Geodetic latitude','Lat','north','EPSG','6422',1,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','107','Geodetic longitude','Lon','east','EPSG','6422',2,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','115','Geocentric X','X','geocentricX','EPSG','6500',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','116','Geocentric Y','Y','geocentricY','EPSG','6500',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','117','Geocentric Z','Z','geocentricZ','EPSG','6500',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','119','Southing','X','south','EPSG','6501',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','118','Westing','Y','west','EPSG','6501',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','120','Westing','Y','west','EPSG','6502',1,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','121','Southing','X','south','EPSG','6502',2,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','122','Westing','Y','west','EPSG','6503',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','123','Southing','X','south','EPSG','6503',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','125','Plant North','n','northwest','EPSG','6504',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','124','Plant East','e','northeast','EPSG','6504',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','126','First local axis','n','northwest','EPSG','6505',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','127','Second local axis','e','northeast','EPSG','6505',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','128','First local axis','I','east-south-east','EPSG','6506',1,'EPSG','9205');
INSERT INTO "axis" VALUES('EPSG','129','Second local axis','J','north-north-east','EPSG','6506',2,'EPSG','9204');
INSERT INTO "axis" VALUES('EPSG','130','First local axis','X','north','EPSG','6507',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','131','Second local axis','Y','west','EPSG','6507',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','133','Bin grid J','J','north north east','EPSG','6508',1,'EPSG','9209');
INSERT INTO "axis" VALUES('EPSG','132','Bin grid I','I','east south east','EPSG','6508',2,'EPSG','9208');
INSERT INTO "axis" VALUES('EPSG','135','Southing','P','south','EPSG','6509',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','134','Westing','M','west','EPSG','6509',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','173','Plant East','x','northeast','EPSG','6510',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','174','Plant North','y','northwest','EPSG','6510',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','211','Plant East','x','east','EPSG','6512',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','212','Plant North','y','north','EPSG','6512',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','213','Local height','z','up','EPSG','6512',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32845','Bin grid I','I','J-axis plus 90 degrees','EPSG','32760',1,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32846','Bin grid J','J','See associated operation','EPSG','32760',2,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32847','Bin grid I','I','J-axis minus 90 degrees','EPSG','32761',1,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32848','Bin grid J','J','See associated operation','EPSG','32761',2,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','1082','Gravity-related height','H','up','EPSG','1030',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1516','Depth','D','down','EPSG','1043',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','1051','Local depth','d','down','EPSG','1049',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1053','Local depth','d','down','EPSG','1050',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','53','Geodetic latitude','Lat','north','EPSG','6401',1,'EPSG','9108');
INSERT INTO "axis" VALUES('EPSG','54','Geodetic longitude','Long','east','EPSG','6401',2,'EPSG','9108');
INSERT INTO "axis" VALUES('EPSG','55','Ellipsoidal height','h','up','EPSG','6401',3,'EPSG','9001');
@@ -182,10 +218,6 @@ INSERT INTO "axis" VALUES('EPSG','59','Geodetic longitude','Lon','east','EPSG','
INSERT INTO "axis" VALUES('EPSG','60','Spherical latitude','Lat','north','EPSG','6404',1,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','61','Spherical longitude','Long','east','EPSG','6404',2,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','62','Geocentric radius','R','up','EPSG','6404',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','63','Geodetic latitude','Lat','north','EPSG','6405',1,'EPSG','9102');
INSERT INTO "axis" VALUES('EPSG','64','Geodetic longitude','Long','east','EPSG','6405',2,'EPSG','9102');
INSERT INTO "axis" VALUES('EPSG','65','Geodetic latitude','Lat','north','EPSG','6406',1,'EPSG','9116');
INSERT INTO "axis" VALUES('EPSG','66','Geodetic longitude','Long','east','EPSG','6406',2,'EPSG','9116');
INSERT INTO "axis" VALUES('EPSG','67','Geodetic latitude','Lat','north','EPSG','6407',1,'EPSG','9117');
INSERT INTO "axis" VALUES('EPSG','68','Geodetic longitude','Long','east','EPSG','6407',2,'EPSG','9117');
INSERT INTO "axis" VALUES('EPSG','69','Geodetic latitude','Lat','north','EPSG','6408',1,'EPSG','9115');
@@ -225,8 +257,6 @@ INSERT INTO "axis" VALUES('EPSG','102','Ellipsoidal height','h','up','EPSG','642
INSERT INTO "axis" VALUES('EPSG','103','Geodetic latitude','Lat','north','EPSG','6421',1,'EPSG','9105');
INSERT INTO "axis" VALUES('EPSG','104','Geodetic longitude','Lon','east','EPSG','6421',2,'EPSG','9105');
INSERT INTO "axis" VALUES('EPSG','105','Ellipsoidal height','h','up','EPSG','6421',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','106','Geodetic latitude','Lat','north','EPSG','6422',1,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','107','Geodetic longitude','Lon','east','EPSG','6422',2,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','108','Geodetic latitude','Lat','north','EPSG','6423',1,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','109','Geodetic longitude','Lon','east','EPSG','6423',2,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','110','Ellipsoidal height','h','up','EPSG','6423',3,'EPSG','9001');
@@ -255,31 +285,5 @@ INSERT INTO "axis" VALUES('EPSG','111','Gravity-related height','H','up','EPSG',
INSERT INTO "axis" VALUES('EPSG','112','Gravity-related height','H','up','EPSG','6497',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','113','Depth','D','down','EPSG','6498',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','114','Gravity-related height','H','up','EPSG','6499',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','115','Geocentric X','X','geocentricX','EPSG','6500',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','116','Geocentric Y','Y','geocentricY','EPSG','6500',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','117','Geocentric Z','Z','geocentricZ','EPSG','6500',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','119','Southing','X','south','EPSG','6501',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','118','Westing','Y','west','EPSG','6501',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','120','Westing','Y','west','EPSG','6502',1,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','121','Southing','X','south','EPSG','6502',2,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','122','Westing','Y','west','EPSG','6503',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','123','Southing','X','south','EPSG','6503',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','125','Plant North','n','northwest','EPSG','6504',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','124','Plant East','e','northeast','EPSG','6504',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','126','First local axis','n','northwest','EPSG','6505',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','127','Second local axis','e','northeast','EPSG','6505',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','128','First local axis','I','east-south-east','EPSG','6506',1,'EPSG','9205');
INSERT INTO "axis" VALUES('EPSG','129','Second local axis','J','north-north-east','EPSG','6506',2,'EPSG','9204');
INSERT INTO "axis" VALUES('EPSG','130','First local axis','X','north','EPSG','6507',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','131','Second local axis','Y','west','EPSG','6507',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','133','Bin grid J','J','north north east','EPSG','6508',1,'EPSG','9209');
INSERT INTO "axis" VALUES('EPSG','132','Bin grid I','I','east south east','EPSG','6508',2,'EPSG','9208');
INSERT INTO "axis" VALUES('EPSG','135','Southing','P','south','EPSG','6509',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','134','Westing','M','west','EPSG','6509',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','173','Plant East','x','northeast','EPSG','6510',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','174','Plant North','y','northwest','EPSG','6510',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','177','Inline','I','Along receiver lines','EPSG','6511',1,'EPSG','9208');
INSERT INTO "axis" VALUES('EPSG','178','Crossline','J','Across receiver lines','EPSG','6511',2,'EPSG','9209');
INSERT INTO "axis" VALUES('EPSG','211','Plant East','x','east','EPSG','6512',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','212','Plant North','y','north','EPSG','6512',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','213','Local height','z','up','EPSG','6512',3,'EPSG','9001');
+3
View File
@@ -1 +1,4 @@
PRAGMA page_size = 4096;
PRAGMA foreign_keys = 1;
BEGIN;
+187 -24
View File
@@ -9,10 +9,8 @@ CREATE INDEX grid_transformation_idx ON grid_transformation(source_crs_auth_name
CREATE INDEX other_transformation_idx ON other_transformation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
CREATE INDEX concatenated_operation_idx ON concatenated_operation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
-- Do an explicit foreign_key_check as foreign key checking is a no-op within
-- a transaction. Unfortunately we can't ask for this to be an error, so this
-- is just for verbose output. In Makefile, we check this separately
PRAGMA foreign_key_check;
-- We don't need to select by auth_name, code so nullify them to save space
UPDATE usage SET auth_name = NULL, code = NULL;
-- Final consistency checks
CREATE TABLE dummy(foo);
@@ -30,6 +28,43 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'corrupt definition of authority_list')
WHERE (SELECT 1 FROM authority_list LIMIT 1) = 0;
-- check that a usage is registered for most objects where this is needed
SELECT RAISE(ABORT, 'One or several objects lack a corresponding record in the usage table')
WHERE EXISTS (
SELECT * FROM object_view o WHERE NOT EXISTS (
SELECT 1 FROM usage u WHERE
o.table_name = u.object_table_name AND
o.auth_name = u.object_auth_name AND
o.code = u.object_code)
AND o.table_name NOT IN ('unit_of_measure', 'axis',
'celestial_body', 'ellipsoid', 'prime_meridian', 'extent')
-- the IGNF registry lacks extent for the following objects
AND NOT (o.auth_name = 'IGNF' AND o.table_name IN ('geodetic_datum', 'vertical_datum', 'conversion'))
);
SELECT RAISE(ABORT, 'Geodetic datum ensemble defined, but no ensemble member')
WHERE EXISTS (
SELECT * FROM geodetic_datum d WHERE ensemble_accuracy IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM geodetic_datum_ensemble_member WHERE
d.auth_name = ensemble_auth_name AND d.code = ensemble_code)
);
SELECT RAISE(ABORT, 'Vertical datum ensemble defined, but no ensemble member')
WHERE EXISTS (
SELECT * FROM vertical_datum d WHERE ensemble_accuracy IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM vertical_datum_ensemble_member WHERE
d.auth_name = ensemble_auth_name AND d.code = ensemble_code)
);
SELECT RAISE(ABORT, 'PROJ defines an alias that exists in EPSG')
WHERE EXISTS (
SELECT * FROM (
SELECT count(*) AS count, table_name, auth_name, code, alt_name FROM alias_name
WHERE source in ('EPSG', 'PROJ')
AND NOT (source = 'PROJ' AND alt_name IN ('GGRS87', 'NAD27', 'NAD83'))
GROUP BY table_name, auth_name, code, alt_name) x WHERE count > 1
);
-- test to check that our custom grid transformation overrides are really needed
SELECT RAISE(ABORT, 'PROJ grid_transformation defined whereas EPSG has one')
WHERE EXISTS (SELECT 1 FROM grid_transformation g1
@@ -38,14 +73,14 @@ FOR EACH ROW BEGIN
AND g1.source_crs_code = g2.source_crs_code
AND g1.target_crs_auth_name = g2.target_crs_auth_name
AND g1.target_crs_code = g2.target_crs_code
WHERE g1.auth_name = 'PROJ' AND g2.auth_name = 'EPSG')
WHERE g1.auth_name = 'PROJ' AND g1.code NOT LIKE '%_RESTRICTED_TO_VERTCRS%' AND g2.auth_name = 'EPSG')
OR EXISTS (SELECT 1 FROM grid_transformation g1
JOIN grid_transformation g2
ON g1.source_crs_auth_name = g2.target_crs_auth_name
AND g1.source_crs_code = g2.target_crs_code
AND g1.target_crs_auth_name = g1.source_crs_auth_name
AND g1.target_crs_code = g1.source_crs_code
WHERE g1.auth_name = 'PROJ' AND g2.auth_name = 'EPSG');
WHERE g1.auth_name = 'PROJ' AND g1.code NOT LIKE '%_RESTRICTED_TO_VERTCRS%' AND g2.auth_name = 'EPSG');
SELECT RAISE(ABORT, 'Arg! there is now a EPSG:102100 object. Hack in createFromUserInput() will no longer work')
WHERE EXISTS(SELECT 1 FROM crs_view WHERE auth_name = 'EPSG' AND code = '102100');
@@ -81,39 +116,161 @@ FOR EACH ROW BEGIN
g.method_name LIKE 'Geographic3D to GravityRelatedHeight%' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM vertical_crs));
SELECT RAISE(ABORT, 'One grid_transformation with Geographic3D to GravityRelatedHeight has not its source_crs in geodetic_crs table with type = ''geographic 3D''')
SELECT RAISE(ABORT, 'One grid_transformation with Geographic3D to GravityRelatedHeight or Geog3D to Geog2D+XXX has not its source_crs in geodetic_crs table with type = ''geographic 3D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.deprecated = 0 AND
g.method_name LIKE 'Geographic3D to GravityRelatedHeight%' AND
NOT (g.auth_name = 'EPSG' AND g.code IN (7648, 7649, 7650)) AND -- those are wrongly registered as they use a geocentric CRS. Reported to EPSG
(g.method_name LIKE 'Geographic3D to %' OR g.method_name LIKE 'Geog3D to %') AND
g.source_crs_auth_name || g.source_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 3D'));
-- check that grids with 'Vertical Offset by Grid Interpolation' methods are properly registered
SELECT RAISE(ABORT, 'One grid_transformation with Vertical Offset by Grid Interpolation has not its source_crs in vertical_crs table')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_name LIKE 'Vertical Offset by Grid Interpolation%' AND
g.source_crs_auth_name || g.source_crs_code NOT IN
(SELECT auth_name || code FROM vertical_crs));
SELECT RAISE(ABORT, 'One grid_transformation with Vertical Offset by Grid Interpolation has not its target_crs in vertical_crs table')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_name LIKE 'Vertical Offset by Grid Interpolation%' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM vertical_crs));
-- check that Helmert transformations have source and target of the same nature (the fkey already checks they are geodetic_crs)
SELECT RAISE(ABORT, 'One helmert_transformation has a source CRS of a different nature than its target CRS')
WHERE EXISTS (SELECT helmert_transformation.auth_name,
helmert_transformation.code,
helmert_transformation.name,
crs1.type AS crs1_type,
crs2.type AS crs2_type
FROM helmert_transformation
JOIN geodetic_crs crs1 ON
crs1.auth_name = source_crs_auth_name AND crs1.code = source_crs_code
JOIN geodetic_crs crs2 ON
crs2.auth_name = target_crs_auth_name AND crs2.code = target_crs_code
WHERE helmert_transformation.deprecated = 0 AND crs1.type != crs2.type);
-- check that the method used by a Helmert transformation is consistent with the dimensionality of the CRS
SELECT RAISE(ABORT, 'The domain of the method of helmert_transformation is not consistent with the dimensionality of the CRS')
WHERE EXISTS (SELECT helmert_transformation.auth_name,
helmert_transformation.code,
helmert_transformation.name,
helmert_transformation.method_name,
crs.type AS crs_type
FROM helmert_transformation
JOIN geodetic_crs crs ON
crs.auth_name = source_crs_auth_name AND crs.code = source_crs_code
WHERE helmert_transformation.deprecated = 0 AND
((method_name LIKE '%geog2D domain%' AND crs.type != 'geographic 2D') OR
(method_name LIKE '%geog3D domain%' AND crs.type != 'geographic 3D') OR
(method_name LIKE '%geocentric domain%' AND crs.type != 'geocentric')));
-- check that a time-dependent Helmert transformation has its source or target CRS being dyanmic
SELECT RAISE(ABORT, 'A time-dependent Helmert transformations has its source and target CRS both non-dynamic')
WHERE EXISTS (SELECT helmert_transformation.auth_name,
helmert_transformation.code,
helmert_transformation.name
FROM helmert_transformation
JOIN geodetic_crs crs1 ON
crs1.auth_name = source_crs_auth_name AND crs1.code = source_crs_code
JOIN geodetic_crs crs2 ON
crs2.auth_name = target_crs_auth_name AND crs2.code = target_crs_code
JOIN geodetic_datum gd1 ON
gd1.auth_name = crs1.datum_auth_name AND gd1.code = crs1.datum_code
JOIN geodetic_datum gd2 ON
gd2.auth_name = crs2.datum_auth_name AND gd2.code = crs2.datum_code
WHERE helmert_transformation.deprecated = 0 AND
method_name LIKE 'Time-dependent%' AND
gd1.frame_reference_epoch IS NULL AND
gd2.frame_reference_epoch IS NULL);
-- check that transformations operations between vertical CRS are from/into a vertical CRS
SELECT RAISE(ABORT, 'A transformation operating on vertical CRS has a source CRS not being a vertical CRS')
WHERE EXISTS (SELECT other_transformation.auth_name,
other_transformation.code,
other_transformation.name
FROM other_transformation
LEFT JOIN vertical_crs crs ON
crs.auth_name = source_crs_auth_name AND crs.code = source_crs_code
WHERE other_transformation.deprecated = 0 AND
method_name IN ('Vertical Offset', 'Height Depth Reversal', 'Change of Vertical Unit') AND
crs.code IS NULL);
SELECT RAISE(ABORT, 'AA transformation operating on vertical CRS has a target CRS not being a vertical CRS')
WHERE EXISTS (SELECT other_transformation.auth_name,
other_transformation.code,
other_transformation.name
FROM other_transformation
LEFT JOIN vertical_crs crs ON
crs.auth_name = target_crs_auth_name AND crs.code = target_crs_code
WHERE other_transformation.deprecated = 0 AND
method_name IN ('Vertical Offset', 'Height Depth Reversal', 'Change of Vertical Unit') AND
crs.code IS NULL);
-- check that 'Geographic2D with Height Offsets' transformations have a compound CRS with a geog2D as source
SELECT RAISE(ABORT, 'A transformation Geographic2D with Height Offsets does not have a compound CRS with a geog2D as source')
WHERE EXISTS (SELECT other_transformation.auth_name,
other_transformation.code,
other_transformation.name
FROM other_transformation
LEFT JOIN compound_crs ccrs ON
ccrs.auth_name = source_crs_auth_name AND ccrs.code = source_crs_code
LEFT JOIN geodetic_crs gcrs ON
gcrs.auth_name = horiz_crs_auth_name AND gcrs.code = horiz_crs_code
WHERE other_transformation.deprecated = 0 AND
method_name = 'Geographic2D with Height Offsets' AND
(gcrs.code IS NULL OR gcrs.type != 'geographic 2D'));
SELECT RAISE(ABORT, 'A transformation Geographic2D with Height Offsets does not have a geographic 3D CRS as target')
WHERE EXISTS (SELECT other_transformation.auth_name,
other_transformation.code,
other_transformation.name
FROM other_transformation
LEFT JOIN geodetic_crs gcrs ON
gcrs.auth_name = target_crs_auth_name AND gcrs.code = target_crs_code
WHERE other_transformation.deprecated = 0 AND
method_name = 'Geographic2D with Height Offsets' AND
(gcrs.type IS NULL OR gcrs.type != 'geographic 3D'));
-- check that transformations intersect the area of use of their source/target CRS
-- EPSG, ESRI and IGNF have cases where this does not hold.
SELECT RAISE(ABORT, 'The area of use of at least one coordinate_operation does not intersect the one of its source CRS')
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, area va, area ca WHERE
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, usage vu, extent ve, usage cu, extent ce WHERE
v.deprecated = 0 AND
v.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF') AND
(v.table_name = 'grid_transformation' OR v.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF')) AND
v.source_crs_auth_name = c.auth_name AND
v.source_crs_code = c.code AND
v.area_of_use_auth_name = va.auth_name AND
v.area_of_use_code = va.code AND
c.area_of_use_auth_name = ca.auth_name AND
c.area_of_use_code = ca.code AND
NOT (ca.south_lat < va.north_lat AND va.south_lat < ca.north_lat));
vu.object_table_name = v.table_name AND
vu.object_auth_name = v.auth_name AND
vu.object_code = v.code AND
vu.extent_auth_name = ve.auth_name AND
vu.extent_code = ve.code AND
cu.object_table_name = c.table_name AND
cu.object_auth_name = c.auth_name AND
cu.object_code = c.code AND
cu.extent_auth_name = ce.auth_name AND
cu.extent_code = ce.code AND
NOT ((ce.south_lat < ve.north_lat AND ve.south_lat < ce.north_lat) OR
(ce.west_lon < ce.east_lon AND ve.west_lon < ve.east_lon AND
NOT (ce.west_lon < ve.east_lon AND ve.west_lon < ce.east_lon))) );
SELECT RAISE(ABORT, 'The area of use of at least one coordinate_operation does not intersect the one of its target CRS')
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, area va, area ca WHERE
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, usage vu, extent ve, usage cu, extent ce WHERE
v.deprecated = 0 AND
v.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF') AND
((v.table_name = 'grid_transformation' AND NOT (v.auth_name = 'IGNF' AND v.code = 'TSG1185'))
OR v.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF')) AND
v.target_crs_auth_name = c.auth_name AND
v.target_crs_code = c.code AND
v.area_of_use_auth_name = va.auth_name AND
v.area_of_use_code = va.code AND
c.area_of_use_auth_name = ca.auth_name AND
c.area_of_use_code = ca.code AND
NOT (ca.south_lat < va.north_lat AND va.south_lat < ca.north_lat));
vu.object_table_name = v.table_name AND
vu.object_auth_name = v.auth_name AND
vu.object_code = v.code AND
vu.extent_auth_name = ve.auth_name AND
vu.extent_code = ve.code AND
cu.object_table_name = c.table_name AND
cu.object_auth_name = c.auth_name AND
cu.object_code = c.code AND
cu.extent_auth_name = ce.auth_name AND
cu.extent_code = ce.code AND
NOT ((ce.south_lat < ve.north_lat AND ve.south_lat < ce.north_lat) OR
(ce.west_lon < ce.east_lon AND ve.west_lon < ve.east_lon AND
NOT (ce.west_lon < ve.east_lon AND ve.west_lon < ce.east_lon))) );
-- check geoid_model table
SELECT RAISE(ABORT, 'missing GEOID99 in geoid_model')
@@ -135,9 +292,15 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'missing au_ga_AUSGeoid98.tif')
WHERE NOT EXISTS(SELECT 1 FROM grid_alternatives WHERE proj_grid_name = 'au_ga_AUSGeoid98.tif');
-- check PROJ.VERSION value
SELECT RAISE(ABORT, 'Value of PROJ.VERSION entry of metadata tables not substituted by actual value')
WHERE (SELECT 1 FROM metadata WHERE key = 'PROJ.VERSION' AND value LIKE '$%');
END;
INSERT INTO dummy DEFAULT VALUES;
DROP TRIGGER final_checks;
DROP TABLE dummy;
VACUUM;
ANALYZE;
VACUUM;
+712 -279
View File
@@ -1,281 +1,714 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "compound_crs" VALUES('EPSG','3901','KKJ / Finland Uniform Coordinate System + N60 height',NULL,NULL,'EPSG','2393','EPSG','5717','EPSG','3333',0);
INSERT INTO "compound_crs" VALUES('EPSG','3902','ETRS89 / TM35FIN(N,E) + N60 height',NULL,NULL,'EPSG','5048','EPSG','5717','EPSG','3333',0);
INSERT INTO "compound_crs" VALUES('EPSG','3903','ETRS89 / TM35FIN(N,E) + N2000 height',NULL,NULL,'EPSG','5048','EPSG','3900','EPSG','3333',0);
INSERT INTO "compound_crs" VALUES('EPSG','4097','ETRS89 / DKTM1 + DVR90 height',NULL,NULL,'EPSG','4093','EPSG','5799','EPSG','3631',0);
INSERT INTO "compound_crs" VALUES('EPSG','4098','ETRS89 / DKTM2 + DVR90 height',NULL,NULL,'EPSG','4094','EPSG','5799','EPSG','3632',0);
INSERT INTO "compound_crs" VALUES('EPSG','4099','ETRS89 / DKTM3 + DVR90 height',NULL,NULL,'EPSG','4095','EPSG','5799','EPSG','2532',0);
INSERT INTO "compound_crs" VALUES('EPSG','4100','ETRS89 / DKTM4 + DVR90 height',NULL,NULL,'EPSG','4096','EPSG','5799','EPSG','2533',0);
INSERT INTO "compound_crs" VALUES('EPSG','5318','ETRS89 / Faroe TM + FVR09 height',NULL,NULL,'EPSG','5316','EPSG','5317','EPSG','3248',0);
INSERT INTO "compound_crs" VALUES('EPSG','5498','NAD83 + NAVD88 height',NULL,NULL,'EPSG','4269','EPSG','5703','EPSG','3664',0);
INSERT INTO "compound_crs" VALUES('EPSG','5499','NAD83(HARN) + NAVD88 height',NULL,NULL,'EPSG','4152','EPSG','5703','EPSG','1323',0);
INSERT INTO "compound_crs" VALUES('EPSG','5500','NAD83(NSRS2007) + NAVD88 height',NULL,NULL,'EPSG','4759','EPSG','5703','EPSG','1323',0);
INSERT INTO "compound_crs" VALUES('EPSG','5554','ETRS89 / UTM zone 31N + DHHN92 height',NULL,NULL,'EPSG','25831','EPSG','5783','EPSG','3901',0);
INSERT INTO "compound_crs" VALUES('EPSG','5555','ETRS89 / UTM zone 32N + DHHN92 height',NULL,NULL,'EPSG','25832','EPSG','5783','EPSG','3904',0);
INSERT INTO "compound_crs" VALUES('EPSG','5556','ETRS89 / UTM zone 33N + DHHN92 height',NULL,NULL,'EPSG','25833','EPSG','5783','EPSG','3879',0);
INSERT INTO "compound_crs" VALUES('EPSG','5598','FEH2010 / Fehmarnbelt TM + FCSVR10 height',NULL,NULL,'EPSG','5596','EPSG','5597','EPSG','3890',0);
INSERT INTO "compound_crs" VALUES('EPSG','5628','SWEREF99 + RH2000 height',NULL,NULL,'EPSG','4619','EPSG','5613','EPSG','3313',0);
INSERT INTO "compound_crs" VALUES('EPSG','5698','RGF93 / Lambert-93 + NGF-IGN69 height',NULL,NULL,'EPSG','2154','EPSG','5720','EPSG','1326',0);
INSERT INTO "compound_crs" VALUES('EPSG','5699','RGF93 / Lambert-93 + NGF-IGN78 height',NULL,NULL,'EPSG','2154','EPSG','5721','EPSG','1327',0);
INSERT INTO "compound_crs" VALUES('EPSG','5707','NTF (Paris) / Lambert zone I + NGF-IGN69 height',NULL,NULL,'EPSG','27571','EPSG','5720','EPSG','1731',0);
INSERT INTO "compound_crs" VALUES('EPSG','5708','NTF (Paris) / Lambert zone IV + NGF-IGN78 height',NULL,NULL,'EPSG','27574','EPSG','5721','EPSG','1327',0);
INSERT INTO "compound_crs" VALUES('EPSG','5832','DB_REF / 3-degree Gauss-Kruger zone 2 (E-N) + DHHN92 height',NULL,NULL,'EPSG','5682','EPSG','5783','EPSG','1624',0);
INSERT INTO "compound_crs" VALUES('EPSG','5833','DB_REF / 3-degree Gauss-Kruger zone 3 (E-N) + DHHN92 height',NULL,NULL,'EPSG','5683','EPSG','5783','EPSG','3993',0);
INSERT INTO "compound_crs" VALUES('EPSG','5834','DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) + DHHN92 height',NULL,NULL,'EPSG','5684','EPSG','5783','EPSG','3996',0);
INSERT INTO "compound_crs" VALUES('EPSG','5835','DB_REF / 3-degree Gauss-Kruger zone 5 (E-N) + DHHN92 height',NULL,NULL,'EPSG','5685','EPSG','5783','EPSG','3998',0);
INSERT INTO "compound_crs" VALUES('EPSG','5845','SWEREF99 TM + RH2000 height',NULL,NULL,'EPSG','3006','EPSG','5613','EPSG','3313',0);
INSERT INTO "compound_crs" VALUES('EPSG','5846','SWEREF99 12 00 + RH2000 height',NULL,NULL,'EPSG','3007','EPSG','5613','EPSG','2833',0);
INSERT INTO "compound_crs" VALUES('EPSG','5847','SWEREF99 13 30 + RH2000 height',NULL,NULL,'EPSG','3008','EPSG','5613','EPSG','2834',0);
INSERT INTO "compound_crs" VALUES('EPSG','5848','SWEREF99 15 00 + RH2000 height',NULL,NULL,'EPSG','3009','EPSG','5613','EPSG','2835',0);
INSERT INTO "compound_crs" VALUES('EPSG','5849','SWEREF99 16 30 + RH2000 height',NULL,NULL,'EPSG','3010','EPSG','5613','EPSG','2836',0);
INSERT INTO "compound_crs" VALUES('EPSG','5850','SWEREF99 18 00 + RH2000 height',NULL,NULL,'EPSG','3011','EPSG','5613','EPSG','2837',0);
INSERT INTO "compound_crs" VALUES('EPSG','5851','SWEREF99 14 15 + RH2000 height',NULL,NULL,'EPSG','3012','EPSG','5613','EPSG','2838',0);
INSERT INTO "compound_crs" VALUES('EPSG','5852','SWEREF99 15 45 + RH2000 height',NULL,NULL,'EPSG','3013','EPSG','5613','EPSG','2839',0);
INSERT INTO "compound_crs" VALUES('EPSG','5853','SWEREF99 17 15 + RH2000 height',NULL,NULL,'EPSG','3014','EPSG','5613','EPSG','2840',0);
INSERT INTO "compound_crs" VALUES('EPSG','5854','SWEREF99 18 45 + RH2000 height',NULL,NULL,'EPSG','3015','EPSG','5613','EPSG','2841',0);
INSERT INTO "compound_crs" VALUES('EPSG','5855','SWEREF99 20 15 + RH2000 height',NULL,NULL,'EPSG','3016','EPSG','5613','EPSG','2842',0);
INSERT INTO "compound_crs" VALUES('EPSG','5856','SWEREF99 21 45 + RH2000 height',NULL,NULL,'EPSG','3017','EPSG','5613','EPSG','2843',0);
INSERT INTO "compound_crs" VALUES('EPSG','5857','SWEREF99 23 15 + RH2000 height',NULL,NULL,'EPSG','3018','EPSG','5613','EPSG','2844',0);
INSERT INTO "compound_crs" VALUES('EPSG','5942','ETRS89 + NN2000 height',NULL,NULL,'EPSG','4258','EPSG','5941','EPSG','1352',0);
INSERT INTO "compound_crs" VALUES('EPSG','5945','ETRS89 / NTM zone 5 + NN2000 height',NULL,NULL,'EPSG','5105','EPSG','5941','EPSG','3636',0);
INSERT INTO "compound_crs" VALUES('EPSG','5946','ETRS89 / NTM zone 6 + NN2000 height',NULL,NULL,'EPSG','5106','EPSG','5941','EPSG','3639',0);
INSERT INTO "compound_crs" VALUES('EPSG','5947','ETRS89 / NTM zone 7 + NN2000 height',NULL,NULL,'EPSG','5107','EPSG','5941','EPSG','3647',0);
INSERT INTO "compound_crs" VALUES('EPSG','5948','ETRS89 / NTM zone 8 + NN2000 height',NULL,NULL,'EPSG','5108','EPSG','5941','EPSG','3648',0);
INSERT INTO "compound_crs" VALUES('EPSG','5949','ETRS89 / NTM zone 9 + NN2000 height',NULL,NULL,'EPSG','5109','EPSG','5941','EPSG','3649',0);
INSERT INTO "compound_crs" VALUES('EPSG','5950','ETRS89 / NTM zone 10 + NN2000 height',NULL,NULL,'EPSG','5110','EPSG','5941','EPSG','3650',0);
INSERT INTO "compound_crs" VALUES('EPSG','5951','ETRS89 / NTM zone 11 + NN2000 height',NULL,NULL,'EPSG','5111','EPSG','5941','EPSG','3651',0);
INSERT INTO "compound_crs" VALUES('EPSG','5952','ETRS89 / NTM zone 12 + NN2000 height',NULL,NULL,'EPSG','5112','EPSG','5941','EPSG','3653',0);
INSERT INTO "compound_crs" VALUES('EPSG','5953','ETRS89 / NTM zone 13 + NN2000 height',NULL,NULL,'EPSG','5113','EPSG','5941','EPSG','3654',0);
INSERT INTO "compound_crs" VALUES('EPSG','5954','ETRS89 / NTM zone 14 + NN2000 height',NULL,NULL,'EPSG','5114','EPSG','5941','EPSG','3655',0);
INSERT INTO "compound_crs" VALUES('EPSG','5955','ETRS89 / NTM zone 15 + NN2000 height',NULL,NULL,'EPSG','5115','EPSG','5941','EPSG','3656',0);
INSERT INTO "compound_crs" VALUES('EPSG','5956','ETRS89 / NTM zone 16 + NN2000 height',NULL,NULL,'EPSG','5116','EPSG','5941','EPSG','3657',0);
INSERT INTO "compound_crs" VALUES('EPSG','5957','ETRS89 / NTM zone 17 + NN2000 height',NULL,NULL,'EPSG','5117','EPSG','5941','EPSG','3658',0);
INSERT INTO "compound_crs" VALUES('EPSG','5958','ETRS89 / NTM zone 18 + NN2000 height',NULL,NULL,'EPSG','5118','EPSG','5941','EPSG','3660',0);
INSERT INTO "compound_crs" VALUES('EPSG','5959','ETRS89 / NTM zone 19 + NN2000 height',NULL,NULL,'EPSG','5119','EPSG','5941','EPSG','3661',0);
INSERT INTO "compound_crs" VALUES('EPSG','5960','ETRS89 / NTM zone 20 + NN2000 height',NULL,NULL,'EPSG','5120','EPSG','5941','EPSG','3662',0);
INSERT INTO "compound_crs" VALUES('EPSG','5961','ETRS89 / NTM zone 21 + NN2000 height',NULL,NULL,'EPSG','5121','EPSG','5941','EPSG','3663',0);
INSERT INTO "compound_crs" VALUES('EPSG','5962','ETRS89 / NTM zone 22 + NN2000 height',NULL,NULL,'EPSG','5122','EPSG','5941','EPSG','3665',0);
INSERT INTO "compound_crs" VALUES('EPSG','5963','ETRS89 / NTM zone 23 + NN2000 height',NULL,NULL,'EPSG','5123','EPSG','5941','EPSG','3667',0);
INSERT INTO "compound_crs" VALUES('EPSG','5964','ETRS89 / NTM zone 24 + NN2000 height',NULL,NULL,'EPSG','5124','EPSG','5941','EPSG','3668',0);
INSERT INTO "compound_crs" VALUES('EPSG','5965','ETRS89 / NTM zone 25 + NN2000 height',NULL,NULL,'EPSG','5125','EPSG','5941','EPSG','3669',0);
INSERT INTO "compound_crs" VALUES('EPSG','5966','ETRS89 / NTM zone 26 + NN2000 height',NULL,NULL,'EPSG','5126','EPSG','5941','EPSG','3671',0);
INSERT INTO "compound_crs" VALUES('EPSG','5967','ETRS89 / NTM zone 27 + NN2000 height',NULL,NULL,'EPSG','5127','EPSG','5941','EPSG','3672',0);
INSERT INTO "compound_crs" VALUES('EPSG','5968','ETRS89 / NTM zone 28 + NN2000 height',NULL,NULL,'EPSG','5128','EPSG','5941','EPSG','3673',0);
INSERT INTO "compound_crs" VALUES('EPSG','5969','ETRS89 / NTM zone 29 + NN2000 height',NULL,NULL,'EPSG','5129','EPSG','5941','EPSG','3674',0);
INSERT INTO "compound_crs" VALUES('EPSG','5970','ETRS89 / NTM zone 30 + NN2000 height',NULL,NULL,'EPSG','5130','EPSG','5941','EPSG','3676',0);
INSERT INTO "compound_crs" VALUES('EPSG','5971','ETRS89 / UTM zone 31N + NN2000 height',NULL,NULL,'EPSG','25831','EPSG','5941','EPSG','3636',0);
INSERT INTO "compound_crs" VALUES('EPSG','5972','ETRS89 / UTM zone 32N + NN2000 height',NULL,NULL,'EPSG','25832','EPSG','5941','EPSG','4066',0);
INSERT INTO "compound_crs" VALUES('EPSG','5973','ETRS89 / UTM zone 33N + NN2000 height',NULL,NULL,'EPSG','25833','EPSG','5941','EPSG','4067',0);
INSERT INTO "compound_crs" VALUES('EPSG','5974','ETRS89 / UTM zone 34N + NN2000 height',NULL,NULL,'EPSG','25834','EPSG','5941','EPSG','4068',0);
INSERT INTO "compound_crs" VALUES('EPSG','5975','ETRS89 / UTM zone 35N + NN2000 height',NULL,NULL,'EPSG','25835','EPSG','5941','EPSG','4069',0);
INSERT INTO "compound_crs" VALUES('EPSG','5976','ETRS89 / UTM zone 36N + NN2000 height',NULL,NULL,'EPSG','25836','EPSG','5941','EPSG','3676',0);
INSERT INTO "compound_crs" VALUES('EPSG','6144','ETRS89 + NN54 height',NULL,NULL,'EPSG','4258','EPSG','5776','EPSG','1352',0);
INSERT INTO "compound_crs" VALUES('EPSG','6145','ETRS89 / NTM zone 5 + NN54 height',NULL,NULL,'EPSG','5105','EPSG','5776','EPSG','3636',0);
INSERT INTO "compound_crs" VALUES('EPSG','6146','ETRS89 / NTM zone 6 + NN54 height',NULL,NULL,'EPSG','5106','EPSG','5776','EPSG','3639',0);
INSERT INTO "compound_crs" VALUES('EPSG','6147','ETRS89 / NTM zone 7 + NN54 height',NULL,NULL,'EPSG','5107','EPSG','5776','EPSG','3647',0);
INSERT INTO "compound_crs" VALUES('EPSG','6148','ETRS89 / NTM zone 8 + NN54 height',NULL,NULL,'EPSG','5108','EPSG','5776','EPSG','3648',0);
INSERT INTO "compound_crs" VALUES('EPSG','6149','ETRS89 / NTM zone 9 + NN54 height',NULL,NULL,'EPSG','5109','EPSG','5776','EPSG','3649',0);
INSERT INTO "compound_crs" VALUES('EPSG','6150','ETRS89 / NTM zone 10 + NN54 height',NULL,NULL,'EPSG','5110','EPSG','5776','EPSG','3650',0);
INSERT INTO "compound_crs" VALUES('EPSG','6151','ETRS89 / NTM zone 11 + NN54 height',NULL,NULL,'EPSG','5111','EPSG','5776','EPSG','3651',0);
INSERT INTO "compound_crs" VALUES('EPSG','6152','ETRS89 / NTM zone 12 + NN54 height',NULL,NULL,'EPSG','5112','EPSG','5776','EPSG','3653',0);
INSERT INTO "compound_crs" VALUES('EPSG','6153','ETRS89 / NTM zone 13 + NN54 height',NULL,NULL,'EPSG','5113','EPSG','5776','EPSG','3654',0);
INSERT INTO "compound_crs" VALUES('EPSG','6154','ETRS89 / NTM zone 14 + NN54 height',NULL,NULL,'EPSG','5114','EPSG','5776','EPSG','3655',0);
INSERT INTO "compound_crs" VALUES('EPSG','6155','ETRS89 / NTM zone 15 + NN54 height',NULL,NULL,'EPSG','5115','EPSG','5776','EPSG','3656',0);
INSERT INTO "compound_crs" VALUES('EPSG','6156','ETRS89 / NTM zone 16 + NN54 height',NULL,NULL,'EPSG','5116','EPSG','5776','EPSG','3657',0);
INSERT INTO "compound_crs" VALUES('EPSG','6157','ETRS89 / NTM zone 17 + NN54 height',NULL,NULL,'EPSG','5117','EPSG','5776','EPSG','3658',0);
INSERT INTO "compound_crs" VALUES('EPSG','6158','ETRS89 / NTM zone 18 + NN54 height',NULL,NULL,'EPSG','5118','EPSG','5776','EPSG','3660',0);
INSERT INTO "compound_crs" VALUES('EPSG','6159','ETRS89 / NTM zone 19 + NN54 height',NULL,NULL,'EPSG','5119','EPSG','5776','EPSG','3661',0);
INSERT INTO "compound_crs" VALUES('EPSG','6160','ETRS89 / NTM zone 20 + NN54 height',NULL,NULL,'EPSG','5120','EPSG','5776','EPSG','3662',0);
INSERT INTO "compound_crs" VALUES('EPSG','6161','ETRS89 / NTM zone 21 + NN54 height',NULL,NULL,'EPSG','5121','EPSG','5776','EPSG','3663',0);
INSERT INTO "compound_crs" VALUES('EPSG','6162','ETRS89 / NTM zone 22 + NN54 height',NULL,NULL,'EPSG','5122','EPSG','5776','EPSG','3665',0);
INSERT INTO "compound_crs" VALUES('EPSG','6163','ETRS89 / NTM zone 23 + NN54 height',NULL,NULL,'EPSG','5123','EPSG','5776','EPSG','3667',0);
INSERT INTO "compound_crs" VALUES('EPSG','6164','ETRS89 / NTM zone 24 + NN54 height',NULL,NULL,'EPSG','5124','EPSG','5776','EPSG','3668',0);
INSERT INTO "compound_crs" VALUES('EPSG','6165','ETRS89 / NTM zone 25 + NN54 height',NULL,NULL,'EPSG','5125','EPSG','5776','EPSG','3669',0);
INSERT INTO "compound_crs" VALUES('EPSG','6166','ETRS89 / NTM zone 26 + NN54 height',NULL,NULL,'EPSG','5126','EPSG','5776','EPSG','3671',0);
INSERT INTO "compound_crs" VALUES('EPSG','6167','ETRS89 / NTM zone 27 + NN54 height',NULL,NULL,'EPSG','5127','EPSG','5776','EPSG','3672',0);
INSERT INTO "compound_crs" VALUES('EPSG','6168','ETRS89 / NTM zone 28 + NN54 height',NULL,NULL,'EPSG','5128','EPSG','5776','EPSG','3673',0);
INSERT INTO "compound_crs" VALUES('EPSG','6169','ETRS89 / NTM zone 29 + NN54 height',NULL,NULL,'EPSG','5129','EPSG','5776','EPSG','3674',0);
INSERT INTO "compound_crs" VALUES('EPSG','6170','ETRS89 / NTM zone 30 + NN54 height',NULL,NULL,'EPSG','5130','EPSG','5776','EPSG','3676',0);
INSERT INTO "compound_crs" VALUES('EPSG','6171','ETRS89 / UTM zone 31N + NN54 height',NULL,NULL,'EPSG','25831','EPSG','5776','EPSG','3636',0);
INSERT INTO "compound_crs" VALUES('EPSG','6172','ETRS89 / UTM zone 32N + NN54 height',NULL,NULL,'EPSG','25832','EPSG','5776','EPSG','4066',0);
INSERT INTO "compound_crs" VALUES('EPSG','6173','ETRS89 / UTM zone 33N + NN54 height',NULL,NULL,'EPSG','25833','EPSG','5776','EPSG','4067',0);
INSERT INTO "compound_crs" VALUES('EPSG','6174','ETRS89 / UTM zone 34N + NN54 height',NULL,NULL,'EPSG','25834','EPSG','5776','EPSG','4068',0);
INSERT INTO "compound_crs" VALUES('EPSG','6175','ETRS89 / UTM zone 35N + NN54 height',NULL,NULL,'EPSG','25835','EPSG','5776','EPSG','4069',0);
INSERT INTO "compound_crs" VALUES('EPSG','6176','ETRS89 / UTM zone 36N + NN54 height',NULL,NULL,'EPSG','25836','EPSG','5776','EPSG','3676',0);
INSERT INTO "compound_crs" VALUES('EPSG','6190','Belge 1972 / Belgian Lambert 72 + Ostend height',NULL,NULL,'EPSG','31370','EPSG','5710','EPSG','1347',0);
INSERT INTO "compound_crs" VALUES('EPSG','6349','NAD83(2011) + NAVD88 height',NULL,NULL,'EPSG','6318','EPSG','5703','EPSG','3664',0);
INSERT INTO "compound_crs" VALUES('EPSG','6649','NAD83(CSRS) + CGVD2013 height',NULL,NULL,'EPSG','4617','EPSG','6647','EPSG','1061',0);
INSERT INTO "compound_crs" VALUES('EPSG','6650','NAD83(CSRS) / UTM zone 7N + CGVD2013 height',NULL,NULL,'EPSG','3154','EPSG','6647','EPSG','3409',0);
INSERT INTO "compound_crs" VALUES('EPSG','6651','NAD83(CSRS) / UTM zone 8N + CGVD2013 height',NULL,NULL,'EPSG','3155','EPSG','6647','EPSG','3410',0);
INSERT INTO "compound_crs" VALUES('EPSG','6652','NAD83(CSRS) / UTM zone 9N + CGVD2013 height',NULL,NULL,'EPSG','3156','EPSG','6647','EPSG','3411',0);
INSERT INTO "compound_crs" VALUES('EPSG','6653','NAD83(CSRS) / UTM zone 10N + CGVD2013 height',NULL,NULL,'EPSG','3157','EPSG','6647','EPSG','3412',0);
INSERT INTO "compound_crs" VALUES('EPSG','6654','NAD83(CSRS) / UTM zone 11N + CGVD2013 height',NULL,NULL,'EPSG','2955','EPSG','6647','EPSG','3528',0);
INSERT INTO "compound_crs" VALUES('EPSG','6655','NAD83(CSRS) / UTM zone 12N + CGVD2013 height',NULL,NULL,'EPSG','2956','EPSG','6647','EPSG','3527',0);
INSERT INTO "compound_crs" VALUES('EPSG','6656','NAD83(CSRS) / UTM zone 13N + CGVD2013 height',NULL,NULL,'EPSG','2957','EPSG','6647','EPSG','3526',0);
INSERT INTO "compound_crs" VALUES('EPSG','6657','NAD83(CSRS) / UTM zone 14N + CGVD2013 height',NULL,NULL,'EPSG','3158','EPSG','6647','EPSG','3413',0);
INSERT INTO "compound_crs" VALUES('EPSG','6658','NAD83(CSRS) / UTM zone 15N + CGVD2013 height',NULL,NULL,'EPSG','3159','EPSG','6647','EPSG','3414',0);
INSERT INTO "compound_crs" VALUES('EPSG','6659','NAD83(CSRS) / UTM zone 16N + CGVD2013 height',NULL,NULL,'EPSG','3160','EPSG','6647','EPSG','3415',0);
INSERT INTO "compound_crs" VALUES('EPSG','6660','NAD83(CSRS) / UTM zone 17N + CGVD2013 height',NULL,NULL,'EPSG','2958','EPSG','6647','EPSG','3416',0);
INSERT INTO "compound_crs" VALUES('EPSG','6661','NAD83(CSRS) / UTM zone 18N + CGVD2013 height',NULL,NULL,'EPSG','2959','EPSG','6647','EPSG','3417',0);
INSERT INTO "compound_crs" VALUES('EPSG','6662','NAD83(CSRS) / UTM zone 19N + CGVD2013 height',NULL,NULL,'EPSG','2960','EPSG','6647','EPSG','3524',0);
INSERT INTO "compound_crs" VALUES('EPSG','6663','NAD83(CSRS) / UTM zone 20N + CGVD2013 height',NULL,NULL,'EPSG','2961','EPSG','6647','EPSG','3525',0);
INSERT INTO "compound_crs" VALUES('EPSG','6664','NAD83(CSRS) / UTM zone 21N + CGVD2013 height',NULL,NULL,'EPSG','2962','EPSG','6647','EPSG','2151',0);
INSERT INTO "compound_crs" VALUES('EPSG','6665','NAD83(CSRS) / UTM zone 22N + CGVD2013 height',NULL,NULL,'EPSG','3761','EPSG','6647','EPSG','2152',0);
INSERT INTO "compound_crs" VALUES('EPSG','6696','JGD2000 + JGD2000 (vertical) height',NULL,NULL,'EPSG','4612','EPSG','6694','EPSG','3263',0);
INSERT INTO "compound_crs" VALUES('EPSG','6697','JGD2011 + JGD2011 (vertical) height',NULL,NULL,'EPSG','6668','EPSG','6695','EPSG','3263',0);
INSERT INTO "compound_crs" VALUES('EPSG','6700','Tokyo + JSLD72 height',NULL,NULL,'EPSG','4301','EPSG','6693','EPSG','4168',0);
INSERT INTO "compound_crs" VALUES('EPSG','6871','WGS 84 / Pseudo-Mercator + EGM2008 geoid height',NULL,NULL,'EPSG','3857','EPSG','3855','EPSG','1262',1);
INSERT INTO "compound_crs" VALUES('EPSG','6893','WGS 84 / World Mercator + EGM2008 height',NULL,NULL,'EPSG','3395','EPSG','3855','EPSG','1262',0);
INSERT INTO "compound_crs" VALUES('EPSG','6917','SVY21 + SHD height',NULL,NULL,'EPSG','4757','EPSG','6916','EPSG','1210',0);
INSERT INTO "compound_crs" VALUES('EPSG','6927','SVY21 / Singapore TM + SHD height',NULL,NULL,'EPSG','3414','EPSG','6916','EPSG','1210',0);
INSERT INTO "compound_crs" VALUES('EPSG','7400','NTF (Paris) + NGF IGN69 height',NULL,NULL,'EPSG','4807','EPSG','5720','EPSG','1326',0);
INSERT INTO "compound_crs" VALUES('EPSG','7401','NTF (Paris) / France II + NGF Lallemand',NULL,NULL,'EPSG','27582','EPSG','5719','EPSG','1326',1);
INSERT INTO "compound_crs" VALUES('EPSG','7402','NTF (Paris) / France II + NGF IGN69',NULL,NULL,'EPSG','27582','EPSG','5720','EPSG','1326',1);
INSERT INTO "compound_crs" VALUES('EPSG','7403','NTF (Paris) / France III + NGF IGN69',NULL,NULL,'EPSG','27583','EPSG','5720','EPSG','1733',1);
INSERT INTO "compound_crs" VALUES('EPSG','7404','RT90 + RH70 height',NULL,NULL,'EPSG','4124','EPSG','5718','EPSG','3313',0);
INSERT INTO "compound_crs" VALUES('EPSG','7405','OSGB 1936 / British National Grid + ODN height',NULL,NULL,'EPSG','27700','EPSG','5701','EPSG','2792',0);
INSERT INTO "compound_crs" VALUES('EPSG','7406','NAD27 + NGVD29 height (ftUS)',NULL,NULL,'EPSG','4267','EPSG','5702','EPSG','1323',0);
INSERT INTO "compound_crs" VALUES('EPSG','7407','NAD27 / Texas North + NGVD29 height (ftUS)',NULL,NULL,'EPSG','32037','EPSG','5702','EPSG','2253',0);
INSERT INTO "compound_crs" VALUES('EPSG','7408','RD/NAP',NULL,NULL,'EPSG','4289','EPSG','5709','EPSG','1275',1);
INSERT INTO "compound_crs" VALUES('EPSG','7409','ETRS89 + EVRF2000 height',NULL,NULL,'EPSG','4258','EPSG','5730','EPSG','1299',0);
INSERT INTO "compound_crs" VALUES('EPSG','7410','PSHD93',NULL,NULL,'EPSG','4134','EPSG','5724','EPSG','3288',0);
INSERT INTO "compound_crs" VALUES('EPSG','7411','NTF (Paris) / Lambert zone II + NGF Lallemand height',NULL,NULL,'EPSG','27572','EPSG','5719','EPSG','1326',0);
INSERT INTO "compound_crs" VALUES('EPSG','7412','NTF (Paris) / Lambert zone II + NGF IGN69',NULL,NULL,'EPSG','27572','EPSG','5719','EPSG','1326',1);
INSERT INTO "compound_crs" VALUES('EPSG','7413','NTF (Paris) / Lambert zone III + NGF IGN69',NULL,NULL,'EPSG','27573','EPSG','5719','EPSG','1733',1);
INSERT INTO "compound_crs" VALUES('EPSG','7414','Tokyo + JSLD69 height',NULL,NULL,'EPSG','4301','EPSG','5723','EPSG','4166',0);
INSERT INTO "compound_crs" VALUES('EPSG','7415','Amersfoort / RD New + NAP height',NULL,NULL,'EPSG','28992','EPSG','5709','EPSG','1275',0);
INSERT INTO "compound_crs" VALUES('EPSG','7416','ETRS89 / UTM zone 32N + DVR90 height',NULL,NULL,'EPSG','25832','EPSG','5799','EPSG','3471',0);
INSERT INTO "compound_crs" VALUES('EPSG','7417','ETRS89 / UTM zone 33N + DVR90 height',NULL,NULL,'EPSG','25833','EPSG','5799','EPSG','3472',0);
INSERT INTO "compound_crs" VALUES('EPSG','7418','ETRS89 / Kp2000 Jutland + DVR90 height',NULL,NULL,'EPSG','2196','EPSG','5799','EPSG','2531',0);
INSERT INTO "compound_crs" VALUES('EPSG','7419','ETRS89 / Kp2000 Zealand + DVR90 height',NULL,NULL,'EPSG','2197','EPSG','5799','EPSG','2532',0);
INSERT INTO "compound_crs" VALUES('EPSG','7420','ETRS89 / Kp2000 Bornholm + DVR90 height',NULL,NULL,'EPSG','2198','EPSG','5799','EPSG','2533',0);
INSERT INTO "compound_crs" VALUES('EPSG','7421','NTF (Paris) / Lambert zone II + NGF-IGN69 height',NULL,NULL,'EPSG','27572','EPSG','5720','EPSG','1326',0);
INSERT INTO "compound_crs" VALUES('EPSG','7422','NTF (Paris) / Lambert zone III + NGF-IGN69 height',NULL,NULL,'EPSG','27573','EPSG','5720','EPSG','1733',0);
INSERT INTO "compound_crs" VALUES('EPSG','7423','ETRS89 + EVRF2007 height',NULL,NULL,'EPSG','4258','EPSG','5621','EPSG','3594',0);
INSERT INTO "compound_crs" VALUES('EPSG','7954','Astro DOS 71 / UTM zone 30S + Jamestown 1971 height',NULL,NULL,'EPSG','7878','EPSG','7888','EPSG','3183',0);
INSERT INTO "compound_crs" VALUES('EPSG','7955','St. Helena Tritan / UTM zone 30S + Tritan 2011 height',NULL,NULL,'EPSG','7883','EPSG','7889','EPSG','3183',0);
INSERT INTO "compound_crs" VALUES('EPSG','7956','SHMG2015 + SHVD2015 height',NULL,NULL,'EPSG','7887','EPSG','7890','EPSG','3183',0);
INSERT INTO "compound_crs" VALUES('EPSG','8349','GR96 + GVR2000 height',NULL,NULL,'EPSG','4747','EPSG','8266','EPSG','4461',0);
INSERT INTO "compound_crs" VALUES('EPSG','8350','GR96 + GVR2016 height',NULL,NULL,'EPSG','4747','EPSG','8267','EPSG','4454',0);
INSERT INTO "compound_crs" VALUES('EPSG','8360','ETRS89 + Baltic 1957 height',NULL,NULL,'EPSG','4258','EPSG','8357','EPSG','1306',0);
INSERT INTO "compound_crs" VALUES('EPSG','8370','ETRS89 / Belgian Lambert 2008 + Ostend height',NULL,NULL,'EPSG','3812','EPSG','5710','EPSG','1347',0);
INSERT INTO "compound_crs" VALUES('EPSG','8700','NAD83 / Arizona East (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2222','EPSG','8228','EPSG','2167',0);
INSERT INTO "compound_crs" VALUES('EPSG','8701','NAD83 / Arizona Central (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2223','EPSG','8228','EPSG','2166',0);
INSERT INTO "compound_crs" VALUES('EPSG','8702','NAD83 / Arizona West (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2224','EPSG','8228','EPSG','2168',0);
INSERT INTO "compound_crs" VALUES('EPSG','8703','NAD83 / Michigan North (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2251','EPSG','8228','EPSG','1723',0);
INSERT INTO "compound_crs" VALUES('EPSG','8704','NAD83 / Michigan Central (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2252','EPSG','8228','EPSG','1724',0);
INSERT INTO "compound_crs" VALUES('EPSG','8705','NAD83 / Michigan South (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2253','EPSG','8228','EPSG','1725',0);
INSERT INTO "compound_crs" VALUES('EPSG','8706','NAD83 / Montana (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2256','EPSG','8228','EPSG','1395',0);
INSERT INTO "compound_crs" VALUES('EPSG','8707','NAD83 / North Dakota North (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2265','EPSG','8228','EPSG','2237',0);
INSERT INTO "compound_crs" VALUES('EPSG','8708','NAD83 / North Dakota South (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2266','EPSG','8228','EPSG','2238',0);
INSERT INTO "compound_crs" VALUES('EPSG','8709','NAD83 / Oregon North (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2269','EPSG','8228','EPSG','2243',0);
INSERT INTO "compound_crs" VALUES('EPSG','8710','NAD83 / Oregon South (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2270','EPSG','8228','EPSG','2244',0);
INSERT INTO "compound_crs" VALUES('EPSG','8711','NAD83 / South Carolina (ft) + NAVD88 height (ft)',NULL,NULL,'EPSG','2273','EPSG','8228','EPSG','1409',0);
INSERT INTO "compound_crs" VALUES('EPSG','8712','NAD83 / Arkansas North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3433','EPSG','6360','EPSG','2169',0);
INSERT INTO "compound_crs" VALUES('EPSG','8713','NAD83 / Arkansas South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3434','EPSG','6360','EPSG','2170',0);
INSERT INTO "compound_crs" VALUES('EPSG','8714','NAD83 / California zone 1 (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2225','EPSG','6360','EPSG','2175',0);
INSERT INTO "compound_crs" VALUES('EPSG','8715','NAD83 / California zone 2 (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2226','EPSG','6360','EPSG','2176',0);
INSERT INTO "compound_crs" VALUES('EPSG','8716','NAD83 / California zone 3 (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2227','EPSG','6360','EPSG','2177',0);
INSERT INTO "compound_crs" VALUES('EPSG','8717','NAD83 / California zone 4 (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2228','EPSG','6360','EPSG','2178',0);
INSERT INTO "compound_crs" VALUES('EPSG','8718','NAD83 / California zone 5 (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2229','EPSG','6360','EPSG','2182',0);
INSERT INTO "compound_crs" VALUES('EPSG','8719','NAD83 / California zone 6 (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2230','EPSG','6360','EPSG','2180',0);
INSERT INTO "compound_crs" VALUES('EPSG','8720','NAD83 / Colorado North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2231','EPSG','6360','EPSG','2184',0);
INSERT INTO "compound_crs" VALUES('EPSG','8721','NAD83 / Colorado Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2232','EPSG','6360','EPSG','2183',0);
INSERT INTO "compound_crs" VALUES('EPSG','8722','NAD83 / Colorado South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2233','EPSG','6360','EPSG','2185',0);
INSERT INTO "compound_crs" VALUES('EPSG','8723','NAD83 / Connecticut (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2234','EPSG','6360','EPSG','1377',0);
INSERT INTO "compound_crs" VALUES('EPSG','8724','NAD83 / Delaware (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2235','EPSG','6360','EPSG','1378',0);
INSERT INTO "compound_crs" VALUES('EPSG','8725','NAD83 / Florida North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2238','EPSG','6360','EPSG','2187',0);
INSERT INTO "compound_crs" VALUES('EPSG','8726','NAD83 / Florida East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2236','EPSG','6360','EPSG','2186',0);
INSERT INTO "compound_crs" VALUES('EPSG','8727','NAD83 / Florida West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2237','EPSG','6360','EPSG','2188',0);
INSERT INTO "compound_crs" VALUES('EPSG','8728','NAD83 / Georgia East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2239','EPSG','6360','EPSG','2189',0);
INSERT INTO "compound_crs" VALUES('EPSG','8729','NAD83 / Georgia West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2240','EPSG','6360','EPSG','2190',0);
INSERT INTO "compound_crs" VALUES('EPSG','8730','NAD83 / Idaho East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2241','EPSG','6360','EPSG','2192',0);
INSERT INTO "compound_crs" VALUES('EPSG','8731','NAD83 / Idaho Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2242','EPSG','6360','EPSG','2191',0);
INSERT INTO "compound_crs" VALUES('EPSG','8732','NAD83 / Idaho West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2243','EPSG','6360','EPSG','2193',0);
INSERT INTO "compound_crs" VALUES('EPSG','8733','NAD83 / Illinois East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3435','EPSG','6360','EPSG','2194',0);
INSERT INTO "compound_crs" VALUES('EPSG','8734','NAD83 / Illinois West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3436','EPSG','6360','EPSG','2195',0);
INSERT INTO "compound_crs" VALUES('EPSG','8735','NAD83 / Indiana East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2965','EPSG','6360','EPSG','2196',0);
INSERT INTO "compound_crs" VALUES('EPSG','8736','NAD83 / Indiana West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2966','EPSG','6360','EPSG','2197',0);
INSERT INTO "compound_crs" VALUES('EPSG','8737','NAD83 / Iowa North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3417','EPSG','6360','EPSG','2198',0);
INSERT INTO "compound_crs" VALUES('EPSG','8738','NAD83 / Iowa South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3418','EPSG','6360','EPSG','2199',0);
INSERT INTO "compound_crs" VALUES('EPSG','8739','NAD83 / Kansas North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3419','EPSG','6360','EPSG','2200',0);
INSERT INTO "compound_crs" VALUES('EPSG','8740','NAD83 / Kansas South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3420','EPSG','6360','EPSG','2201',0);
INSERT INTO "compound_crs" VALUES('EPSG','8741','NAD83 / Kentucky North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2246','EPSG','6360','EPSG','2202',0);
INSERT INTO "compound_crs" VALUES('EPSG','8742','NAD83 / Kentucky South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2247','EPSG','6360','EPSG','2203',0);
INSERT INTO "compound_crs" VALUES('EPSG','8743','NAD83 / Louisiana North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3451','EPSG','6360','EPSG','2204',0);
INSERT INTO "compound_crs" VALUES('EPSG','8744','NAD83 / Louisiana South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3452','EPSG','6360','EPSG','2529',0);
INSERT INTO "compound_crs" VALUES('EPSG','8745','NAD83 / Maine East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26847','EPSG','6360','EPSG','2206',0);
INSERT INTO "compound_crs" VALUES('EPSG','8746','NAD83 / Maine West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26848','EPSG','6360','EPSG','2207',0);
INSERT INTO "compound_crs" VALUES('EPSG','8747','NAD83 / Maryland (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2248','EPSG','6360','EPSG','1389',0);
INSERT INTO "compound_crs" VALUES('EPSG','8748','NAD83 / Massachusetts Mainland (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2249','EPSG','6360','EPSG','2209',0);
INSERT INTO "compound_crs" VALUES('EPSG','8749','NAD83 / Massachusetts Island (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2250','EPSG','6360','EPSG','2208',0);
INSERT INTO "compound_crs" VALUES('EPSG','8750','NAD83 / Minnesota North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26849','EPSG','6360','EPSG','2214',0);
INSERT INTO "compound_crs" VALUES('EPSG','8751','NAD83 / Minnesota Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26850','EPSG','6360','EPSG','2213',0);
INSERT INTO "compound_crs" VALUES('EPSG','8752','NAD83 / Minnesota South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26851','EPSG','6360','EPSG','2215',0);
INSERT INTO "compound_crs" VALUES('EPSG','8753','NAD83 / Mississippi East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2254','EPSG','6360','EPSG','2216',0);
INSERT INTO "compound_crs" VALUES('EPSG','8754','NAD83 / Mississippi West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2255','EPSG','6360','EPSG','2217',0);
INSERT INTO "compound_crs" VALUES('EPSG','8755','NAD83 / Nebraska (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26852','EPSG','6360','EPSG','1396',0);
INSERT INTO "compound_crs" VALUES('EPSG','8756','NAD83 / Nevada East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3421','EPSG','6360','EPSG','2224',0);
INSERT INTO "compound_crs" VALUES('EPSG','8757','NAD83 / Nevada Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3422','EPSG','6360','EPSG','2223',0);
INSERT INTO "compound_crs" VALUES('EPSG','8758','NAD83 / Nevada West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3423','EPSG','6360','EPSG','2225',0);
INSERT INTO "compound_crs" VALUES('EPSG','8759','NAD83 / New Hampshire (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3437','EPSG','6360','EPSG','1398',0);
INSERT INTO "compound_crs" VALUES('EPSG','8760','NAD83 / New Jersey (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3424','EPSG','6360','EPSG','1399',0);
INSERT INTO "compound_crs" VALUES('EPSG','8761','NAD83 / New Mexico East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2257','EPSG','6360','EPSG','2228',0);
INSERT INTO "compound_crs" VALUES('EPSG','8762','NAD83 / New Mexico Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2258','EPSG','6360','EPSG','2231',0);
INSERT INTO "compound_crs" VALUES('EPSG','8763','NAD83 / New Mexico West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2259','EPSG','6360','EPSG','2232',0);
INSERT INTO "compound_crs" VALUES('EPSG','8764','NAD83 / New York East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2260','EPSG','6360','EPSG','2234',0);
INSERT INTO "compound_crs" VALUES('EPSG','8765','NAD83 / New York Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2261','EPSG','6360','EPSG','2233',0);
INSERT INTO "compound_crs" VALUES('EPSG','8766','NAD83 / New York West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2262','EPSG','6360','EPSG','2236',0);
INSERT INTO "compound_crs" VALUES('EPSG','8767','NAD83 / New York Long Island (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2263','EPSG','6360','EPSG','2235',0);
INSERT INTO "compound_crs" VALUES('EPSG','8768','NAD83 / North Carolina (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2264','EPSG','6360','EPSG','1402',0);
INSERT INTO "compound_crs" VALUES('EPSG','8769','NAD83 / Ohio North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3734','EPSG','6360','EPSG','2239',0);
INSERT INTO "compound_crs" VALUES('EPSG','8770','NAD83 / Ohio South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3735','EPSG','6360','EPSG','2240',0);
INSERT INTO "compound_crs" VALUES('EPSG','8771','NAD83 / Oklahoma North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2267','EPSG','6360','EPSG','2241',0);
INSERT INTO "compound_crs" VALUES('EPSG','8772','NAD83 / Oklahoma South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2268','EPSG','6360','EPSG','2242',0);
INSERT INTO "compound_crs" VALUES('EPSG','8773','NAD83 / Pennsylvania North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2271','EPSG','6360','EPSG','2245',0);
INSERT INTO "compound_crs" VALUES('EPSG','8774','NAD83 / Pennsylvania South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2272','EPSG','6360','EPSG','2246',0);
INSERT INTO "compound_crs" VALUES('EPSG','8775','NAD83 / Rhode Island (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3438','EPSG','6360','EPSG','1408',0);
INSERT INTO "compound_crs" VALUES('EPSG','8776','NAD83 / South Dakota North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','4457','EPSG','6360','EPSG','2249',0);
INSERT INTO "compound_crs" VALUES('EPSG','8777','NAD83 / South Dakota South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3455','EPSG','6360','EPSG','2250',0);
INSERT INTO "compound_crs" VALUES('EPSG','8778','NAD83 / Tennessee (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2274','EPSG','6360','EPSG','1411',0);
INSERT INTO "compound_crs" VALUES('EPSG','8779','NAD83 / Texas North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2275','EPSG','6360','EPSG','2253',0);
INSERT INTO "compound_crs" VALUES('EPSG','8780','NAD83 / Texas North Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2276','EPSG','6360','EPSG','2254',0);
INSERT INTO "compound_crs" VALUES('EPSG','8781','NAD83 / Texas Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2277','EPSG','6360','EPSG','2252',0);
INSERT INTO "compound_crs" VALUES('EPSG','8782','NAD83 / Texas South Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2278','EPSG','6360','EPSG','2527',0);
INSERT INTO "compound_crs" VALUES('EPSG','8783','NAD83 / Texas South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2279','EPSG','6360','EPSG','2528',0);
INSERT INTO "compound_crs" VALUES('EPSG','8784','NAD83 / Utah North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3560','EPSG','6360','EPSG','2258',0);
INSERT INTO "compound_crs" VALUES('EPSG','8785','NAD83 / Utah Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3566','EPSG','6360','EPSG','2257',0);
INSERT INTO "compound_crs" VALUES('EPSG','8786','NAD83 / Utah South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3567','EPSG','6360','EPSG','2259',0);
INSERT INTO "compound_crs" VALUES('EPSG','8787','NAD83 / Vermont (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','5646','EPSG','6360','EPSG','1414',0);
INSERT INTO "compound_crs" VALUES('EPSG','8788','NAD83 / Virginia North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2283','EPSG','6360','EPSG','2260',0);
INSERT INTO "compound_crs" VALUES('EPSG','8789','NAD83 / Virginia South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2284','EPSG','6360','EPSG','2261',0);
INSERT INTO "compound_crs" VALUES('EPSG','8790','NAD83 / Washington North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2285','EPSG','6360','EPSG','2273',0);
INSERT INTO "compound_crs" VALUES('EPSG','8791','NAD83 / Washington South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2286','EPSG','6360','EPSG','2274',0);
INSERT INTO "compound_crs" VALUES('EPSG','8792','NAD83 / West Virginia North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26853','EPSG','6360','EPSG','2264',0);
INSERT INTO "compound_crs" VALUES('EPSG','8793','NAD83 / West Virginia South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','26854','EPSG','6360','EPSG','2265',0);
INSERT INTO "compound_crs" VALUES('EPSG','8794','NAD83 / Wisconsin North (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2287','EPSG','6360','EPSG','2267',0);
INSERT INTO "compound_crs" VALUES('EPSG','8795','NAD83 / Wisconsin Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2288','EPSG','6360','EPSG','2266',0);
INSERT INTO "compound_crs" VALUES('EPSG','8796','NAD83 / Wisconsin South (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','2289','EPSG','6360','EPSG','2268',0);
INSERT INTO "compound_crs" VALUES('EPSG','8797','NAD83 / Wyoming East (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3736','EPSG','6360','EPSG','2269',0);
INSERT INTO "compound_crs" VALUES('EPSG','8798','NAD83 / Wyoming East Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3737','EPSG','6360','EPSG','2270',0);
INSERT INTO "compound_crs" VALUES('EPSG','8799','NAD83 / Wyoming West Central (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3738','EPSG','6360','EPSG','2272',0);
INSERT INTO "compound_crs" VALUES('EPSG','8800','NAD83 / Wyoming West (ftUS) + NAVD88 height (ftUS)',NULL,NULL,'EPSG','3739','EPSG','6360','EPSG','2271',0);
INSERT INTO "compound_crs" VALUES('EPSG','8801','NAD83 / Alabama East + NAVD88 height',NULL,NULL,'EPSG','26929','EPSG','5703','EPSG','2154',0);
INSERT INTO "compound_crs" VALUES('EPSG','8802','NAD83 / Alabama West + NAVD88 height',NULL,NULL,'EPSG','26930','EPSG','5703','EPSG','2155',0);
INSERT INTO "compound_crs" VALUES('EPSG','8803','NAD83 / Alaska zone 1 + NAVD88 height',NULL,NULL,'EPSG','26931','EPSG','5703','EPSG','2156',0);
INSERT INTO "compound_crs" VALUES('EPSG','8804','NAD83 / Alaska zone 2 + NAVD88 height',NULL,NULL,'EPSG','26932','EPSG','5703','EPSG','2158',0);
INSERT INTO "compound_crs" VALUES('EPSG','8805','NAD83 / Alaska zone 3 + NAVD88 height',NULL,NULL,'EPSG','26933','EPSG','5703','EPSG','2159',0);
INSERT INTO "compound_crs" VALUES('EPSG','8806','NAD83 / Alaska zone 4 + NAVD88 height',NULL,NULL,'EPSG','26934','EPSG','5703','EPSG','2160',0);
INSERT INTO "compound_crs" VALUES('EPSG','8807','NAD83 / Alaska zone 5 + NAVD88 height',NULL,NULL,'EPSG','26935','EPSG','5703','EPSG','2161',0);
INSERT INTO "compound_crs" VALUES('EPSG','8808','NAD83 / Alaska zone 6 + NAVD88 height',NULL,NULL,'EPSG','26936','EPSG','5703','EPSG','2162',0);
INSERT INTO "compound_crs" VALUES('EPSG','8809','NAD83 / Alaska zone 7 + NAVD88 height',NULL,NULL,'EPSG','26937','EPSG','5703','EPSG','2163',0);
INSERT INTO "compound_crs" VALUES('EPSG','8810','NAD83 / Alaska zone 8 + NAVD88 height',NULL,NULL,'EPSG','26938','EPSG','5703','EPSG','2164',0);
INSERT INTO "compound_crs" VALUES('EPSG','8811','NAD83 / Alaska zone 9 + NAVD88 height',NULL,NULL,'EPSG','26939','EPSG','5703','EPSG','2165',0);
INSERT INTO "compound_crs" VALUES('EPSG','8812','NAD83 / Alaska zone 10 + NAVD88 height',NULL,NULL,'EPSG','26940','EPSG','5703','EPSG','2157',0);
INSERT INTO "compound_crs" VALUES('EPSG','8813','NAD83 / Missouri East + NAVD88 height',NULL,NULL,'EPSG','26996','EPSG','5703','EPSG','2219',0);
INSERT INTO "compound_crs" VALUES('EPSG','8814','NAD83 / Missouri Central + NAVD88 height',NULL,NULL,'EPSG','26997','EPSG','5703','EPSG','2218',0);
INSERT INTO "compound_crs" VALUES('EPSG','8815','NAD83 / Missouri West + NAVD88 height',NULL,NULL,'EPSG','26998','EPSG','5703','EPSG','2220',0);
INSERT INTO "compound_crs" VALUES('EPSG','8912','CR-SIRGAS / CRTM05 + DACR52 height',NULL,NULL,'EPSG','8908','EPSG','8911','EPSG','3232',0);
INSERT INTO "compound_crs" VALUES('EPSG','9368','TPEN11 Grid + ODN height',NULL,NULL,'EPSG','9367','EPSG','5701','EPSG','4583',0);
INSERT INTO "compound_crs" VALUES('EPSG','9374','MML07 Grid + ODN height',NULL,NULL,'EPSG','9373','EPSG','5701','EPSG','4588',0);
INSERT INTO "compound_crs" VALUES('EPSG','3901','KKJ / Finland Uniform Coordinate System + N60 height',NULL,'EPSG','2393','EPSG','5717',0);
INSERT INTO "usage" VALUES('EPSG','2881','compound_crs','EPSG','3901','EPSG','3333','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','3902','ETRS89 / TM35FIN(N,E) + N60 height',NULL,'EPSG','5048','EPSG','5717',0);
INSERT INTO "usage" VALUES('EPSG','2882','compound_crs','EPSG','3902','EPSG','3333','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','3903','ETRS89 / TM35FIN(N,E) + N2000 height',NULL,'EPSG','5048','EPSG','3900',0);
INSERT INTO "usage" VALUES('EPSG','2883','compound_crs','EPSG','3903','EPSG','3333','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','4097','ETRS89 / DKTM1 + DVR90 height',NULL,'EPSG','4093','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','3001','compound_crs','EPSG','4097','EPSG','3631','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','4098','ETRS89 / DKTM2 + DVR90 height',NULL,'EPSG','4094','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','3002','compound_crs','EPSG','4098','EPSG','3632','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','4099','ETRS89 / DKTM3 + DVR90 height',NULL,'EPSG','4095','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','3003','compound_crs','EPSG','4099','EPSG','2532','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','4100','ETRS89 / DKTM4 + DVR90 height',NULL,'EPSG','4096','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','3004','compound_crs','EPSG','4100','EPSG','2533','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5318','ETRS89 / Faroe TM + FVR09 height',NULL,'EPSG','5316','EPSG','5317',0);
INSERT INTO "usage" VALUES('EPSG','3925','compound_crs','EPSG','5318','EPSG','3248','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5498','NAD83 + NAVD88 height',NULL,'EPSG','4269','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','4003','compound_crs','EPSG','5498','EPSG','3664','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5499','NAD83(HARN) + NAVD88 height',NULL,'EPSG','4152','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','4004','compound_crs','EPSG','5499','EPSG','1323','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5500','NAD83(NSRS2007) + NAVD88 height',NULL,'EPSG','4759','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','4005','compound_crs','EPSG','5500','EPSG','1323','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5554','ETRS89 / UTM zone 31N + DHHN92 height',NULL,'EPSG','25831','EPSG','5783',0);
INSERT INTO "usage" VALUES('EPSG','4032','compound_crs','EPSG','5554','EPSG','3901','EPSG','1190');
INSERT INTO "compound_crs" VALUES('EPSG','5555','ETRS89 / UTM zone 32N + DHHN92 height',NULL,'EPSG','25832','EPSG','5783',0);
INSERT INTO "usage" VALUES('EPSG','4033','compound_crs','EPSG','5555','EPSG','3904','EPSG','1190');
INSERT INTO "compound_crs" VALUES('EPSG','5556','ETRS89 / UTM zone 33N + DHHN92 height',NULL,'EPSG','25833','EPSG','5783',0);
INSERT INTO "usage" VALUES('EPSG','4034','compound_crs','EPSG','5556','EPSG','3879','EPSG','1190');
INSERT INTO "compound_crs" VALUES('EPSG','5598','FEH2010 / Fehmarnbelt TM + FCSVR10 height',NULL,'EPSG','5596','EPSG','5597',0);
INSERT INTO "usage" VALUES('EPSG','4068','compound_crs','EPSG','5598','EPSG','3890','EPSG','1139');
INSERT INTO "compound_crs" VALUES('EPSG','5628','SWEREF99 + RH2000 height',NULL,'EPSG','4619','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4095','compound_crs','EPSG','5628','EPSG','3313','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5698','RGF93 / Lambert-93 + NGF-IGN69 height',NULL,'EPSG','2154','EPSG','5720',0);
INSERT INTO "usage" VALUES('EPSG','4141','compound_crs','EPSG','5698','EPSG','1326','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5699','RGF93 / Lambert-93 + NGF-IGN78 height',NULL,'EPSG','2154','EPSG','5721',0);
INSERT INTO "usage" VALUES('EPSG','4142','compound_crs','EPSG','5699','EPSG','1327','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5707','NTF (Paris) / Lambert zone I + NGF-IGN69 height',NULL,'EPSG','27571','EPSG','5720',0);
INSERT INTO "usage" VALUES('EPSG','4150','compound_crs','EPSG','5707','EPSG','1731','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5708','NTF (Paris) / Lambert zone IV + NGF-IGN78 height',NULL,'EPSG','27574','EPSG','5721',0);
INSERT INTO "usage" VALUES('EPSG','4151','compound_crs','EPSG','5708','EPSG','1327','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5832','DB_REF / 3-degree Gauss-Kruger zone 2 (E-N) + DHHN92 height',NULL,'EPSG','5682','EPSG','5783',0);
INSERT INTO "usage" VALUES('EPSG','4270','compound_crs','EPSG','5832','EPSG','1624','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','5833','DB_REF / 3-degree Gauss-Kruger zone 3 (E-N) + DHHN92 height',NULL,'EPSG','5683','EPSG','5783',0);
INSERT INTO "usage" VALUES('EPSG','4271','compound_crs','EPSG','5833','EPSG','3993','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','5834','DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) + DHHN92 height',NULL,'EPSG','5684','EPSG','5783',0);
INSERT INTO "usage" VALUES('EPSG','4272','compound_crs','EPSG','5834','EPSG','3996','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','5835','DB_REF / 3-degree Gauss-Kruger zone 5 (E-N) + DHHN92 height',NULL,'EPSG','5685','EPSG','5783',0);
INSERT INTO "usage" VALUES('EPSG','4273','compound_crs','EPSG','5835','EPSG','3998','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','5845','SWEREF99 TM + RH2000 height',NULL,'EPSG','3006','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4280','compound_crs','EPSG','5845','EPSG','3313','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5846','SWEREF99 12 00 + RH2000 height',NULL,'EPSG','3007','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4281','compound_crs','EPSG','5846','EPSG','2833','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5847','SWEREF99 13 30 + RH2000 height',NULL,'EPSG','3008','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4282','compound_crs','EPSG','5847','EPSG','2834','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5848','SWEREF99 15 00 + RH2000 height',NULL,'EPSG','3009','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4283','compound_crs','EPSG','5848','EPSG','2835','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5849','SWEREF99 16 30 + RH2000 height',NULL,'EPSG','3010','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4284','compound_crs','EPSG','5849','EPSG','2836','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5850','SWEREF99 18 00 + RH2000 height',NULL,'EPSG','3011','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4285','compound_crs','EPSG','5850','EPSG','2837','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5851','SWEREF99 14 15 + RH2000 height',NULL,'EPSG','3012','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4286','compound_crs','EPSG','5851','EPSG','2838','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5852','SWEREF99 15 45 + RH2000 height',NULL,'EPSG','3013','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4287','compound_crs','EPSG','5852','EPSG','2839','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5853','SWEREF99 17 15 + RH2000 height',NULL,'EPSG','3014','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4288','compound_crs','EPSG','5853','EPSG','2840','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5854','SWEREF99 18 45 + RH2000 height',NULL,'EPSG','3015','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4289','compound_crs','EPSG','5854','EPSG','2841','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5855','SWEREF99 20 15 + RH2000 height',NULL,'EPSG','3016','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4290','compound_crs','EPSG','5855','EPSG','2842','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5856','SWEREF99 21 45 + RH2000 height',NULL,'EPSG','3017','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4291','compound_crs','EPSG','5856','EPSG','2843','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5857','SWEREF99 23 15 + RH2000 height',NULL,'EPSG','3018','EPSG','5613',0);
INSERT INTO "usage" VALUES('EPSG','4292','compound_crs','EPSG','5857','EPSG','2844','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','5942','ETRS89 + NN2000 height',NULL,'EPSG','4258','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4346','compound_crs','EPSG','5942','EPSG','1352','EPSG','1027');
INSERT INTO "compound_crs" VALUES('EPSG','5945','ETRS89 / NTM zone 5 + NN2000 height',NULL,'EPSG','5105','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4347','compound_crs','EPSG','5945','EPSG','3636','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5946','ETRS89 / NTM zone 6 + NN2000 height',NULL,'EPSG','5106','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4348','compound_crs','EPSG','5946','EPSG','3639','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5947','ETRS89 / NTM zone 7 + NN2000 height',NULL,'EPSG','5107','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4349','compound_crs','EPSG','5947','EPSG','3647','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5948','ETRS89 / NTM zone 8 + NN2000 height',NULL,'EPSG','5108','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4350','compound_crs','EPSG','5948','EPSG','3648','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5949','ETRS89 / NTM zone 9 + NN2000 height',NULL,'EPSG','5109','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4351','compound_crs','EPSG','5949','EPSG','3649','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5950','ETRS89 / NTM zone 10 + NN2000 height',NULL,'EPSG','5110','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4352','compound_crs','EPSG','5950','EPSG','3650','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5951','ETRS89 / NTM zone 11 + NN2000 height',NULL,'EPSG','5111','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4353','compound_crs','EPSG','5951','EPSG','3651','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5952','ETRS89 / NTM zone 12 + NN2000 height',NULL,'EPSG','5112','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4354','compound_crs','EPSG','5952','EPSG','3653','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5953','ETRS89 / NTM zone 13 + NN2000 height',NULL,'EPSG','5113','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4355','compound_crs','EPSG','5953','EPSG','3654','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5954','ETRS89 / NTM zone 14 + NN2000 height',NULL,'EPSG','5114','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4356','compound_crs','EPSG','5954','EPSG','3655','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5955','ETRS89 / NTM zone 15 + NN2000 height',NULL,'EPSG','5115','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4357','compound_crs','EPSG','5955','EPSG','3656','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5956','ETRS89 / NTM zone 16 + NN2000 height',NULL,'EPSG','5116','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4358','compound_crs','EPSG','5956','EPSG','3657','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5957','ETRS89 / NTM zone 17 + NN2000 height',NULL,'EPSG','5117','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4359','compound_crs','EPSG','5957','EPSG','3658','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5958','ETRS89 / NTM zone 18 + NN2000 height',NULL,'EPSG','5118','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4360','compound_crs','EPSG','5958','EPSG','3660','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5959','ETRS89 / NTM zone 19 + NN2000 height',NULL,'EPSG','5119','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4361','compound_crs','EPSG','5959','EPSG','3661','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5960','ETRS89 / NTM zone 20 + NN2000 height',NULL,'EPSG','5120','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4362','compound_crs','EPSG','5960','EPSG','3662','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5961','ETRS89 / NTM zone 21 + NN2000 height',NULL,'EPSG','5121','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4363','compound_crs','EPSG','5961','EPSG','3663','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5962','ETRS89 / NTM zone 22 + NN2000 height',NULL,'EPSG','5122','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4364','compound_crs','EPSG','5962','EPSG','3665','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5963','ETRS89 / NTM zone 23 + NN2000 height',NULL,'EPSG','5123','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4365','compound_crs','EPSG','5963','EPSG','3667','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5964','ETRS89 / NTM zone 24 + NN2000 height',NULL,'EPSG','5124','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4366','compound_crs','EPSG','5964','EPSG','3668','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5965','ETRS89 / NTM zone 25 + NN2000 height',NULL,'EPSG','5125','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4367','compound_crs','EPSG','5965','EPSG','3669','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5966','ETRS89 / NTM zone 26 + NN2000 height',NULL,'EPSG','5126','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4368','compound_crs','EPSG','5966','EPSG','3671','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5967','ETRS89 / NTM zone 27 + NN2000 height',NULL,'EPSG','5127','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4369','compound_crs','EPSG','5967','EPSG','3672','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5968','ETRS89 / NTM zone 28 + NN2000 height',NULL,'EPSG','5128','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4370','compound_crs','EPSG','5968','EPSG','3673','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5969','ETRS89 / NTM zone 29 + NN2000 height',NULL,'EPSG','5129','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4371','compound_crs','EPSG','5969','EPSG','3674','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5970','ETRS89 / NTM zone 30 + NN2000 height',NULL,'EPSG','5130','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4372','compound_crs','EPSG','5970','EPSG','3676','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','5971','ETRS89 / UTM zone 31N + NN2000 height',NULL,'EPSG','25831','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4373','compound_crs','EPSG','5971','EPSG','3636','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','5972','ETRS89 / UTM zone 32N + NN2000 height',NULL,'EPSG','25832','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4374','compound_crs','EPSG','5972','EPSG','4066','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','5973','ETRS89 / UTM zone 33N + NN2000 height',NULL,'EPSG','25833','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4375','compound_crs','EPSG','5973','EPSG','4067','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','5974','ETRS89 / UTM zone 34N + NN2000 height',NULL,'EPSG','25834','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4376','compound_crs','EPSG','5974','EPSG','4068','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','5975','ETRS89 / UTM zone 35N + NN2000 height',NULL,'EPSG','25835','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4377','compound_crs','EPSG','5975','EPSG','4069','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','5976','ETRS89 / UTM zone 36N + NN2000 height',NULL,'EPSG','25836','EPSG','5941',0);
INSERT INTO "usage" VALUES('EPSG','4378','compound_crs','EPSG','5976','EPSG','3676','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','6144','ETRS89 + NN54 height',NULL,'EPSG','4258','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4464','compound_crs','EPSG','6144','EPSG','1352','EPSG','1027');
INSERT INTO "compound_crs" VALUES('EPSG','6145','ETRS89 / NTM zone 5 + NN54 height',NULL,'EPSG','5105','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4465','compound_crs','EPSG','6145','EPSG','3636','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6146','ETRS89 / NTM zone 6 + NN54 height',NULL,'EPSG','5106','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4466','compound_crs','EPSG','6146','EPSG','3639','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6147','ETRS89 / NTM zone 7 + NN54 height',NULL,'EPSG','5107','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4467','compound_crs','EPSG','6147','EPSG','3647','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6148','ETRS89 / NTM zone 8 + NN54 height',NULL,'EPSG','5108','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4468','compound_crs','EPSG','6148','EPSG','3648','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6149','ETRS89 / NTM zone 9 + NN54 height',NULL,'EPSG','5109','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4469','compound_crs','EPSG','6149','EPSG','3649','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6150','ETRS89 / NTM zone 10 + NN54 height',NULL,'EPSG','5110','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4470','compound_crs','EPSG','6150','EPSG','3650','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6151','ETRS89 / NTM zone 11 + NN54 height',NULL,'EPSG','5111','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4471','compound_crs','EPSG','6151','EPSG','3651','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6152','ETRS89 / NTM zone 12 + NN54 height',NULL,'EPSG','5112','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4472','compound_crs','EPSG','6152','EPSG','3653','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6153','ETRS89 / NTM zone 13 + NN54 height',NULL,'EPSG','5113','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4473','compound_crs','EPSG','6153','EPSG','3654','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6154','ETRS89 / NTM zone 14 + NN54 height',NULL,'EPSG','5114','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4474','compound_crs','EPSG','6154','EPSG','3655','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6155','ETRS89 / NTM zone 15 + NN54 height',NULL,'EPSG','5115','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4475','compound_crs','EPSG','6155','EPSG','3656','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6156','ETRS89 / NTM zone 16 + NN54 height',NULL,'EPSG','5116','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4476','compound_crs','EPSG','6156','EPSG','3657','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6157','ETRS89 / NTM zone 17 + NN54 height',NULL,'EPSG','5117','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4477','compound_crs','EPSG','6157','EPSG','3658','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6158','ETRS89 / NTM zone 18 + NN54 height',NULL,'EPSG','5118','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4478','compound_crs','EPSG','6158','EPSG','3660','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6159','ETRS89 / NTM zone 19 + NN54 height',NULL,'EPSG','5119','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4479','compound_crs','EPSG','6159','EPSG','3661','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6160','ETRS89 / NTM zone 20 + NN54 height',NULL,'EPSG','5120','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4480','compound_crs','EPSG','6160','EPSG','3662','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6161','ETRS89 / NTM zone 21 + NN54 height',NULL,'EPSG','5121','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4481','compound_crs','EPSG','6161','EPSG','3663','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6162','ETRS89 / NTM zone 22 + NN54 height',NULL,'EPSG','5122','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4482','compound_crs','EPSG','6162','EPSG','3665','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6163','ETRS89 / NTM zone 23 + NN54 height',NULL,'EPSG','5123','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4483','compound_crs','EPSG','6163','EPSG','3667','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6164','ETRS89 / NTM zone 24 + NN54 height',NULL,'EPSG','5124','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4484','compound_crs','EPSG','6164','EPSG','3668','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6165','ETRS89 / NTM zone 25 + NN54 height',NULL,'EPSG','5125','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4485','compound_crs','EPSG','6165','EPSG','3669','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6166','ETRS89 / NTM zone 26 + NN54 height',NULL,'EPSG','5126','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4486','compound_crs','EPSG','6166','EPSG','3671','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6167','ETRS89 / NTM zone 27 + NN54 height',NULL,'EPSG','5127','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4487','compound_crs','EPSG','6167','EPSG','3672','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6168','ETRS89 / NTM zone 28 + NN54 height',NULL,'EPSG','5128','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4488','compound_crs','EPSG','6168','EPSG','3673','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6169','ETRS89 / NTM zone 29 + NN54 height',NULL,'EPSG','5129','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4489','compound_crs','EPSG','6169','EPSG','3674','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6170','ETRS89 / NTM zone 30 + NN54 height',NULL,'EPSG','5130','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4490','compound_crs','EPSG','6170','EPSG','3676','EPSG','1029');
INSERT INTO "compound_crs" VALUES('EPSG','6171','ETRS89 / UTM zone 31N + NN54 height',NULL,'EPSG','25831','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4491','compound_crs','EPSG','6171','EPSG','3636','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','6172','ETRS89 / UTM zone 32N + NN54 height',NULL,'EPSG','25832','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4492','compound_crs','EPSG','6172','EPSG','4066','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','6173','ETRS89 / UTM zone 33N + NN54 height',NULL,'EPSG','25833','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4493','compound_crs','EPSG','6173','EPSG','4067','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','6174','ETRS89 / UTM zone 34N + NN54 height',NULL,'EPSG','25834','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4494','compound_crs','EPSG','6174','EPSG','4068','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','6175','ETRS89 / UTM zone 35N + NN54 height',NULL,'EPSG','25835','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4495','compound_crs','EPSG','6175','EPSG','4069','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','6176','ETRS89 / UTM zone 36N + NN54 height',NULL,'EPSG','25836','EPSG','5776',0);
INSERT INTO "usage" VALUES('EPSG','4496','compound_crs','EPSG','6176','EPSG','3676','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','6190','BD72 / Belgian Lambert 72 + Ostend height',NULL,'EPSG','31370','EPSG','5710',0);
INSERT INTO "usage" VALUES('EPSG','4507','compound_crs','EPSG','6190','EPSG','1347','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6349','NAD83(2011) + NAVD88 height',NULL,'EPSG','6318','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','4583','compound_crs','EPSG','6349','EPSG','3664','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6649','NAD83(CSRS) + CGVD2013 height',NULL,'EPSG','4617','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4868','compound_crs','EPSG','6649','EPSG','1061','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6650','NAD83(CSRS) / UTM zone 7N + CGVD2013 height',NULL,'EPSG','3154','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4869','compound_crs','EPSG','6650','EPSG','3409','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6651','NAD83(CSRS) / UTM zone 8N + CGVD2013 height',NULL,'EPSG','3155','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4870','compound_crs','EPSG','6651','EPSG','3410','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6652','NAD83(CSRS) / UTM zone 9N + CGVD2013 height',NULL,'EPSG','3156','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4871','compound_crs','EPSG','6652','EPSG','3411','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6653','NAD83(CSRS) / UTM zone 10N + CGVD2013 height',NULL,'EPSG','3157','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4872','compound_crs','EPSG','6653','EPSG','3412','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6654','NAD83(CSRS) / UTM zone 11N + CGVD2013 height',NULL,'EPSG','2955','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4873','compound_crs','EPSG','6654','EPSG','3528','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6655','NAD83(CSRS) / UTM zone 12N + CGVD2013 height',NULL,'EPSG','2956','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4874','compound_crs','EPSG','6655','EPSG','3527','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6656','NAD83(CSRS) / UTM zone 13N + CGVD2013 height',NULL,'EPSG','2957','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4875','compound_crs','EPSG','6656','EPSG','3526','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6657','NAD83(CSRS) / UTM zone 14N + CGVD2013 height',NULL,'EPSG','3158','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4876','compound_crs','EPSG','6657','EPSG','3413','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6658','NAD83(CSRS) / UTM zone 15N + CGVD2013 height',NULL,'EPSG','3159','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4877','compound_crs','EPSG','6658','EPSG','3414','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6659','NAD83(CSRS) / UTM zone 16N + CGVD2013 height',NULL,'EPSG','3160','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4878','compound_crs','EPSG','6659','EPSG','3415','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6660','NAD83(CSRS) / UTM zone 17N + CGVD2013 height',NULL,'EPSG','2958','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4879','compound_crs','EPSG','6660','EPSG','3416','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6661','NAD83(CSRS) / UTM zone 18N + CGVD2013 height',NULL,'EPSG','2959','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4880','compound_crs','EPSG','6661','EPSG','3417','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6662','NAD83(CSRS) / UTM zone 19N + CGVD2013 height',NULL,'EPSG','2960','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4881','compound_crs','EPSG','6662','EPSG','3524','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6663','NAD83(CSRS) / UTM zone 20N + CGVD2013 height',NULL,'EPSG','2961','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4882','compound_crs','EPSG','6663','EPSG','3525','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6664','NAD83(CSRS) / UTM zone 21N + CGVD2013 height',NULL,'EPSG','2962','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4883','compound_crs','EPSG','6664','EPSG','2151','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6665','NAD83(CSRS) / UTM zone 22N + CGVD2013 height',NULL,'EPSG','3761','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','4884','compound_crs','EPSG','6665','EPSG','2152','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6696','JGD2000 + JGD2000 (vertical) height',NULL,'EPSG','4612','EPSG','6694',0);
INSERT INTO "usage" VALUES('EPSG','4915','compound_crs','EPSG','6696','EPSG','3263','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6697','JGD2011 + JGD2011 (vertical) height',NULL,'EPSG','6668','EPSG','6695',0);
INSERT INTO "usage" VALUES('EPSG','4916','compound_crs','EPSG','6697','EPSG','3263','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6700','Tokyo + JSLD72 height',NULL,'EPSG','4301','EPSG','6693',0);
INSERT INTO "usage" VALUES('EPSG','4917','compound_crs','EPSG','6700','EPSG','4168','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6871','WGS 84 / Pseudo-Mercator + EGM2008 geoid height',NULL,'EPSG','3857','EPSG','3855',1);
INSERT INTO "usage" VALUES('EPSG','5023','compound_crs','EPSG','6871','EPSG','1262','EPSG','1229');
INSERT INTO "compound_crs" VALUES('EPSG','6893','WGS 84 / World Mercator + EGM2008 height',NULL,'EPSG','3395','EPSG','3855',0);
INSERT INTO "usage" VALUES('EPSG','5036','compound_crs','EPSG','6893','EPSG','1262','EPSG','1229');
INSERT INTO "compound_crs" VALUES('EPSG','6917','SVY21 + SHD height',NULL,'EPSG','4757','EPSG','6916',0);
INSERT INTO "usage" VALUES('EPSG','5040','compound_crs','EPSG','6917','EPSG','1210','EPSG','1144');
INSERT INTO "compound_crs" VALUES('EPSG','6927','SVY21 / Singapore TM + SHD height',NULL,'EPSG','3414','EPSG','6916',0);
INSERT INTO "usage" VALUES('EPSG','5045','compound_crs','EPSG','6927','EPSG','1210','EPSG','1144');
INSERT INTO "compound_crs" VALUES('EPSG','7400','NTF (Paris) + NGF IGN69 height',NULL,'EPSG','4807','EPSG','5720',0);
INSERT INTO "usage" VALUES('EPSG','5265','compound_crs','EPSG','7400','EPSG','1326','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7401','NTF (Paris) / France II + NGF Lallemand',NULL,'EPSG','27582','EPSG','5719',1);
INSERT INTO "usage" VALUES('EPSG','5266','compound_crs','EPSG','7401','EPSG','1326','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7402','NTF (Paris) / France II + NGF IGN69',NULL,'EPSG','27582','EPSG','5720',1);
INSERT INTO "usage" VALUES('EPSG','5267','compound_crs','EPSG','7402','EPSG','1326','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7403','NTF (Paris) / France III + NGF IGN69',NULL,'EPSG','27583','EPSG','5720',1);
INSERT INTO "usage" VALUES('EPSG','5268','compound_crs','EPSG','7403','EPSG','1733','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7404','RT90 + RH70 height',NULL,'EPSG','4124','EPSG','5718',0);
INSERT INTO "usage" VALUES('EPSG','5269','compound_crs','EPSG','7404','EPSG','3313','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7405','OSGB36 / British National Grid + ODN height',NULL,'EPSG','27700','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','5270','compound_crs','EPSG','7405','EPSG','2792','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7406','NAD27 + NGVD29 height (ftUS)',NULL,'EPSG','4267','EPSG','5702',0);
INSERT INTO "usage" VALUES('EPSG','5271','compound_crs','EPSG','7406','EPSG','1323','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7407','NAD27 / Texas North + NGVD29 height (ftUS)',NULL,'EPSG','32037','EPSG','5702',0);
INSERT INTO "usage" VALUES('EPSG','5272','compound_crs','EPSG','7407','EPSG','2253','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7408','RD/NAP',NULL,'EPSG','4289','EPSG','5709',1);
INSERT INTO "usage" VALUES('EPSG','5273','compound_crs','EPSG','7408','EPSG','1275','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7409','ETRS89 + EVRF2000 height',NULL,'EPSG','4258','EPSG','5730',0);
INSERT INTO "usage" VALUES('EPSG','5274','compound_crs','EPSG','7409','EPSG','1299','EPSG','1161');
INSERT INTO "compound_crs" VALUES('EPSG','7410','PSHD93',NULL,'EPSG','4134','EPSG','5724',0);
INSERT INTO "usage" VALUES('EPSG','5275','compound_crs','EPSG','7410','EPSG','3288','EPSG','1136');
INSERT INTO "compound_crs" VALUES('EPSG','7411','NTF (Paris) / Lambert zone II + NGF Lallemand height',NULL,'EPSG','27572','EPSG','5719',0);
INSERT INTO "usage" VALUES('EPSG','5276','compound_crs','EPSG','7411','EPSG','1326','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7412','NTF (Paris) / Lambert zone II + NGF IGN69',NULL,'EPSG','27572','EPSG','5719',1);
INSERT INTO "usage" VALUES('EPSG','5277','compound_crs','EPSG','7412','EPSG','1326','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7413','NTF (Paris) / Lambert zone III + NGF IGN69',NULL,'EPSG','27573','EPSG','5719',1);
INSERT INTO "usage" VALUES('EPSG','5278','compound_crs','EPSG','7413','EPSG','1733','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7414','Tokyo + JSLD69 height',NULL,'EPSG','4301','EPSG','5723',0);
INSERT INTO "usage" VALUES('EPSG','5279','compound_crs','EPSG','7414','EPSG','4166','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7415','Amersfoort / RD New + NAP height',NULL,'EPSG','28992','EPSG','5709',0);
INSERT INTO "usage" VALUES('EPSG','5280','compound_crs','EPSG','7415','EPSG','1275','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7416','ETRS89 / UTM zone 32N + DVR90 height',NULL,'EPSG','25832','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','5281','compound_crs','EPSG','7416','EPSG','3471','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7417','ETRS89 / UTM zone 33N + DVR90 height',NULL,'EPSG','25833','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','5282','compound_crs','EPSG','7417','EPSG','3472','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7418','ETRS89 / Kp2000 Jutland + DVR90 height',NULL,'EPSG','2196','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','5283','compound_crs','EPSG','7418','EPSG','2531','EPSG','1209');
INSERT INTO "compound_crs" VALUES('EPSG','7419','ETRS89 / Kp2000 Zealand + DVR90 height',NULL,'EPSG','2197','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','5284','compound_crs','EPSG','7419','EPSG','2532','EPSG','1209');
INSERT INTO "compound_crs" VALUES('EPSG','7420','ETRS89 / Kp2000 Bornholm + DVR90 height',NULL,'EPSG','2198','EPSG','5799',0);
INSERT INTO "usage" VALUES('EPSG','5285','compound_crs','EPSG','7420','EPSG','2533','EPSG','1209');
INSERT INTO "compound_crs" VALUES('EPSG','7421','NTF (Paris) / Lambert zone II + NGF-IGN69 height',NULL,'EPSG','27572','EPSG','5720',0);
INSERT INTO "usage" VALUES('EPSG','5286','compound_crs','EPSG','7421','EPSG','1326','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7422','NTF (Paris) / Lambert zone III + NGF-IGN69 height',NULL,'EPSG','27573','EPSG','5720',0);
INSERT INTO "usage" VALUES('EPSG','5287','compound_crs','EPSG','7422','EPSG','1733','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','7423','ETRS89 + EVRF2007 height',NULL,'EPSG','4258','EPSG','5621',0);
INSERT INTO "usage" VALUES('EPSG','5288','compound_crs','EPSG','7423','EPSG','3594','EPSG','1161');
INSERT INTO "compound_crs" VALUES('EPSG','7954','Astro DOS 71 / UTM zone 30S + Jamestown 1971 height',NULL,'EPSG','7878','EPSG','7888',0);
INSERT INTO "usage" VALUES('EPSG','5565','compound_crs','EPSG','7954','EPSG','3183','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','7955','St. Helena Tritan / UTM zone 30S + Tritan 2011 height',NULL,'EPSG','7883','EPSG','7889',0);
INSERT INTO "usage" VALUES('EPSG','5566','compound_crs','EPSG','7955','EPSG','3183','EPSG','1146');
INSERT INTO "compound_crs" VALUES('EPSG','7956','SHMG2015 + SHVD2015 height',NULL,'EPSG','7887','EPSG','7890',0);
INSERT INTO "usage" VALUES('EPSG','5567','compound_crs','EPSG','7956','EPSG','3183','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','8349','GR96 + GVR2000 height',NULL,'EPSG','4747','EPSG','8266',0);
INSERT INTO "usage" VALUES('EPSG','5798','compound_crs','EPSG','8349','EPSG','4461','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','8350','GR96 + GVR2016 height',NULL,'EPSG','4747','EPSG','8267',0);
INSERT INTO "usage" VALUES('EPSG','5799','compound_crs','EPSG','8350','EPSG','4454','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','8360','ETRS89 + Baltic 1957 height',NULL,'EPSG','4258','EPSG','8357',0);
INSERT INTO "usage" VALUES('EPSG','5805','compound_crs','EPSG','8360','EPSG','1306','EPSG','1203');
INSERT INTO "compound_crs" VALUES('EPSG','8370','ETRS89 / Belgian Lambert 2008 + Ostend height',NULL,'EPSG','3812','EPSG','5710',0);
INSERT INTO "usage" VALUES('EPSG','5806','compound_crs','EPSG','8370','EPSG','1347','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8700','NAD83 / Arizona East (ft) + NAVD88 height (ft)',NULL,'EPSG','2222','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5879','compound_crs','EPSG','8700','EPSG','2167','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8701','NAD83 / Arizona Central (ft) + NAVD88 height (ft)',NULL,'EPSG','2223','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5880','compound_crs','EPSG','8701','EPSG','2166','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8702','NAD83 / Arizona West (ft) + NAVD88 height (ft)',NULL,'EPSG','2224','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5881','compound_crs','EPSG','8702','EPSG','2168','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8703','NAD83 / Michigan North (ft) + NAVD88 height (ft)',NULL,'EPSG','2251','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5882','compound_crs','EPSG','8703','EPSG','1723','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8704','NAD83 / Michigan Central (ft) + NAVD88 height (ft)',NULL,'EPSG','2252','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5883','compound_crs','EPSG','8704','EPSG','1724','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8705','NAD83 / Michigan South (ft) + NAVD88 height (ft)',NULL,'EPSG','2253','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5884','compound_crs','EPSG','8705','EPSG','1725','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8706','NAD83 / Montana (ft) + NAVD88 height (ft)',NULL,'EPSG','2256','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5885','compound_crs','EPSG','8706','EPSG','1395','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8707','NAD83 / North Dakota North (ft) + NAVD88 height (ft)',NULL,'EPSG','2265','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5886','compound_crs','EPSG','8707','EPSG','2237','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8708','NAD83 / North Dakota South (ft) + NAVD88 height (ft)',NULL,'EPSG','2266','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5887','compound_crs','EPSG','8708','EPSG','2238','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8709','NAD83 / Oregon North (ft) + NAVD88 height (ft)',NULL,'EPSG','2269','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5888','compound_crs','EPSG','8709','EPSG','2243','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8710','NAD83 / Oregon South (ft) + NAVD88 height (ft)',NULL,'EPSG','2270','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5889','compound_crs','EPSG','8710','EPSG','2244','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8711','NAD83 / South Carolina (ft) + NAVD88 height (ft)',NULL,'EPSG','2273','EPSG','8228',0);
INSERT INTO "usage" VALUES('EPSG','5890','compound_crs','EPSG','8711','EPSG','1409','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8712','NAD83 / Arkansas North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3433','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5891','compound_crs','EPSG','8712','EPSG','2169','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8713','NAD83 / Arkansas South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3434','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5892','compound_crs','EPSG','8713','EPSG','2170','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8714','NAD83 / California zone 1 (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2225','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5893','compound_crs','EPSG','8714','EPSG','2175','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8715','NAD83 / California zone 2 (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2226','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5894','compound_crs','EPSG','8715','EPSG','2176','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8716','NAD83 / California zone 3 (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2227','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5895','compound_crs','EPSG','8716','EPSG','2177','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8717','NAD83 / California zone 4 (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2228','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5896','compound_crs','EPSG','8717','EPSG','2178','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8718','NAD83 / California zone 5 (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2229','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5897','compound_crs','EPSG','8718','EPSG','2182','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8719','NAD83 / California zone 6 (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2230','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5898','compound_crs','EPSG','8719','EPSG','2180','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8720','NAD83 / Colorado North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2231','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5899','compound_crs','EPSG','8720','EPSG','2184','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8721','NAD83 / Colorado Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2232','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5900','compound_crs','EPSG','8721','EPSG','2183','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8722','NAD83 / Colorado South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2233','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5901','compound_crs','EPSG','8722','EPSG','2185','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8723','NAD83 / Connecticut (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2234','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5902','compound_crs','EPSG','8723','EPSG','1377','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8724','NAD83 / Delaware (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2235','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5903','compound_crs','EPSG','8724','EPSG','1378','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8725','NAD83 / Florida North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2238','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5904','compound_crs','EPSG','8725','EPSG','2187','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8726','NAD83 / Florida East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2236','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5905','compound_crs','EPSG','8726','EPSG','2186','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8727','NAD83 / Florida West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2237','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5906','compound_crs','EPSG','8727','EPSG','2188','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8728','NAD83 / Georgia East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2239','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5907','compound_crs','EPSG','8728','EPSG','2189','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8729','NAD83 / Georgia West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2240','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5908','compound_crs','EPSG','8729','EPSG','2190','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8730','NAD83 / Idaho East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2241','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5909','compound_crs','EPSG','8730','EPSG','2192','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8731','NAD83 / Idaho Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2242','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5910','compound_crs','EPSG','8731','EPSG','2191','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8732','NAD83 / Idaho West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2243','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5911','compound_crs','EPSG','8732','EPSG','2193','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8733','NAD83 / Illinois East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3435','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5912','compound_crs','EPSG','8733','EPSG','2194','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8734','NAD83 / Illinois West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3436','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5913','compound_crs','EPSG','8734','EPSG','2195','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8735','NAD83 / Indiana East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2965','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5914','compound_crs','EPSG','8735','EPSG','2196','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8736','NAD83 / Indiana West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2966','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5915','compound_crs','EPSG','8736','EPSG','2197','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8737','NAD83 / Iowa North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3417','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5916','compound_crs','EPSG','8737','EPSG','2198','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8738','NAD83 / Iowa South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3418','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5917','compound_crs','EPSG','8738','EPSG','2199','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8739','NAD83 / Kansas North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3419','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5918','compound_crs','EPSG','8739','EPSG','2200','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8740','NAD83 / Kansas South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3420','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5919','compound_crs','EPSG','8740','EPSG','2201','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8741','NAD83 / Kentucky North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2246','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5920','compound_crs','EPSG','8741','EPSG','2202','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8742','NAD83 / Kentucky South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2247','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5921','compound_crs','EPSG','8742','EPSG','2203','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8743','NAD83 / Louisiana North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3451','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5922','compound_crs','EPSG','8743','EPSG','2204','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8744','NAD83 / Louisiana South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3452','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5923','compound_crs','EPSG','8744','EPSG','2529','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8745','NAD83 / Maine East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26847','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5924','compound_crs','EPSG','8745','EPSG','2206','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8746','NAD83 / Maine West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26848','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5925','compound_crs','EPSG','8746','EPSG','2207','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8747','NAD83 / Maryland (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2248','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5926','compound_crs','EPSG','8747','EPSG','1389','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8748','NAD83 / Massachusetts Mainland (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2249','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5927','compound_crs','EPSG','8748','EPSG','2209','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8749','NAD83 / Massachusetts Island (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2250','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5928','compound_crs','EPSG','8749','EPSG','2208','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8750','NAD83 / Minnesota North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26849','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5929','compound_crs','EPSG','8750','EPSG','2214','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8751','NAD83 / Minnesota Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26850','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5930','compound_crs','EPSG','8751','EPSG','2213','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8752','NAD83 / Minnesota South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26851','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5931','compound_crs','EPSG','8752','EPSG','2215','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8753','NAD83 / Mississippi East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2254','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5932','compound_crs','EPSG','8753','EPSG','2216','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8754','NAD83 / Mississippi West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2255','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5933','compound_crs','EPSG','8754','EPSG','2217','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8755','NAD83 / Nebraska (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26852','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5934','compound_crs','EPSG','8755','EPSG','1396','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8756','NAD83 / Nevada East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3421','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5935','compound_crs','EPSG','8756','EPSG','2224','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8757','NAD83 / Nevada Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3422','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5936','compound_crs','EPSG','8757','EPSG','2223','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8758','NAD83 / Nevada West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3423','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5937','compound_crs','EPSG','8758','EPSG','2225','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8759','NAD83 / New Hampshire (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3437','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5938','compound_crs','EPSG','8759','EPSG','1398','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8760','NAD83 / New Jersey (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3424','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5939','compound_crs','EPSG','8760','EPSG','1399','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8761','NAD83 / New Mexico East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2257','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5940','compound_crs','EPSG','8761','EPSG','2228','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8762','NAD83 / New Mexico Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2258','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5941','compound_crs','EPSG','8762','EPSG','2231','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8763','NAD83 / New Mexico West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2259','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5942','compound_crs','EPSG','8763','EPSG','2232','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8764','NAD83 / New York East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2260','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5943','compound_crs','EPSG','8764','EPSG','2234','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8765','NAD83 / New York Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2261','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5944','compound_crs','EPSG','8765','EPSG','2233','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8766','NAD83 / New York West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2262','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5945','compound_crs','EPSG','8766','EPSG','2236','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8767','NAD83 / New York Long Island (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2263','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5946','compound_crs','EPSG','8767','EPSG','2235','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8768','NAD83 / North Carolina (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2264','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5947','compound_crs','EPSG','8768','EPSG','1402','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8769','NAD83 / Ohio North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3734','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5948','compound_crs','EPSG','8769','EPSG','2239','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8770','NAD83 / Ohio South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3735','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5949','compound_crs','EPSG','8770','EPSG','2240','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8771','NAD83 / Oklahoma North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2267','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5950','compound_crs','EPSG','8771','EPSG','2241','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8772','NAD83 / Oklahoma South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2268','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5951','compound_crs','EPSG','8772','EPSG','2242','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8773','NAD83 / Pennsylvania North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2271','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5952','compound_crs','EPSG','8773','EPSG','2245','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8774','NAD83 / Pennsylvania South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2272','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5953','compound_crs','EPSG','8774','EPSG','2246','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8775','NAD83 / Rhode Island (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3438','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5954','compound_crs','EPSG','8775','EPSG','1408','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8776','NAD83 / South Dakota North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','4457','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5955','compound_crs','EPSG','8776','EPSG','2249','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8777','NAD83 / South Dakota South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3455','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5956','compound_crs','EPSG','8777','EPSG','2250','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8778','NAD83 / Tennessee (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2274','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5957','compound_crs','EPSG','8778','EPSG','1411','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8779','NAD83 / Texas North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2275','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5958','compound_crs','EPSG','8779','EPSG','2253','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8780','NAD83 / Texas North Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2276','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5959','compound_crs','EPSG','8780','EPSG','2254','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8781','NAD83 / Texas Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2277','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5960','compound_crs','EPSG','8781','EPSG','2252','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8782','NAD83 / Texas South Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2278','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5961','compound_crs','EPSG','8782','EPSG','2527','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8783','NAD83 / Texas South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2279','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5962','compound_crs','EPSG','8783','EPSG','2528','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8784','NAD83 / Utah North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3560','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5963','compound_crs','EPSG','8784','EPSG','2258','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8785','NAD83 / Utah Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3566','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5964','compound_crs','EPSG','8785','EPSG','2257','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8786','NAD83 / Utah South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3567','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5965','compound_crs','EPSG','8786','EPSG','2259','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8787','NAD83 / Vermont (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','5646','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5966','compound_crs','EPSG','8787','EPSG','1414','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8788','NAD83 / Virginia North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2283','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5967','compound_crs','EPSG','8788','EPSG','2260','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8789','NAD83 / Virginia South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2284','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5968','compound_crs','EPSG','8789','EPSG','2261','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8790','NAD83 / Washington North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2285','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5969','compound_crs','EPSG','8790','EPSG','2273','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8791','NAD83 / Washington South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2286','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5970','compound_crs','EPSG','8791','EPSG','2274','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8792','NAD83 / West Virginia North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26853','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5971','compound_crs','EPSG','8792','EPSG','2264','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8793','NAD83 / West Virginia South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','26854','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5972','compound_crs','EPSG','8793','EPSG','2265','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8794','NAD83 / Wisconsin North (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2287','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5973','compound_crs','EPSG','8794','EPSG','2267','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8795','NAD83 / Wisconsin Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2288','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5974','compound_crs','EPSG','8795','EPSG','2266','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8796','NAD83 / Wisconsin South (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','2289','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5975','compound_crs','EPSG','8796','EPSG','2268','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8797','NAD83 / Wyoming East (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3736','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5976','compound_crs','EPSG','8797','EPSG','2269','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8798','NAD83 / Wyoming East Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3737','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5977','compound_crs','EPSG','8798','EPSG','2270','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8799','NAD83 / Wyoming West Central (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3738','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5978','compound_crs','EPSG','8799','EPSG','2272','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8800','NAD83 / Wyoming West (ftUS) + NAVD88 height (ftUS)',NULL,'EPSG','3739','EPSG','6360',0);
INSERT INTO "usage" VALUES('EPSG','5979','compound_crs','EPSG','8800','EPSG','2271','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8801','NAD83 / Alabama East + NAVD88 height',NULL,'EPSG','26929','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5980','compound_crs','EPSG','8801','EPSG','2154','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8802','NAD83 / Alabama West + NAVD88 height',NULL,'EPSG','26930','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5981','compound_crs','EPSG','8802','EPSG','2155','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8803','NAD83 / Alaska zone 1 + NAVD88 height',NULL,'EPSG','26931','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5982','compound_crs','EPSG','8803','EPSG','2156','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8804','NAD83 / Alaska zone 2 + NAVD88 height',NULL,'EPSG','26932','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5983','compound_crs','EPSG','8804','EPSG','2158','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8805','NAD83 / Alaska zone 3 + NAVD88 height',NULL,'EPSG','26933','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5984','compound_crs','EPSG','8805','EPSG','2159','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8806','NAD83 / Alaska zone 4 + NAVD88 height',NULL,'EPSG','26934','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5985','compound_crs','EPSG','8806','EPSG','2160','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8807','NAD83 / Alaska zone 5 + NAVD88 height',NULL,'EPSG','26935','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5986','compound_crs','EPSG','8807','EPSG','2161','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8808','NAD83 / Alaska zone 6 + NAVD88 height',NULL,'EPSG','26936','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5987','compound_crs','EPSG','8808','EPSG','2162','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8809','NAD83 / Alaska zone 7 + NAVD88 height',NULL,'EPSG','26937','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5988','compound_crs','EPSG','8809','EPSG','2163','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8810','NAD83 / Alaska zone 8 + NAVD88 height',NULL,'EPSG','26938','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5989','compound_crs','EPSG','8810','EPSG','2164','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8811','NAD83 / Alaska zone 9 + NAVD88 height',NULL,'EPSG','26939','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5990','compound_crs','EPSG','8811','EPSG','2165','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8812','NAD83 / Alaska zone 10 + NAVD88 height',NULL,'EPSG','26940','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5991','compound_crs','EPSG','8812','EPSG','2157','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8813','NAD83 / Missouri East + NAVD88 height',NULL,'EPSG','26996','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5992','compound_crs','EPSG','8813','EPSG','2219','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8814','NAD83 / Missouri Central + NAVD88 height',NULL,'EPSG','26997','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5993','compound_crs','EPSG','8814','EPSG','2218','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8815','NAD83 / Missouri West + NAVD88 height',NULL,'EPSG','26998','EPSG','5703',0);
INSERT INTO "usage" VALUES('EPSG','5994','compound_crs','EPSG','8815','EPSG','2220','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','8912','CR-SIRGAS / CRTM05 + DACR52 height',NULL,'EPSG','8908','EPSG','8911',0);
INSERT INTO "usage" VALUES('EPSG','6028','compound_crs','EPSG','8912','EPSG','3232','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','9286','ETRS89 + NAP height',NULL,'EPSG','4258','EPSG','5709',0);
INSERT INTO "usage" VALUES('EPSG','14121','compound_crs','EPSG','9286','EPSG','1172','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9289','ETRS89 + LAT NL depth',NULL,'EPSG','4258','EPSG','9287',0);
INSERT INTO "usage" VALUES('EPSG','14124','compound_crs','EPSG','9289','EPSG','1630','EPSG','1198');
INSERT INTO "compound_crs" VALUES('EPSG','9290','ETRS89 + MSL NL depth',NULL,'EPSG','4258','EPSG','9288',0);
INSERT INTO "usage" VALUES('EPSG','14125','compound_crs','EPSG','9290','EPSG','1630','EPSG','1265');
INSERT INTO "compound_crs" VALUES('EPSG','9306','HS2 Survey Grid + HS2-VRF height',NULL,'EPSG','9300','EPSG','9303',0);
INSERT INTO "usage" VALUES('EPSG','14050','compound_crs','EPSG','9306','EPSG','4582','EPSG','1260');
INSERT INTO "compound_crs" VALUES('EPSG','9368','TPEN11 Grid + ODN height',NULL,'EPSG','9367','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','13976','compound_crs','EPSG','9368','EPSG','4583','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','9374','MML07 Grid + ODN height',NULL,'EPSG','9373','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','13997','compound_crs','EPSG','9374','EPSG','4588','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','9388','AbInvA96_2020 Grid + ODN height',NULL,'EPSG','9387','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','14030','compound_crs','EPSG','9388','EPSG','4589','EPSG','1196');
INSERT INTO "compound_crs" VALUES('EPSG','9422','ETRS89 + EVRF2019 height',NULL,'EPSG','4258','EPSG','9389',0);
INSERT INTO "usage" VALUES('EPSG','14082','compound_crs','EPSG','9422','EPSG','4609','EPSG','1261');
INSERT INTO "compound_crs" VALUES('EPSG','9423','ETRS89 + EVRF2019 mean-tide height',NULL,'EPSG','4258','EPSG','9390',0);
INSERT INTO "usage" VALUES('EPSG','14083','compound_crs','EPSG','9423','EPSG','4609','EPSG','1262');
INSERT INTO "compound_crs" VALUES('EPSG','9424','ETRS89 + ODN height',NULL,'EPSG','4258','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','14052','compound_crs','EPSG','9424','EPSG','2792','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9425','ETRS89 + ODN (Offshore) height',NULL,'EPSG','4258','EPSG','7707',0);
INSERT INTO "usage" VALUES('EPSG','14053','compound_crs','EPSG','9425','EPSG','4391','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9426','ETRS89 + ODN Orkney height',NULL,'EPSG','4258','EPSG','5740',0);
INSERT INTO "usage" VALUES('EPSG','14054','compound_crs','EPSG','9426','EPSG','2793','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9427','ETRS89 + Lerwick height',NULL,'EPSG','4258','EPSG','5742',0);
INSERT INTO "usage" VALUES('EPSG','14055','compound_crs','EPSG','9427','EPSG','2795','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9428','ETRS89 + Stornoway height',NULL,'EPSG','4258','EPSG','5746',0);
INSERT INTO "usage" VALUES('EPSG','14056','compound_crs','EPSG','9428','EPSG','2799','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9429','ETRS89 + Douglas height',NULL,'EPSG','4258','EPSG','5750',0);
INSERT INTO "usage" VALUES('EPSG','14057','compound_crs','EPSG','9429','EPSG','2803','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9430','ETRS89 + St. Marys height',NULL,'EPSG','4258','EPSG','5749',0);
INSERT INTO "usage" VALUES('EPSG','14058','compound_crs','EPSG','9430','EPSG','2802','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9449','ETRS89 + Malin Head height',NULL,'EPSG','4258','EPSG','5731',0);
INSERT INTO "usage" VALUES('EPSG','14084','compound_crs','EPSG','9449','EPSG','1305','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9450','ETRS89 + Belfast height',NULL,'EPSG','4258','EPSG','5732',0);
INSERT INTO "usage" VALUES('EPSG','14085','compound_crs','EPSG','9450','EPSG','2530','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9452','ETRS89 + BI height',NULL,'EPSG','4258','EPSG','9451',0);
INSERT INTO "usage" VALUES('EPSG','14088','compound_crs','EPSG','9452','EPSG','4606','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9457','GBK19 Grid + ODN height',NULL,'EPSG','9456','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','14132','compound_crs','EPSG','9457','EPSG','4607','EPSG','1141');
INSERT INTO "compound_crs" VALUES('EPSG','9462','GDA2020 + AVWS height',NULL,'EPSG','7844','EPSG','9458',0);
INSERT INTO "usage" VALUES('EPSG','14142','compound_crs','EPSG','9462','EPSG','4177','EPSG','1267');
INSERT INTO "compound_crs" VALUES('EPSG','9463','GDA2020 + AHD height',NULL,'EPSG','7844','EPSG','5711',0);
INSERT INTO "usage" VALUES('EPSG','14143','compound_crs','EPSG','9463','EPSG','4493','EPSG','1263');
INSERT INTO "compound_crs" VALUES('EPSG','9464','GDA94 + AHD height',NULL,'EPSG','4283','EPSG','5711',0);
INSERT INTO "usage" VALUES('EPSG','14144','compound_crs','EPSG','9464','EPSG','4493','EPSG','1263');
INSERT INTO "compound_crs" VALUES('EPSG','9500','ETRS89 + EVRF2000 Austria height',NULL,'EPSG','4258','EPSG','9274',0);
INSERT INTO "usage" VALUES('EPSG','14431','compound_crs','EPSG','9500','EPSG','1037','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9501','MGI + EVRF2000 Austria height',NULL,'EPSG','4312','EPSG','9274',0);
INSERT INTO "usage" VALUES('EPSG','14432','compound_crs','EPSG','9501','EPSG','1037','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9502','CIGD11 + CBVD61 height (ft)',NULL,'EPSG','6135','EPSG','6132',0);
INSERT INTO "usage" VALUES('EPSG','14265','compound_crs','EPSG','9502','EPSG','3207','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9503','CIGD11 + GCVD54 height (ft)',NULL,'EPSG','6135','EPSG','6130',0);
INSERT INTO "usage" VALUES('EPSG','14435','compound_crs','EPSG','9503','EPSG','3185','EPSG','1270');
INSERT INTO "compound_crs" VALUES('EPSG','9504','CIGD11 + LCVD61 height (ft)',NULL,'EPSG','6135','EPSG','6131',0);
INSERT INTO "usage" VALUES('EPSG','14267','compound_crs','EPSG','9504','EPSG','4121','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9505','ETRS89 + Alicante height',NULL,'EPSG','4258','EPSG','5782',0);
INSERT INTO "usage" VALUES('EPSG','14270','compound_crs','EPSG','9505','EPSG','4188','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9506','ETRS89 + Ceuta 2 height',NULL,'EPSG','4258','EPSG','9402',0);
INSERT INTO "usage" VALUES('EPSG','14273','compound_crs','EPSG','9506','EPSG','4590','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9507','ETRS89 + Ibiza height',NULL,'EPSG','4258','EPSG','9394',0);
INSERT INTO "usage" VALUES('EPSG','14276','compound_crs','EPSG','9507','EPSG','4604','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9508','ETRS89 + Mallorca height',NULL,'EPSG','4258','EPSG','9392',0);
INSERT INTO "usage" VALUES('EPSG','14440','compound_crs','EPSG','9508','EPSG','4602','EPSG','1270');
INSERT INTO "compound_crs" VALUES('EPSG','9509','ETRS89 + Menorca height',NULL,'EPSG','4258','EPSG','9393',0);
INSERT INTO "usage" VALUES('EPSG','14283','compound_crs','EPSG','9509','EPSG','4603','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9510','REGCAN95 + El Hierro height',NULL,'EPSG','4081','EPSG','9401',0);
INSERT INTO "usage" VALUES('EPSG','14286','compound_crs','EPSG','9510','EPSG','4597','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9511','REGCAN95 + Fuerteventura height',NULL,'EPSG','4081','EPSG','9396',0);
INSERT INTO "usage" VALUES('EPSG','14929','compound_crs','EPSG','9511','EPSG','4592','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9512','REGCAN95 + Gran Canaria height',NULL,'EPSG','4081','EPSG','9397',0);
INSERT INTO "usage" VALUES('EPSG','14930','compound_crs','EPSG','9512','EPSG','4593','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9513','REGCAN95 + La Gomera height',NULL,'EPSG','4081','EPSG','9399',0);
INSERT INTO "usage" VALUES('EPSG','14931','compound_crs','EPSG','9513','EPSG','4595','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9514','REGCAN95 + La Palma height',NULL,'EPSG','4081','EPSG','9400',0);
INSERT INTO "usage" VALUES('EPSG','14302','compound_crs','EPSG','9514','EPSG','4596','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9515','REGCAN95 + Lanzarote height',NULL,'EPSG','4081','EPSG','9395',0);
INSERT INTO "usage" VALUES('EPSG','14305','compound_crs','EPSG','9515','EPSG','4591','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9516','REGCAN95 + Tenerife height',NULL,'EPSG','4081','EPSG','9398',0);
INSERT INTO "usage" VALUES('EPSG','14308','compound_crs','EPSG','9516','EPSG','4594','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9517','SHGD2015 + SHVD2015 height',NULL,'EPSG','7886','EPSG','7890',0);
INSERT INTO "usage" VALUES('EPSG','14319','compound_crs','EPSG','9517','EPSG','3183','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9518','WGS 84 + EGM2008 height',NULL,'EPSG','4326','EPSG','3855',0);
INSERT INTO "usage" VALUES('EPSG','14320','compound_crs','EPSG','9518','EPSG','1262','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9519','FEH2010 + FCSVR10 height',NULL,'EPSG','5593','EPSG','5597',0);
INSERT INTO "usage" VALUES('EPSG','14325','compound_crs','EPSG','9519','EPSG','3890','EPSG','1139');
INSERT INTO "compound_crs" VALUES('EPSG','9520','KSA-GRF17 + KSA-VRF14 height',NULL,'EPSG','9333','EPSG','9335',0);
INSERT INTO "usage" VALUES('EPSG','14336','compound_crs','EPSG','9520','EPSG','3303','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9521','POSGAR 2007 + SRVN16 height',NULL,'EPSG','5340','EPSG','9255',0);
INSERT INTO "usage" VALUES('EPSG','14340','compound_crs','EPSG','9521','EPSG','4573','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9522','NAD83(2011) + PRVD02 height',NULL,'EPSG','6318','EPSG','6641',0);
INSERT INTO "usage" VALUES('EPSG','14357','compound_crs','EPSG','9522','EPSG','3294','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9523','NAD83(2011) + VIVD09 height',NULL,'EPSG','6318','EPSG','6642',0);
INSERT INTO "usage" VALUES('EPSG','14356','compound_crs','EPSG','9523','EPSG','3330','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9524','NAD83(MA11) + GUVD04 height',NULL,'EPSG','6325','EPSG','6644',0);
INSERT INTO "usage" VALUES('EPSG','14364','compound_crs','EPSG','9524','EPSG','3255','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9525','NAD83(MA11) + NMVD03 height',NULL,'EPSG','6325','EPSG','6640',0);
INSERT INTO "usage" VALUES('EPSG','14367','compound_crs','EPSG','9525','EPSG','4521','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9526','NAD83(PA11) + ASVD02 height',NULL,'EPSG','6322','EPSG','6643',0);
INSERT INTO "usage" VALUES('EPSG','14462','compound_crs','EPSG','9526','EPSG','2288','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9527','NZGD2000 + NZVD2009 height',NULL,'EPSG','4167','EPSG','4440',0);
INSERT INTO "usage" VALUES('EPSG','14377','compound_crs','EPSG','9527','EPSG','1175','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9528','NZGD2000 + NZVD2016 height',NULL,'EPSG','4167','EPSG','7839',0);
INSERT INTO "usage" VALUES('EPSG','14380','compound_crs','EPSG','9528','EPSG','1175','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9529','SRGI2013 + INAGeoid2020 height',NULL,'EPSG','9470','EPSG','9471',0);
INSERT INTO "usage" VALUES('EPSG','14383','compound_crs','EPSG','9529','EPSG','1122','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9530','RGFG95 + NGG1977 height',NULL,'EPSG','4624','EPSG','5755',0);
INSERT INTO "usage" VALUES('EPSG','14420','compound_crs','EPSG','9530','EPSG','3146','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9531','RGAF09 + Guadeloupe 1988 height',NULL,'EPSG','5489','EPSG','5757',0);
INSERT INTO "usage" VALUES('EPSG','14936','compound_crs','EPSG','9531','EPSG','2892','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9532','RGAF09 + IGN 1988 LS height',NULL,'EPSG','5489','EPSG','5616',0);
INSERT INTO "usage" VALUES('EPSG','14471','compound_crs','EPSG','9532','EPSG','2895','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9533','RGAF09 + IGN 1988 MG height',NULL,'EPSG','5489','EPSG','5617',0);
INSERT INTO "usage" VALUES('EPSG','14473','compound_crs','EPSG','9533','EPSG','2894','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9534','RGAF09 + IGN 1988 SB height',NULL,'EPSG','5489','EPSG','5619',0);
INSERT INTO "usage" VALUES('EPSG','14478','compound_crs','EPSG','9534','EPSG','2891','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9535','RGAF09 + IGN 1988 SM height',NULL,'EPSG','5489','EPSG','5620',0);
INSERT INTO "usage" VALUES('EPSG','14481','compound_crs','EPSG','9535','EPSG','2890','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9536','RGAF09 + IGN 2008 LD height',NULL,'EPSG','5489','EPSG','9130',0);
INSERT INTO "usage" VALUES('EPSG','14484','compound_crs','EPSG','9536','EPSG','2893','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9537','RGAF09 + Martinique 1987 height',NULL,'EPSG','5489','EPSG','5756',0);
INSERT INTO "usage" VALUES('EPSG','14486','compound_crs','EPSG','9537','EPSG','3276','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9538','RGF93 + NGF-IGN69 height',NULL,'EPSG','4171','EPSG','5720',0);
INSERT INTO "usage" VALUES('EPSG','14489','compound_crs','EPSG','9538','EPSG','1326','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9539','RGF93 + NGF-IGN78 height',NULL,'EPSG','4171','EPSG','5721',0);
INSERT INTO "usage" VALUES('EPSG','14490','compound_crs','EPSG','9539','EPSG','1327','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9540','RGNC91-93 + NGNC08 height',NULL,'EPSG','4749','EPSG','9351',0);
INSERT INTO "usage" VALUES('EPSG','14495','compound_crs','EPSG','9540','EPSG','3430','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9541','RGSPM06 + Danger 1950 height',NULL,'EPSG','4463','EPSG','5792',0);
INSERT INTO "usage" VALUES('EPSG','14498','compound_crs','EPSG','9541','EPSG','3299','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9542','RRAF 1991 + IGN 2008 LD height',NULL,'EPSG','4558','EPSG','9130',0);
INSERT INTO "usage" VALUES('EPSG','14501','compound_crs','EPSG','9542','EPSG','2893','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9543','ITRF2005 + SA LLD height',NULL,'EPSG','8998','EPSG','9279',0);
INSERT INTO "usage" VALUES('EPSG','14522','compound_crs','EPSG','9543','EPSG','3309','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9544','NAD83(CSRS)v6 + CGVD2013(CGG2013a) height',NULL,'EPSG','8252','EPSG','9245',0);
INSERT INTO "usage" VALUES('EPSG','14525','compound_crs','EPSG','9544','EPSG','1061','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9656','ETRF2000-PL + Baltic 1986 height',NULL,'EPSG','9702','EPSG','9650',0);
INSERT INTO "usage" VALUES('EPSG','15108','compound_crs','EPSG','9656','EPSG','3293','EPSG','1270');
INSERT INTO "compound_crs" VALUES('EPSG','9657','ETRF2000-PL + EVRF2007-PL height',NULL,'EPSG','9702','EPSG','9651',0);
INSERT INTO "usage" VALUES('EPSG','15109','compound_crs','EPSG','9657','EPSG','3293','EPSG','1270');
INSERT INTO "compound_crs" VALUES('EPSG','9705','WGS 84 + MSL height',NULL,'EPSG','4326','EPSG','5714',0);
INSERT INTO "usage" VALUES('EPSG','15089','compound_crs','EPSG','9705','EPSG','1262','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9707','WGS 84 + EGM96 height',NULL,'EPSG','4326','EPSG','5773',0);
INSERT INTO "usage" VALUES('EPSG','15091','compound_crs','EPSG','9707','EPSG','1262','EPSG','1026');
INSERT INTO "compound_crs" VALUES('EPSG','9711','NAD83(CSRS) / UTM zone 23N + CGVD2013 height',NULL,'EPSG','9709','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','15205','compound_crs','EPSG','9711','EPSG','2153','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','9714','NAD83(CSRS) / UTM zone 24N + CGVD2013 height',NULL,'EPSG','9713','EPSG','6647',0);
INSERT INTO "usage" VALUES('EPSG','15197','compound_crs','EPSG','9714','EPSG','4617','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','9715','NAD83(CSRS) / UTM zone 15N + CGVD2013a height',NULL,'EPSG','3159','EPSG','9245',0);
INSERT INTO "usage" VALUES('EPSG','15200','compound_crs','EPSG','9715','EPSG','3414','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','9723','ETRS89 + Genoa 1942 height',NULL,'EPSG','4258','EPSG','5214',0);
INSERT INTO "usage" VALUES('EPSG','15255','compound_crs','EPSG','9723','EPSG','3736','EPSG','1270');
INSERT INTO "compound_crs" VALUES('EPSG','9724','ETRS89 + Catania 1965 height',NULL,'EPSG','4258','EPSG','9721',0);
INSERT INTO "usage" VALUES('EPSG','15324','compound_crs','EPSG','9724','EPSG','2340','EPSG','1270');
INSERT INTO "compound_crs" VALUES('EPSG','9725','ETRS89 + Cagliari 1956 height',NULL,'EPSG','4258','EPSG','9722',0);
INSERT INTO "usage" VALUES('EPSG','15257','compound_crs','EPSG','9725','EPSG','2339','EPSG','1270');
INSERT INTO "compound_crs" VALUES('EPSG','9742','EOS21 Grid + ODN height',NULL,'EPSG','9741','EPSG','5701',0);
INSERT INTO "usage" VALUES('EPSG','15318','compound_crs','EPSG','9742','EPSG','4620','EPSG','1141');
+437 -212
View File
@@ -1,214 +1,439 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "concatenated_operation" VALUES('EPSG','3896','MGI (Ferro) to WGS 84 (2)','','2m accuracy','EPSG','4805','EPSG','4326','EPSG','1037',NULL,'BEV-Aut',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','3966','MGI (Ferro) to WGS 84 (1)','Accuracy estimate is not available.','For military purposes only.','EPSG','4805','EPSG','4326','EPSG','2370',NULL,'DMA-balk',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','4435','Puerto Rico to NAD83(HARN) (1)','May be taken as approximate transformation Puerto Rico to WGS 84 - see code 8583.','Accuracy 0.1m at 67% confidence level.','EPSG','4139','EPSG','4152','EPSG','3634',NULL,'NGS-PRVI',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','4837','Amersfoort to ED50 (1)','Adopted by NAM in 2006, replacing polynomial tfms 1046, 6304, 1050 and 6306.','Oil and gas exploration and production.','EPSG','4289','EPSG','4230','EPSG','1275',NULL,'NAM-Nld 2006',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','5190','Tokyo 1892 to Korea 2000 (1)','','Accuracy 10m.','EPSG','5132','EPSG','4737','EPSG','3266',NULL,'OGP-Kor',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','5192','Tokyo 1892 to WGS 84 (1)','','Accuracy 10m.','EPSG','5132','EPSG','4326','EPSG','3266',NULL,'OGP-Kor',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','5230','S-JTSK (Ferro) to WGS 84 (2)','','For applications to an accuracy of 1 metre.','EPSG','4818','EPSG','4326','EPSG','1211',NULL,'OGP-Svk',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','5240','S-JTSK/05 (Ferro) to WGS 84 (1)','Replaces S-JTSK (Ferro) to WGS 84 (1) (CRS code 8642) in Czech Republic.','For applications to an accuracy of 1 metre.','EPSG','5229','EPSG','4326','EPSG','1079',NULL,'OGP-Cze',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','5242','S-JTSK (Ferro) to WGS 84 (3)','Replaces S-JTSK (Ferro) to WGS 84 (1) (tfm code 8642).','Parameter values from S-JTSK/05 to ETRS89 (1) (code 5226). For applications to an accuracy of 1m.','EPSG','4818','EPSG','4326','EPSG','1079',NULL,'OGP-Cze R05',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','5838','Lisbon (Lisbon) to WGS 84 (2)','','For applications to an accuracy of 2 metres.','EPSG','4803','EPSG','4326','EPSG','1294',NULL,'OGP-Prt 2009',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','6714','Tokyo to JGD2011 (1)','See Tokyo to JGD2011 (2) (code 6740) for areas other than northern Honshu.','Surveying, mapping and civil engineering.','EPSG','4301','EPSG','6668','EPSG','4170',NULL,'OGP-Jpn N Honshu',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','6739','NAD27 to NAD83(HARN) (22)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8622.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1410',NULL,'NGS-Usa SD',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','6874','Tananarive (Paris) to WGS 84 (2)','Used by OMV.','For applications with an accuracy of 3m.','EPSG','4810','EPSG','4326','EPSG','3273',NULL,'OGP-Mdg',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7811','NTF (Paris) to RGF93 (2)','Second step is an emulation (using the NTv2 method) of the geocentric Interpolation method described in tfm code 9337. Note that the grid file parameters are of opposite sign.','Approximation to better than 1m of transformation of coordinates referenced to NTF (Paris) to RGF93.','EPSG','4807','EPSG','4171','EPSG','3694',NULL,'IOGP-Fra NTv2',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7965','Poolbeg height (ft(Br36)) to Malin Head height (1)','','Change of height to a different vertical reference surface for topographic mapping. Accuracy 0.1m.','EPSG','5754','EPSG','5731','EPSG','1305',NULL,'1',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7967','Poolbeg height (ft(Br36)) to Belfast height (1)','','Change of height to a different vertical reference surface for topographic mapping and engineering survey. Accuracy 0.1m.','EPSG','5754','EPSG','5732','EPSG','1305',NULL,'1',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7973','NGVD29 height (ftUS) to NAVD88 height (1)','','Change of height to a different vertical reference surface and unit. Accuracy 2cm.','EPSG','5702','EPSG','5703','EPSG','2950',NULL,'IOGP - US Conus W',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7974','NGVD29 height (ftUS) to NAVD88 height (2)','','Change of height to a different vertical reference surface and unit, accuracy 2cm.','EPSG','5702','EPSG','5703','EPSG','2949',NULL,'IOGP - US Conus C',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7975','NGVD29 height (ftUS) to NAVD88 height (3)','','Change of height to a different vertical reference surface and unit, accuracy 2cm.','EPSG','5702','EPSG','5703','EPSG','2948',NULL,'IOGP - US Conus E',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7983','HKPD height to HKCD depth (1)','','Hydrographic charting.','EPSG','5738','EPSG','5739','EPSG','3335',NULL,'IOGP-HK',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7986','KOC CD height to KOC WD depth (1)','','Vertical offset including change of axis positive direction.','EPSG','5790','EPSG','5789','EPSG','3267',NULL,'IOGP-Kwt',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7987','KOC CD height to KOC WD depth (ft) (1)','','Vertical offset including change of axis positive direction and change of axis unit.','EPSG','5790','EPSG','5614','EPSG','3267',NULL,'IOGP-Kwt',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8047','ED50 to WGS 84 (15)','Replaced by codes 8569 and 1612 in 1997 and 2001.¶The concatenation of transformations 1147 and 1146 gives the following position vector tfm: dX=-84.491 dY=-100.559 dZ=-114.209 metres rX= -2.4006 rY=-0.5367 rZ=-2.3742 microradians dS=+0.2947 ppm.','Oil exploration before 2001.','EPSG','4230','EPSG','4326','EPSG','2332',NULL,'NMA-Nor N65 1991',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8094','NTF (Paris) to WGS 84 (1)','','Not known.','EPSG','4807','EPSG','4326','EPSG','3694',NULL,'EPSG-Fra',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8174','Bogota 1975 (Bogota) to WGS 84 (1)','','For military purposes. Accuracy 6m, 5m and 6m in X, Y and Z axes.','EPSG','4802','EPSG','4326','EPSG','3229',NULL,'DMA-Col',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8175','Monte Mario (Rome) to WGS 84 (1)','','For military purposes. Accuracy 25m in each axis.','EPSG','4806','EPSG','4326','EPSG','2339',NULL,'EPSG-Ita',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8176','Tananarive (Paris) to WGS 84 (1)','','For military purposes. Accuracy not available.','EPSG','4810','EPSG','4326','EPSG','3273',NULL,'EPSG-Mdg',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8178','Batavia (Jakarta) to WGS 84 (1)','','For military purposes. Accuracy 3m in each axis.','EPSG','4813','EPSG','4326','EPSG','1285',NULL,'EPSG-Idn Sumatra',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8183','HD72 to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','EPSG','4237','EPSG','4326','EPSG','1119',NULL,'EPSG-Hun',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8186','NTF (Paris) to ED50 (1)','','Not known.','EPSG','4807','EPSG','4230','EPSG','3694',NULL,'EPSG-Fra',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8188','NTF (Paris) to WGS 72 (1)','','Not known.','EPSG','4807','EPSG','4322','EPSG','3694',NULL,'EPSG-Fra',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8190','AGD66 to WGS 84 (2)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. 0.1m accuracy.','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','2575',NULL,'EPSG-Aus 5m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8192','AGD84 to WGS 84 (3)','Approximation assuming that GDA94 is equivalent to WGS 84.','5m accuracy. Approximation assuming that GDA94 is equivalent to WGS 84.','EPSG','4203','EPSG','4326','EPSG','2575',NULL,'EPSG-Aus 5m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8194','AGD84 to WGS 84 (4)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4203','EPSG','4326','EPSG','2575',NULL,'EPSG-Aus 1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8195','RT90 to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','EPSG','4124','EPSG','4326','EPSG','1225',NULL,'EPSG-Swe',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8199','Pulkovo 1942 to WGS 84 (2)','Approximation at the +/- 1m level assuming that LKS94(ETRS89) is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that LKS94(ETRS89) is equivalent to WGS 84.','EPSG','4284','EPSG','4326','EPSG','1145',NULL,'EPSG-Ltu',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8211','Voirol 1875 (Paris) to WGS 84 (1)','','Oil exploration.','EPSG','4811','EPSG','4326','EPSG','1365',NULL,'EPSG-Dza N',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8215','Tete to WGS 84 (1)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326','EPSG','1167',NULL,'EPSG-Moz',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8217','Tete to WGS 84 (2)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326','EPSG','2350',NULL,'EPSG-Moz A',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8219','Tete to WGS 84 (3)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326','EPSG','2351',NULL,'EPSG-Moz B',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8221','Tete to WGS 84 (4)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326','EPSG','2352',NULL,'EPSG-Moz C',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8223','Tete to WGS 84 (5)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326','EPSG','2353',NULL,'EPSG-Moz D',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8234','DHDN to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','EPSG','4314','EPSG','4326','EPSG','2326',NULL,'EPSG-Deu W',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8236','Pulkovo 1942 to WGS 84 (11)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','EPSG','4284','EPSG','4326','EPSG','1343',NULL,'EPSG-Deu E',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8243','NAD27 to WGS 84 (25)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84. Superseded by NAD27 to WGS 84 (27) (code 8404) in Quebec and NAD27 to WGS 84 (26) (code 8245) elsewhere in Canada.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4267','EPSG','4326','EPSG','1061',NULL,'EPSG-Can old',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8245','NAD27 to WGS 84 (26)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4267','EPSG','4326','EPSG','1061',NULL,'EPSG-Can',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8263','MGI (Ferro) to WGS 84 (1)','Accuracy estimate is not available.','For military purposes only.','EPSG','4805','EPSG','4326','EPSG','2370',NULL,'DMA-balk',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8363','ETRS89 + Baltic 1957 height to ETRS89 + EVRF2007 height (1)','Compound transformation using two separate quasigeoid models (DVRM05 and DMQSK2014E).','Recommended method for transforming coordinates between Baltic 1957 height and EVRF2007 height and vice-versa in Slovakia.','EPSG','8360','EPSG','7423','EPSG','1211',NULL,'UGKK-Svk',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8386','Old Hawaiian to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4135','EPSG','4326','EPSG','1334',NULL,'EPSG-Usa Hi',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8388','St. Lawrence Island to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4136','EPSG','4326','EPSG','1332',NULL,'EPSG-Usa AK StL',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8390','St. Paul Island to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4137','EPSG','4326','EPSG','1333',NULL,'EPSG-Usa AK StP',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8392','St. George Island to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4138','EPSG','4326','EPSG','1331',NULL,'EPSG-Usa AK StG',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8394','NAD27(CGQ77) to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84. Superseded by NAD27(CGQ77) to WGS 84 (2) (code 8564).','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4609','EPSG','4326','EPSG','1368',NULL,'EPSG-Can Qc NT1',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8396','AGD66 to WGS 84 (3)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD66 to WGS 84 (11) (code 8581).','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','2283',NULL,'EPSG-Aus ACT 1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8398','AGD66 to WGS 84 (4)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD66 to WGS 84 (9) (code 8576).','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','1282',NULL,'EPSG-Aus Tas 1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8400','AGD66 to WGS 84 (5)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','2286',NULL,'EPSG-Aus NSW Vic 1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8402','Puerto Rico to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4139','EPSG','4326','EPSG','1335',NULL,'EPSG-PRVI',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8404','NAD27 to WGS 84 (27)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84. Superseded by NAD27 to WGS 84 (31) (code 8565).','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4267','EPSG','4326','EPSG','1368',NULL,'EPSG-Can QC',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8406','NAD27(76) to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4608','EPSG','4326','EPSG','1367',NULL,'EPSG-Can On',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8408','AGD66 to WGS 84 (6)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD66 to WGS 84 (11) (code 8578).','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','2285',NULL,'EPSG-Aus Vic 0.1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8418','ATS77 to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4122','EPSG','4326','EPSG','1447',NULL,'EPSG-Can NB',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8419','ATS77 to WGS 84 (2)','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4122','EPSG','4326','EPSG','1533',NULL,'EPSG-Can PEI',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8420','NAD27 to WGS 84 (32)','','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4267','EPSG','4326','EPSG','2375',NULL,'SK PMC-Can SK',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8421','NAD83 to WGS 84 (7)','','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4269','EPSG','4326','EPSG','2375',NULL,'SK PMC-Can SK',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8422','NAD83 to WGS 84 (8)','The gridded difference file AB_CSRS.DAC in STEP 1 will need to be renamed to AB_CSRS.gsb to run in some software suites. Formats identical, but AB file is provincial fit only.','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4269','EPSG','4326','EPSG','2376',NULL,'Alb Env-Can AB',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8442','ETRS89 to S-JTSK (5)','Recommended method of a transformation from ETRS89 to S-JTSK in Slovakia. For reverse transformation see S-JTSK to ETRS89 (6) (code 8443). Both together replace S-JTSK to ETRS89 (4) (code 4827).','GIS, geodetic survey.','EPSG','4258','EPSG','4156','EPSG','1211',NULL,'UGKK-Sk JTSK03',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8443','S-JTSK to ETRS89 (6)','Recommended method of a transformation from S-JTSK to ETRS89 in Slovakia. For reverse transformation see ETRS89 to S-JTSK (5) (code 8442). Both together replace S-JTSK to ETRS89 (4) (code 4827).','GIS, geodetic survey.','EPSG','4156','EPSG','4258','EPSG','1211',NULL,'UGKK-Sk JTSK03',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8453','AGD66 to WGS 84 (7)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','1282',NULL,'EPSG-Aus Tas 0.1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8454','AGD66 to WGS 84 (8)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','2284',NULL,'EPSG-Aus NT 0.1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8457','CH1903+ to WGS 84 (1)','Approximation at the +/- 1m level assuming that CHTRF95 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that CHTRF95 is equivalent to WGS 84.','EPSG','4150','EPSG','4326','EPSG','1286',NULL,'EPSG-CH',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8460','NAD27 to NAD83(HARN) (1)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8590.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','1372',NULL,'NGS-Usa AL',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8461','NAD27 to NAD83(HARN) (2)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8591.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1373',NULL,'NGS-Usa AZ',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8462','NAD27 to NAD83(HARN) (3)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8593.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','2297',NULL,'NGS-Usa CA n',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8463','NAD27 to NAD83(HARN) (4)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8594.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','2298',NULL,'NGS-Usa CA s',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8464','NAD27 to NAD83(HARN) (5)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8595.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1376',NULL,'NGS-Usa CO',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8465','NAD27 to NAD83(HARN) (6)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8597.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1380',NULL,'NGS-Usa GA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8466','NAD27 to NAD83(HARN) (7)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8596.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','1379',NULL,'NGS-Usa FL',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8467','NAD27 to NAD83(HARN) (8)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8611.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','2382',NULL,'NGS-Usa ID MT e',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8468','NAD27 to NAD83(HARN) (9)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8612.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','2383',NULL,'NGS-Usa ID MT w',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8469','NAD27 to NAD83(HARN) (10)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8602.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1386',NULL,'NGS-Usa KY',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8470','NAD27 to NAD83(HARN) (11)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8603.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','1387',NULL,'NGS-Usa LA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8471','NAD27 to NAD83(HARN) (12)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8605.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','2377',NULL,'NGS-Usa DE MD',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8472','NAD27 to NAD83(HARN) (13)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8604.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','1388',NULL,'NGS-Usa ME',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8473','NAD27 to NAD83(HARN) (14)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8607.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1391',NULL,'NGS-Usa MI',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8474','NAD27 to NAD83(HARN) (15)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8609.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','1393',NULL,'NGS-Usa MS',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8475','NAD27 to NAD83(HARN) (16)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8613.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1396',NULL,'NGS-Usa NE',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8476','NAD27 to NAD83(HARN) (17)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8606.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','2378',NULL,'NGS-Usa NewEng',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8477','NAD27 to NAD83(HARN) (18)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8616.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1400',NULL,'NGS-Usa NM',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8478','NAD27 to NAD83(HARN) (19)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8617.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','1401',NULL,'NGS-Usa NY',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8479','NAD27 to NAD83(HARN) (20)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8618.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1403',NULL,'NGS-Usa ND',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8480','NAD27 to NAD83(HARN) (21)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8620.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1405',NULL,'NGS-Usa OK',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8481','Puerto Rico to NAD83(HARN) (1)','May be taken as approximate transformation Puerto Rico to WGS 84 - see code 8583.','Accuracy 0.1m at 67% confidence level.','EPSG','4139','EPSG','4152','EPSG','1335',NULL,'NGS-PRVI',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8482','NAD27 to NAD83(HARN) (22)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8622.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1410',NULL,'NGS-Usa SD',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8483','NAD27 to NAD83(HARN) (23)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8623.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1411',NULL,'NGS-Usa TN',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8484','NAD27 to NAD83(HARN) (24)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8624.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','2379',NULL,'NGS-Usa TX e',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8485','NAD27 to NAD83(HARN) (25)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8625.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','2380',NULL,'NGS-Usa TX w',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8486','NAD27 to NAD83(HARN) (26)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8627.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1415',NULL,'NGS-Usa VA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8487','NAD27 to NAD83(HARN) (27)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8621.','Accuracy at 67% confidence level is 0.2m onshore, 5m nearshore and undetermined farther offshore.','EPSG','4267','EPSG','4152','EPSG','2381',NULL,'NGS-Usa OR WA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8488','NAD27 to NAD83(HARN) (28)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8629.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1418',NULL,'NGS-Usa WI',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8489','NAD27 to NAD83(HARN) (29)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8630.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1419',NULL,'NGS-Usa WY',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8496','NAD27 to WGS 84 (28)','','Geodetic survey.','EPSG','4267','EPSG','4326','EPSG','2374',NULL,'NGS-Usa conus',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8497','NAD27 to WGS 84 (29)','','Geodetic survey.','EPSG','4267','EPSG','4326','EPSG','2373',NULL,'NGS-Usa AK',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8508','Old Hawaiian to NAD83(HARN) (1)','Uses NADCON method which expects longitudes positive west; EPSG GeogCRSs Old Hawaiian (code 4135), NAD83 (code 4269) and NAD83(HARN) have longitudes positive east. May be taken as approximate transformation Old Hawaiin to WGS 84 - see code 8582.','Assumes NAD83 is coincident with NAD83(HARN). Accuracy about 1m.','EPSG','4135','EPSG','4152','EPSG','1334',NULL,'NGS-Usa HI',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8509','NAD27 to NAD83(HARN) (30)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8599.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1383',NULL,'NGS-Usa IN',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8510','NAD27 to NAD83(HARN) (31)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8601.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1385',NULL,'NGS-Usa KS',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8511','NAD27 to NAD83(HARN) (32)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8614.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1397',NULL,'NGS-Usa NV',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8512','NAD27 to NAD83(HARN) (33)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8619.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1404',NULL,'NGS-Usa OH',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8513','NAD27 to NAD83(HARN) (34)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8626.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1413',NULL,'NGS-Usa UT',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8514','NAD27 to NAD83(HARN) (35)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8628.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1417',NULL,'NGS-Usa WV',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8517','Chos Malal 1914 to WGS 84 (1)','May be implemented using a single step geocentric translations of dx=+5.5m dY=+176.7m dZ=+141.4m.','Oil exploration','EPSG','4160','EPSG','4326','EPSG','2325',NULL,'TOT-Arg Neu',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8530','South Yemen to WGS 84 (1)','May be implemented as a single transformation using geocentric translations transformation method with parameter values dX=-76m dY=-138m dZ=+67m.','Approximation at the +/- 1m level assuming that NGN96 is equivalent to WGS 84.','EPSG','4164','EPSG','4326','EPSG','1340',NULL,'IGN-Yem South',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8532','Indian 1960 to WGS 84 (1)','May be implemented as a single transformation using position vector 7-parameter geocentric transformation method with parameter values dX=+199m dY=+931m dZ=+318.9m rX=rY=0 sec rZ=+0.814 sec dS=-0.38 ppm.','Oil exploration.','EPSG','4131','EPSG','4326','EPSG','1495',NULL,'PV-Vnm',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8537','Egypt 1907 to WGS 84 (2)','Used by Shell. May be implemented as a single transformation using position vector 7-parameter geocentric transformation method with parameter values dX=-121.8m dY=+98.1m dZ=-10.7m rX=rY=0 sec rZ=+0.554 sec dS=+0.2263 ppm.','Oil exploration.','EPSG','4229','EPSG','4326','EPSG','1086',NULL,'MCE-Egy',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8553','NAD27 to NAD83(HARN) (36)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8598.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1382',NULL,'NGS-Usa IL',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8554','NAD27 to NAD83(HARN) (37)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8615.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1399',NULL,'NGS-Usa NJ',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8560','AGD84 to WGS 84 (5)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD84 to WGS 84 (6) (code 8579).','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4203','EPSG','4326','EPSG','1280',NULL,'EPSG-Aus WA',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8562','Nord Sahara 1959 to WGS 84 (3)','Derived at IGN monument CFP19 using Transit. Can be implemented as a single 7-param Position Vector transformation with parameter values of dX=-156.5m dY=-87.2m dZ=+287.8m; rX=rY=0 rZ=+0.814sec; dS=-0.38ppm.','Oil exploration.','EPSG','4307','EPSG','4326','EPSG','2393',NULL,'CGG-Alg HM',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8563','NZGD49 to WGS 84 (3)','Assumes WGS 84 is coincident with NZGD2000. Accuracy about 1m.','Assumes WGS 84 is coincident with NZGD2000. Accuracy about 1m.','EPSG','4272','EPSG','4326','EPSG','1175',NULL,'OSG-Nzl 1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8564','NAD27(CGQ77) to WGS 84 (2)','','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4609','EPSG','4326','EPSG','1368',NULL,'EPSG-Can Qc NT2',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8565','NAD27 to WGS 84 (31)','','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4267','EPSG','4326','EPSG','1368',NULL,'EPSG-Can Que',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8566','NAD83 to WGS 84 (6)','','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4269','EPSG','4326','EPSG','1368',NULL,'EPSG-Can Qc',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8568','Deir ez Zor to WGS 84 (1)','Can be implemented as a position vector tfm with param. values dX=-174.6 dY=-3.1 dZ=238.1m; rX=rY=0 rZ=0.814"; dS=-0.38 ppm.','Oil exploration','EPSG','4227','EPSG','4326','EPSG','2329',NULL,'EPSG-Syr',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8569','ED50 to WGS 84 (21)','Included in Statens Kartverk programme wsktrans between 1997 (v3.1) and 2001 (v4.0). Replaced by ED50 to WGS 84 (23) (code 1612) in April 2001.','Oil exploration before 1997/2001.','EPSG','4230','EPSG','4326','EPSG','2332',NULL,'EPSG-Nor N65 1997',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8571','Accra to WGS 84 (2)','Can be implemented as a position vector tfm dX=-171.16 dY=17.29 dZ=325.21m, rX=rY=0 rZ=0.814", dS=-0.38 ppm. See tfm code 15495. Found in use within oil industry erroneously concatenated as dX=-171.16 dY=17.29 dZ=327.81m, rX=rY0 rZ=0.554", dS=0.2263 ppm.','Oil industry.','EPSG','4168','EPSG','4326','EPSG','1505',NULL,'EPSG-Gha',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8572','Amersfoort to WGS 84 (2)','Parameter values for step 1 from Amersfoort to ETRS89 (2) (code 1751). Step 2 assumes that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Supersedes Amersfoort to WGS 84 (1) (code 1112).','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','EPSG','4289','EPSG','4326','EPSG','1275',NULL,'EPSG-Nld',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8573','RGF93 to WGS 84 (1)','','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','EPSG','4171','EPSG','4326','EPSG','1096',NULL,'EPSG-Fra',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8574','American Samoa 1962 to WGS 84 (2)','Transformation actually to NAD83(HARN), but for many purposes NAD83(HARNS) can be considered to be coincident with WGS 84.','Transformation actually to NAD83(HARN), but for many purposes NAD83(HARN) can be considered to be coincident with WGS 84.','EPSG','4169','EPSG','4326','EPSG','2288',NULL,'EPSG-Asm',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8575','American Samoa 1962 to WGS 84 (3)','Transformation actually to NAD83(HARN), but for many purposes NAD83(HARNS) can be considered to be coincident with WGS 84.','Transformation actually to NAD83(HARN), but for many purposes NAD83(HARN) can be considered to be coincident with WGS 84.','EPSG','4169','EPSG','4326','EPSG','2289',NULL,'EPSG-Asm',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8576','AGD66 to WGS 84 (9)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Supersedes AGD66 to WGS 84 (4) (code 8398).','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','1282',NULL,'EPSG-Aus Tas 1m',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8577','AGD66 to WGS 84 (10)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','2284',NULL,'EPSG-Aus NT',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8578','AGD66 to WGS 84 (11)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Supersedes AGD66 to WGS 84 (3) (code 8396) and AGD66 to WGS 84 (6) (code 8408).','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326','EPSG','2287',NULL,'EPSG-Aus',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8579','AGD84 to WGS 84 (6)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Supersedes AGD84 to WGS 84 (5) (code 8560).','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4203','EPSG','4326','EPSG','1280',NULL,'EPSG-Aus WA',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8580','IRENET95 to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','EPSG','4173','EPSG','4326','EPSG','1305',NULL,'OSI-Ire',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8581','PSD93 to WGS 84 (2)','Replaced by PSD93 to WGS 84 (1) (code 1439) in 1997. Can be implemented as a position vector tfm with parameter values dX= -182.046 dY= -225.604 dZ=+173.384m rX= -0.616 rY= -1.655 rZ=+8.378" dS=16.8673ppm.','Oil exploration.','EPSG','4134','EPSG','4326','EPSG','3288',NULL,'PDO-Omn 93',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8582','Old Hawaiian to WGS 84 (2)','Transformation steps are from Old Hawaiian to NAD83(HARN) (1) (code 8508) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4135','EPSG','4326','EPSG','1334',NULL,'EPSG-Usa Hi',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8583','Puerto Rico to WGS 84 (2)','Transformation steps are from Puerto Rico to NAD83(HARN) (1) (code 4435) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4139','EPSG','4326','EPSG','3634',NULL,'EPSG-PRVI',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8584','NAD27 to NAD83(CSRS98) (3)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 8585.','Accuracy 1-2 metres.','EPSG','4267','EPSG','4140','EPSG','2376',NULL,'EPSG-Can AB',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8585','NAD27 to WGS 84 (36)','Steps based on concatenated transformation NAD27 to NAD83(CSRS)v4 (3) (code 9336) assuming that NAD83(CSRS)v4 is equivalent to WGS 84.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2376',NULL,'EPSG-Can AB',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8586','NAD27 to NAD83(HARN) (38)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8592.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1374',NULL,'NGS-Usa AR',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8587','NAD27 to NAD83(HARN) (39)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8600.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1384',NULL,'NGS-Usa IA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8588','NAD27 to NAD83(HARN) (40)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8608.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1392',NULL,'NGS-Usa MN',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8589','NAD27 to NAD83(HARN) (41)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8610.','Accuracy at 67% confidence level is 0.2m.','EPSG','4267','EPSG','4152','EPSG','1394',NULL,'NGS-Usa MO',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8590','NAD27 to WGS 84 (37)','Transformation steps are from NAD27 to NAD83(HARN) (1) (code 8460) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1372',NULL,'EPSG-Usa AL',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8591','NAD27 to WGS 84 (38)','Transformation steps are from NAD27 to NAD83(HARN) (2) (code 8461) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1373',NULL,'EPSG-Usa AZ',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8592','NAD27 to WGS 84 (39)','Transformation steps are from NAD27 to NAD83(HARN) (38) (code 8586) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1374',NULL,'EPSG-Usa AR',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8593','NAD27 to WGS 84 (40)','Transformation steps are from NAD27 to NAD83(HARN) (3) (code 8462) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2297',NULL,'EPSG-Usa CA n',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8594','NAD27 to WGS 84 (41)','Transformation steps are from NAD27 to NAD83(HARN) (4) (code 8463) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2298',NULL,'EPSG-Usa CA s',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8595','NAD27 to WGS 84 (42)','Transformation steps are from NAD27 to NAD83(HARN) (5) (code 8464) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1376',NULL,'EPSG-Usa CO',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8596','NAD27 to WGS 84 (43)','Transformation steps are from NAD27 to NAD83(HARN) (7) (code 8466) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1379',NULL,'EPSG-Usa FL',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8597','NAD27 to WGS 84 (44)','Transformation steps are from NAD27 to NAD83(HARN) (6) (code 8465) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1380',NULL,'EPSG-Usa GA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8598','NAD27 to WGS 84 (45)','Transformation steps are from NAD27 to NAD83(HARN) (36) (code 8553) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1382',NULL,'EPSG-Usa IL',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8599','NAD27 to WGS 84 (46)','Transformation steps are from NAD27 to NAD83(HARN) (30) (code 8509) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1383',NULL,'EPSG-Usa IN',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8600','NAD27 to WGS 84 (47)','Transformation steps are from NAD27 to NAD83(HARN) (39) (code 8587) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1384',NULL,'EPSG-Usa IA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8601','NAD27 to WGS 84 (48)','Transformation steps are from NAD27 to NAD83(HARN) (31) (code 8510) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1385',NULL,'EPSG-Usa KS',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8602','NAD27 to WGS 84 (49)','Transformation steps are from NAD27 to NAD83(HARN) (10) (code 8469) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1386',NULL,'EPSG-Usa KY',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8603','NAD27 to WGS 84 (50)','Transformation steps are from NAD27 to NAD83(HARN) (11) (code 8470) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1387',NULL,'EPSG-Usa LA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8604','NAD27 to WGS 84 (51)','Transformation steps are from NAD27 to NAD83(HARN) (13) (code 8472) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1388',NULL,'EPSG-Usa ME',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8605','NAD27 to WGS 84 (52)','Transformation steps are from NAD27 to NAD83(HARN) (12) (code 8471) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2377',NULL,'EPSG-Usa DE MD',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8606','NAD27 to WGS 84 (53)','Transformation steps are from NAD27 to NAD83(HARN) (17) (code 8476) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2378',NULL,'EPSG-Usa NewEng',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8607','NAD27 to WGS 84 (54)','Transformation steps are from NAD27 to NAD83(HARN) (14) (code 8473) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1391',NULL,'EPSG-Usa MI',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8608','NAD27 to WGS 84 (55)','Transformation steps are from NAD27 to NAD83(HARN) (40) (code 8588) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1392',NULL,'EPSG-Usa MN',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8609','NAD27 to WGS 84 (56)','Transformation steps are from NAD27 to NAD83(HARN) (15) (code 8474) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1393',NULL,'EPSG-Usa MS',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8610','NAD27 to WGS 84 (57)','Transformation steps are from NAD27 to NAD83(HARN) (41) (code 8589) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1394',NULL,'EPSG-Usa MO',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8611','NAD27 to WGS 84 (58)','Transformation steps are from NAD27 to NAD83(HARN) (8) (code 8467) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2382',NULL,'EPSG-Usa ID MT e',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8612','NAD27 to WGS 84 (59)','Transformation steps are from NAD27 to NAD83(HARN) (9) (code 8468) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2383',NULL,'EPSG-Usa ID MT w',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8613','NAD27 to WGS 84 (60)','Transformation steps are from NAD27 to NAD83(HARN) (16) (code 8475) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1396',NULL,'EPSG-Usa NE',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8614','NAD27 to WGS 84 (61)','Transformation steps are from NAD27 to NAD83(HARN) (32) (code 8511) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1397',NULL,'EPSG-Usa NV',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8615','NAD27 to WGS 84 (62)','Transformation steps are from NAD27 to NAD83(HARN) (37) (code 8554) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1399',NULL,'EPSG-Usa NJ',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8616','NAD27 to WGS 84 (63)','Transformation steps are from NAD27 to NAD83(HARN) (18) (code 8477) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1400',NULL,'EPSG-Usa NM',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8617','NAD27 to WGS 84 (64)','Transformation steps are from NAD27 to NAD83(HARN) (19) (code 8478) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1401',NULL,'EPSG-Usa NY',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8618','NAD27 to WGS 84 (65)','Transformation steps are from NAD27 to NAD83(HARN) (20) (code 8479) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1403',NULL,'EPSG-Usa ND',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8619','NAD27 to WGS 84 (66)','Transformation steps are from NAD27 to NAD83(HARN) (33) (code 8512) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1404',NULL,'EPSG-Usa OH',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8620','NAD27 to WGS 84 (67)','Transformation steps are from NAD27 to NAD83(HARN) (21) (code 8480) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1405',NULL,'EPSG-Usa OK',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8621','NAD27 to WGS 84 (68)','Transformation steps are from NAD27 to NAD83(HARN) (27) (code 8487) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2381',NULL,'EPSG-Usa OR WA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8622','NAD27 to WGS 84 (69)','Transformation steps are from NAD27 to NAD83(HARN) (22) (code 6739) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1410',NULL,'EPSG-Usa SD',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8623','NAD27 to WGS 84 (70)','Transformation steps are from NAD27 to NAD83(HARN) (23) (code 8483) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1411',NULL,'EPSG-Usa TN',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8624','NAD27 to WGS 84 (71)','Transformation steps are from NAD27 to NAD83(HARN) (24) (code 8484) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2379',NULL,'EPSG-Usa TX e',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8625','NAD27 to WGS 84 (72)','Transformation steps are from NAD27 to NAD83(HARN) (25) (code 8485) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2380',NULL,'EPSG-Usa TX w',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8626','NAD27 to WGS 84 (73)','Transformation steps are from NAD27 to NAD83(HARN) (34) (code 8513) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1413',NULL,'EPSG-Usa UT',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8627','NAD27 to WGS 84 (74)','Transformation steps are from NAD27 to NAD83(HARN) (26) (code 8486) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1415',NULL,'EPSG-Usa VA',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8628','NAD27 to WGS 84 (75)','Transformation steps are from NAD27 to NAD83(HARN) (35) (code 8514) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1417',NULL,'EPSG-Usa WV',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8629','NAD27 to WGS 84 (76)','Transformation steps are from NAD27 to NAD83(HARN) (28) (code 8488) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1418',NULL,'EPSG-Usa WI',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8630','NAD27 to WGS 84 (77)','Transformation steps are from NAD27 to NAD83(HARN) (29) (code 8489) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','1419',NULL,'EPSG-Usa WY',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8631','Garoua to WGS 84 (1)','','Oil industry.','EPSG','4197','EPSG','4326','EPSG','2590',NULL,'EPSG-Cmr',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8632','Kousseri to WGS 84 (1)','','Oil industry.','EPSG','4198','EPSG','4326','EPSG','2591',NULL,'EPSG-Cmr',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8633','Yoff to WGS 84 (1)','Derived via WGS72. Can be used as a single positon vector transformation with parameter vaues of dX = -37 m, dY = +157 m, dZ = +89.5 m, rX = rY = 0 sec, rZ = 0.554 sec, dS = 0.219 ppm','Military purposes.','EPSG','4310','EPSG','4326','EPSG','1207',NULL,'EPSG-SEN',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8634','Beduaram to WGS 84 (1)','Derived via WGS72BE. Can be used as a single positon vector transformation with parameter vaues of dX = -101 m, dY = -111 m, dZ = +188.9 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm','Oil exploration.','EPSG','4213','EPSG','4326','EPSG','2771',NULL,'ELF-Ner SE',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8635','NAD27 to NAD83(CSRS) (3)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 8585.','Accuracy 1-2 metres.','EPSG','4267','EPSG','4617','EPSG','2376',NULL,'EPSG-Can AB',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8636','Carthage (Paris) to WGS 84 (1)','','For military purposes.','EPSG','4816','EPSG','4326','EPSG','1618',NULL,'EPSG-Tun',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8637','Lisbon (Lisbon) to WGS 84 (1)','','For applications to an accuracy of 2 metres.','EPSG','4803','EPSG','4326','EPSG','1294',NULL,'EPSG-Prt',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8638','Makassar (Jakarta) to WGS 84 (1)','','Oil exploration.','EPSG','4804','EPSG','4326','EPSG','1316',NULL,'EPSG - Idn Sul SW',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8639','NGO 1948 (Oslo) to WGS 84 (1)','','For military purposes.','EPSG','4817','EPSG','4326','EPSG','1352',NULL,'EPSG-Nor',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8640','Nord Sahara 1959 (Paris) to WGS 84 (1)','','For military purposes.','EPSG','4819','EPSG','4326','EPSG','1026',NULL,'EPSG-Dza',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8641','Segara (Jakarta) to WGS 84 (1)','','Accuracy estimate not available.','EPSG','4820','EPSG','4326','EPSG','1360',NULL,'EPSG-Idn Kal SW',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8642','S-JTSK (Ferro) to WGS 84 (1)','Replaced by S-JTSK (Ferro) to WGS 84 (3) (code 5242) in 2009.','For applications to an accuracy of 1 metre.','EPSG','4818','EPSG','4326','EPSG','1079',NULL,'EPSG-Cze',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8643','Greek to WGS 84 (1)','','5m accuracy','EPSG','4120','EPSG','4326','EPSG','3254',NULL,'EPSG-Grc',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8644','Greek (Athens) to WGS 84 (1)','','5m accuracy.','EPSG','4815','EPSG','4326','EPSG','3254',NULL,'EPSG-Grc',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8645','MGI (Ferro) to WGS 84 (2)','','2m accuracy','EPSG','4805','EPSG','4326','EPSG','1037',NULL,'BEV-Aut',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8646','Manoca 1962 to WGS 84 (1)','Derived via WGS72BE. Can be used as a single positon vector transformation with parameter vaues of dX = -56.7 m, dY = -171.8 m, dZ = -40.6 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm','Oil exploration','EPSG','4193','EPSG','4326','EPSG','2555',NULL,'OGP-Cmr',1);
INSERT INTO "concatenated_operation" VALUES('EPSG','8647','NAD27 to WGS 84 (78)','','Oil industry operations.','EPSG','4267','EPSG','4326','EPSG','2831',NULL,'EPSG-Can E Off',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8648','Lisbon 1890 (Lisbon) to WGS 84 (1)','','Low accuracy applications.','EPSG','4904','EPSG','4326','EPSG','1294',NULL,'EPSG-Prt 5m',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8649','Lisbon 1890 (Lisbon) to WGS 84 (2)','','Medium accuracy applications.','EPSG','4904','EPSG','4326','EPSG','1294',NULL,'EPSG-Prt 1m',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8650','Palestine 1923 to WGS 84 (2)','Can be implemented as a geocentric translation tfm with param. values dX = -229m, dY = -67m, dZ= +277m.','Accuracy: 1m to north and 10m to south of east-west line through Beersheba (31°15''N).','EPSG','4281','EPSG','4326','EPSG','2603',NULL,'SoI-Isr',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8651','Vientiane 1982 to WGS 84 (1)','Can be implemented as a geocentric translation tfm with param. values dX = 42.358m, dY = -124.688m, dZ= -37.366m.','Accuracy: 5m.','EPSG','4676','EPSG','4326','EPSG','1138',NULL,'EPSG-Lao',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8652','Lao 1993 to WGS 84 (1)','Can be implemented as a geocentric translation tfm with param. values dX = 43.933m, dY = -129.593m, dZ= -39.331m.','Accuracy: 5m.','EPSG','4677','EPSG','4326','EPSG','1138',NULL,'EPSG-Lao',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8655','Manoca 1962 to WGS 84 (2)','Derived via WGS 72BE. Can be implemented as a single positon vector transformation with parameter vaues of dX = -56.7 m, dY = -171.8 m, dZ = -38.7 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm.','Oil exploration','EPSG','4193','EPSG','4326','EPSG','2555',NULL,'OGP-Cmr',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8656','Mhast (offshore) to WGS 84 (1)','Derived via WGS 72BE. Can be implemented as a single positon vector transformation with parameter vaues of dX = -255.0 m, dY = -29.0 m, dZ = -103.1 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm.','Oil industry exploration and production between 1979 and 1987.','EPSG','4705','EPSG','4326','EPSG','3180',NULL,'OGP-Ago Cab',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8657','Egypt Gulf of Suez S-650 TL to WGS 84 (1)','Can be implemented as a single positon vector transformation with parameter vaues of dX = -123.0 m, dY = 98.0 m, dZ = 3.9 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm. Replaced by Egypt Gulf of Suez S-650 TL to WGS 84 (2) (tfm code 15846).','Oil industry exploration and production between 1980 and 1984.','EPSG','4706','EPSG','4326','EPSG','2341',NULL,'OGP-Egy GoS',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8659','Kertau (RSO) to WGS 84 (1)','Step 1 is necessary to rescale the grid units before using step 2.','For transformation of MRT68 RSO coordinates.','EPSG','4751','EPSG','4326','EPSG','1309',NULL,'OGP-Mys',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','9103','NAD27 to ITRF2014 (1)','For use with legacy data - see CT code 9104 for alternative for new areas. Note that steps 1 and 2 are documented in the geog2D domain, steps 3 and 4 in the geocentric domain. Steps 3 and 4 may be implemented in one operation using CT code 8970.','Oil and gas exploration and production.','EPSG','4267','EPSG','7789','EPSG','3357',NULL,'IOGP-Usa GoM legacy',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','9336','NAD27 to NAD83(CSRS)v4 (3)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 8585.','Accuracy 1-2 metres.','EPSG','4267','EPSG','8246','EPSG','2376',NULL,'EPSG-Can AB',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','9337','NTF (Paris) to RGF93 (1)','See transformation code 7811 for an alternative which uses the NTv2 method as an emulation of the geocentric interpolation in the second step.','Transformation of coordinates referenced to NTF (Paris) to RGF93.','EPSG','4807','EPSG','4171','EPSG','3694',NULL,'IOGP-Fra',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','3896','MGI (Ferro) to WGS 84 (2)','','EPSG','4805','EPSG','4326',1.5,'BEV-Aut',0);
INSERT INTO "usage" VALUES('EPSG','8965','concatenated_operation','EPSG','3896','EPSG','1037','EPSG','1042');
INSERT INTO "concatenated_operation" VALUES('EPSG','3966','MGI (Ferro) to WGS 84 (1)','Accuracy estimate is not available.','EPSG','4805','EPSG','4326',6.0,'DMA-balk',0);
INSERT INTO "usage" VALUES('EPSG','9014','concatenated_operation','EPSG','3966','EPSG','2370','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','4435','Puerto Rico to NAD83(HARN) (1)','Accuracy 0.1m at 67% confidence level. May be taken as approximate transformation Puerto Rico to WGS 84 - see code 8583.','EPSG','4139','EPSG','4152',0.08,'NGS-PRVI',0);
INSERT INTO "usage" VALUES('EPSG','9074','concatenated_operation','EPSG','4435','EPSG','3634','EPSG','1031');
INSERT INTO "concatenated_operation" VALUES('EPSG','4837','Amersfoort to ED50 (1)','Adopted by NAM in 2006, replacing polynomial tfms 1046, 6304, 1050 and 6306.','EPSG','4289','EPSG','4230',1.5,'NAM-Nld 2006',0);
INSERT INTO "usage" VALUES('EPSG','9130','concatenated_operation','EPSG','4837','EPSG','1275','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','5190','Tokyo 1892 to Korea 2000 (1)','','EPSG','5132','EPSG','4737',1.0,'OGP-Kor',0);
INSERT INTO "usage" VALUES('EPSG','9275','concatenated_operation','EPSG','5190','EPSG','3266','EPSG','1050');
INSERT INTO "concatenated_operation" VALUES('EPSG','5192','Tokyo 1892 to WGS 84 (1)','','EPSG','5132','EPSG','4326',1.0,'OGP-Kor',0);
INSERT INTO "usage" VALUES('EPSG','9277','concatenated_operation','EPSG','5192','EPSG','3266','EPSG','1050');
INSERT INTO "concatenated_operation" VALUES('EPSG','5230','S-JTSK (Ferro) to WGS 84 (2)','','EPSG','4818','EPSG','4326',1.0,'OGP-Svk',0);
INSERT INTO "usage" VALUES('EPSG','9306','concatenated_operation','EPSG','5230','EPSG','1211','EPSG','1041');
INSERT INTO "concatenated_operation" VALUES('EPSG','5240','S-JTSK/05 (Ferro) to WGS 84 (1)','Replaces S-JTSK (Ferro) to WGS 84 (1) (CRS code 8642) in Czech Republic.','EPSG','5229','EPSG','4326',1.0,'OGP-Cze',0);
INSERT INTO "usage" VALUES('EPSG','9312','concatenated_operation','EPSG','5240','EPSG','1079','EPSG','1041');
INSERT INTO "concatenated_operation" VALUES('EPSG','5242','S-JTSK (Ferro) to WGS 84 (3)','Parameter values from S-JTSK/05 to ETRS89 (1) (code 5226). For applications to an accuracy of 1m. Replaces S-JTSK (Ferro) to WGS 84 (1) (tfm code 8642).','EPSG','4818','EPSG','4326',1.0,'OGP-Cze R05',0);
INSERT INTO "usage" VALUES('EPSG','9314','concatenated_operation','EPSG','5242','EPSG','1079','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','5838','Lisbon (Lisbon) to WGS 84 (2)','','EPSG','4803','EPSG','4326',2.0,'OGP-Prt 2009',0);
INSERT INTO "usage" VALUES('EPSG','9511','concatenated_operation','EPSG','5838','EPSG','1294','EPSG','1042');
INSERT INTO "concatenated_operation" VALUES('EPSG','6714','Tokyo to JGD2011 (1)','See Tokyo to JGD2011 (2) (code 6740) for areas other than northern Honshu.','EPSG','4301','EPSG','6668',0.3,'OGP-Jpn N Honshu',0);
INSERT INTO "usage" VALUES('EPSG','9742','concatenated_operation','EPSG','6714','EPSG','4170','EPSG','1142');
INSERT INTO "concatenated_operation" VALUES('EPSG','6739','NAD27 to NAD83(HARN) (22)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8622.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa SD',0);
INSERT INTO "usage" VALUES('EPSG','9755','concatenated_operation','EPSG','6739','EPSG','1410','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','6874','Tananarive (Paris) to WGS 84 (2)','Used by OMV.','EPSG','4810','EPSG','4326',3.0,'OGP-Mdg',0);
INSERT INTO "usage" VALUES('EPSG','9803','concatenated_operation','EPSG','6874','EPSG','3273','EPSG','1043');
INSERT INTO "concatenated_operation" VALUES('EPSG','7811','NTF (Paris) to RGF93 (2)','Second step is an emulation (using the NTv2 method) of the geocentric Interpolation method described in tfm code 9337. Note that the grid file parameters are of opposite sign.','EPSG','4807','EPSG','4171',1.0,'IOGP-Fra NTv2',0);
INSERT INTO "usage" VALUES('EPSG','10276','concatenated_operation','EPSG','7811','EPSG','3694','EPSG','1041');
INSERT INTO "concatenated_operation" VALUES('EPSG','7965','Poolbeg height (ft(Br36)) to Malin Head height (1)','','EPSG','5754','EPSG','5731',0.1,'1',0);
INSERT INTO "usage" VALUES('EPSG','10349','concatenated_operation','EPSG','7965','EPSG','1305','EPSG','1059');
INSERT INTO "concatenated_operation" VALUES('EPSG','7967','Poolbeg height (ft(Br36)) to Belfast height (1)','','EPSG','5754','EPSG','5732',0.1,'1',0);
INSERT INTO "usage" VALUES('EPSG','10351','concatenated_operation','EPSG','7967','EPSG','2530','EPSG','1059');
INSERT INTO "concatenated_operation" VALUES('EPSG','7973','NGVD29 height (ftUS) to NAVD88 height (1)','','EPSG','5702','EPSG','5703',0.02,'IOGP - US Conus W',0);
INSERT INTO "usage" VALUES('EPSG','10356','concatenated_operation','EPSG','7973','EPSG','2950','EPSG','1099');
INSERT INTO "concatenated_operation" VALUES('EPSG','7974','NGVD29 height (ftUS) to NAVD88 height (2)','','EPSG','5702','EPSG','5703',0.02,'IOGP - US Conus C',0);
INSERT INTO "usage" VALUES('EPSG','10357','concatenated_operation','EPSG','7974','EPSG','2949','EPSG','1099');
INSERT INTO "concatenated_operation" VALUES('EPSG','7975','NGVD29 height (ftUS) to NAVD88 height (3)','','EPSG','5702','EPSG','5703',0.02,'IOGP - US Conus E',0);
INSERT INTO "usage" VALUES('EPSG','10358','concatenated_operation','EPSG','7975','EPSG','2948','EPSG','1099');
INSERT INTO "concatenated_operation" VALUES('EPSG','7983','HKPD height to HKCD depth (1)','','EPSG','5738','EPSG','5739',0.0,'IOGP-HK',0);
INSERT INTO "usage" VALUES('EPSG','10364','concatenated_operation','EPSG','7983','EPSG','3335','EPSG','1198');
INSERT INTO "concatenated_operation" VALUES('EPSG','7986','KOC CD height to KOC WD depth (1)','','EPSG','5790','EPSG','5789',0.1,'IOGP-Kwt',0);
INSERT INTO "usage" VALUES('EPSG','10367','concatenated_operation','EPSG','7986','EPSG','3267','EPSG','1059');
INSERT INTO "concatenated_operation" VALUES('EPSG','7987','KOC CD height to KOC WD depth (ft) (1)','','EPSG','5790','EPSG','5614',0.1,'IOGP-Kwt',0);
INSERT INTO "usage" VALUES('EPSG','10368','concatenated_operation','EPSG','7987','EPSG','3267','EPSG','1099');
INSERT INTO "concatenated_operation" VALUES('EPSG','8047','ED50 to WGS 84 (15)','Replaced by codes 8569 and 1612 in 1997 and 2001.
The concatenation of transformations 1147 and 1146 gives the following position vector tfm: dX=-84.491 dY=-100.559 dZ=-114.209 metres rX= -2.4006 rY=-0.5367 rZ=-2.3742 microradians dS=+0.2947 ppm.','EPSG','4230','EPSG','4326',1.5,'NMA-Nor N65 1991',0);
INSERT INTO "usage" VALUES('EPSG','10400','concatenated_operation','EPSG','8047','EPSG','2332','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8094','NTF (Paris) to WGS 84 (1)','','EPSG','4807','EPSG','4326',2.0,'EPSG-Fra',0);
INSERT INTO "usage" VALUES('EPSG','10426','concatenated_operation','EPSG','8094','EPSG','3694','EPSG','1024');
INSERT INTO "concatenated_operation" VALUES('EPSG','8174','Bogota 1975 (Bogota) to WGS 84 (1)','Accuracy 6m, 5m and 6m in X, Y and Z axes.','EPSG','4802','EPSG','4326',10.0,'DMA-Col',0);
INSERT INTO "usage" VALUES('EPSG','10427','concatenated_operation','EPSG','8174','EPSG','3229','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8175','Monte Mario (Rome) to WGS 84 (1)','Accuracy 25m in each axis.','EPSG','4806','EPSG','4326',44.0,'EPSG-Ita',0);
INSERT INTO "usage" VALUES('EPSG','10428','concatenated_operation','EPSG','8175','EPSG','2339','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8176','Tananarive (Paris) to WGS 84 (1)','Accuracy not available.','EPSG','4810','EPSG','4326',999.0,'EPSG-Mdg',0);
INSERT INTO "usage" VALUES('EPSG','10429','concatenated_operation','EPSG','8176','EPSG','3273','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8178','Batavia (Jakarta) to WGS 84 (1)','Accuracy 3m in each axis.','EPSG','4813','EPSG','4326',6.0,'EPSG-Idn Sumatra',0);
INSERT INTO "usage" VALUES('EPSG','10430','concatenated_operation','EPSG','8178','EPSG','1285','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8183','HD72 to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','EPSG','4237','EPSG','4326',NULL,'EPSG-Hun',1);
INSERT INTO "usage" VALUES('EPSG','10431','concatenated_operation','EPSG','8183','EPSG','1119','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8186','NTF (Paris) to ED50 (1)','','EPSG','4807','EPSG','4230',2.0,'EPSG-Fra',0);
INSERT INTO "usage" VALUES('EPSG','10432','concatenated_operation','EPSG','8186','EPSG','3694','EPSG','1024');
INSERT INTO "concatenated_operation" VALUES('EPSG','8188','NTF (Paris) to WGS 72 (1)','','EPSG','4807','EPSG','4322',2.0,'EPSG-Fra',0);
INSERT INTO "usage" VALUES('EPSG','10433','concatenated_operation','EPSG','8188','EPSG','3694','EPSG','1024');
INSERT INTO "concatenated_operation" VALUES('EPSG','8190','AGD66 to WGS 84 (2)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. 0.1m accuracy.','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus 5m',1);
INSERT INTO "usage" VALUES('EPSG','10434','concatenated_operation','EPSG','8190','EPSG','2575','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8192','AGD84 to WGS 84 (3)','Approximation assuming that GDA94 is equivalent to WGS 84.','EPSG','4203','EPSG','4326',NULL,'EPSG-Aus 5m',1);
INSERT INTO "usage" VALUES('EPSG','10435','concatenated_operation','EPSG','8192','EPSG','2575','EPSG','1045');
INSERT INTO "concatenated_operation" VALUES('EPSG','8194','AGD84 to WGS 84 (4)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4203','EPSG','4326',NULL,'EPSG-Aus 1m',1);
INSERT INTO "usage" VALUES('EPSG','10436','concatenated_operation','EPSG','8194','EPSG','2575','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8195','RT90 to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','EPSG','4124','EPSG','4326',NULL,'EPSG-Swe',1);
INSERT INTO "usage" VALUES('EPSG','10437','concatenated_operation','EPSG','8195','EPSG','1225','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8199','Pulkovo 1942 to WGS 84 (2)','Approximation at the +/- 1m level assuming that LKS94(ETRS89) is equivalent to WGS 84.','EPSG','4284','EPSG','4326',NULL,'EPSG-Ltu',1);
INSERT INTO "usage" VALUES('EPSG','10438','concatenated_operation','EPSG','8199','EPSG','1145','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8211','Voirol 1875 (Paris) to WGS 84 (1)','','EPSG','4811','EPSG','4326',999.0,'EPSG-Dza N',0);
INSERT INTO "usage" VALUES('EPSG','10439','concatenated_operation','EPSG','8211','EPSG','1365','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8215','Tete to WGS 84 (1)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326',NULL,'EPSG-Moz',1);
INSERT INTO "usage" VALUES('EPSG','10440','concatenated_operation','EPSG','8215','EPSG','1167','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8217','Tete to WGS 84 (2)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326',NULL,'EPSG-Moz A',1);
INSERT INTO "usage" VALUES('EPSG','10441','concatenated_operation','EPSG','8217','EPSG','2350','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8219','Tete to WGS 84 (3)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326',NULL,'EPSG-Moz B',1);
INSERT INTO "usage" VALUES('EPSG','10442','concatenated_operation','EPSG','8219','EPSG','2351','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8221','Tete to WGS 84 (4)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326',NULL,'EPSG-Moz C',1);
INSERT INTO "usage" VALUES('EPSG','10443','concatenated_operation','EPSG','8221','EPSG','2352','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8223','Tete to WGS 84 (5)','Approximation at the +/- 1m level assuming that Moznet is equivalent to WGS 84.','EPSG','4127','EPSG','4326',NULL,'EPSG-Moz D',1);
INSERT INTO "usage" VALUES('EPSG','10444','concatenated_operation','EPSG','8223','EPSG','2353','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8234','DHDN to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','EPSG','4314','EPSG','4326',NULL,'EPSG-Deu W',1);
INSERT INTO "usage" VALUES('EPSG','10446','concatenated_operation','EPSG','8234','EPSG','2326','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8236','Pulkovo 1942 to WGS 84 (11)','Approximation at the +/- 1m level assuming that ETRF89 is equivalent to WGS 84.','EPSG','4284','EPSG','4326',NULL,'EPSG-Deu E',1);
INSERT INTO "usage" VALUES('EPSG','10447','concatenated_operation','EPSG','8236','EPSG','1343','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8243','NAD27 to WGS 84 (25)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84. Superseded by NAD27 to WGS 84 (27) (code 8404) in Quebec and NAD27 to WGS 84 (26) (code 8245) elsewhere in Canada.','EPSG','4267','EPSG','4326',NULL,'EPSG-Can old',1);
INSERT INTO "usage" VALUES('EPSG','10449','concatenated_operation','EPSG','8243','EPSG','1061','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8245','NAD27 to WGS 84 (26)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4267','EPSG','4326',NULL,'EPSG-Can',1);
INSERT INTO "usage" VALUES('EPSG','10450','concatenated_operation','EPSG','8245','EPSG','1061','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8263','MGI (Ferro) to WGS 84 (1)','Accuracy estimate is not available.','EPSG','4805','EPSG','4326',NULL,'DMA-balk',1);
INSERT INTO "usage" VALUES('EPSG','10458','concatenated_operation','EPSG','8263','EPSG','2370','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8363','ETRS89 + Baltic 1957 height to ETRS89 + EVRF2007 height (1)','Recommended method for transforming coordinates between Baltic 1957 height and EVRF2007 height and vice-versa in Slovakia. Compound transformation using two separate quasigeoid models (DVRM05 and DMQSK2014E).','EPSG','8360','EPSG','7423',0.05,'UGKK-Svk',0);
INSERT INTO "usage" VALUES('EPSG','10510','concatenated_operation','EPSG','8363','EPSG','1211','EPSG','1059');
INSERT INTO "concatenated_operation" VALUES('EPSG','8386','Old Hawaiian to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4135','EPSG','4326',NULL,'EPSG-Usa Hi',1);
INSERT INTO "usage" VALUES('EPSG','10523','concatenated_operation','EPSG','8386','EPSG','1334','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8388','St. Lawrence Island to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4136','EPSG','4326',NULL,'EPSG-Usa AK StL',1);
INSERT INTO "usage" VALUES('EPSG','10524','concatenated_operation','EPSG','8388','EPSG','1332','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8390','St. Paul Island to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4137','EPSG','4326',NULL,'EPSG-Usa AK StP',1);
INSERT INTO "usage" VALUES('EPSG','10526','concatenated_operation','EPSG','8390','EPSG','1333','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8392','St. George Island to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4138','EPSG','4326',NULL,'EPSG-Usa AK StG',1);
INSERT INTO "usage" VALUES('EPSG','10527','concatenated_operation','EPSG','8392','EPSG','1331','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8394','NAD27(CGQ77) to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84. Superseded by NAD27(CGQ77) to WGS 84 (2) (code 8564).','EPSG','4609','EPSG','4326',NULL,'EPSG-Can Qc NT1',1);
INSERT INTO "usage" VALUES('EPSG','10529','concatenated_operation','EPSG','8394','EPSG','1368','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8396','AGD66 to WGS 84 (3)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD66 to WGS 84 (11) (code 8581).','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus ACT 1m',1);
INSERT INTO "usage" VALUES('EPSG','10530','concatenated_operation','EPSG','8396','EPSG','2283','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8398','AGD66 to WGS 84 (4)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD66 to WGS 84 (9) (code 8576).','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus Tas 1m',1);
INSERT INTO "usage" VALUES('EPSG','10531','concatenated_operation','EPSG','8398','EPSG','1282','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8400','AGD66 to WGS 84 (5)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus NSW Vic 1m',1);
INSERT INTO "usage" VALUES('EPSG','10532','concatenated_operation','EPSG','8400','EPSG','2286','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8402','Puerto Rico to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4139','EPSG','4326',NULL,'EPSG-PRVI',1);
INSERT INTO "usage" VALUES('EPSG','10533','concatenated_operation','EPSG','8402','EPSG','1335','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8404','NAD27 to WGS 84 (27)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84. Superseded by NAD27 to WGS 84 (31) (code 8565).','EPSG','4267','EPSG','4326',NULL,'EPSG-Can QC',1);
INSERT INTO "usage" VALUES('EPSG','10534','concatenated_operation','EPSG','8404','EPSG','1368','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8406','NAD27(76) to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83 is equivalent to WGS 84.','EPSG','4608','EPSG','4326',NULL,'EPSG-Can On',1);
INSERT INTO "usage" VALUES('EPSG','10536','concatenated_operation','EPSG','8406','EPSG','1367','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8408','AGD66 to WGS 84 (6)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD66 to WGS 84 (11) (code 8578).','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus Vic 0.1m',1);
INSERT INTO "usage" VALUES('EPSG','10538','concatenated_operation','EPSG','8408','EPSG','2285','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8418','ATS77 to WGS 84 (1)','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4122','EPSG','4326',NULL,'EPSG-Can NB',1);
INSERT INTO "usage" VALUES('EPSG','10548','concatenated_operation','EPSG','8418','EPSG','1447','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8419','ATS77 to WGS 84 (2)','Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.','EPSG','4122','EPSG','4326',NULL,'EPSG-Can PEI',1);
INSERT INTO "usage" VALUES('EPSG','10549','concatenated_operation','EPSG','8419','EPSG','1533','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8420','NAD27 to WGS 84 (32)','','EPSG','4267','EPSG','4326',NULL,'SK PMC-Can SK',1);
INSERT INTO "usage" VALUES('EPSG','10550','concatenated_operation','EPSG','8420','EPSG','2375','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8421','NAD83 to WGS 84 (7)','','EPSG','4269','EPSG','4326',NULL,'SK PMC-Can SK',1);
INSERT INTO "usage" VALUES('EPSG','10551','concatenated_operation','EPSG','8421','EPSG','2375','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8422','NAD83 to WGS 84 (8)','The gridded difference file AB_CSRS.DAC in STEP 1 will need to be renamed to AB_CSRS.gsb to run in some software suites. Formats identical, but AB file is provincial fit only.','EPSG','4269','EPSG','4326',NULL,'Alb Env-Can AB',1);
INSERT INTO "usage" VALUES('EPSG','10552','concatenated_operation','EPSG','8422','EPSG','2376','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8442','ETRS89 to S-JTSK (5)','Recommended method of a transformation from ETRS89 to S-JTSK in Slovakia. For reverse transformation see S-JTSK to ETRS89 (6) (code 8443). Both together replace S-JTSK to ETRS89 (4) (code 4827).','EPSG','4258','EPSG','4156',0.06,'UGKK-Sk JTSK03',0);
INSERT INTO "usage" VALUES('EPSG','10562','concatenated_operation','EPSG','8442','EPSG','1211','EPSG','1027');
INSERT INTO "concatenated_operation" VALUES('EPSG','8443','S-JTSK to ETRS89 (6)','Recommended method of a transformation from S-JTSK to ETRS89 in Slovakia. For reverse transformation see ETRS89 to S-JTSK (5) (code 8442). Both together replace S-JTSK to ETRS89 (4) (code 4827).','EPSG','4156','EPSG','4258',0.06,'UGKK-Sk JTSK03',0);
INSERT INTO "usage" VALUES('EPSG','10563','concatenated_operation','EPSG','8443','EPSG','1211','EPSG','1027');
INSERT INTO "concatenated_operation" VALUES('EPSG','8453','AGD66 to WGS 84 (7)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus Tas 0.1m',1);
INSERT INTO "usage" VALUES('EPSG','10572','concatenated_operation','EPSG','8453','EPSG','1282','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8454','AGD66 to WGS 84 (8)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus NT 0.1m',1);
INSERT INTO "usage" VALUES('EPSG','10573','concatenated_operation','EPSG','8454','EPSG','2284','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8457','CH1903+ to WGS 84 (1)','Approximation at the +/- 1m level assuming that CHTRF95 is equivalent to WGS 84.','EPSG','4150','EPSG','4326',NULL,'EPSG-CH',1);
INSERT INTO "usage" VALUES('EPSG','10574','concatenated_operation','EPSG','8457','EPSG','1286','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8460','NAD27 to NAD83(HARN) (1)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8590.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa AL',0);
INSERT INTO "usage" VALUES('EPSG','10577','concatenated_operation','EPSG','8460','EPSG','1372','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8461','NAD27 to NAD83(HARN) (2)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8591.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa AZ',0);
INSERT INTO "usage" VALUES('EPSG','10578','concatenated_operation','EPSG','8461','EPSG','1373','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8462','NAD27 to NAD83(HARN) (3)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8593.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa CA n',0);
INSERT INTO "usage" VALUES('EPSG','10579','concatenated_operation','EPSG','8462','EPSG','2297','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8463','NAD27 to NAD83(HARN) (4)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8594.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa CA s',0);
INSERT INTO "usage" VALUES('EPSG','10580','concatenated_operation','EPSG','8463','EPSG','2298','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8464','NAD27 to NAD83(HARN) (5)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8595.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa CO',0);
INSERT INTO "usage" VALUES('EPSG','10581','concatenated_operation','EPSG','8464','EPSG','1376','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8465','NAD27 to NAD83(HARN) (6)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8597.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa GA',0);
INSERT INTO "usage" VALUES('EPSG','10582','concatenated_operation','EPSG','8465','EPSG','1380','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8466','NAD27 to NAD83(HARN) (7)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8596.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa FL',0);
INSERT INTO "usage" VALUES('EPSG','10583','concatenated_operation','EPSG','8466','EPSG','1379','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8467','NAD27 to NAD83(HARN) (8)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8611.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa ID MT e',0);
INSERT INTO "usage" VALUES('EPSG','10584','concatenated_operation','EPSG','8467','EPSG','2382','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8468','NAD27 to NAD83(HARN) (9)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8612.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa ID MT w',0);
INSERT INTO "usage" VALUES('EPSG','10585','concatenated_operation','EPSG','8468','EPSG','2383','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8469','NAD27 to NAD83(HARN) (10)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8602.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa KY',0);
INSERT INTO "usage" VALUES('EPSG','10586','concatenated_operation','EPSG','8469','EPSG','1386','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8470','NAD27 to NAD83(HARN) (11)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8603.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa LA',0);
INSERT INTO "usage" VALUES('EPSG','10587','concatenated_operation','EPSG','8470','EPSG','1387','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8471','NAD27 to NAD83(HARN) (12)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8605.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa DE MD',0);
INSERT INTO "usage" VALUES('EPSG','10588','concatenated_operation','EPSG','8471','EPSG','2377','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8472','NAD27 to NAD83(HARN) (13)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8604.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa ME',0);
INSERT INTO "usage" VALUES('EPSG','10589','concatenated_operation','EPSG','8472','EPSG','1388','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8473','NAD27 to NAD83(HARN) (14)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8607.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa MI',0);
INSERT INTO "usage" VALUES('EPSG','10590','concatenated_operation','EPSG','8473','EPSG','1391','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8474','NAD27 to NAD83(HARN) (15)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8609.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa MS',0);
INSERT INTO "usage" VALUES('EPSG','10591','concatenated_operation','EPSG','8474','EPSG','1393','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8475','NAD27 to NAD83(HARN) (16)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8613.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa NE',0);
INSERT INTO "usage" VALUES('EPSG','10592','concatenated_operation','EPSG','8475','EPSG','1396','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8476','NAD27 to NAD83(HARN) (17)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8606.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa NewEng',0);
INSERT INTO "usage" VALUES('EPSG','10593','concatenated_operation','EPSG','8476','EPSG','2378','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8477','NAD27 to NAD83(HARN) (18)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8616.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa NM',0);
INSERT INTO "usage" VALUES('EPSG','10594','concatenated_operation','EPSG','8477','EPSG','1400','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8478','NAD27 to NAD83(HARN) (19)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8617.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa NY',0);
INSERT INTO "usage" VALUES('EPSG','10595','concatenated_operation','EPSG','8478','EPSG','1401','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8479','NAD27 to NAD83(HARN) (20)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8618.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa ND',0);
INSERT INTO "usage" VALUES('EPSG','10596','concatenated_operation','EPSG','8479','EPSG','1403','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8480','NAD27 to NAD83(HARN) (21)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8620.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa OK',0);
INSERT INTO "usage" VALUES('EPSG','10597','concatenated_operation','EPSG','8480','EPSG','1405','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8481','Puerto Rico to NAD83(HARN) (1)','May be taken as approximate transformation Puerto Rico to WGS 84 - see code 8583.','EPSG','4139','EPSG','4152',NULL,'NGS-PRVI',1);
INSERT INTO "usage" VALUES('EPSG','10598','concatenated_operation','EPSG','8481','EPSG','1335','EPSG','1031');
INSERT INTO "concatenated_operation" VALUES('EPSG','8482','NAD27 to NAD83(HARN) (22)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8622.','EPSG','4267','EPSG','4152',NULL,'NGS-Usa SD',1);
INSERT INTO "usage" VALUES('EPSG','10599','concatenated_operation','EPSG','8482','EPSG','1410','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8483','NAD27 to NAD83(HARN) (23)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8623.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa TN',0);
INSERT INTO "usage" VALUES('EPSG','10600','concatenated_operation','EPSG','8483','EPSG','1411','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8484','NAD27 to NAD83(HARN) (24)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8624.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa TX e',0);
INSERT INTO "usage" VALUES('EPSG','10601','concatenated_operation','EPSG','8484','EPSG','2379','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8485','NAD27 to NAD83(HARN) (25)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8625.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa TX w',0);
INSERT INTO "usage" VALUES('EPSG','10602','concatenated_operation','EPSG','8485','EPSG','2380','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8486','NAD27 to NAD83(HARN) (26)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8627.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa VA',0);
INSERT INTO "usage" VALUES('EPSG','10603','concatenated_operation','EPSG','8486','EPSG','1415','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8487','NAD27 to NAD83(HARN) (27)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8621.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa OR WA',0);
INSERT INTO "usage" VALUES('EPSG','10604','concatenated_operation','EPSG','8487','EPSG','2381','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8488','NAD27 to NAD83(HARN) (28)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8629.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa WI',0);
INSERT INTO "usage" VALUES('EPSG','10605','concatenated_operation','EPSG','8488','EPSG','1418','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8489','NAD27 to NAD83(HARN) (29)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8630.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa WY',0);
INSERT INTO "usage" VALUES('EPSG','10606','concatenated_operation','EPSG','8489','EPSG','1419','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8496','NAD27 to WGS 84 (28)','','EPSG','4267','EPSG','4326',NULL,'NGS-Usa conus',1);
INSERT INTO "usage" VALUES('EPSG','10613','concatenated_operation','EPSG','8496','EPSG','2374','EPSG','1027');
INSERT INTO "concatenated_operation" VALUES('EPSG','8497','NAD27 to WGS 84 (29)','','EPSG','4267','EPSG','4326',NULL,'NGS-Usa AK',1);
INSERT INTO "usage" VALUES('EPSG','10614','concatenated_operation','EPSG','8497','EPSG','2373','EPSG','1027');
INSERT INTO "concatenated_operation" VALUES('EPSG','8508','Old Hawaiian to NAD83(HARN) (1)','Uses NADCON method which expects longitudes positive west; EPSG GeogCRSs Old Hawaiian (code 4135), NAD83 (code 4269) and NAD83(HARN) have longitudes positive east. May be taken as approximate transformation Old Hawaiin to WGS 84 - see code 8582.','EPSG','4135','EPSG','4152',0.3,'NGS-Usa HI',0);
INSERT INTO "usage" VALUES('EPSG','10625','concatenated_operation','EPSG','8508','EPSG','1334','EPSG','1041');
INSERT INTO "concatenated_operation" VALUES('EPSG','8509','NAD27 to NAD83(HARN) (30)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8599.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa IN',0);
INSERT INTO "usage" VALUES('EPSG','10626','concatenated_operation','EPSG','8509','EPSG','1383','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8510','NAD27 to NAD83(HARN) (31)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8601.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa KS',0);
INSERT INTO "usage" VALUES('EPSG','10627','concatenated_operation','EPSG','8510','EPSG','1385','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8511','NAD27 to NAD83(HARN) (32)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8614.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa NV',0);
INSERT INTO "usage" VALUES('EPSG','10628','concatenated_operation','EPSG','8511','EPSG','1397','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8512','NAD27 to NAD83(HARN) (33)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8619.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa OH',0);
INSERT INTO "usage" VALUES('EPSG','10629','concatenated_operation','EPSG','8512','EPSG','1404','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8513','NAD27 to NAD83(HARN) (34)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8626.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa UT',0);
INSERT INTO "usage" VALUES('EPSG','10630','concatenated_operation','EPSG','8513','EPSG','1413','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8514','NAD27 to NAD83(HARN) (35)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8628.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa WV',0);
INSERT INTO "usage" VALUES('EPSG','10631','concatenated_operation','EPSG','8514','EPSG','1417','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8517','Chos Malal 1914 to WGS 84 (1)','May be implemented using a single step geocentric translations of dx=+5.5m dY=+176.7m dZ=+141.4m.','EPSG','4160','EPSG','4326',11.0,'TOT-Arg Neu',0);
INSERT INTO "usage" VALUES('EPSG','10634','concatenated_operation','EPSG','8517','EPSG','2325','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8530','South Yemen to WGS 84 (1)','May be implemented as a single transformation using geocentric translations transformation method with parameter values dX=-76m dY=-138m dZ=+67m.','EPSG','4164','EPSG','4326',NULL,'IGN-Yem South',1);
INSERT INTO "usage" VALUES('EPSG','10635','concatenated_operation','EPSG','8530','EPSG','1340','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8532','Indian 1960 to WGS 84 (1)','May be implemented as a single transformation using position vector 7-parameter geocentric transformation method with parameter values dX=+199m dY=+931m dZ=+318.9m rX=rY=0 sec rZ=+0.814 sec dS=-0.38 ppm.','EPSG','4131','EPSG','4326',26.0,'PV-Vnm',0);
INSERT INTO "usage" VALUES('EPSG','10636','concatenated_operation','EPSG','8532','EPSG','1495','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8537','Egypt 1907 to WGS 84 (2)','Used by Shell. May be implemented as a single transformation using position vector 7-parameter geocentric transformation method with parameter values dX=-121.8m dY=+98.1m dZ=-10.7m rX=rY=0 sec rZ=+0.554 sec dS=+0.2263 ppm.','EPSG','4229','EPSG','4326',6.0,'MCE-Egy',0);
INSERT INTO "usage" VALUES('EPSG','10637','concatenated_operation','EPSG','8537','EPSG','1086','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8553','NAD27 to NAD83(HARN) (36)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8598.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa IL',0);
INSERT INTO "usage" VALUES('EPSG','10645','concatenated_operation','EPSG','8553','EPSG','1382','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8554','NAD27 to NAD83(HARN) (37)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8615.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa NJ',0);
INSERT INTO "usage" VALUES('EPSG','10646','concatenated_operation','EPSG','8554','EPSG','1399','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8560','AGD84 to WGS 84 (5)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Superseded by AGD84 to WGS 84 (6) (code 8579).','EPSG','4203','EPSG','4326',NULL,'EPSG-Aus WA',1);
INSERT INTO "usage" VALUES('EPSG','10652','concatenated_operation','EPSG','8560','EPSG','1280','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8562','Nord Sahara 1959 to WGS 84 (3)','Derived at IGN monument CFP19 using Transit. Can be implemented as a single 7-param Position Vector transformation with parameter values of dX=-156.5m dY=-87.2m dZ=+287.8m; rX=rY=0 rZ=+0.814sec; dS=-0.38ppm.','EPSG','4307','EPSG','4326',9.0,'CGG-Alg HM',0);
INSERT INTO "usage" VALUES('EPSG','10654','concatenated_operation','EPSG','8562','EPSG','2393','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8563','NZGD49 to WGS 84 (3)','Assumes WGS 84 is coincident with NZGD2000. Accuracy about 1m.','EPSG','4272','EPSG','4326',NULL,'OSG-Nzl 1m',1);
INSERT INTO "usage" VALUES('EPSG','10655','concatenated_operation','EPSG','8563','EPSG','1175','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8564','NAD27(CGQ77) to WGS 84 (2)','','EPSG','4609','EPSG','4326',NULL,'EPSG-Can Qc NT2',1);
INSERT INTO "usage" VALUES('EPSG','10656','concatenated_operation','EPSG','8564','EPSG','1368','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8565','NAD27 to WGS 84 (31)','','EPSG','4267','EPSG','4326',NULL,'EPSG-Can Que',1);
INSERT INTO "usage" VALUES('EPSG','10657','concatenated_operation','EPSG','8565','EPSG','1368','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8566','NAD83 to WGS 84 (6)','','EPSG','4269','EPSG','4326',NULL,'EPSG-Can Qc',1);
INSERT INTO "usage" VALUES('EPSG','10658','concatenated_operation','EPSG','8566','EPSG','1368','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8568','Deir ez Zor to WGS 84 (1)','Can be implemented as a position vector tfm with param. values dX=-174.6 dY=-3.1 dZ=238.1m; rX=rY=0 rZ=0.814"; dS=-0.38 ppm.','EPSG','4227','EPSG','4326',6.0,'EPSG-Syr',0);
INSERT INTO "usage" VALUES('EPSG','10660','concatenated_operation','EPSG','8568','EPSG','2329','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8569','ED50 to WGS 84 (21)','Included in Statens Kartverk programme wsktrans between 1997 (v3.1) and 2001 (v4.0). Replaced by ED50 to WGS 84 (23) (code 1612) in April 2001.','EPSG','4230','EPSG','4326',1.5,'EPSG-Nor N65 1997',0);
INSERT INTO "usage" VALUES('EPSG','10661','concatenated_operation','EPSG','8569','EPSG','2332','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8571','Accra to WGS 84 (2)','Can be implemented as a position vector tfm dX=-171.16 dY=17.29 dZ=325.21m, rX=rY=0 rZ=0.814", dS=-0.38 ppm. See tfm code 15495. Found in use within oil industry erroneously concatenated as dX=-171.16 dY=17.29 dZ=327.81m, rX=rY0 rZ=0.554", dS=0.2263 ppm.','EPSG','4168','EPSG','4326',26.0,'EPSG-Gha',0);
INSERT INTO "usage" VALUES('EPSG','10663','concatenated_operation','EPSG','8571','EPSG','1505','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8572','Amersfoort to WGS 84 (2)','Parameter values for step 1 from Amersfoort to ETRS89 (2) (code 1751). Step 2 assumes that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Supersedes Amersfoort to WGS 84 (1) (code 1112).','EPSG','4289','EPSG','4326',NULL,'EPSG-Nld',1);
INSERT INTO "usage" VALUES('EPSG','10664','concatenated_operation','EPSG','8572','EPSG','1275','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8573','RGF93 to WGS 84 (1)','','EPSG','4171','EPSG','4326',NULL,'EPSG-Fra',1);
INSERT INTO "usage" VALUES('EPSG','10665','concatenated_operation','EPSG','8573','EPSG','1096','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8574','American Samoa 1962 to WGS 84 (2)','Transformation actually to NAD83(HARN), but for many purposes NAD83(HARNS) can be considered to be coincident with WGS 84.','EPSG','4169','EPSG','4326',NULL,'EPSG-Asm',1);
INSERT INTO "usage" VALUES('EPSG','10666','concatenated_operation','EPSG','8574','EPSG','2288','EPSG','1045');
INSERT INTO "concatenated_operation" VALUES('EPSG','8575','American Samoa 1962 to WGS 84 (3)','Transformation actually to NAD83(HARN), but for many purposes NAD83(HARNS) can be considered to be coincident with WGS 84.','EPSG','4169','EPSG','4326',NULL,'EPSG-Asm',1);
INSERT INTO "usage" VALUES('EPSG','10667','concatenated_operation','EPSG','8575','EPSG','2289','EPSG','1045');
INSERT INTO "concatenated_operation" VALUES('EPSG','8576','AGD66 to WGS 84 (9)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Supersedes AGD66 to WGS 84 (4) (code 8398).','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus Tas 1m',1);
INSERT INTO "usage" VALUES('EPSG','10668','concatenated_operation','EPSG','8576','EPSG','1282','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8577','AGD66 to WGS 84 (10)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84.','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus NT',1);
INSERT INTO "usage" VALUES('EPSG','10669','concatenated_operation','EPSG','8577','EPSG','2284','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8578','AGD66 to WGS 84 (11)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Supersedes AGD66 to WGS 84 (3) (code 8396) and AGD66 to WGS 84 (6) (code 8408).','EPSG','4202','EPSG','4326',NULL,'EPSG-Aus',1);
INSERT INTO "usage" VALUES('EPSG','10670','concatenated_operation','EPSG','8578','EPSG','2287','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8579','AGD84 to WGS 84 (6)','Approximation at the +/- 1m level assuming that GDA94 is equivalent to WGS 84. Supersedes AGD84 to WGS 84 (5) (code 8560).','EPSG','4203','EPSG','4326',NULL,'EPSG-Aus WA',1);
INSERT INTO "usage" VALUES('EPSG','10671','concatenated_operation','EPSG','8579','EPSG','1280','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8580','IRENET95 to WGS 84 (1)','Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.','EPSG','4173','EPSG','4326',NULL,'OSI-Ire',1);
INSERT INTO "usage" VALUES('EPSG','10672','concatenated_operation','EPSG','8580','EPSG','1305','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8581','PSD93 to WGS 84 (2)','Replaced by PSD93 to WGS 84 (1) (code 1439) in 1997. Can be implemented as a position vector tfm with parameter values dX= -182.046 dY= -225.604 dZ=+173.384m rX= -0.616 rY= -1.655 rZ=+8.378" dS=16.8673ppm.','EPSG','4134','EPSG','4326',2.5,'PDO-Omn 93',0);
INSERT INTO "usage" VALUES('EPSG','10673','concatenated_operation','EPSG','8581','EPSG','3288','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8582','Old Hawaiian to WGS 84 (2)','Transformation steps are from Old Hawaiian to NAD83(HARN) (1) (code 8508) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4135','EPSG','4326',1.5,'EPSG-Usa Hi',0);
INSERT INTO "usage" VALUES('EPSG','10674','concatenated_operation','EPSG','8582','EPSG','1334','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8583','Puerto Rico to WGS 84 (2)','Transformation steps are from Puerto Rico to NAD83(HARN) (1) (code 4435) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4139','EPSG','4326',1.5,'EPSG-PRVI',0);
INSERT INTO "usage" VALUES('EPSG','10675','concatenated_operation','EPSG','8583','EPSG','3634','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8584','NAD27 to NAD83(CSRS98) (3)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 8585.','EPSG','4267','EPSG','4140',NULL,'EPSG-Can AB',1);
INSERT INTO "usage" VALUES('EPSG','10676','concatenated_operation','EPSG','8584','EPSG','2376','EPSG','1151');
INSERT INTO "concatenated_operation" VALUES('EPSG','8585','NAD27 to WGS 84 (36)','Steps based on concatenated transformation NAD27 to NAD83(CSRS)v4 (3) (code 9336) assuming that NAD83(CSRS)v4 is equivalent to WGS 84.','EPSG','4267','EPSG','4326',2.5,'EPSG-Can AB',0);
INSERT INTO "usage" VALUES('EPSG','10677','concatenated_operation','EPSG','8585','EPSG','2376','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8586','NAD27 to NAD83(HARN) (38)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8592.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa AR',0);
INSERT INTO "usage" VALUES('EPSG','10678','concatenated_operation','EPSG','8586','EPSG','1374','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8587','NAD27 to NAD83(HARN) (39)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8600.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa IA',0);
INSERT INTO "usage" VALUES('EPSG','10679','concatenated_operation','EPSG','8587','EPSG','1384','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8588','NAD27 to NAD83(HARN) (40)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8608.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa MN',0);
INSERT INTO "usage" VALUES('EPSG','10680','concatenated_operation','EPSG','8588','EPSG','1392','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8589','NAD27 to NAD83(HARN) (41)','May be taken as approximate transformation NAD27 to WGS 84 - see code 8610.','EPSG','4267','EPSG','4152',0.2,'NGS-Usa MO',0);
INSERT INTO "usage" VALUES('EPSG','10681','concatenated_operation','EPSG','8589','EPSG','1394','EPSG','1032');
INSERT INTO "concatenated_operation" VALUES('EPSG','8590','NAD27 to WGS 84 (37)','Transformation steps are from NAD27 to NAD83(HARN) (1) (code 8460) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa AL',0);
INSERT INTO "usage" VALUES('EPSG','10682','concatenated_operation','EPSG','8590','EPSG','1372','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8591','NAD27 to WGS 84 (38)','Transformation steps are from NAD27 to NAD83(HARN) (2) (code 8461) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa AZ',0);
INSERT INTO "usage" VALUES('EPSG','10683','concatenated_operation','EPSG','8591','EPSG','1373','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8592','NAD27 to WGS 84 (39)','Transformation steps are from NAD27 to NAD83(HARN) (38) (code 8586) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa AR',0);
INSERT INTO "usage" VALUES('EPSG','10684','concatenated_operation','EPSG','8592','EPSG','1374','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8593','NAD27 to WGS 84 (40)','Transformation steps are from NAD27 to NAD83(HARN) (3) (code 8462) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa CA n',0);
INSERT INTO "usage" VALUES('EPSG','10685','concatenated_operation','EPSG','8593','EPSG','2297','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8594','NAD27 to WGS 84 (41)','Transformation steps are from NAD27 to NAD83(HARN) (4) (code 8463) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa CA s',0);
INSERT INTO "usage" VALUES('EPSG','10686','concatenated_operation','EPSG','8594','EPSG','2298','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8595','NAD27 to WGS 84 (42)','Transformation steps are from NAD27 to NAD83(HARN) (5) (code 8464) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa CO',0);
INSERT INTO "usage" VALUES('EPSG','10687','concatenated_operation','EPSG','8595','EPSG','1376','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8596','NAD27 to WGS 84 (43)','Transformation steps are from NAD27 to NAD83(HARN) (7) (code 8466) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa FL',0);
INSERT INTO "usage" VALUES('EPSG','10688','concatenated_operation','EPSG','8596','EPSG','1379','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8597','NAD27 to WGS 84 (44)','Transformation steps are from NAD27 to NAD83(HARN) (6) (code 8465) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa GA',0);
INSERT INTO "usage" VALUES('EPSG','10689','concatenated_operation','EPSG','8597','EPSG','1380','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8598','NAD27 to WGS 84 (45)','Transformation steps are from NAD27 to NAD83(HARN) (36) (code 8553) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa IL',0);
INSERT INTO "usage" VALUES('EPSG','10690','concatenated_operation','EPSG','8598','EPSG','1382','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8599','NAD27 to WGS 84 (46)','Transformation steps are from NAD27 to NAD83(HARN) (30) (code 8509) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa IN',0);
INSERT INTO "usage" VALUES('EPSG','10691','concatenated_operation','EPSG','8599','EPSG','1383','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8600','NAD27 to WGS 84 (47)','Transformation steps are from NAD27 to NAD83(HARN) (39) (code 8587) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa IA',0);
INSERT INTO "usage" VALUES('EPSG','10692','concatenated_operation','EPSG','8600','EPSG','1384','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8601','NAD27 to WGS 84 (48)','Transformation steps are from NAD27 to NAD83(HARN) (31) (code 8510) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa KS',0);
INSERT INTO "usage" VALUES('EPSG','10693','concatenated_operation','EPSG','8601','EPSG','1385','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8602','NAD27 to WGS 84 (49)','Transformation steps are from NAD27 to NAD83(HARN) (10) (code 8469) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa KY',0);
INSERT INTO "usage" VALUES('EPSG','10694','concatenated_operation','EPSG','8602','EPSG','1386','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8603','NAD27 to WGS 84 (50)','Transformation steps are from NAD27 to NAD83(HARN) (11) (code 8470) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa LA',0);
INSERT INTO "usage" VALUES('EPSG','10695','concatenated_operation','EPSG','8603','EPSG','1387','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8604','NAD27 to WGS 84 (51)','Transformation steps are from NAD27 to NAD83(HARN) (13) (code 8472) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa ME',0);
INSERT INTO "usage" VALUES('EPSG','10696','concatenated_operation','EPSG','8604','EPSG','1388','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8605','NAD27 to WGS 84 (52)','Transformation steps are from NAD27 to NAD83(HARN) (12) (code 8471) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa DE MD',0);
INSERT INTO "usage" VALUES('EPSG','10697','concatenated_operation','EPSG','8605','EPSG','2377','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8606','NAD27 to WGS 84 (53)','Transformation steps are from NAD27 to NAD83(HARN) (17) (code 8476) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa NewEng',0);
INSERT INTO "usage" VALUES('EPSG','10698','concatenated_operation','EPSG','8606','EPSG','2378','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8607','NAD27 to WGS 84 (54)','Transformation steps are from NAD27 to NAD83(HARN) (14) (code 8473) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa MI',0);
INSERT INTO "usage" VALUES('EPSG','10699','concatenated_operation','EPSG','8607','EPSG','1391','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8608','NAD27 to WGS 84 (55)','Transformation steps are from NAD27 to NAD83(HARN) (40) (code 8588) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa MN',0);
INSERT INTO "usage" VALUES('EPSG','10700','concatenated_operation','EPSG','8608','EPSG','1392','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8609','NAD27 to WGS 84 (56)','Transformation steps are from NAD27 to NAD83(HARN) (15) (code 8474) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa MS',0);
INSERT INTO "usage" VALUES('EPSG','10701','concatenated_operation','EPSG','8609','EPSG','1393','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8610','NAD27 to WGS 84 (57)','Transformation steps are from NAD27 to NAD83(HARN) (41) (code 8589) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa MO',0);
INSERT INTO "usage" VALUES('EPSG','10702','concatenated_operation','EPSG','8610','EPSG','1394','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8611','NAD27 to WGS 84 (58)','Transformation steps are from NAD27 to NAD83(HARN) (8) (code 8467) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa ID MT e',0);
INSERT INTO "usage" VALUES('EPSG','10703','concatenated_operation','EPSG','8611','EPSG','2382','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8612','NAD27 to WGS 84 (59)','Transformation steps are from NAD27 to NAD83(HARN) (9) (code 8468) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa ID MT w',0);
INSERT INTO "usage" VALUES('EPSG','10704','concatenated_operation','EPSG','8612','EPSG','2383','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8613','NAD27 to WGS 84 (60)','Transformation steps are from NAD27 to NAD83(HARN) (16) (code 8475) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa NE',0);
INSERT INTO "usage" VALUES('EPSG','10705','concatenated_operation','EPSG','8613','EPSG','1396','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8614','NAD27 to WGS 84 (61)','Transformation steps are from NAD27 to NAD83(HARN) (32) (code 8511) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa NV',0);
INSERT INTO "usage" VALUES('EPSG','10706','concatenated_operation','EPSG','8614','EPSG','1397','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8615','NAD27 to WGS 84 (62)','Transformation steps are from NAD27 to NAD83(HARN) (37) (code 8554) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa NJ',0);
INSERT INTO "usage" VALUES('EPSG','10707','concatenated_operation','EPSG','8615','EPSG','1399','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8616','NAD27 to WGS 84 (63)','Transformation steps are from NAD27 to NAD83(HARN) (18) (code 8477) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa NM',0);
INSERT INTO "usage" VALUES('EPSG','10708','concatenated_operation','EPSG','8616','EPSG','1400','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8617','NAD27 to WGS 84 (64)','Transformation steps are from NAD27 to NAD83(HARN) (19) (code 8478) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa NY',0);
INSERT INTO "usage" VALUES('EPSG','10709','concatenated_operation','EPSG','8617','EPSG','1401','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8618','NAD27 to WGS 84 (65)','Transformation steps are from NAD27 to NAD83(HARN) (20) (code 8479) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa ND',0);
INSERT INTO "usage" VALUES('EPSG','10710','concatenated_operation','EPSG','8618','EPSG','1403','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8619','NAD27 to WGS 84 (66)','Transformation steps are from NAD27 to NAD83(HARN) (33) (code 8512) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa OH',0);
INSERT INTO "usage" VALUES('EPSG','10711','concatenated_operation','EPSG','8619','EPSG','1404','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8620','NAD27 to WGS 84 (67)','Transformation steps are from NAD27 to NAD83(HARN) (21) (code 8480) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa OK',0);
INSERT INTO "usage" VALUES('EPSG','10712','concatenated_operation','EPSG','8620','EPSG','1405','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8621','NAD27 to WGS 84 (68)','Transformation steps are from NAD27 to NAD83(HARN) (27) (code 8487) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa OR WA',0);
INSERT INTO "usage" VALUES('EPSG','10713','concatenated_operation','EPSG','8621','EPSG','2381','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8622','NAD27 to WGS 84 (69)','Transformation steps are from NAD27 to NAD83(HARN) (22) (code 6739) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa SD',0);
INSERT INTO "usage" VALUES('EPSG','10714','concatenated_operation','EPSG','8622','EPSG','1410','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8623','NAD27 to WGS 84 (70)','Transformation steps are from NAD27 to NAD83(HARN) (23) (code 8483) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa TN',0);
INSERT INTO "usage" VALUES('EPSG','10715','concatenated_operation','EPSG','8623','EPSG','1411','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8624','NAD27 to WGS 84 (71)','Transformation steps are from NAD27 to NAD83(HARN) (24) (code 8484) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa TX e',0);
INSERT INTO "usage" VALUES('EPSG','10716','concatenated_operation','EPSG','8624','EPSG','2379','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8625','NAD27 to WGS 84 (72)','Transformation steps are from NAD27 to NAD83(HARN) (25) (code 8485) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa TX w',0);
INSERT INTO "usage" VALUES('EPSG','10717','concatenated_operation','EPSG','8625','EPSG','2380','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8626','NAD27 to WGS 84 (73)','Transformation steps are from NAD27 to NAD83(HARN) (34) (code 8513) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa UT',0);
INSERT INTO "usage" VALUES('EPSG','10718','concatenated_operation','EPSG','8626','EPSG','1413','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8627','NAD27 to WGS 84 (74)','Transformation steps are from NAD27 to NAD83(HARN) (26) (code 8486) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa VA',0);
INSERT INTO "usage" VALUES('EPSG','10719','concatenated_operation','EPSG','8627','EPSG','1415','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8628','NAD27 to WGS 84 (75)','Transformation steps are from NAD27 to NAD83(HARN) (35) (code 8514) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa WV',0);
INSERT INTO "usage" VALUES('EPSG','10720','concatenated_operation','EPSG','8628','EPSG','1417','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8629','NAD27 to WGS 84 (76)','Transformation steps are from NAD27 to NAD83(HARN) (28) (code 8488) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa WI',0);
INSERT INTO "usage" VALUES('EPSG','10721','concatenated_operation','EPSG','8629','EPSG','1418','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8630','NAD27 to WGS 84 (77)','Transformation steps are from NAD27 to NAD83(HARN) (29) (code 8489) assuming that NAD83(HARN) is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','4267','EPSG','4326',1.5,'EPSG-Usa WY',0);
INSERT INTO "usage" VALUES('EPSG','10722','concatenated_operation','EPSG','8630','EPSG','1419','EPSG','1252');
INSERT INTO "concatenated_operation" VALUES('EPSG','8631','Garoua to WGS 84 (1)','','EPSG','4197','EPSG','4326',6.0,'EPSG-Cmr',0);
INSERT INTO "usage" VALUES('EPSG','10723','concatenated_operation','EPSG','8631','EPSG','2590','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8632','Kousseri to WGS 84 (1)','','EPSG','4198','EPSG','4326',6.0,'EPSG-Cmr',0);
INSERT INTO "usage" VALUES('EPSG','10724','concatenated_operation','EPSG','8632','EPSG','2591','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8633','Yoff to WGS 84 (1)','Derived via WGS72. Can be used as a single positon vector transformation with parameter vaues of dX = -37 m, dY = +157 m, dZ = +89.5 m, rX = rY = 0 sec, rZ = 0.554 sec, dS = 0.219 ppm','EPSG','4310','EPSG','4326',26.0,'EPSG-SEN',0);
INSERT INTO "usage" VALUES('EPSG','10725','concatenated_operation','EPSG','8633','EPSG','1207','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8634','Beduaram to WGS 84 (1)','Derived via WGS72BE. Can be used as a single positon vector transformation with parameter vaues of dX = -101 m, dY = -111 m, dZ = +188.9 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm','EPSG','4213','EPSG','4326',16.0,'ELF-Ner SE',0);
INSERT INTO "usage" VALUES('EPSG','10726','concatenated_operation','EPSG','8634','EPSG','2771','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8635','NAD27 to NAD83(CSRS) (3)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 8585.','EPSG','4267','EPSG','4617',2.5,'EPSG-Can AB',1);
INSERT INTO "usage" VALUES('EPSG','10727','concatenated_operation','EPSG','8635','EPSG','2376','EPSG','1151');
INSERT INTO "concatenated_operation" VALUES('EPSG','8636','Carthage (Paris) to WGS 84 (1)','','EPSG','4816','EPSG','4326',14.0,'EPSG-Tun',0);
INSERT INTO "usage" VALUES('EPSG','10728','concatenated_operation','EPSG','8636','EPSG','1618','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8637','Lisbon (Lisbon) to WGS 84 (1)','','EPSG','4803','EPSG','4326',NULL,'EPSG-Prt',1);
INSERT INTO "usage" VALUES('EPSG','10729','concatenated_operation','EPSG','8637','EPSG','1294','EPSG','1042');
INSERT INTO "concatenated_operation" VALUES('EPSG','8638','Makassar (Jakarta) to WGS 84 (1)','','EPSG','4804','EPSG','4326',999.0,'EPSG - Idn Sul SW',0);
INSERT INTO "usage" VALUES('EPSG','10730','concatenated_operation','EPSG','8638','EPSG','1316','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8639','NGO 1948 (Oslo) to WGS 84 (1)','','EPSG','4817','EPSG','4326',3.0,'EPSG-Nor',0);
INSERT INTO "usage" VALUES('EPSG','10731','concatenated_operation','EPSG','8639','EPSG','1352','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8640','Nord Sahara 1959 (Paris) to WGS 84 (1)','','EPSG','4819','EPSG','4326',NULL,'EPSG-Dza',1);
INSERT INTO "usage" VALUES('EPSG','10732','concatenated_operation','EPSG','8640','EPSG','1026','EPSG','1160');
INSERT INTO "concatenated_operation" VALUES('EPSG','8641','Segara (Jakarta) to WGS 84 (1)','','EPSG','4820','EPSG','4326',999.0,'EPSG-Idn Kal SW',0);
INSERT INTO "usage" VALUES('EPSG','10733','concatenated_operation','EPSG','8641','EPSG','1360','EPSG','1153');
INSERT INTO "concatenated_operation" VALUES('EPSG','8642','S-JTSK (Ferro) to WGS 84 (1)','Replaced by S-JTSK (Ferro) to WGS 84 (3) (code 5242) in 2009.','EPSG','4818','EPSG','4326',1.0,'EPSG-Cze',0);
INSERT INTO "usage" VALUES('EPSG','10734','concatenated_operation','EPSG','8642','EPSG','1079','EPSG','1041');
INSERT INTO "concatenated_operation" VALUES('EPSG','8643','Greek to WGS 84 (1)','','EPSG','4120','EPSG','4326',6.0,'EPSG-Grc',0);
INSERT INTO "usage" VALUES('EPSG','10735','concatenated_operation','EPSG','8643','EPSG','3254','EPSG','1045');
INSERT INTO "concatenated_operation" VALUES('EPSG','8644','Greek (Athens) to WGS 84 (1)','','EPSG','4815','EPSG','4326',5.0,'EPSG-Grc',0);
INSERT INTO "usage" VALUES('EPSG','10736','concatenated_operation','EPSG','8644','EPSG','3254','EPSG','1045');
INSERT INTO "concatenated_operation" VALUES('EPSG','8645','MGI (Ferro) to WGS 84 (2)','','EPSG','4805','EPSG','4326',NULL,'BEV-Aut',1);
INSERT INTO "usage" VALUES('EPSG','10737','concatenated_operation','EPSG','8645','EPSG','1037','EPSG','1042');
INSERT INTO "concatenated_operation" VALUES('EPSG','8646','Manoca 1962 to WGS 84 (1)','Derived via WGS72BE. Can be used as a single positon vector transformation with parameter vaues of dX = -56.7 m, dY = -171.8 m, dZ = -40.6 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm','EPSG','4193','EPSG','4326',NULL,'OGP-Cmr',1);
INSERT INTO "usage" VALUES('EPSG','10738','concatenated_operation','EPSG','8646','EPSG','2555','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8647','NAD27 to WGS 84 (78)','','EPSG','4267','EPSG','4326',3.0,'EPSG-Can E Off',0);
INSERT INTO "usage" VALUES('EPSG','10739','concatenated_operation','EPSG','8647','EPSG','2831','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8648','Lisbon 1890 (Lisbon) to WGS 84 (1)','','EPSG','4904','EPSG','4326',5.0,'EPSG-Prt 5m',0);
INSERT INTO "usage" VALUES('EPSG','10740','concatenated_operation','EPSG','8648','EPSG','1294','EPSG','1157');
INSERT INTO "concatenated_operation" VALUES('EPSG','8649','Lisbon 1890 (Lisbon) to WGS 84 (2)','','EPSG','4904','EPSG','4326',1.0,'EPSG-Prt 1m',0);
INSERT INTO "usage" VALUES('EPSG','10741','concatenated_operation','EPSG','8649','EPSG','1294','EPSG','1158');
INSERT INTO "concatenated_operation" VALUES('EPSG','8650','Palestine 1923 to WGS 84 (2)','Accuracy: 1m to north and 10m to south of east-west line through Beersheba (31°15''N). Can be implemented as a geocentric translation tfm with param. Values dX = -229m, dY = -67m, dZ= +277m.','EPSG','4281','EPSG','4326',2.5,'SoI-Isr',0);
INSERT INTO "usage" VALUES('EPSG','10742','concatenated_operation','EPSG','8650','EPSG','2603','EPSG','1153');
INSERT INTO "concatenated_operation" VALUES('EPSG','8651','Vientiane 1982 to WGS 84 (1)','Can be implemented as a geocentric translation tfm with param. values dX = 42.358m, dY = -124.688m, dZ= -37.366m.','EPSG','4676','EPSG','4326',6.0,'EPSG-Lao',0);
INSERT INTO "usage" VALUES('EPSG','10743','concatenated_operation','EPSG','8651','EPSG','1138','EPSG','1045');
INSERT INTO "concatenated_operation" VALUES('EPSG','8652','Lao 1993 to WGS 84 (1)','Can be implemented as a geocentric translation tfm with param. values dX = 43.933m, dY = -129.593m, dZ= -39.331m.','EPSG','4677','EPSG','4326',6.0,'EPSG-Lao',0);
INSERT INTO "usage" VALUES('EPSG','10744','concatenated_operation','EPSG','8652','EPSG','1138','EPSG','1045');
INSERT INTO "concatenated_operation" VALUES('EPSG','8655','Manoca 1962 to WGS 84 (2)','Derived via WGS 72BE. Can be implemented as a single positon vector transformation with parameter vaues of dX = -56.7 m, dY = -171.8 m, dZ = -38.7 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm.','EPSG','4193','EPSG','4326',6.0,'OGP-Cmr',0);
INSERT INTO "usage" VALUES('EPSG','10747','concatenated_operation','EPSG','8655','EPSG','2555','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8656','Mhast (offshore) to WGS 84 (1)','Derived via WGS 72BE. Can be implemented as a single positon vector transformation with parameter vaues of dX = -255.0 m, dY = -29.0 m, dZ = -103.1 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm.','EPSG','4705','EPSG','4326',11.0,'OGP-Ago Cab',0);
INSERT INTO "usage" VALUES('EPSG','10748','concatenated_operation','EPSG','8656','EPSG','3180','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8657','Egypt Gulf of Suez S-650 TL to WGS 84 (1)','Can be implemented as a single positon vector transformation with parameter vaues of dX = -123.0 m, dY = 98.0 m, dZ = 3.9 m, rX = rY = 0 sec, rZ = 0.814 sec, dS = -0.38 ppm. Replaced by Egypt Gulf of Suez S-650 TL to WGS 84 (2) (tfm code 15846).','EPSG','4706','EPSG','4326',6.0,'OGP-Egy GoS',0);
INSERT INTO "usage" VALUES('EPSG','10749','concatenated_operation','EPSG','8657','EPSG','2341','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','8659','Kertau (RSO) to WGS 84 (1)','Step 1 is necessary to rescale the grid units before using step 2.','EPSG','4751','EPSG','4326',15.0,'OGP-Mys',0);
INSERT INTO "usage" VALUES('EPSG','10751','concatenated_operation','EPSG','8659','EPSG','1309','EPSG','1164');
INSERT INTO "concatenated_operation" VALUES('EPSG','9103','NAD27 to ITRF2014 (1)','For use with legacy data - see CT code 9104 for alternative for new areas. Note that steps 1 and 2 are documented in the geog2D domain, steps 3 and 4 in the geocentric domain. Steps 3 and 4 may be implemented in one operation using CT code 8970.','EPSG','4267','EPSG','7789',1.5,'IOGP-Usa GoM legacy',0);
INSERT INTO "usage" VALUES('EPSG','10917','concatenated_operation','EPSG','9103','EPSG','3357','EPSG','1136');
INSERT INTO "concatenated_operation" VALUES('EPSG','9336','NAD27 to NAD83(CSRS)v4 (3)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 8585.','EPSG','4267','EPSG','8246',2.5,'EPSG-Can AB',0);
INSERT INTO "usage" VALUES('EPSG','14011','concatenated_operation','EPSG','9336','EPSG','2376','EPSG','1151');
INSERT INTO "concatenated_operation" VALUES('EPSG','9337','NTF (Paris) to RGF93 (1)','See transformation code 7811 for an alternative which uses the NTv2 method as an emulation of the geocentric interpolation in the second step.','EPSG','4807','EPSG','4171',1.0,'IOGP-Fra',0);
INSERT INTO "usage" VALUES('EPSG','14012','concatenated_operation','EPSG','9337','EPSG','3694','EPSG','1041');
INSERT INTO "concatenated_operation" VALUES('EPSG','9499','ETRS89 to GHA height (2)','This concatenated operation gives the same result as the HoehenGrid-plus offset from ETRS89 to GHA height. HoehenGrid-plus is implemented in BEV-Transformator using MGI (CRS 4312) as the interpolation CRS for the grid','EPSG','4937','EPSG','5778',0.07,'BEV-Aut',0);
INSERT INTO "usage" VALUES('EPSG','14958','concatenated_operation','EPSG','9499','EPSG','1037','EPSG','1133');
INSERT INTO "concatenated_operation" VALUES('EPSG','9683','ITRF2014 to GDA94 (2)','See ITRF2014 to GDA94 (1) (CT 9682) for conformal-only alternative (i.e. without distortion modelling).','EPSG','9000','EPSG','4283',0.06,'ICSM-Aus Conf+Dist',0);
INSERT INTO "usage" VALUES('EPSG','14962','concatenated_operation','EPSG','9683','EPSG','2575','EPSG','1234');
INSERT INTO "concatenated_operation" VALUES('EPSG','9685','ATRF2014 to GDA94 (2)','See ATRF2014 to GDA94 (1) (CT 9684) for conformal-only alternative (i.e. without distortion modelling).','EPSG','9309','EPSG','4283',0.06,'ICSM-Aus Conf+Dist',0);
INSERT INTO "usage" VALUES('EPSG','14963','concatenated_operation','EPSG','9685','EPSG','2575','EPSG','1234');
INSERT INTO "concatenated_operation" VALUES('EPSG','9687','GDA94 to WGS 84 (G1762) (2)','See GDA94 to WGS 84 (G1762) (1) (CT code 9686) for conformal-only alternative (i.e. without distortion modelling).','EPSG','4283','EPSG','9057',0.25,'ICSM-Aus Conf+Dist',0);
INSERT INTO "usage" VALUES('EPSG','14964','concatenated_operation','EPSG','9687','EPSG','2575','EPSG','1234');
INSERT INTO "concatenated_operation" VALUES('EPSG','9731','ETRS89 to ETRS89 + Catania 1965 height (1)','','EPSG','4937','EPSG','9724',0.035,'IGM-Ita 2005 Sicily',1);
INSERT INTO "usage" VALUES('EPSG','15285','concatenated_operation','EPSG','9731','EPSG','2340','EPSG','1270');
INSERT INTO "concatenated_operation" VALUES('EPSG','9750','ETRS89 to Catania 1965 height (1)','','EPSG','4937','EPSG','9721',0.035,'IGM-Ita 2005 Sicily',0);
INSERT INTO "usage" VALUES('EPSG','15385','concatenated_operation','EPSG','9750','EPSG','2340','EPSG','1133');
+22 -10
View File
@@ -28,23 +28,23 @@ INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',1,'EPSG','1265');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',2,'EPSG','6873');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',1,'EPSG','1763');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',2,'EPSG','15958');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',1,'EPSG','7963');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',2,'EPSG','7964');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',1,'EPSG','7963');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',2,'EPSG','7966');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',1,'EPSG','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',2,'EPSG','7969');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',1,'EPSG','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',2,'EPSG','7970');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',1,'EPSG','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',2,'EPSG','7971');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',1,'EPSG','7982');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',1,'EPSG','7812');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',2,'EPSG','7977');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',1,'EPSG','7980');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',2,'EPSG','7984');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',2,'EPSG','7812');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',1,'EPSG','7980');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',2,'EPSG','7984');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',3,'EPSG','7985');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',2,'EPSG','7812');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',3,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8047',1,'EPSG','1147');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8047',2,'EPSG','1146');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8094',1,'EPSG','1763');
@@ -56,7 +56,7 @@ INSERT INTO "concatenated_operation_step" VALUES('EPSG','8175',2,'EPSG','1169');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',1,'EPSG','1265');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',2,'EPSG','1227');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',1,'EPSG','1759');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',2,'EPSG','1123');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',2,'EPSG','8452');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8183',1,'EPSG','1273');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8183',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8186',1,'EPSG','1763');
@@ -429,3 +429,15 @@ INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',1,'EPSG','1313');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',2,'EPSG','9244');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',1,'EPSG','1763');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',2,'EPSG','9327');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',1,'EPSG','9276');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',2,'EPSG','9275');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9683',1,'EPSG','8049');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9683',2,'EPSG','8447');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9685',1,'EPSG','9459');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9685',2,'EPSG','8447');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9687',1,'EPSG','8447');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9687',2,'EPSG','8448');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9731',1,'EPSG','9729');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9731',2,'EPSG','9726');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9750',1,'EPSG','9727');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9750',2,'EPSG','9726');
+5106 -2423
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -83,7 +83,7 @@ BEGIN
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1068' AND (NEW.method_name != 'Height Depth Reversal' OR NEW.param1_auth_name IS NOT NULL OR NEW.param1_code IS NOT NULL OR NEW.param1_name IS NOT NULL OR NEW.param1_value IS NOT NULL OR NEW.param1_uom_auth_name IS NOT NULL OR NEW.param1_uom_code IS NOT NULL OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Change of Vertical Unit')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1069' AND (NEW.method_name != 'Change of Vertical Unit' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '1051' OR NEW.param1_name != 'Unit conversion scalar' OR (NOT((NEW.param1_value IS NULL AND NEW.param1_uom_auth_name IS NULL AND NEW.param1_uom_code IS NULL) OR (NEW.param1_value IS NOT NULL AND (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) = 'scale'))) OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1104' AND (NEW.method_name != 'Change of Vertical Unit' OR NEW.param1_auth_name IS NOT NULL OR NEW.param1_code IS NOT NULL OR NEW.param1_name IS NOT NULL OR NEW.param1_value IS NOT NULL OR NEW.param1_uom_auth_name IS NOT NULL OR NEW.param1_uom_code IS NOT NULL OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Hotine Oblique Mercator (variant B)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9815' AND (NEW.method_name != 'Hotine Oblique Mercator (variant B)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8812' OR NEW.param2_name != 'Longitude of projection centre' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8813' OR NEW.param3_name != 'Azimuth of initial line' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8814' OR NEW.param4_name != 'Angle from Rectified to Skew Grid' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8815' OR NEW.param5_name != 'Scale factor on initial line' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'scale' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8816' OR NEW.param6_name != 'Easting at projection centre' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '8817' OR NEW.param7_name != 'Northing at projection centre' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'length');
+2
View File
@@ -134,3 +134,5 @@ INSERT INTO "coordinate_system" VALUES('EPSG','6509','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','6510','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','6511','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','6512','Cartesian',3);
INSERT INTO "coordinate_system" VALUES('EPSG','32760','ordinal',2);
INSERT INTO "coordinate_system" VALUES('EPSG','32761','ordinal',2);
+162 -57
View File
@@ -1,5 +1,8 @@
-- This file is hand generated.
INSERT INTO "extent" VALUES('PROJ','EXTENT_UNKNOWN','Not specified','Not specified.',-90.0,90.0,-180.0,180.0,0);
INSERT INTO "scope" VALUES('PROJ','SCOPE_UNKNOWN','Not known.',0);
-- grid_alternatives entries created from existing ones
INSERT INTO grid_alternatives(original_grid_name,
@@ -18,60 +21,88 @@ INSERT INTO grid_alternatives(original_grid_name,
0,
NULL,
'https://cdn.proj.org/au_ga_AUSGeoid98.tif', 1, 1, NULL FROM grid_transformation WHERE
grid_name LIKE '%DAT.htm' AND name LIKE 'GDA94 to AHD height%';
grid_name LIKE '%DAT.htm' AND name LIKE 'GDA94 to AHD %height%';
-- OGC CRS84, CRS27 and CRS83 longitude/latitude ordered CRS
INSERT INTO "geodetic_crs" VALUES('OGC','CRS84','WGS 84 (CRS84)',NULL,NULL,'geographic 2D','EPSG','6424','EPSG','6326','EPSG','1262',NULL,0);
INSERT INTO "geodetic_crs" VALUES('OGC','CRS84','WGS 84 (CRS84)',NULL,'geographic 2D','EPSG','6424','EPSG','6326',NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'OGC_CRS84_USAGE',
'geodetic_crs',
'OGC',
'CRS84',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "other_transformation" VALUES('PROJ','CRS84_TO_EPSG_4326','OGC:CRS84 to WGS 84',NULL,NULL,'EPSG','9843','Axis Order Reversal (2D)','OGC','CRS84','EPSG','4326','EPSG','1262',0.0,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "geodetic_crs" VALUES('OGC','CRS27','NAD27 (CRS27)',NULL,'geographic 2D','EPSG','6424','EPSG','6267',NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'OGC_CRS27_USAGE',
'geodetic_crs',
'OGC',
'CRS27',
'EPSG','1349', -- extent
'EPSG','1024' -- unknown
);
-- Temporary entry for NZGD2000 deformation model
INSERT INTO other_transformation VALUES(
'PROJ','NZGD2000-20180701','NZGD2000 to ITRF96',
'New Zealand Deformation Model. Defines the secular model (National Deformation Model) and patches for significant deformation events since 2000', NULL,
'PROJ', 'PROJString',
'+proj=pipeline ' ||
'+step +proj=unitconvert +xy_in=deg +xy_out=rad ' ||
'+step +proj=axisswap +order=2,1 ' ||
'+step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json ' ||
'+step +proj=axisswap +order=2,1 ' ||
'+step +proj=unitconvert +xy_in=rad +xy_out=deg',
'EPSG','4959',
'EPSG','7907',
'EPSG','1175',
NULL, --accuracy
NULL,NULL,NULL,NULL,NULL,NULL, -- param1
NULL,NULL,NULL,NULL,NULL,NULL, -- param2
NULL,NULL,NULL,NULL,NULL,NULL, -- param3
NULL,NULL,NULL,NULL,NULL,NULL, -- param4
NULL,NULL,NULL,NULL,NULL,NULL, -- param5
NULL,NULL,NULL,NULL,NULL,NULL, -- param6
NULL,NULL,NULL,NULL,NULL,NULL, -- param7
'20180701', -- operation version
0);
INSERT INTO "geodetic_crs" VALUES('OGC','CRS83','NAD83 (CRS83)',NULL,'geographic 2D','EPSG','6424','EPSG','6269',NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'OGC_CRS83_USAGE',
'geodetic_crs',
'OGC',
'CRS83',
'EPSG','1350', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF97','NZGD2000 to ITRF97','Concatenation of PROJ:NZGD2000-20180701 and 9079','','EPSG','4959','EPSG','7908','EPSG','1175',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF97',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF97',2,'EPSG','9079');
INSERT INTO "other_transformation" VALUES('PROJ','CRS84_TO_EPSG_4326','OGC:CRS84 to WGS 84',NULL,'EPSG','9843','Axis Order Reversal (2D)','OGC','CRS84','EPSG','4326',0.0,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'CRS84_TO_EPSG_4326_USAGE',
'other_transformation',
'PROJ',
'CRS84_TO_EPSG_4326',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2000','NZGD2000 to ITRF2000','Concatenation of PROJ:NZGD2000-20180701 and 9080','','EPSG','4959','EPSG','7909','EPSG','1175',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2000',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2000',2,'EPSG','9080');
INSERT INTO "other_transformation" VALUES('PROJ','CRS27_TO_EPSG_4267','OGC:CRS27 to NAD27',NULL,'EPSG','9843','Axis Order Reversal (2D)','OGC','CRS27','EPSG','4267',0.0,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'CRS27_TO_EPSG_4267_USAGE',
'other_transformation',
'PROJ',
'CRS27_TO_EPSG_4267',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2005','NZGD2000 to ITRF2005','Concatenation of PROJ:NZGD2000-20180701 and 9081','','EPSG','4959','EPSG','7910','EPSG','1175',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2005',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2005',2,'EPSG','9081');
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2008','NZGD2000 to ITRF2008','Concatenation of PROJ:NZGD2000-20180701 and EPSG:9082','','EPSG','4959','EPSG','7911','EPSG','1175',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2008',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2008',2,'EPSG','9082');
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2014','NZGD2000 to ITRF2014','Concatenation of PROJ:NZGD2000-20180701 and EPSG:9083','','EPSG','4959','EPSG','7912','EPSG','1175',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2014',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2014',2,'EPSG','9083');
INSERT INTO "other_transformation" VALUES('PROJ','CRS83_TO_EPSG_4269','OGC:CRS83 to NAD83',NULL,'EPSG','9843','Axis Order Reversal (2D)','OGC','CRS83','EPSG','4269',0.0,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'CRS83_TO_EPSG_4269_USAGE',
'other_transformation',
'PROJ',
'CRS83_TO_EPSG_4269',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
-- alias of EPSG:3857
INSERT INTO "projected_crs" VALUES('EPSG','900913','Google Maps Global Mercator',NULL,NULL,'EPSG','4499','EPSG','4326','EPSG','3856','EPSG','3544',NULL,1);
INSERT INTO "projected_crs" VALUES('EPSG','900913','Google Maps Global Mercator',NULL,'EPSG','4499','EPSG','4326','EPSG','3856',NULL,1);
INSERT INTO "usage" VALUES(
'PROJ',
'900913_USAGE',
'projected_crs',
'EPSG',
'900913',
'EPSG','3544', -- extent
'EPSG','1098'
);
-- ('EPSG','7001','ETRS89 to NAP height (1)') lacks an interpolationCRS with Amersfoort / EPSG:4289
-- See https://salsa.debian.org/debian-gis-team/proj-rdnap/blob/debian/2008-8/Use%20of%20RDTRANS2008%20and%20NAPTRANS2008.pdf
@@ -144,12 +175,71 @@ INSERT INTO "axis" VALUES('PROJ','2','Northing','N','north','PROJ','ENh',2,'EPSG
INSERT INTO "axis" VALUES('PROJ','3','Ellipsoidal height','h','up','PROJ','ENh',2,'EPSG','9001');
-- Consider all WGS84 related CRS are equivalent with an accuracy of 2m
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G730','WGS 84 to WGS 84 (G730)','','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9053','EPSG','1262',2.0,0,0,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,'',0);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G873','WGS 84 to WGS 84 (G873)','','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9054','EPSG','1262',2.0,0,0,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,'',0);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G1150','WGS 84 to WGS 84 (G1150)','','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9055','EPSG','1262',2.0,0,0,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,'',0);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G1674','WGS 84 to WGS 84 (G1674)','','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9056','EPSG','1262',2.0,0,0,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,'',0);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G1762','WGS 84 to WGS 84 (G1762)','','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9057','EPSG','1262',2.0,0,0,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,'',0);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_TRANSIT','WGS 84 to WGS 84 (Transit)','','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','8888','EPSG','1262',2.0,0,0,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,'',0);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G730','WGS 84 to WGS 84 (G730)','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9053',2.0,0,0,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,'',0);
INSERT INTO "usage" VALUES(
'PROJ',
'WGS84_TO_WGS84_G730_USAGE',
'helmert_transformation',
'PROJ',
'WGS84_TO_WGS84_G730',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G873','WGS 84 to WGS 84 (G873)','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9054',2.0,0,0,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,'',0);
INSERT INTO "usage" VALUES(
'PROJ',
'WGS84_TO_WGS84_G873_USAGE',
'helmert_transformation',
'PROJ',
'WGS84_TO_WGS84_G873',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G1150','WGS 84 to WGS 84 (G1150)','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9055',2.0,0,0,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,'',0);
INSERT INTO "usage" VALUES(
'PROJ',
'WGS84_TO_WGS84_G1150_USAGE',
'helmert_transformation',
'PROJ',
'WGS84_TO_WGS84_G1150',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G1674','WGS 84 to WGS 84 (G1674)','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9056',2.0,0,0,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,'',0);
INSERT INTO "usage" VALUES(
'PROJ',
'WGS84_TO_WGS84_G1674_USAGE',
'helmert_transformation',
'PROJ',
'WGS84_TO_WGS84_G1674',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_G1762','WGS 84 to WGS 84 (G1762)','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','9057',2.0,0,0,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,'',0);
INSERT INTO "usage" VALUES(
'PROJ',
'WGS84_TO_WGS84_G1762_USAGE',
'helmert_transformation',
'PROJ',
'WGS84_TO_WGS84_G1762',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_TRANSIT','WGS 84 to WGS 84 (Transit)','Accuracy 2m','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4326','EPSG','8888',2.0,0,0,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,'',0);
INSERT INTO "usage" VALUES(
'PROJ',
'WGS84_TO_WGS84_TRANSIT_USAGE',
'helmert_transformation',
'PROJ',
'WGS84_TO_WGS84_TRANSIT',
'EPSG','1262', -- extent
'EPSG','1024' -- unknown
);
---- Geoid models -----
@@ -181,7 +271,6 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6223','carthage','PROJ'
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6312','hermannskogel','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6299','ire65','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6272','nzgd49','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6277','OSGB36','PROJ');
-- Given that we have installed above a WGS84 alias to the datum, add also one
-- to the EPSG:4326 CRS, as this is a common use case (https://github.com/OSGeo/PROJ/issues/2216)
@@ -219,7 +308,8 @@ INSERT INTO "unit_of_measure" VALUES('PROJ','US_IN','US survey inch','length',0.
INSERT INTO "unit_of_measure" VALUES('PROJ','US_YD','US survey yard','length',0.914401828803658,'us-yd',0);
INSERT INTO "unit_of_measure" VALUES('PROJ','IND_CH','Indian chain','length',20.11669506,'ind-ch',0);
-- Deal with grid_transformation using EPSG:9635 'Geog3D to Geog2D+GravityRelatedHeight (US .gtx)' method
-- Deal with grid_transformation using EPSG:1088 'Geog3D to Geog2D+GravityRelatedHeight (gtx)' method
-- and similar ones
-- We derive records using the more classic 'Geographic3D to GravityRelatedHeight' method
-- We could probably do that at runtime too, but more simple and efficient to create records
@@ -229,7 +319,6 @@ SELECT
gt.auth_name || '_' || gt.code || '_RESTRICTED_TO_VERTCRS' AS code,
gcrs.name || ' to ' || vcrs.name || ' (from ' || gt.name || ')' AS name,
NULL AS description,
gt.scope,
'EPSG' AS method_auth_name,
'9665' AS method_code,
'Geographic3D to GravityRelatedHeight (gtx)' AS method_name,
@@ -237,8 +326,6 @@ SELECT
gt.source_crs_code,
c.vertical_crs_auth_name AS target_crs_auth_name,
c.vertical_crs_code AS target_crs_code,
gt.area_of_use_auth_name,
gt.area_of_use_code,
gt.accuracy,
gt.grid_param_auth_name,
gt.grid_param_code,
@@ -256,4 +343,22 @@ FROM grid_transformation gt
JOIN compound_crs c ON gt.target_crs_code = c.code AND gt.target_crs_auth_name = c.auth_name
JOIN geodetic_crs gcrs ON gt.source_crs_auth_name = gcrs.auth_name AND gt.source_crs_code = gcrs.code
JOIN vertical_crs vcrs on vcrs.auth_name = c.vertical_crs_auth_name AND vcrs.code = c.vertical_crs_code
WHERE method_auth_name = 'EPSG' AND method_code = '9635' AND gt.deprecated = 0;
WHERE method_auth_name = 'EPSG' AND method_name LIKE 'Geog3D to Geog2D+%'
AND NOT EXISTS (SELECT 1 FROM grid_transformation gt2 WHERE gt2.method_name LIKE 'Geographic3D to%' AND gt2.source_crs_auth_name = gt.source_crs_auth_name AND gt2.source_crs_code = gt.source_crs_code AND gt2.target_crs_auth_name = vcrs.auth_name AND gt2.target_crs_code = vcrs.code)
AND gt.deprecated = 0;
INSERT INTO "usage"
SELECT
'PROJ' AS auth_name,
gt.auth_name || '_' || gt.code || '_RESTRICTED_TO_VERTCRS_USAGE' AS code,
'grid_transformation' AS object_table_name,
'PROJ' AS object_auth_name,
gt.auth_name || '_' || gt.code || '_RESTRICTED_TO_VERTCRS' AS object_code,
u.extent_auth_name,
u.extent_code,
u.scope_auth_name,
u.scope_code
FROM grid_transformation gt
JOIN usage u ON u.object_auth_name = gt.auth_name AND u.object_code = gt.code AND u.object_table_name = 'grid_transformation'
WHERE method_auth_name = 'EPSG' AND method_name LIKE 'Geog3D to Geog2D+%'
AND EXISTS (SELECT 1 FROM grid_transformation gt2 WHERE gt2.auth_name = 'PROJ' AND gt2.code = gt.auth_name || '_' || gt.code || '_RESTRICTED_TO_VERTCRS');
+1
View File
@@ -463,3 +463,4 @@ INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3410','EPSG','6933','EP
INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3411','EPSG','3413','EPSG');
INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3412','EPSG','3976','EPSG');
INSERT INTO "deprecation" VALUES('projected_crs','EPSG','4088','EPSG','4087','EPSG');
INSERT INTO "deprecation" VALUES('projected_crs','EPSG','7804','EPSG','9391','EPSG');
+10530 -5446
View File
File diff suppressed because it is too large Load Diff
+3598
View File
File diff suppressed because it is too large Load Diff
+2128 -1042
View File
File diff suppressed because it is too large Load Diff
+1188 -584
View File
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,19 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1178',1);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1179',2);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1180',3);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1181',4);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1182',5);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1183',6);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1184',7);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1185',8);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1186',9);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1204',10);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6258','EPSG','1206',11);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6326','EPSG','1166',1);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6326','EPSG','1152',2);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6326','EPSG','1153',3);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6326','EPSG','1154',4);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6326','EPSG','1155',5);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6326','EPSG','1156',6);
+243 -173
View File
@@ -7,48 +7,260 @@ INSERT INTO grid_alternatives(original_grid_name,
package_name,
url, direct_download, open_license, directory)
VALUES
-- the PROJ grid is the reverse way of the EPSG one
('rgf93_ntf.gsb','fr_ign_ntf_r93.tif','ntf_r93.gsb','GTiff','hgridshift',1,NULL,'https://cdn.proj.org/fr_ign_ntf_r93.tif',1,1,NULL),
('gr3df97a.txt','fr_ign_gr3df97a.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/fr_ign_gr3df97a.tif',1,1,NULL),
('NTv1_0.gsb','ca_nrc_ntv1_can.tif','ntv1_can.dat','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ntv1_can.tif',1,1,NULL),
-- just a case change
('NTv2_0.gsb','ca_nrc_ntv2_0.tif','ntv2_0.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ntv2_0.tif',1,1,NULL),
-- just a case change
('May76v20.gsb','ca_nrc_MAY76V20.tif','MAY76V20.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_MAY76V20.tif',1,1,NULL),
('BETA2007.gsb','de_adv_BETA2007.tif','BETA2007.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_adv_BETA2007.tif',1,1,NULL),
('BWTA2017.gsb','de_lgl_bw_BWTA2017.tif','BWTA2017.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_lgl_bw_BWTA2017.tif',1,1,NULL),
('SeTa2016.gsb','de_lgvl_saarland_SeTa2016.tif','SeTa2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_lgvl_saarland_SeTa2016.tif',1,1,NULL),
('NTv2_SN.gsb','de_geosn_NTv2_SN.tif','NTv2_SN.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_geosn_NTv2_SN.tif',1,1,NULL),
-- at_bev - Austria Bundesamt für Eich- und Vermessungswessen
('AT_GIS_GRID.gsb','at_bev_AT_GIS_GRID.tif','AT_GIS_GRID.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/at_bev_AT_GIS_GRID.tif',1,1,NULL),
('GV_HoehenGrid_V1.csv','at_bev_GV_Hoehengrid_V1.tif',NULL,'GTiff','vgridshift',0,NULL,'https://cdn.proj.org/at_bev_GV_Hoehengrid_V1.tif',1,1,NULL),
('GEOID_GRS80_Oesterreich.csv','at_bev_GEOID_GRS80_Oesterreich.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/at_bev_GEOID_GRS80_Oesterreich.tif',1,1,NULL),
('GEOID_BESSEL_Oesterreich.csv','at_bev_GEOID_BESSEL_Oesterreich.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/at_bev_GEOID_BESSEL_Oesterreich.tif',1,1,NULL),
('GV_Hoehengrid_plus_Geoid_V3.csv','at_bev_GV_Hoehengrid_plus_Geoid_V2.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/at_bev_GV_Hoehengrid_plus_Geoid_V2.tif',1,1,NULL),
('nzgd2kgrid0005.gsb','nz_linz_nzgd2kgrid0005.tif','nzgd2kgrid0005.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nzgd2kgrid0005.tif',1,1,NULL),
('OSTN15_NTv2_OSGBtoETRS.gsb','uk_os_OSTN15_NTv2_OSGBtoETRS.tif','OSTN15_NTv2_OSGBtoETRS.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/uk_os_OSTN15_NTv2_OSGBtoETRS.tif',1,1,NULL),
-- Continental USA VERTCON: NGVD (19)29 height to NAVD (19)88 height
('vertconw.94','us_noaa_vertconw.tif','vertconw.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertconw.tif',1,1,NULL),
('vertconc.94','us_noaa_vertconc.tif','vertconc.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertconc.tif',1,1,NULL),
('vertcone.94','us_noaa_vertcone.tif','vertcone.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertcone.tif',1,1,NULL),
-- EGM models
('WW15MGH.GRD','us_nga_egm96_15.tif','egm96_15.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_nga_egm96_15.tif',1,1,NULL),
('Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz','us_nga_egm08_25.tif','egm08_25.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_nga_egm08_25.tif',1,1,NULL),
-- au_ga - Geoscience Australia
-- source file contains undulation in first band, and deflection in 2nd and 3d band
('AUSGeoid09_V1.01.gsb','au_ga_AUSGeoid09_V1.01.tif','AUSGeoid09_V1.01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AUSGeoid09_V1.01.tif',1,1,NULL),
('AUSGeoid09_GDA94_V1.01_DOV_windows.gsb','au_ga_AUSGeoid09_V1.01.tif','AUSGeoid09_V1.01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AUSGeoid09_V1.01.tif',1,1,NULL),
-- source file contains undulation in first band, and deflection in 2nd and 3d band
('AUSGeoid2020_20180201.gsb','au_ga_AUSGeoid2020_20180201.tif','AUSGeoid2020_20180201.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AUSGeoid2020_20180201.tif',1,1,NULL),
('AGQG_20191107.gsb','au_ga_AGQG_20191107.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AGQG_20191107.tif',1,1,NULL),
('AGQG_20201120.gsb','au_ga_AGQG_20201120.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AGQG_20201120.tif',1,1,NULL),
-- au_icsm - Australian Intergovernmental Committee on Surveying and Mapping
('A66 National (13.09.01).gsb','au_icsm_A66_National_13_09_01.tif','A66_National_13_09_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_A66_National_13_09_01.tif',1,1,NULL),
('National 84 (02.07.01).gsb','au_icsm_National_84_02_07_01.tif','National_84_02_07_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_National_84_02_07_01.tif',1,1,NULL),
('GDA94_GDA2020_conformal.gsb','au_icsm_GDA94_GDA2020_conformal.tif','GDA94_GDA2020_conformal.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal.tif',1,1,NULL),
('GDA94_GDA2020_conformal_and_distortion.gsb','au_icsm_GDA94_GDA2020_conformal_and_distortion.tif','GDA94_GDA2020_conformal_and_distortion.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif',1,1,NULL),
('GDA94_GDA2020_conformal_christmas_island.gsb','au_icsm_GDA94_GDA2020_conformal_christmas_island.tif','GDA94_GDA2020_conformal_christmas_island.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_christmas_island.tif',1,1,NULL),
('GDA94_GDA2020_conformal_cocos_island.gsb','au_icsm_GDA94_GDA2020_conformal_cocos_island.tif','GDA94_GDA2020_conformal_cocos_island.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_cocos_island.tif',1,1,NULL),
-- be_ign - IGN Belgium
('bd72lb72_etrs89lb08.gsb','be_ign_bd72lb72_etrs89lb08.tif','bd72lb72_etrs89lb08.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/be_ign_bd72lb72_etrs89lb08.tif',1,1,NULL),
-- br_ibge - Instituto Brasileiro de Geografia e Estatistica (IBGE)
('CA61_003.gsb','br_ibge_CA61_003.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/br_ibge_CA61_003.tif',1,1,NULL),
('CA7072_003.gsb','br_ibge_CA7072_003.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/br_ibge_CA7072_003.tif',1,1,NULL),
('SAD69_003.gsb','br_ibge_SAD69_003.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/br_ibge_SAD69_003.tif',1,1,NULL),
('SAD96_003.gsb','br_ibge_SAD96_003.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/br_ibge_SAD96_003.tif',1,1,NULL),
-- ca_nrc - Natural Resources Canada
('CGG2013i08a.byn','ca_nrc_CGG2013ai08.tif','CGG2013ai08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013ai08.tif',1,1,NULL),
('CGG2013n83a.byn','ca_nrc_CGG2013an83.tif','CGG2013an83.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013an83.tif',1,1,NULL),
('CGG2013i83.byn','ca_nrc_CGG2013i08.tif','CGG2013i08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013i08.tif',1,1,NULL),
('CGG2013n83.byn','ca_nrc_CGG2013n83.tif','CGG2013n83.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013n83.tif',1,1,NULL),
('HT2_0.byn','ca_nrc_HT2_2010v70.tif','HT2_2010v70.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_HT2_2010v70.tif',1,1,NULL),
-- the PROJ grid is the reverse way of the EPSG one
('NTv1_0.gsb','ca_nrc_ntv1_can.tif','ntv1_can.dat','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ntv1_can.tif',1,1,NULL),
-- just a case change
('NTv2_0.gsb','ca_nrc_ntv2_0.tif','ntv2_0.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ntv2_0.tif',1,1,NULL),
-- Provincial grids
('AB_CSRS.DAC','ca_nrc_ABCSRSV4.tif','ABCSRSV4.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ABCSRSV4.tif',1,1,NULL),
('BC_27_05.GSB','ca_nrc_BC_27_05.tif','BC_27_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_BC_27_05.tif',1,1,NULL),
('BC_93_05.GSB','ca_nrc_BC_93_05.tif','BC_93_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_BC_93_05.tif',1,1,NULL),
('CGQ77-98.gsb','ca_nrc_CQ77SCRS.tif','CQ77SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CQ77SCRS.tif',1,1,NULL),
('CRD27_00.GSB','ca_nrc_CRD27_00.tif','CRD27_00.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CRD27_00.tif',1,1,NULL),
('CRD93_00.GSB','ca_nrc_CRD93_00.tif','CRD93_00.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CRD93_00.tif',1,1,NULL),
('GS7783.GSB','ca_nrc_GS7783.tif','GS7783.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_GS7783.tif',1,1,NULL),
-- just a case change
('May76v20.gsb','ca_nrc_MAY76V20.tif','MAY76V20.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_MAY76V20.tif',1,1,NULL),
('NA27SCRS.GSB','ca_nrc_NA27SCRS.tif','NA27SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA27SCRS.tif',1,1,NULL),
('QUE27-98.gsb','ca_nrc_NA27SCRS.tif','NA27SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA27SCRS.tif',1,1,NULL),
-- two grid names in EPSG point to the same file distributed by NRCan
('NA83SCRS.GSB','ca_nrc_NA83SCRS.tif','NA83SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA83SCRS.tif',1,1,NULL),
('NAD83-98.gsb','ca_nrc_NA83SCRS.tif','NA83SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA83SCRS.tif',1,1,NULL),
('NB2783v2.gsb','ca_nrc_NB2783v2.tif','NB2783v2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NB2783v2.tif',1,1,NULL),
('NB7783v2.gsb','ca_nrc_NB7783v2.tif','NB7783v2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NB7783v2.tif',1,1,NULL),
('NS778302.gsb','ca_nrc_NS778302.tif','NS778302.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NS778302.tif',1,1,NULL),
('NVI93_05.GSB','ca_nrc_NVI93_05.tif','NVI93_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NVI93_05.tif',1,1,NULL),
('ON27CSv1.GSB','ca_nrc_ON27CSv1.tif','ON27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON27CSv1.tif',1,1,NULL),
('ON76CSv1.GSB','ca_nrc_ON76CSv1.tif','ON76CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON76CSv1.tif',1,1,NULL),
('ON83CSv1.GSB','ca_nrc_ON83CSv1.tif','ON83CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON83CSv1.tif',1,1,NULL),
('PE7783V2.gsb','ca_nrc_PE7783V2.tif','PE7783V2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_PE7783V2.tif',1,1,NULL),
('SK27-98.gsb','ca_nrc_SK27-98.tif','SK27-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK27-98.tif',1,1,NULL),
('SK83-98.gsb','ca_nrc_SK83-98.tif','SK83-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK83-98.tif',1,1,NULL),
('TOR27CSv1.GSB','ca_nrc_TO27CSv1.tif','TO27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_TO27CSv1.tif',1,1,NULL),
-- ca_que - Ministère de l'Énergie et des Ressources naturelles du Québec
-- two grid names in EPSG point to the same file distributed by NRCan
('NA27NA83.GSB','ca_que_mern_na27na83.tif','na27na83.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_que_mern_na27na83.tif',1,1,NULL),
('CQ77NA83.GSB','ca_que_mern_cq77na83.tif','cq77na83.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_que_mern_cq77na83.tif',1,1,NULL),
-- ch_swisstopo - Swisstopo Federal Office of Topography
('CHENyx06a.gsb','ch_swisstopo_CHENyx06a.tif','CHENyx06a.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ch_swisstopo_CHENyx06a.tif',1,1,NULL),
('CHENyx06_ETRS.gsb','ch_swisstopo_CHENyx06_ETRS.tif','CHENyx06_ETRS.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ch_swisstopo_CHENyx06_ETRS.tif',1,1,NULL),
('chgeo2004_ETRS.agr','ch_swisstopo_chgeo2004_ETRS89_LHN95.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ch_swisstopo_chgeo2004_ETRS89_LHN95.tif',1,1,NULL),
('chgeo2004_htrans_ETRS.agr','ch_swisstopo_chgeo2004_ETRS89_LN02.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ch_swisstopo_chgeo2004_ETRS89_LN02.tif',1,1,NULL),
-- de_adv - Arbeitsgemeinschaft der Vermessungsverwaltungender der Länder der Bundesrepublik Deutschland (AdV)
('BETA2007.gsb','de_adv_BETA2007.tif','BETA2007.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_adv_BETA2007.tif',1,1,NULL),
-- de_geosn - Staatsbetrieb Geobasisinformation und Vermessung Sachsen GeoSN
('NTv2_SN.gsb','de_geosn_NTv2_SN.tif','NTv2_SN.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_geosn_NTv2_SN.tif',1,1,NULL),
-- de_lgl_bw - LGL Baden-Württemberg
('BWTA2017.gsb','de_lgl_bw_BWTA2017.tif','BWTA2017.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_lgl_bw_BWTA2017.tif',1,1,NULL),
-- de_lgvl_saarland - LVGL Saarland
('SeTa2016.gsb','de_lgvl_saarland_SeTa2016.tif','SeTa2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_lgvl_saarland_SeTa2016.tif',1,1,NULL),
-- dk_sdfe - Danish Agency for Data Supply and Efficiency
-- Denmark mainland
('dnn.gtx','dk_sdfe_dnn.tif','dnn.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dnn.tif',1,1,NULL),
('dvr90.gtx','dk_sdfe_dvr90.tif','dvr90.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dvr90.tif',1,1,NULL),
-- Faroe islands height models
('fvr09.gtx','dk_sdfe_fvr09.tif','fvr09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_fvr09.tif',1,1,NULL),
-- Greenland height models
('gr2000g.gri','dk_sdfe_gvr2000.tif','gvr2000.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_gvr2000.tif',1,1,NULL),
('ggeoid16.gri','dk_sdfe_gvr2016.tif','gvr2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_gvr2016.tif',1,1,NULL),
-- Denmark height models
('dvr90.gtx','dk_sdfe_dvr90.tif','dvr90.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dvr90.tif',1,1,NULL),
('dnn.gtx','dk_sdfe_dnn.tif','dnn.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dnn.tif',1,1,NULL),
-- Faroe islands height models
('fvr09.gtx','dk_sdfe_fvr09.tif','fvr09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_fvr09.tif',1,1,NULL),
-- Sweden height models
-- es_cat_icgc - Institut Cartogràfic i Geològic de Catalunya (ICGC)
('100800401.gsb','es_cat_icgc_100800401.tif','100800401.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_cat_icgc_100800401.tif',1,1,NULL),
-- es_ign - Instituto Geográfico Nacional (IGN)
('SPED2ETV2.gsb','es_ign_SPED2ETV2.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_ign_SPED2ETV2.tif',1,1,NULL),
('EGM08_REDNAP.txt','es_ign_egm08-rednap.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/es_ign_egm08-rednap.tif',1,1,NULL),
('EGM08_REDNAP_Canarias.txt','es_ign_egm08-rednap-canarias.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/es_ign_egm08-rednap-canarias.tif',1,1,NULL),
-- eur_nkg - Nordic Geodetic Commission
('eur_nkg_nkgrf03vel_realigned.tif','eur_nkg_nkgrf03vel_realigned.tif',NULL,'GTiff','velocity_grid',0,NULL,'https://cdn.proj.org/eur_nkg_nkgrf03vel_realigned.tif',1,1,NULL),
('eur_nkg_nkgrf17vel.tif','eur_nkg_nkgrf17vel.tif',NULL,'GTiff','velocity_grid',0,NULL,'https://cdn.proj.org/eur_nkg_nkgrf17vel.tif',1,1,NULL),
-- fi_nls - National Land Survey of Finland (MML)
('fi_nls_n43_n60.json','fi_nls_n43_n60.json',NULL,'JSON','tinshift',0,NULL,'https://cdn.proj.org/fi_nls_n43_n60.json',1,1,NULL),
('fi_nls_n60_n2000.json','fi_nls_n60_n2000.json',NULL,'JSON','tinshift',0,NULL,'https://cdn.proj.org/fi_nls_n60_n2000.json',1,1,NULL),
('fi_nls_ykj_etrs35fin.json','fi_nls_ykj_etrs35fin.json',NULL,'JSON','tinshift',0,NULL,'https://cdn.proj.org/fi_nls_ykj_etrs35fin.json',1,1,NULL),
-- fr_ign - IGN France
('rgf93_ntf.gsb','fr_ign_ntf_r93.tif','ntf_r93.gsb','GTiff','hgridshift',1,NULL,'https://cdn.proj.org/fr_ign_ntf_r93.tif',1,1,NULL),
('gr3df97a.txt','fr_ign_gr3df97a.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/fr_ign_gr3df97a.tif',1,1,NULL),
-- Vertical grids
('RAC09.mnt','fr_ign_RAC09.tif','RAC09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAC09.tif',1,1,NULL),
('RAF09.mnt','fr_ign_RAF09.tif','RAF09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF09.tif',1,1,NULL),
('RAF18.tac','fr_ign_RAF18.tif','RAF18.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF18.tif',1,1,NULL),
('gg10_gtbt.txt','fr_ign_RAGTBT2016.tif','RAGTBT2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAGTBT2016.tif',1,1,NULL),
('RAGTBT2016.mnt','fr_ign_RAGTBT2016.tif','RAGTBT2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAGTBT2016.tif',1,1,NULL),
('gg10_ld.txt','fr_ign_RALD2016.tif','RALD2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALD2016.tif',1,1,NULL),
('RALD2016.mnt','fr_ign_RALD2016.tif','RALD2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALD2016.tif',1,1,NULL),
('ggg00_ld.txt','fr_ign_RALDW842016.tif','RALDW842016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALDW842016.tif',1,1,NULL),
('RALDW842016.mnt','fr_ign_RALDW842016.tif','RALDW842016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALDW842016.tif',1,1,NULL),
('gg10_ls.txt','fr_ign_RALS2016.tif','RALS2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALS2016.tif',1,1,NULL),
('RALS2016.mnt','fr_ign_RALS2016.tif','RALS2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALS2016.tif',1,1,NULL),
('gg10_mart.txt','fr_ign_RAMART2016.tif','RAMART2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMART2016.tif',1,1,NULL),
('RAMART2016.mnt','fr_ign_RAMART2016.tif','RAMART2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMART2016.tif',1,1,NULL),
('gg10_mg.txt','fr_ign_RAMG2016.tif','RAMG2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMG2016.tif',1,1,NULL),
('RAMG2016.mnt','fr_ign_RAMG2016.tif','RAMG2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMG2016.tif',1,1,NULL),
('ggr99.txt','fr_ign_RAR07_bl.tif','RAR07_bl.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAR07_bl.tif',1,1,NULL),
('RASPM2018.mnt','fr_ign_RASPM2018.tif','RASPM2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RASPM2018.tif',1,1,NULL),
('gg10_sb.txt','fr_ign_gg10_sbv2.tif','gg10_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_sbv2.tif',1,1,NULL),
('gg10_sbv2.mnt','fr_ign_gg10_sbv2.tif','gg10_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_sbv2.tif',1,1,NULL),
('gg10_sm.txt','fr_ign_gg10_smv2.tif','gg10_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_smv2.tif',1,1,NULL),
('gg10_smv2.mnt','fr_ign_gg10_smv2.tif','gg10_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_smv2.tif',1,1,NULL),
('ggg00_ls.txt','fr_ign_ggg00_lsv2.tif','ggg00_lsv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_lsv2.tif',1,1,NULL),
('ggg00_mg.txt','fr_ign_ggg00_mgv2.tif','ggg00_mgv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_mgv2.tif',1,1,NULL),
('ggg00_sb.txt','fr_ign_ggg00_sbv2.tif','ggg00_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_sbv2.tif',1,1,NULL),
('ggg00_sm.txt','fr_ign_ggg00_smv2.tif','ggg00_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_smv2.tif',1,1,NULL),
('ggg00.txt','fr_ign_ggg00v2.tif','ggg00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00v2.tif',1,1,NULL),
('ggguy00.txt','fr_ign_ggguy15.tif','ggguy15.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggguy15.tif',1,1,NULL),
('ggm00.txt','fr_ign_ggm00v2.tif','ggm00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggm00v2.tif',1,1,NULL),
('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),
('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),
-- jp_gsi - Geospatial Information Authority of Japan
('jp_gsi_gsigeo2011.tif','jp_gsi_gsigeo2011.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/jp_gsi_gsigeo2011.tif',1,1,NULL),
-- nc_dittt - Gouvernement de Nouvelle Calédonie - DITTT
('Ranc08_Circe.mnt','nc_dittt_Ranc08_Circe.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nc_dittt_Ranc08_Circe.tif',1,1,NULL),
('gr3dnc01b.mnt','nc_dittt_gr3dnc01b.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/nc_dittt_gr3dnc01b.tif',1,1,NULL),
('gr3dnc02b.mnt','nc_dittt_gr3dnc02b.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/nc_dittt_gr3dnc02b.tif',1,1,NULL),
('gr3dnc03a.mnt','nc_dittt_gr3dnc03a.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/nc_dittt_gr3dnc03a.tif',1,1,NULL),
-- Netherlands / RDNAP (non-free grids). See https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/master/debian/copyright
-- Netherlands / RDNAP 2018
('nlgeo2018.gtx','nl_nsgi_nlgeo2018.tif','nlgeo2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nl_nsgi_nlgeo2018.tif',1,1,NULL),
('rdtrans2018.gsb','nl_nsgi_rdtrans2018.tif','rdtrans2018.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nl_nsgi_rdtrans2018.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-naptrans2018.gtx','nl_nsgi_naptrans2018.tif','naptrans2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nl_nsgi_naptrans2018.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-rdcorr2018.gsb','nl_nsgi_rdcorr2018.tif','rdcorr2018.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nl_nsgi_rdcorr2018.tif',1,1,NULL),
('naptrans2008.gtx','','naptrans2008.gtx','GTX','geoid_like',0,NULL,'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/naptrans2008.gtx',1,0,NULL),
('rdtrans2008.gsb','','rdtrans2008.gsb','NTv2','hgridshift',0,NULL,'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/rdtrans2008.gsb',1,0,NULL),
-- no_kv - Kartverket
-- Norwegian grids
('HREF2018B_NN2000_EUREF89.gtx','no_kv_HREF2018B_NN2000_EUREF89.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/no_kv_HREF2018B_NN2000_EUREF89.tif',1,1,NULL),
('href2008a.gtx','no_kv_href2008a.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/no_kv_href2008a.tif',1,1,NULL),
('no_kv_NKGETRF14_EPSG7922_2000.tif','no_kv_NKGETRF14_EPSG7922_2000.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/no_kv_NKGETRF14_EPSG7922_2000.tif',1,1,NULL),
('no_kv_ETRS89NO_NGO48_TIN.json','no_kv_ETRS89NO_NGO48_TIN.json',NULL,'JSON','tinshift',0,NULL,'https://cdn.proj.org/no_kv_ETRS89NO_NGO48_TIN.json',1,1,NULL),
-- nz_linz - New Zealand
('nzgd2kgrid0005.gsb','nz_linz_nzgd2kgrid0005.tif','nzgd2kgrid0005.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nzgd2kgrid0005.tif',1,1,NULL),
('nzgeoid2016.gtx','nz_linz_nzgeoid2016.tif','nzgeoid2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2016.tif',1,1,NULL),
-- Superseded
('New_Zealand_Quasigeoid_2016.csv','nz_linz_nzgeoid2016.tif','nzgeoid2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2016.tif',1,1,NULL),
('nzgeoid2009.gtx','nz_linz_nzgeoid2009.tif','nzgeoid2009.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2009.tif',1,1,NULL),
-- Superseded
('nzgeoid09.sid','nz_linz_nzgeoid2009.tif','nzgeoid2009.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2009.tif',1,1,NULL),
-- New Zealand grid shift models.
('auckht1946-nzvd2016.gtx','nz_linz_auckht1946-nzvd2016.tif','auckht1946-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_auckht1946-nzvd2016.tif',1,1,NULL),
('blufht1955-nzvd2016.gtx','nz_linz_blufht1955-nzvd2016.tif','blufht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_blufht1955-nzvd2016.tif',1,1,NULL),
('dublht1960-nzvd2016.gtx','nz_linz_dublht1960-nzvd2016.tif','dublht1960-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_dublht1960-nzvd2016.tif',1,1,NULL),
('duneht1958-nzvd2016.gtx','nz_linz_duneht1958-nzvd2016.tif','duneht1958-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_duneht1958-nzvd2016.tif',1,1,NULL),
('gisbht1926-nzvd2016.gtx','nz_linz_gisbht1926-nzvd2016.tif','gisbht1926-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_gisbht1926-nzvd2016.tif',1,1,NULL),
('lyttht1937-nzvd2016.gtx','nz_linz_lyttht1937-nzvd2016.tif','lyttht1937-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_lyttht1937-nzvd2016.tif',1,1,NULL),
('motuht1953-nzvd2016.gtx','nz_linz_motuht1953-nzvd2016.tif','motuht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_motuht1953-nzvd2016.tif',1,1,NULL),
('napiht1962-nzvd2016.gtx','nz_linz_napiht1962-nzvd2016.tif','napiht1962-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_napiht1962-nzvd2016.tif',1,1,NULL),
('nelsht1955-nzvd2016.gtx','nz_linz_nelsht1955-nzvd2016.tif','nelsht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nelsht1955-nzvd2016.tif',1,1,NULL),
('ontpht1964-nzvd2016.gtx','nz_linz_ontpht1964-nzvd2016.tif','ontpht1964-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_ontpht1964-nzvd2016.tif',1,1,NULL),
('stisht1977-nzvd2016.gtx','nz_linz_stisht1977-nzvd2016.tif','stisht1977-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_stisht1977-nzvd2016.tif',1,1,NULL),
('taraht1970-nzvd2016.gtx','nz_linz_taraht1970-nzvd2016.tif','taraht1970-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_taraht1970-nzvd2016.tif',1,1,NULL),
('wellht1953-nzvd2016.gtx','nz_linz_wellht1953-nzvd2016.tif','wellht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_wellht1953-nzvd2016.tif',1,1,NULL),
-- Superseded entries
('auckland-1946-to-nzvd2016-conversion.csv','nz_linz_auckht1946-nzvd2016.tif','auckht1946-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_auckht1946-nzvd2016.tif',1,1,NULL),
('bluff-1955-to-nzvd2016-conversion.csv','nz_linz_blufht1955-nzvd2016.tif','blufht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_blufht1955-nzvd2016.tif',1,1,NULL),
('dunedin-bluff-1960-to-nzvd2016-conversion.csv','nz_linz_dublht1960-nzvd2016.tif','dublht1960-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_dublht1960-nzvd2016.tif',1,1,NULL),
('dunedin-1958-to-nzvd2016-conversion.csv','nz_linz_duneht1958-nzvd2016.tif','duneht1958-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_duneht1958-nzvd2016.tif',1,1,NULL),
('gisborne-1926-to-nzvd2016-conversion.csv','nz_linz_gisbht1926-nzvd2016.tif','gisbht1926-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_gisbht1926-nzvd2016.tif',1,1,NULL),
('lyttelton-1937-to-nzvd2016-conversion.csv','nz_linz_lyttht1937-nzvd2016.tif','lyttht1937-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_lyttht1937-nzvd2016.tif',1,1,NULL),
('moturiki-1953-to-nzvd2016-conversion.csv','nz_linz_motuht1953-nzvd2016.tif','motuht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_motuht1953-nzvd2016.tif',1,1,NULL),
('napier-1962-to-nzvd2016-conversion.csv','nz_linz_napiht1962-nzvd2016.tif','napiht1962-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_napiht1962-nzvd2016.tif',1,1,NULL),
('nelson-1955-to-nzvd2016-conversion.csv','nz_linz_nelsht1955-nzvd2016.tif','nelsht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nelsht1955-nzvd2016.tif',1,1,NULL),
('onetreepoint-1964-to-nzvd2016-conversion.csv','nz_linz_ontpht1964-nzvd2016.tif','ontpht1964-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_ontpht1964-nzvd2016.tif',1,1,NULL),
('stewartisland-1977-to-nzvd2016-conversion.csv','nz_linz_stisht1977-nzvd2016.tif','stisht1977-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_stisht1977-nzvd2016.tif',1,1,NULL),
('taranaki-1970-to-nzvd2016-conversion.csv','nz_linz_taraht1970-nzvd2016.tif','taraht1970-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_taraht1970-nzvd2016.tif',1,1,NULL),
('wellington-1953-to-nzvd2016-conversion.csv','nz_linz_wellht1953-nzvd2016.tif','wellht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_wellht1953-nzvd2016.tif',1,1,NULL),
-- pt_dgt - DG Territorio
('DLx_ETRS89_geo.gsb','pt_dgt_DLx_ETRS89_geo.tif','DLx_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_DLx_ETRS89_geo.tif',1,1,NULL),
('D73_ETRS89_geo.gsb','pt_dgt_D73_ETRS89_geo.tif','D73_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_D73_ETRS89_geo.tif',1,1,NULL),
-- se_lantmateriet - Sweden
('SWEN17_RH2000.gtx','se_lantmateriet_SWEN17_RH2000.tif','SWEN17_RH2000.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/se_lantmateriet_SWEN17_RH2000.tif',1,1,NULL),
-- Ireland: OSGM15 height, Malin head datum -> ETRS89 ellipsoidal heights
('OSGM15_Malin.gri','uk_os_OSGM15_Malin.tif','OSGM15_Malin.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/uk_os_OSGM15_Malin.tif',1,1,NULL),
-- sk_gku - Geodetický a kartografický ústav Bratislava (GKU)
('Slovakia_JTSK03_to_JTSK.LAS','sk_gku_JTSK03_to_JTSK.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/sk_gku_JTSK03_to_JTSK.tif',1,1,NULL),
('Slovakia_ETRS89h_to_Baltic1957.gtx','sk_gku_Slovakia_ETRS89h_to_Baltic1957.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/sk_gku_Slovakia_ETRS89h_to_Baltic1957.tif',1,1,NULL),
('Slovakia_ETRS89h_to_EVRF2007.gtx','sk_gku_Slovakia_ETRS89h_to_EVRF2007.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/sk_gku_Slovakia_ETRS89h_to_EVRF2007.tif',1,1,NULL),
-- uk_os - Ordnance Survey
-- Northern Ireland: OSGM15 height, Belfast height -> ETRS89 ellipsoidal heights
('OSGM15_Belfast.gri','uk_os_OSGM15_Belfast.tif','OSGM15_Belfast.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/uk_os_OSGM15_Belfast.tif',1,1,NULL),
-- United Kingdom: OSGM15 height, ODN height -> ETRS89 ellipsoidal heights
('OSTN15_OSGM15_GB.txt','uk_os_OSGM15_GB.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/uk_os_OSGM15_GB.tif',1,1,NULL),
-- Ireland: OSGM15 height, Malin head datum -> ETRS89 ellipsoidal heights
('OSGM15_Malin.gri','uk_os_OSGM15_Malin.tif','OSGM15_Malin.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/uk_os_OSGM15_Malin.tif',1,1,NULL),
('OSTN15_NTv2_OSGBtoETRS.gsb','uk_os_OSTN15_NTv2_OSGBtoETRS.tif','OSTN15_NTv2_OSGBtoETRS.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/uk_os_OSTN15_NTv2_OSGBtoETRS.tif',1,1,NULL),
-- us_nga - US National Geospatial Intelligence Agency (NGA)
('WW15MGH.GRD','us_nga_egm96_15.tif','egm96_15.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_nga_egm96_15.tif',1,1,NULL),
('Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz','us_nga_egm08_25.tif','egm08_25.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_nga_egm08_25.tif',1,1,NULL),
-- us_noaa - United States
-- Continental USA VERTCON: NGVD (19)29 height to NAVD (19)88 height
('vertconw.94','us_noaa_vertconw.tif','vertconw.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertconw.tif',1,1,NULL),
('vertconc.94','us_noaa_vertconc.tif','vertconc.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertconc.tif',1,1,NULL),
('vertcone.94','us_noaa_vertcone.tif','vertcone.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertcone.tif',1,1,NULL),
-- US GEOID99 height models. Not mapped: Alaska: g1999a01.gtx to g1999a04.gtx. Hawaii: g1999h01.gtx, Puerto Rico: g1999p01.gtx
('g1999u01.bin','us_noaa_g1999u01.tif','g1999u01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u01.tif',1,1,NULL),
('g1999u02.bin','us_noaa_g1999u02.tif','g1999u02.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u02.tif',1,1,NULL),
@@ -69,7 +281,6 @@ VALUES
('g2009s01.bin','us_noaa_g2009s01.tif','g2009s01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2009s01.tif',1,1,NULL),
('g2009p01.bin','us_noaa_g2009p01.tif','g2009p01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2009p01.tif',1,1,NULL),
-- US GEOID12B height models
--
-- CONUS
('g2012bu0.bin','us_noaa_g2012bu0.tif','g2012bu0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bu0.tif',1,1,NULL),
-- Alaska
@@ -82,147 +293,6 @@ VALUES
('g2012bs0.bin','us_noaa_g2012bs0.tif','g2012bs0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bs0.tif',1,1,NULL),
-- US GEOID18 height models
('g2018u0.bin','us_noaa_g2018u0.tif','g2018u0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2018u0.tif',1,1,NULL),
-- French vertical grids
('g2018p0.bin','us_noaa_g2018p0.tif','g2018p0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2018p0.tif',1,1,NULL),
('RAF09.mnt','fr_ign_RAF09.tif','RAF09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF09.tif',1,1,NULL),
('RAF18.tac','fr_ign_RAF18.tif','RAF18.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF18.tif',1,1,NULL),
('RAC09.mnt','fr_ign_RAC09.tif','RAC09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAC09.tif',1,1,NULL),
('ggm00.txt','fr_ign_ggm00v2.tif','ggm00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggm00v2.tif',1,1,NULL),
('ggg00.txt','fr_ign_ggg00v2.tif','ggg00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00v2.tif',1,1,NULL),
('ggg00_mg.txt','fr_ign_ggg00_mgv2.tif','ggg00_mgv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_mgv2.tif',1,1,NULL),
('ggg00_sm.txt','fr_ign_ggg00_smv2.tif','ggg00_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_smv2.tif',1,1,NULL),
('ggg00_ls.txt','fr_ign_ggg00_lsv2.tif','ggg00_lsv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_lsv2.tif',1,1,NULL),
('ggg00_ld.txt','fr_ign_RALDW842016.tif','RALDW842016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALDW842016.tif',1,1,NULL),
('RALDW842016.mnt','fr_ign_RALDW842016.tif','RALDW842016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALDW842016.tif',1,1,NULL),
('ggg00_sb.txt','fr_ign_ggg00_sbv2.tif','ggg00_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_sbv2.tif',1,1,NULL),
('gg10_mart.txt','fr_ign_RAMART2016.tif','RAMART2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMART2016.tif',1,1,NULL),
('RAMART2016.mnt','fr_ign_RAMART2016.tif','RAMART2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMART2016.tif',1,1,NULL),
('gg10_gtbt.txt','fr_ign_RAGTBT2016.tif','RAGTBT2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAGTBT2016.tif',1,1,NULL),
('RAGTBT2016.mnt','fr_ign_RAGTBT2016.tif','RAGTBT2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAGTBT2016.tif',1,1,NULL),
('gg10_mg.txt','fr_ign_RAMG2016.tif','RAMG2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMG2016.tif',1,1,NULL),
('RAMG2016.mnt','fr_ign_RAMG2016.tif','RAMG2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMG2016.tif',1,1,NULL),
('gg10_sm.txt','fr_ign_gg10_smv2.tif','gg10_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_smv2.tif',1,1,NULL),
('gg10_smv2.mnt','fr_ign_gg10_smv2.tif','gg10_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_smv2.tif',1,1,NULL),
('gg10_ls.txt','fr_ign_RALS2016.tif','RALS2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALS2016.tif',1,1,NULL),
('RALS2016.mnt','fr_ign_RALS2016.tif','RALS2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALS2016.tif',1,1,NULL),
('gg10_ld.txt','fr_ign_RALD2016.tif','RALD2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALD2016.tif',1,1,NULL),
('RALD2016.mnt','fr_ign_RALD2016.tif','RALD2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALD2016.tif',1,1,NULL),
('gg10_sb.txt','fr_ign_gg10_sbv2.tif','gg10_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_sbv2.tif',1,1,NULL),
('gg10_sbv2.mnt','fr_ign_gg10_sbv2.tif','gg10_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_sbv2.tif',1,1,NULL),
('ggguy00.txt','fr_ign_ggguy15.tif','ggguy15.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggguy15.tif',1,1,NULL),
('ggr99.txt','fr_ign_RAR07_bl.tif','RAR07_bl.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAR07_bl.tif',1,1,NULL),
('GGSPM06v1.mnt','fr_ign_ggspm06v1.tif','ggspm06v1.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggspm06v1.tif',1,1,NULL),
('RASPM2018.mnt','fr_ign_RASPM2018.tif','RASPM2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RASPM2018.tif',1,1,NULL),
-- Australian grids
('A66 National (13.09.01).gsb','au_icsm_A66_National_13_09_01.tif','A66_National_13_09_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_A66_National_13_09_01.tif',1,1,NULL),
('National 84 (02.07.01).gsb','au_icsm_National_84_02_07_01.tif','National_84_02_07_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_National_84_02_07_01.tif',1,1,NULL),
('GDA94_GDA2020_conformal.gsb','au_icsm_GDA94_GDA2020_conformal.tif','GDA94_GDA2020_conformal.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal.tif',1,1,NULL),
('GDA94_GDA2020_conformal_and_distortion.gsb','au_icsm_GDA94_GDA2020_conformal_and_distortion.tif','GDA94_GDA2020_conformal_and_distortion.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif',1,1,NULL),
('GDA94_GDA2020_conformal_christmas_island.gsb','au_icsm_GDA94_GDA2020_conformal_christmas_island.tif','GDA94_GDA2020_conformal_christmas_island.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_christmas_island.tif',1,1,NULL),
('GDA94_GDA2020_conformal_cocos_island.gsb','au_icsm_GDA94_GDA2020_conformal_cocos_island.tif','GDA94_GDA2020_conformal_cocos_island.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_cocos_island.tif',1,1,NULL),
-- source file contains undulation in first band, and deflection in 2nd and 3d band
('AUSGeoid09_GDA94_V1.01_DOV_windows.gsb','au_ga_AUSGeoid09_V1.01.tif','AUSGeoid09_V1.01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AUSGeoid09_V1.01.tif',1,1,NULL),
-- source file contains undulation in first band, and deflection in 2nd and 3d band
('AUSGeoid2020_windows_binary.gsb','au_ga_AUSGeoid2020_20180201.tif','AUSGeoid2020_20180201.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AUSGeoid2020_20180201.tif',1,1,NULL),
-- Netherlands / RDNAP (non-free grids). See https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/master/debian/copyright
('naptrans2008.gtx','','naptrans2008.gtx','GTX','geoid_like',0,NULL,'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/naptrans2008.gtx',1,0,NULL),
('rdtrans2008.gsb','','rdtrans2008.gsb','NTv2','hgridshift',0,NULL,'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/rdtrans2008.gsb',1,0,NULL),
-- Netherlands / RDNAP 2018
('nlgeo2018.gtx','nl_nsgi_nlgeo2018.tif','nlgeo2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nl_nsgi_nlgeo2018.tif',1,1,NULL),
('rdtrans2018.gsb','nl_nsgi_rdtrans2018.tif','rdtrans2018.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nl_nsgi_rdtrans2018.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-naptrans2018.gtx','nl_nsgi_naptrans2018.tif','naptrans2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nl_nsgi_naptrans2018.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-rdcorr2018.gsb','nl_nsgi_rdcorr2018.tif','rdcorr2018.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nl_nsgi_rdcorr2018.tif',1,1,NULL),
-- Belgium
('bd72lb72_etrs89lb08.gsb','be_ign_bd72lb72_etrs89lb08.tif','bd72lb72_etrs89lb08.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/be_ign_bd72lb72_etrs89lb08.tif',1,1,NULL),
-- Switzerland
('CHENyx06a.gsb','ch_swisstopo_CHENyx06a.tif','CHENyx06a.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ch_swisstopo_CHENyx06a.tif',1,1,NULL),
('CHENyx06_ETRS.gsb','ch_swisstopo_CHENyx06_ETRS.tif','CHENyx06_ETRS.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ch_swisstopo_CHENyx06_ETRS.tif',1,1,NULL),
-- Spain
('100800401.gsb','es_cat_icgc_100800401.tif','100800401.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_cat_icgc_100800401.tif',1,1,NULL),
('SPED2ETV2.gsb','es_ign_SPED2ETV2.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_ign_SPED2ETV2.tif',1,1,NULL),
('EGM08_REDNAP.asc','es_ign_egm08-rednap.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/es_ign_egm08-rednap.tif',1,1,NULL),
-- Portugal
('DLx_ETRS89_geo.gsb','pt_dgt_DLx_ETRS89_geo.tif','DLx_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_DLx_ETRS89_geo.tif',1,1,NULL),
('D73_ETRS89_geo.gsb','pt_dgt_D73_ETRS89_geo.tif','D73_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_D73_ETRS89_geo.tif',1,1,NULL),
-- Canada provincial grids
('AB_CSRS.DAC','ca_nrc_ABCSRSV4.tif','ABCSRSV4.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ABCSRSV4.tif',1,1,NULL),
('CRD27_00.GSB','ca_nrc_CRD27_00.tif','CRD27_00.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CRD27_00.tif',1,1,NULL),
('CRD93_00.GSB','ca_nrc_CRD93_00.tif','CRD93_00.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CRD93_00.tif',1,1,NULL),
('NVI93_05.GSB','ca_nrc_NVI93_05.tif','NVI93_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NVI93_05.tif',1,1,NULL),
('BC_27_05.GSB','ca_nrc_BC_27_05.tif','BC_27_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_BC_27_05.tif',1,1,NULL),
('BC_93_05.GSB','ca_nrc_BC_93_05.tif','BC_93_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_BC_93_05.tif',1,1,NULL),
('NB7783v2.gsb','ca_nrc_NB7783v2.tif','NB7783v2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NB7783v2.tif',1,1,NULL),
('NB2783v2.gsb','ca_nrc_NB2783v2.tif','NB2783v2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NB2783v2.tif',1,1,NULL),
('GS7783.GSB','ca_nrc_GS7783.tif','GS7783.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_GS7783.tif',1,1,NULL),
('NS778302.gsb','ca_nrc_NS778302.tif','NS778302.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NS778302.tif',1,1,NULL),
('ON27CSv1.GSB','ca_nrc_ON27CSv1.tif','ON27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON27CSv1.tif',1,1,NULL),
('ON76CSv1.GSB','ca_nrc_ON76CSv1.tif','ON76CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON76CSv1.tif',1,1,NULL),
('ON83CSv1.GSB','ca_nrc_ON83CSv1.tif','ON83CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON83CSv1.tif',1,1,NULL),
('TOR27CSv1.GSB','ca_nrc_TO27CSv1.tif','TO27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_TO27CSv1.tif',1,1,NULL),
('PE7783V2.gsb','ca_nrc_PE7783V2.tif','PE7783V2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_PE7783V2.tif',1,1,NULL),
-- two grid names in EPSG point to the same file distributed by NRCan
('NA27NA83.GSB','ca_que_mern_na27na83.tif','na27na83.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_que_mern_na27na83.tif',1,1,NULL),
('NA27SCRS.GSB','ca_nrc_NA27SCRS.tif','NA27SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA27SCRS.tif',1,1,NULL),
('QUE27-98.gsb','ca_nrc_NA27SCRS.tif','NA27SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA27SCRS.tif',1,1,NULL),
('CQ77NA83.GSB','ca_que_mern_cq77na83.tif','cq77na83.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_que_mern_cq77na83.tif',1,1,NULL),
('CGQ77-98.gsb','ca_nrc_CQ77SCRS.tif','CQ77SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CQ77SCRS.tif',1,1,NULL),
-- two grid names in EPSG point to the same file distributed by NRCan
('NA83SCRS.GSB','ca_nrc_NA83SCRS.tif','NA83SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA83SCRS.tif',1,1,NULL),
('NAD83-98.gsb','ca_nrc_NA83SCRS.tif','NA83SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA83SCRS.tif',1,1,NULL),
('SK27-98.gsb','ca_nrc_SK27-98.tif','SK27-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK27-98.tif',1,1,NULL),
('SK83-98.gsb','ca_nrc_SK83-98.tif','SK83-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK83-98.tif',1,1,NULL),
('HT2_0.byn','ca_nrc_HT2_2010v70.tif','HT2_2010v70.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_HT2_2010v70.tif',1,1,NULL),
('CGG2013i08a.byn','ca_nrc_CGG2013ai08.tif','CGG2013ai08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013ai08.tif',1,1,NULL),
('CGG2013n83a.byn','ca_nrc_CGG2013an83.tif','CGG2013an83.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013an83.tif',1,1,NULL),
('CGG2013i83.byn','ca_nrc_CGG2013i08.tif','CGG2013i08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013i08.tif',1,1,NULL),
('CGG2013n83.byn','ca_nrc_CGG2013n83.tif','CGG2013n83.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013n83.tif',1,1,NULL),
-- Iceland
('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),
('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),
-- New Caledonia,
('gr3dnc01b.mnt','nc_dittt_gr3dnc01b.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/nc_dittt_gr3dnc01b.tif',1,1,NULL),
('gr3dnc02b.mnt','nc_dittt_gr3dnc02b.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/nc_dittt_gr3dnc02b.tif',1,1,NULL),
('gr3dnc03a.mnt','nc_dittt_gr3dnc03a.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/nc_dittt_gr3dnc03a.tif',1,1,NULL),
('Ranc08_Circe.mnt','nc_dittt_Ranc08_Circe.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nc_dittt_Ranc08_Circe.tif',1,1,NULL),
-- New Zealand grid shift models.
('auckland-1946-to-nzvd2016-conversion.csv','nz_linz_auckht1946-nzvd2016.tif','auckht1946-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_auckht1946-nzvd2016.tif',1,1,NULL),
-- Slovakia
('Slovakia_JTSK03_to_JTSK.LAS','sk_gku_JTSK03_to_JTSK.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/sk_gku_JTSK03_to_JTSK.tif',1,1,NULL),
('Slovakia_ETRS89h_to_Baltic1957.gtx','sk_gku_Slovakia_ETRS89h_to_Baltic1957.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/sk_gku_Slovakia_ETRS89h_to_Baltic1957.tif',1,1,NULL),
('Slovakia_ETRS89h_to_EVRF2007.gtx','sk_gku_Slovakia_ETRS89h_to_EVRF2007.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/sk_gku_Slovakia_ETRS89h_to_EVRF2007.tif',1,1,NULL),
-- Superseded entries
('bluff-1955-to-nzvd2016-conversion.csv','nz_linz_blufht1955-nzvd2016.tif','blufht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_blufht1955-nzvd2016.tif',1,1,NULL),
('dunedin-1958-to-nzvd2016-conversion.csv','nz_linz_duneht1958-nzvd2016.tif','duneht1958-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_duneht1958-nzvd2016.tif',1,1,NULL),
('dunedin-bluff-1960-to-nzvd2016-conversion.csv','nz_linz_dublht1960-nzvd2016.tif','dublht1960-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_dublht1960-nzvd2016.tif',1,1,NULL),
('gisborne-1926-to-nzvd2016-conversion.csv','nz_linz_gisbht1926-nzvd2016.tif','gisbht1926-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_gisbht1926-nzvd2016.tif',1,1,NULL),
('lyttelton-1937-to-nzvd2016-conversion.csv','nz_linz_lyttht1937-nzvd2016.tif','lyttht1937-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_lyttht1937-nzvd2016.tif',1,1,NULL),
('moturiki-1953-to-nzvd2016-conversion.csv','nz_linz_motuht1953-nzvd2016.tif','motuht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_motuht1953-nzvd2016.tif',1,1,NULL),
('napier-1962-to-nzvd2016-conversion.csv','nz_linz_napiht1962-nzvd2016.tif','napiht1962-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_napiht1962-nzvd2016.tif',1,1,NULL),
('nelson-1955-to-nzvd2016-conversion.csv','nz_linz_nelsht1955-nzvd2016.tif','nelsht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nelsht1955-nzvd2016.tif',1,1,NULL),
('onetreepoint-1964-to-nzvd2016-conversion.csv','nz_linz_ontpht1964-nzvd2016.tif','ontpht1964-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_ontpht1964-nzvd2016.tif',1,1,NULL),
('stewartisland-1977-to-nzvd2016-conversion.csv','nz_linz_stisht1977-nzvd2016.tif','stisht1977-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_stisht1977-nzvd2016.tif',1,1,NULL),
('taranaki-1970-to-nzvd2016-conversion.csv','nz_linz_taraht1970-nzvd2016.tif','taraht1970-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_taraht1970-nzvd2016.tif',1,1,NULL),
('wellington-1953-to-nzvd2016-conversion.csv','nz_linz_wellht1953-nzvd2016.tif','wellht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_wellht1953-nzvd2016.tif',1,1,NULL),
('auckht1946-nzvd2016.gtx','nz_linz_auckht1946-nzvd2016.tif','auckht1946-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_auckht1946-nzvd2016.tif',1,1,NULL),
('blufht1955-nzvd2016.gtx','nz_linz_blufht1955-nzvd2016.tif','blufht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_blufht1955-nzvd2016.tif',1,1,NULL),
('duneht1958-nzvd2016.gtx','nz_linz_duneht1958-nzvd2016.tif','duneht1958-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_duneht1958-nzvd2016.tif',1,1,NULL),
('dublht1960-nzvd2016.gtx','nz_linz_dublht1960-nzvd2016.tif','dublht1960-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_dublht1960-nzvd2016.tif',1,1,NULL),
('gisbht1926-nzvd2016.gtx','nz_linz_gisbht1926-nzvd2016.tif','gisbht1926-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_gisbht1926-nzvd2016.tif',1,1,NULL),
('lyttht1937-nzvd2016.gtx','nz_linz_lyttht1937-nzvd2016.tif','lyttht1937-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_lyttht1937-nzvd2016.tif',1,1,NULL),
('motuht1953-nzvd2016.gtx','nz_linz_motuht1953-nzvd2016.tif','motuht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_motuht1953-nzvd2016.tif',1,1,NULL),
('napiht1962-nzvd2016.gtx','nz_linz_napiht1962-nzvd2016.tif','napiht1962-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_napiht1962-nzvd2016.tif',1,1,NULL),
('nelsht1955-nzvd2016.gtx','nz_linz_nelsht1955-nzvd2016.tif','nelsht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nelsht1955-nzvd2016.tif',1,1,NULL),
('ontpht1964-nzvd2016.gtx','nz_linz_ontpht1964-nzvd2016.tif','ontpht1964-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_ontpht1964-nzvd2016.tif',1,1,NULL),
('stisht1977-nzvd2016.gtx','nz_linz_stisht1977-nzvd2016.tif','stisht1977-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_stisht1977-nzvd2016.tif',1,1,NULL),
('taraht1970-nzvd2016.gtx','nz_linz_taraht1970-nzvd2016.tif','taraht1970-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_taraht1970-nzvd2016.tif',1,1,NULL),
('wellht1953-nzvd2016.gtx','nz_linz_wellht1953-nzvd2016.tif','wellht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_wellht1953-nzvd2016.tif',1,1,NULL),
-- Superseded
('New_Zealand_Quasigeoid_2016.csv','nz_linz_nzgeoid2016.tif','nzgeoid2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2016.tif',1,1,NULL),
('nzgeoid2016.gtx','nz_linz_nzgeoid2016.tif','nzgeoid2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2016.tif',1,1,NULL),
-- Superseded
('nzgeoid09.sid','nz_linz_nzgeoid2009.tif','nzgeoid2009.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2009.tif',1,1,NULL),
('nzgeoid2009.gtx','nz_linz_nzgeoid2009.tif','nzgeoid2009.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2009.tif',1,1,NULL)
('g2018p0.bin','us_noaa_g2018p0.tif','g2018p0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2018p0.tif',1,1,NULL)
;
File diff suppressed because it is too large Load Diff
+137 -22
View File
@@ -4,95 +4,210 @@
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_4937_TO_EPSG_5799','ETRS89 to DVR90 height',
NULL,NULL,
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89)
'EPSG','5799', -- target CRS (DVR90 height)
'EPSG','3237', -- area of use: Denmark onshore
NULL,
'EPSG','8666','Geoid (height correction) model file','dvr90.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_4937_TO_EPSG_5799_USAGE',
'grid_transformation',
'PROJ',
'EPSG_4937_TO_EPSG_5799',
'EPSG','3237', -- area of use: Denmark onshore
'EPSG','1024' -- unknown
);
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_4937_TO_EPSG_5733','ETRS89 to DNN height',
NULL,NULL,
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89)
'EPSG','5733', -- target CRS (DNN height)
'EPSG','3237', -- area of use: Denmark onshore
NULL,
'EPSG','8666','Geoid (height correction) model file','dnn.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_4937_TO_EPSG_5733_USAGE',
'grid_transformation',
'PROJ',
'EPSG_4937_TO_EPSG_5733',
'EPSG','3237', -- area of use: Denmark onshore
'EPSG','1024' -- unknown
);
-- Faroe Islands
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_4937_TO_EPSG_5317','ETRS89 to FVR09 height',
NULL,NULL,
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89)
'EPSG','5317', -- target CRS (FVR09 height)
'EPSG','3248', -- area of use: Faroe Islands - onshore
NULL,
'EPSG','8666','Geoid (height correction) model file','fvr09.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_4937_TO_EPSG_5317_USAGE',
'grid_transformation',
'PROJ',
'EPSG_4937_TO_EPSG_5317',
'EPSG','3248', -- area of use: Faroe Islands - onshore
'EPSG','1024' -- unknown
);
-- Sweden
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_4977_TO_EPSG_5613','SWEREF99 to RH2000 height',
NULL,NULL,
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4977', -- source CRS (SWEREF99)
'EPSG','5613', -- target CRS (RH2000 height)
'EPSG','3313', -- area of use: Sweden onshore
NULL,
'EPSG','8666','Geoid (height correction) model file','SWEN17_RH2000.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_4977_TO_EPSG_5613_USAGE',
'grid_transformation',
'PROJ',
'EPSG_4977_TO_EPSG_5613',
'EPSG','3313', -- area of use: Sweden onshore
'EPSG','1024' -- unknown
);
-- Iceland
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_5323_TO_EPSG_8089','ISN2004 to ISH2004 height',
NULL,NULL,
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','5323', -- source CRS (ISN2004 geographic 3D)
'EPSG','8089', -- target CRS (ISH2004 height)
'EPSG','1120', -- area of use: Iceland - onshore and offshore
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,NULL,
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4945', -- source CRS (ISN93 geographic 3D)
'EPSG','8089', -- target CRS (ISH2004 height)
'EPSG','1120', -- area of use: Iceland - onshore and offshore
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,NULL,
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','8085', -- source CRS (ISN2016 geographic 3D)
'EPSG','8089', -- target CRS (ISH2004 height)
'EPSG','1120', -- area of use: Iceland - onshore and offshore
NULL,
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2016.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-- Spain
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(
'PROJ','EPSG_4937_TO_EPSG_5782','ETRS89 to Alicante height',
NULL,NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89 geographic 3D)
'EPSG','5782', -- target CRS (Alicante height)
'EPSG','2366', -- area of use: Spain - mainland onshore
'PROJ','EPSG_6667_TO_EPSG_6695','JDG2011 to JGD2011 height',
NULL,
'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.asc',
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','6667', -- source CRS (JDG2011)
'EPSG','6695', -- target CRS (JDG2011 (vertical) height)
NULL,
'EPSG','8666','Geoid (height correction) model file','jp_gsi_gsigeo2011.tif',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_6667_TO_EPSG_6695_USAGE',
'grid_transformation',
'PROJ',
'EPSG_6667_TO_EPSG_6695',
'EPSG','3263', -- area of use: Japan - onshore mainland
'EPSG','1024' -- unknown
);
-- Switzerland
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_4937_TO_EPSG_5729','ETRS89 to LHN95 height',
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89)
'EPSG','5729', -- target CRS (LHN95 height)
NULL,
'EPSG','8666','Geoid (height correction) model file','chgeo2004_ETRS.agr',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_4937_TO_EPSG_5729_USAGE',
'grid_transformation',
'PROJ',
'EPSG_4937_TO_EPSG_5729',
'EPSG','1286', -- area of use: Europe - Liechtenstein and Switzerland
'EPSG','1024' -- unknown
);
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_4937_TO_EPSG_5728','ETRS89 to LN02 height',
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89)
'EPSG','5728', -- target CRS (LN02 height)
NULL,
'EPSG','8666','Geoid (height correction) model file','chgeo2004_htrans_ETRS.agr',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_4937_TO_EPSG_5728_USAGE',
'grid_transformation',
'PROJ',
'EPSG_4937_TO_EPSG_5728',
'EPSG','1286', -- area of use: Europe - Liechtenstein and Switzerland
'EPSG','1024' -- unknown
);
File diff suppressed because it is too large Load Diff
+4178 -3010
View File
File diff suppressed because it is too large Load Diff
+21 -2
View File
@@ -1,2 +1,21 @@
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v9.8.12');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2020-06-19');
-- Version of the database structure.
-- The major number indicates an incompatible change (e.g. table or column
-- removed or renamed).
-- The minor number is incremented if a backward compatible change done, that
-- is the new database can still work with an older PROJ version.
-- When updating those numbers, the DATABASE_LAYOUT_VERSION_MAJOR and
-- DATABASE_LAYOUT_VERSION_MINOR constants in src/iso19111/factory.cpp must be
-- updated as well.
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1);
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 1);
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.028');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2021-07-07');
-- The value of ${PROJ_VERSION} is substituted at build time by the actual
-- value.
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.7');
-165
View File
@@ -1,165 +0,0 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
CREATE TRIGGER conversion_method_check_insert_trigger
BEFORE INSERT ON conversion
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Conformal (2SP)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9802' AND (NEW.method_name != 'Lambert Conic Conformal (2SP)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8821' OR NEW.param1_name != 'Latitude of false origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8822' OR NEW.param2_name != 'Longitude of false origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8823' OR NEW.param3_name != 'Latitude of 1st standard parallel' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8824' OR NEW.param4_name != 'Latitude of 2nd standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8826' OR NEW.param5_name != 'Easting at false origin' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8827' OR NEW.param6_name != 'Northing at false origin' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Transverse Mercator')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9807' AND (NEW.method_name != 'Transverse Mercator' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Mercator (variant A)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9804' AND (NEW.method_name != 'Mercator (variant A)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Popular Visualisation Pseudo Mercator')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1024' AND (NEW.method_name != 'Popular Visualisation Pseudo Mercator' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Azimuthal Equal Area (Spherical)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1027' AND (NEW.method_name != 'Lambert Azimuthal Equal Area (Spherical)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Equidistant Cylindrical')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1028' AND (NEW.method_name != 'Equidistant Cylindrical' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8823' OR NEW.param1_name != 'Latitude of 1st standard parallel' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Equidistant Cylindrical (Spherical)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1029' AND (NEW.method_name != 'Equidistant Cylindrical (Spherical)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8823' OR NEW.param1_name != 'Latitude of 1st standard parallel' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Cassini-Soldner')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9806' AND (NEW.method_name != 'Cassini-Soldner' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Bonne (South Orientated)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9828' AND (NEW.method_name != 'Bonne (South Orientated)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Albers Equal Area')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9822' AND (NEW.method_name != 'Albers Equal Area' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8821' OR NEW.param1_name != 'Latitude of false origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8822' OR NEW.param2_name != 'Longitude of false origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8823' OR NEW.param3_name != 'Latitude of 1st standard parallel' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8824' OR NEW.param4_name != 'Latitude of 2nd standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8826' OR NEW.param5_name != 'Easting at false origin' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8827' OR NEW.param6_name != 'Northing at false origin' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Krovak (North Orientated)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1041' AND (NEW.method_name != 'Krovak (North Orientated)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8833' OR NEW.param2_name != 'Longitude of origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '1036' OR NEW.param3_name != 'Co-latitude of cone axis' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8818' OR NEW.param4_name != 'Latitude of pseudo standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8819' OR NEW.param5_name != 'Scale factor on pseudo standard parallel' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'scale' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8806' OR NEW.param6_name != 'False easting' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '8807' OR NEW.param7_name != 'False northing' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'length');
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Krovak Modified')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1042' AND (NEW.method_name != 'Krovak Modified' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8833' OR NEW.param2_name != 'Longitude of origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '1036' OR NEW.param3_name != 'Co-latitude of cone axis' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8818' OR NEW.param4_name != 'Latitude of pseudo standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8819' OR NEW.param5_name != 'Scale factor on pseudo standard parallel' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'scale' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8806' OR NEW.param6_name != 'False easting' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '8807' OR NEW.param7_name != 'False northing' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'length');
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Krovak Modified (North Orientated)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1043' AND (NEW.method_name != 'Krovak Modified (North Orientated)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8833' OR NEW.param2_name != 'Longitude of origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '1036' OR NEW.param3_name != 'Co-latitude of cone axis' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8818' OR NEW.param4_name != 'Latitude of pseudo standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8819' OR NEW.param5_name != 'Scale factor on pseudo standard parallel' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'scale' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8806' OR NEW.param6_name != 'False easting' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '8807' OR NEW.param7_name != 'False northing' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'length');
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Conformal (1SP)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9801' AND (NEW.method_name != 'Lambert Conic Conformal (1SP)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for American Polyconic')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9818' AND (NEW.method_name != 'American Polyconic' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Polar Stereographic (variant A)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9810' AND (NEW.method_name != 'Polar Stereographic (variant A)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Krovak')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9819' AND (NEW.method_name != 'Krovak' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8833' OR NEW.param2_name != 'Longitude of origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '1036' OR NEW.param3_name != 'Co-latitude of cone axis' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8818' OR NEW.param4_name != 'Latitude of pseudo standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8819' OR NEW.param5_name != 'Scale factor on pseudo standard parallel' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'scale' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8806' OR NEW.param6_name != 'False easting' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '8807' OR NEW.param7_name != 'False northing' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'length');
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Oblique Stereographic')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9809' AND (NEW.method_name != 'Oblique Stereographic' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Mercator (variant B)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9805' AND (NEW.method_name != 'Mercator (variant B)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8823' OR NEW.param1_name != 'Latitude of 1st standard parallel' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Polar Stereographic (variant B)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9829' AND (NEW.method_name != 'Polar Stereographic (variant B)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8832' OR NEW.param1_name != 'Latitude of standard parallel' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8833' OR NEW.param2_name != 'Longitude of origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Conformal (2SP Michigan)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1051' AND (NEW.method_name != 'Lambert Conic Conformal (2SP Michigan)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8821' OR NEW.param1_name != 'Latitude of false origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8822' OR NEW.param2_name != 'Longitude of false origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8823' OR NEW.param3_name != 'Latitude of 1st standard parallel' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8824' OR NEW.param4_name != 'Latitude of 2nd standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8826' OR NEW.param5_name != 'Easting at false origin' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8827' OR NEW.param6_name != 'Northing at false origin' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '1038' OR NEW.param7_name != 'Ellipsoid scaling factor' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'scale');
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Colombia Urban')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1052' AND (NEW.method_name != 'Colombia Urban' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '1039' OR NEW.param5_name != 'Projection plane origin height' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Hotine Oblique Mercator (variant A)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9812' AND (NEW.method_name != 'Hotine Oblique Mercator (variant A)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8812' OR NEW.param2_name != 'Longitude of projection centre' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8813' OR NEW.param3_name != 'Azimuth of initial line' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8814' OR NEW.param4_name != 'Angle from Rectified to Skew Grid' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8815' OR NEW.param5_name != 'Scale factor on initial line' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'scale' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8806' OR NEW.param6_name != 'False easting' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '8807' OR NEW.param7_name != 'False northing' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'length');
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Cylindrical Equal Area')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9835' AND (NEW.method_name != 'Lambert Cylindrical Equal Area' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8823' OR NEW.param1_name != 'Latitude of 1st standard parallel' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Azimuthal Equal Area')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9820' AND (NEW.method_name != 'Lambert Azimuthal Equal Area' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Height Depth Reversal')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1068' AND (NEW.method_name != 'Height Depth Reversal' OR NEW.param1_auth_name IS NOT NULL OR NEW.param1_code IS NOT NULL OR NEW.param1_name IS NOT NULL OR NEW.param1_value IS NOT NULL OR NEW.param1_uom_auth_name IS NOT NULL OR NEW.param1_uom_code IS NOT NULL OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Change of Vertical Unit')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1069' AND (NEW.method_name != 'Change of Vertical Unit' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '1051' OR NEW.param1_name != 'Unit conversion scalar' OR (NOT((NEW.param1_value IS NULL AND NEW.param1_uom_auth_name IS NULL AND NEW.param1_uom_code IS NULL) OR (NEW.param1_value IS NOT NULL AND (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) = 'scale'))) OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Hotine Oblique Mercator (variant B)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9815' AND (NEW.method_name != 'Hotine Oblique Mercator (variant B)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8812' OR NEW.param2_name != 'Longitude of projection centre' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8813' OR NEW.param3_name != 'Azimuth of initial line' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8814' OR NEW.param4_name != 'Angle from Rectified to Skew Grid' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8815' OR NEW.param5_name != 'Scale factor on initial line' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'scale' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8816' OR NEW.param6_name != 'Easting at projection centre' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name != 'EPSG' OR NEW.param7_code != '8817' OR NEW.param7_name != 'Northing at projection centre' OR NEW.param7_value IS NULL OR NEW.param7_uom_auth_name IS NULL OR NEW.param7_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param7_uom_auth_name AND code = NEW.param7_uom_code) != 'length');
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Laborde Oblique Mercator')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9813' AND (NEW.method_name != 'Laborde Oblique Mercator' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8811' OR NEW.param1_name != 'Latitude of projection centre' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8812' OR NEW.param2_name != 'Longitude of projection centre' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8813' OR NEW.param3_name != 'Azimuth of initial line' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8815' OR NEW.param4_name != 'Scale factor on initial line' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'scale' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8806' OR NEW.param5_name != 'False easting' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8807' OR NEW.param6_name != 'False northing' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Equal Earth')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1078' AND (NEW.method_name != 'Equal Earth' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8802' OR NEW.param1_name != 'Longitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8806' OR NEW.param2_name != 'False easting' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'length' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8807' OR NEW.param3_name != 'False northing' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Modified Azimuthal Equidistant')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9832' AND (NEW.method_name != 'Modified Azimuthal Equidistant' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Guam Projection')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9831' AND (NEW.method_name != 'Guam Projection' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Axis Order Reversal (2D)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9843' AND (NEW.method_name != 'Axis Order Reversal (2D)' OR NEW.param1_auth_name IS NOT NULL OR NEW.param1_code IS NOT NULL OR NEW.param1_name IS NOT NULL OR NEW.param1_value IS NOT NULL OR NEW.param1_uom_auth_name IS NOT NULL OR NEW.param1_uom_code IS NOT NULL OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Axis Order Reversal (Geographic3D horizontal)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9844' AND (NEW.method_name != 'Axis Order Reversal (Geographic3D horizontal)' OR NEW.param1_auth_name IS NOT NULL OR NEW.param1_code IS NOT NULL OR NEW.param1_name IS NOT NULL OR NEW.param1_value IS NOT NULL OR NEW.param1_uom_auth_name IS NOT NULL OR NEW.param1_uom_code IS NOT NULL OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Geographic/geocentric conversions')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9602' AND (NEW.method_name != 'Geographic/geocentric conversions' OR NEW.param1_auth_name IS NOT NULL OR NEW.param1_code IS NOT NULL OR NEW.param1_name IS NOT NULL OR NEW.param1_value IS NOT NULL OR NEW.param1_uom_auth_name IS NOT NULL OR NEW.param1_uom_code IS NOT NULL OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Geographic3D to 2D conversion')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9659' AND (NEW.method_name != 'Geographic3D to 2D conversion' OR NEW.param1_auth_name IS NOT NULL OR NEW.param1_code IS NOT NULL OR NEW.param1_name IS NOT NULL OR NEW.param1_value IS NOT NULL OR NEW.param1_uom_auth_name IS NOT NULL OR NEW.param1_uom_code IS NOT NULL OR NEW.param2_auth_name IS NOT NULL OR NEW.param2_code IS NOT NULL OR NEW.param2_name IS NOT NULL OR NEW.param2_value IS NOT NULL OR NEW.param2_uom_auth_name IS NOT NULL OR NEW.param2_uom_code IS NOT NULL OR NEW.param3_auth_name IS NOT NULL OR NEW.param3_code IS NOT NULL OR NEW.param3_name IS NOT NULL OR NEW.param3_value IS NOT NULL OR NEW.param3_uom_auth_name IS NOT NULL OR NEW.param3_uom_code IS NOT NULL OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Geographic/topocentric conversions')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9837' AND (NEW.method_name != 'Geographic/topocentric conversions' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8834' OR NEW.param1_name != 'Latitude of topocentric origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8835' OR NEW.param2_name != 'Longitude of topocentric origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8836' OR NEW.param3_name != 'Ellipsoidal height of topocentric origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Geocentric/topocentric conversions')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9836' AND (NEW.method_name != 'Geocentric/topocentric conversions' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8837' OR NEW.param1_name != 'Geocentric X of topocentric origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'length' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8838' OR NEW.param2_name != 'Geocentric Y of topocentric origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'length' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8839' OR NEW.param3_name != 'Geocentric Z of topocentric origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name IS NOT NULL OR NEW.param4_code IS NOT NULL OR NEW.param4_name IS NOT NULL OR NEW.param4_value IS NOT NULL OR NEW.param4_uom_auth_name IS NOT NULL OR NEW.param4_uom_code IS NOT NULL OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Transverse Mercator Zoned Grid System')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9824' AND (NEW.method_name != 'Transverse Mercator Zoned Grid System' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8830' OR NEW.param2_name != 'Initial longitude' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8831' OR NEW.param3_name != 'Zone width' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8805' OR NEW.param4_name != 'Scale factor at natural origin' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'scale' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8806' OR NEW.param5_name != 'False easting' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8807' OR NEW.param6_name != 'False northing' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Transverse Mercator (South Orientated)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9808' AND (NEW.method_name != 'Transverse Mercator (South Orientated)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Conformal (West Orientated)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9826' AND (NEW.method_name != 'Lambert Conic Conformal (West Orientated)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Equidistant Cylindrical')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9842' AND (NEW.method_name != 'Equidistant Cylindrical' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8822' OR NEW.param2_name != 'Longitude of false origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Mercator (1SP) (Spherical)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9841' AND (NEW.method_name != 'Mercator (1SP) (Spherical)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Vertical Perspective')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9838' AND (NEW.method_name != 'Vertical Perspective' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8834' OR NEW.param1_name != 'Latitude of topocentric origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8835' OR NEW.param2_name != 'Longitude of topocentric origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8836' OR NEW.param3_name != 'Ellipsoidal height of topocentric origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8840' OR NEW.param4_name != 'Viewpoint height' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Azimuthal Equal Area (Spherical)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9821' AND (NEW.method_name != 'Lambert Azimuthal Equal Area (Spherical)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8828' OR NEW.param1_name != 'Spherical latitude of origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8829' OR NEW.param2_name != 'Spherical longitude of origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Cylindrical Equal Area (Spherical)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9834' AND (NEW.method_name != 'Lambert Cylindrical Equal Area (Spherical)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8823' OR NEW.param1_name != 'Latitude of 1st standard parallel' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Hyperbolic Cassini-Soldner')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9833' AND (NEW.method_name != 'Hyperbolic Cassini-Soldner' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Conformal (2SP Belgium)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9803' AND (NEW.method_name != 'Lambert Conic Conformal (2SP Belgium)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8821' OR NEW.param1_name != 'Latitude of false origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8822' OR NEW.param2_name != 'Longitude of false origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8823' OR NEW.param3_name != 'Latitude of 1st standard parallel' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8824' OR NEW.param4_name != 'Latitude of 2nd standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8826' OR NEW.param5_name != 'Easting at false origin' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8827' OR NEW.param6_name != 'Northing at false origin' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for New Zealand Map Grid')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9811' AND (NEW.method_name != 'New Zealand Map Grid' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Tunisia Mining Grid')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9816' AND (NEW.method_name != 'Tunisia Mining Grid' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8821' OR NEW.param1_name != 'Latitude of false origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8822' OR NEW.param2_name != 'Longitude of false origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8826' OR NEW.param3_name != 'Easting at false origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8827' OR NEW.param4_name != 'Northing at false origin' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Near-Conformal')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9817' AND (NEW.method_name != 'Lambert Conic Near-Conformal' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Equidistant Cylindrical (Spherical)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9823' AND (NEW.method_name != 'Equidistant Cylindrical (Spherical)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Polar Stereographic (variant C)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9830' AND (NEW.method_name != 'Polar Stereographic (variant C)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8832' OR NEW.param1_name != 'Latitude of standard parallel' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8833' OR NEW.param2_name != 'Longitude of origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8826' OR NEW.param3_name != 'Easting at false origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8827' OR NEW.param4_name != 'Northing at false origin' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
END;
+2339
View File
File diff suppressed because it is too large Load Diff
+13
View File
@@ -0,0 +1,13 @@
-- Append NKG to authority references
UPDATE
authority_to_authority_preference
SET
allowed_authorities = allowed_authorities || ',NKG'
WHERE
source_auth_name = 'EPSG' AND target_auth_name = 'EPSG';
INSERT INTO "authority_to_authority_preference"
(source_auth_name,target_auth_name, allowed_authorities)
VALUES
('NKG', 'EPSG', 'NKG,PROJ,EPSG');
File diff suppressed because it is too large Load Diff
+159
View File
@@ -0,0 +1,159 @@
-- This file is hand generated.
-- Norway triangulated files
INSERT INTO other_transformation VALUES(
'PROJ','NGO48_TO_ETRS89NO','NGO 1948 to ETRS89 (2)',
'Transformation based on a triangulated irregular network',
'PROJ','PROJString',
'+proj=pipeline ' ||
'+step +proj=axisswap +order=2,1 ' ||
'+step +proj=tinshift +file=no_kv_ETRS89NO_NGO48_TIN.json +inv ' ||
'+step +proj=axisswap +order=2,1',
'EPSG','4273',
'EPSG','4258',
0.1,
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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('PROJ','NGO48_TO_ETRS89NO_USAGE','other_transformation','PROJ','NGO48_TO_ETRS89NO','EPSG','1352','EPSG','1031');
-- Finland triangulated files
INSERT INTO other_transformation VALUES(
'PROJ','YKJ_TO_ETRS35FIN','KKJ / Finland Uniform Coordinate System to ETRS35FIN',
'Transformation based on a triangulated irregular network',
'PROJ','PROJString','+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=tinshift +file=fi_nls_ykj_etrs35fin.json',
'EPSG','2393','EPSG','3067',0.1,
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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('PROJ','YKJ_TO_ETRS35FIN_USAGE','other_transformation','PROJ','YKJ_TO_ETRS35FIN','EPSG','3333','EPSG','1024');
INSERT INTO "concatenated_operation" VALUES('PROJ','KKJ_TO_ETRS89','KKJ to ETRS89 (using PROJ:YKJ_TO_ETRS35FIN)','Transformation based on a triangulated irregular network','EPSG','4123','EPSG','4258',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',1,'EPSG','18193');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',2,'PROJ','YKJ_TO_ETRS35FIN');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',3,'EPSG','16065');
INSERT INTO "usage" VALUES(
'PROJ',
'KKJ_TO_ETRS89_USAGE',
'concatenated_operation',
'PROJ',
'KKJ_TO_ETRS89',
'EPSG','3333', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO other_transformation VALUES(
'PROJ','N43_TO_N60','N43 height to N60 height',
'Transformation based on a triangulated irregular network',
'PROJ','PROJString','+proj=pipeline +step +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +step +proj=tinshift +file=fi_nls_n43_n60.json +step +inv +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl',
'EPSG','8675','EPSG','5717',0.01,
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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4123',NULL,0);
INSERT INTO "usage" VALUES('PROJ','N43_TO_N60_USAGE','other_transformation','PROJ','N43_TO_N60','EPSG','4522','EPSG','1024');
INSERT INTO other_transformation VALUES(
'PROJ','N60_TO_N2000','N60 height to N2000 height',
'Transformation based on a triangulated irregular network',
'PROJ','PROJString','+proj=pipeline +step +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +step +proj=tinshift +file=fi_nls_n60_n2000.json +step +inv +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl',
'EPSG','5717','EPSG','3900',0.01,
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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4123',NULL,0);
INSERT INTO "usage" VALUES('PROJ','N60_TO_N2000_USAGE','other_transformation','PROJ','N60_TO_N2000','EPSG','3333','EPSG','1024');
-- Temporary entry for NZGD2000 deformation model
INSERT INTO other_transformation VALUES(
'PROJ','NZGD2000-20180701','NZGD2000 to ITRF96',
'New Zealand Deformation Model. Defines the secular model (National Deformation Model) and patches for significant deformation events since 2000',
'PROJ', 'PROJString',
'+proj=pipeline ' ||
'+step +proj=unitconvert +xy_in=deg +xy_out=rad ' ||
'+step +proj=axisswap +order=2,1 ' ||
'+step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json ' ||
'+step +proj=axisswap +order=2,1 ' ||
'+step +proj=unitconvert +xy_in=rad +xy_out=deg',
'EPSG','4959',
'EPSG','7907',
NULL, --accuracy
NULL,NULL,NULL,NULL,NULL,NULL, -- param1
NULL,NULL,NULL,NULL,NULL,NULL, -- param2
NULL,NULL,NULL,NULL,NULL,NULL, -- param3
NULL,NULL,NULL,NULL,NULL,NULL, -- param4
NULL,NULL,NULL,NULL,NULL,NULL, -- param5
NULL,NULL,NULL,NULL,NULL,NULL, -- param6
NULL,NULL,NULL,NULL,NULL,NULL, -- param7
NULL,NULL,
'20180701', -- operation version
0);
INSERT INTO "usage" VALUES(
'PROJ',
'NZGD2000-20180701_USAGE',
'other_transformation',
'PROJ',
'NZGD2000-20180701',
'EPSG','1175', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF97','NZGD2000 to ITRF97','Concatenation of PROJ:NZGD2000-20180701 and 9079','EPSG','4959','EPSG','7908',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF97',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF97',2,'EPSG','9079');
INSERT INTO "usage" VALUES(
'PROJ',
'NZGD2000_TO_ITRF97_USAGE',
'concatenated_operation',
'PROJ',
'NZGD2000_TO_ITRF97',
'EPSG','1175', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2000','NZGD2000 to ITRF2000','Concatenation of PROJ:NZGD2000-20180701 and 9080','EPSG','4959','EPSG','7909',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2000',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2000',2,'EPSG','9080');
INSERT INTO "usage" VALUES(
'PROJ',
'NZGD2000_TO_ITRF2000_USAGE',
'concatenated_operation',
'PROJ',
'NZGD2000_TO_ITRF2000',
'EPSG','1175', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2005','NZGD2000 to ITRF2005','Concatenation of PROJ:NZGD2000-20180701 and 9081','EPSG','4959','EPSG','7910',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2005',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2005',2,'EPSG','9081');
INSERT INTO "usage" VALUES(
'PROJ',
'NZGD2000_TO_ITRF2005_USAGE',
'concatenated_operation',
'PROJ',
'NZGD2000_TO_ITRF2005',
'EPSG','1175', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2008','NZGD2000 to ITRF2008','Concatenation of PROJ:NZGD2000-20180701 and EPSG:9082','EPSG','4959','EPSG','7911',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2008',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2008',2,'EPSG','9082');
INSERT INTO "usage" VALUES(
'PROJ',
'NZGD2000_TO_ITRF2008_USAGE',
'concatenated_operation',
'PROJ',
'NZGD2000_TO_ITRF2008',
'EPSG','1175', -- extent
'EPSG','1024' -- unknown
);
INSERT INTO "concatenated_operation" VALUES('PROJ','NZGD2000_TO_ITRF2014','NZGD2000 to ITRF2014','Concatenation of PROJ:NZGD2000-20180701 and EPSG:9083','EPSG','4959','EPSG','7912',NULL,NULL,0);
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2014',1,'PROJ','NZGD2000-20180701');
INSERT INTO "concatenated_operation_step" VALUES('PROJ','NZGD2000_TO_ITRF2014',2,'EPSG','9083');
INSERT INTO "usage" VALUES(
'PROJ',
'NZGD2000_TO_ITRF2014_USAGE',
'concatenated_operation',
'PROJ',
'NZGD2000_TO_ITRF2014',
'EPSG','1175', -- extent
'EPSG','1024' -- unknown
);
+1 -1
View File
@@ -4,7 +4,7 @@ INSERT INTO "prime_meridian" VALUES('EPSG','8901','Greenwich',0.0,'EPSG','9102',
INSERT INTO "prime_meridian" VALUES('EPSG','8902','Lisbon',-9.0754862,'EPSG','9110',0);
INSERT INTO "prime_meridian" VALUES('EPSG','8903','Paris',2.5969213,'EPSG','9105',0);
INSERT INTO "prime_meridian" VALUES('EPSG','8904','Bogota',-74.04513,'EPSG','9110',0);
INSERT INTO "prime_meridian" VALUES('EPSG','8905','Madrid',-3.411658,'EPSG','9110',0);
INSERT INTO "prime_meridian" VALUES('EPSG','8905','Madrid',-3.411455,'EPSG','9110',0);
INSERT INTO "prime_meridian" VALUES('EPSG','8906','Rome',12.27084,'EPSG','9110',0);
INSERT INTO "prime_meridian" VALUES('EPSG','8907','Bern',7.26225,'EPSG','9110',0);
INSERT INTO "prime_meridian" VALUES('EPSG','8908','Jakarta',106.482779,'EPSG','9110',0);
File diff suppressed because it is too large Load Diff
+10607 -5089
View File
File diff suppressed because it is too large Load Diff
+254
View File
@@ -0,0 +1,254 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "scope" VALUES('EPSG','1024','Not known.',0);
INSERT INTO "scope" VALUES('EPSG','1025','?',1);
INSERT INTO "scope" VALUES('EPSG','1026','Spatial referencing.',0);
INSERT INTO "scope" VALUES('EPSG','1027','Geodesy.',0);
INSERT INTO "scope" VALUES('EPSG','1028','Cadastre.',0);
INSERT INTO "scope" VALUES('EPSG','1029','Engineering survey.',0);
INSERT INTO "scope" VALUES('EPSG','1030','Example only (fictitious).',0);
INSERT INTO "scope" VALUES('EPSG','1031','Transformation of coordinates at 0.1m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1032','Transformation of coordinates at 0.2m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1033','Transformation of coordinates at 0.3m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1034','Transformation of coordinates at 0.4m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1035','Transformation of coordinates at 0.5m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1036','Transformation of coordinates at 0.6m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1037','Transformation of coordinates at 0.7m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1038','Transformation of coordinates at 0.8m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1039','Transformation of coordinates at 0.9m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1040','Polar research.',0);
INSERT INTO "scope" VALUES('EPSG','1041','Transformation of coordinates at 1m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1042','Transformation of coordinates at 2m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1043','Transformation of coordinates at 3m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1044','Transformation of coordinates at 4m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1045','Transformation of coordinates at 5m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1046','Atlas of Canada and nationwide web mapping applications.',0);
INSERT INTO "scope" VALUES('EPSG','1047','Remote sensing.',0);
INSERT INTO "scope" VALUES('EPSG','1048','Transformation of coordinates at 0.25m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1049','Transformation of coordinates at 9m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1050','Transformation of coordinates at 10m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1051','Approximation of horizontal component of official 3D RDNAPTRANS(TM) transformation, which since 1st October 2000 has defined Amersfoort geodetic datum.',0);
INSERT INTO "scope" VALUES('EPSG','1052','Basin-wide mapping and analysis.',0);
INSERT INTO "scope" VALUES('EPSG','1053','Boundary demarcation.',0);
INSERT INTO "scope" VALUES('EPSG','1054','Cadastre, engineering survey.',0);
INSERT INTO "scope" VALUES('EPSG','1055','Cadastre, engineering survey, topographic mapping (large scale).',0);
INSERT INTO "scope" VALUES('EPSG','1056','Cadastre, engineering survey, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1057','Cadastre, engineering survey, topographic mapping (medium scale).',0);
INSERT INTO "scope" VALUES('EPSG','1058','Change of coordinate epoch for points referenced to NAD83(CSRS)v6.',0);
INSERT INTO "scope" VALUES('EPSG','1059','Change of height to a different vertical reference surface.',0);
INSERT INTO "scope" VALUES('EPSG','1060','Change of depth to a different vertical reference surface.',0);
INSERT INTO "scope" VALUES('EPSG','1061','Cadastre, engineering survey, topographic mapping (1:5000 and larger scales).',0);
INSERT INTO "scope" VALUES('EPSG','1062','Topographic mapping (1:50,000).',0);
INSERT INTO "scope" VALUES('EPSG','1063','Topographic mapping (1:50,000) published between 1955 and 2000.',0);
INSERT INTO "scope" VALUES('EPSG','1064','Abu Dhabi Municipality GIS.',0);
INSERT INTO "scope" VALUES('EPSG','1065','Academic research, not officially adopted.',0);
INSERT INTO "scope" VALUES('EPSG','1066','Recommended by OSi and OSNI for all horizontal CTs in the Republic and Northern Ireland.',0);
INSERT INTO "scope" VALUES('EPSG','1067','Post-1996 data based on the classical geodetic network.',0);
INSERT INTO "scope" VALUES('EPSG','1068','Pre-1996 data related to the classical geodetic network.',0);
INSERT INTO "scope" VALUES('EPSG','1069','Adopted as official definition of OSGB36 from 2002 to August 2016. Accuracy by definition exact. Accuracy compared to triangulation coordinates 0.1m at 67% confidence level.',0);
INSERT INTO "scope" VALUES('EPSG','1070','Adopted as official definition of OSGB36 from August 2016. Accuracy by definition exact. Accuracy compared to triangulation coordinates 0.1m at 67% confidence level.',0);
INSERT INTO "scope" VALUES('EPSG','1071','Arctic small scale mapping - Alaska-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1072','Arctic small scale mapping - Canada-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1073','Arctic small scale mapping - Greenland-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1074','Arctic small scale mapping - Norway-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1075','Arctic small scale mapping - Russia-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1076','Transformation of coordinates at 25m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1077','Transformation of coordinates at 30m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1078','Transformation of coordinates at 0.15m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1079','Transformation of coordinates at 0.05m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1080','Angola LNG project.',0);
INSERT INTO "scope" VALUES('EPSG','1081','Seismic survey.',0);
INSERT INTO "scope" VALUES('EPSG','1082','Approximate transformation of seismic data acquired before 1985 to CRS used post 1985.',0);
INSERT INTO "scope" VALUES('EPSG','1083','Approximation (to better than 2cm) using NTv2 method of results of FINELTRA programme concatenated with LV-95 parameters.',0);
INSERT INTO "scope" VALUES('EPSG','1084','Approximation (to better than 2m) using NTv2 method of results of FINELTRA programme concatenated with LV-95 parameters.',0);
INSERT INTO "scope" VALUES('EPSG','1085','Approximation using NTv2 method of results of FINELTRA programme to an accuracy of 0.01m except at boundary of the Geneva and Vaud cantons, in city of Geneva and in the main valleys of Valais canton where differences are up to 20 cm.',0);
INSERT INTO "scope" VALUES('EPSG','1086','Approximation of horizontal component of official 3D RDNAPTRANS(TM) transformation, which since 1st October 2000 has defined Amersfoort geodetic datum.',0);
INSERT INTO "scope" VALUES('EPSG','1087','Approximation for pan-European small-scale mapping in extended ETRS89.',0);
INSERT INTO "scope" VALUES('EPSG','1088','Approximation for pan-European statistical analysis in extended ETRS89.',0);
INSERT INTO "scope" VALUES('EPSG','1089','Basis for topographic mapping in Republic of Ireland between 1965 and 1975; for scientific purposes only in Northern Ireland.',0);
INSERT INTO "scope" VALUES('EPSG','1090','Basis for topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1091','Cadastre, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1092','Cadastre, engineering survey, topographic mapping (large and medium scale).',0);
INSERT INTO "scope" VALUES('EPSG','1093','Cadastre, engineering survey. Usage restricted to areas below 290m above sea level.',0);
INSERT INTO "scope" VALUES('EPSG','1094','Cadastre in Czechia.',0);
INSERT INTO "scope" VALUES('EPSG','1095','Cadastre in Slovakia.',0);
INSERT INTO "scope" VALUES('EPSG','1096','Cadastre, survey control and engineering survey in urban areas, typically in all municipalities that previously comprised the 73 Municipal Integrated Surveying and Mapping (MISAM) areas, also known as urban cadastral map areas. For rural areas use UTM.',0);
INSERT INTO "scope" VALUES('EPSG','1097','Cartography System of Distrito Federal (SICAD).',0);
INSERT INTO "scope" VALUES('EPSG','1098','Web mapping and visualisation.',0);
INSERT INTO "scope" VALUES('EPSG','1099','Change of height to a different vertical reference surface and unit.',0);
INSERT INTO "scope" VALUES('EPSG','1100','Change of prime meridian.',0);
INSERT INTO "scope" VALUES('EPSG','1101','Change of height or depth unit.',0);
INSERT INTO "scope" VALUES('EPSG','1102','Cadastre, engineering survey, civilian topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1103','Coastal hydrography.',0);
INSERT INTO "scope" VALUES('EPSG','1104','Coastal hydrography, offshore oil and gas exploration and production.',0);
INSERT INTO "scope" VALUES('EPSG','1105','Coastal hydrography. Not used by oil industry.',0);
INSERT INTO "scope" VALUES('EPSG','1106','Construction of the Basic Spatial Unit (BSU) grid.',0);
INSERT INTO "scope" VALUES('EPSG','1107','Conformal mapping at scales of 1:500,000 and smaller.',0);
INSERT INTO "scope" VALUES('EPSG','1108','Transformation of GDA94 coordinates that have been derived through GNSS CORS.',0);
INSERT INTO "scope" VALUES('EPSG','1109','Data analysis and small scale data presentation for contiguous lower 48 states.',0);
INSERT INTO "scope" VALUES('EPSG','1110','US Defense Meteorological Satellite Program (DMSP) SSM/I microwave imagery products.',0);
INSERT INTO "scope" VALUES('EPSG','1111','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.',0);
INSERT INTO "scope" VALUES('EPSG','1112','Convert degree representation.',1);
INSERT INTO "scope" VALUES('EPSG','1113','Defined as exact.',0);
INSERT INTO "scope" VALUES('EPSG','1114','Geodesy. Defined as exact for S-JTSK/05 (Ferro) / Modified Krovak projCRSs (CRS codes 5224-25).',0);
INSERT INTO "scope" VALUES('EPSG','1115','Geodesy. Defines the S-JTSK [JTSK03] realization.',0);
INSERT INTO "scope" VALUES('EPSG','1116','Geodesy. Defines ED50 in the Faroe Islands.',0);
INSERT INTO "scope" VALUES('EPSG','1117','Defines ellipsoidal coordinates of origin of topocentric CS.',0);
INSERT INTO "scope" VALUES('EPSG','1118','Defines geocentric coordinates of origin of topocentric CS.',0);
INSERT INTO "scope" VALUES('EPSG','1119','Geodesy. Defines ETRF89.',0);
INSERT INTO "scope" VALUES('EPSG','1120','Geodesy. Defines ETRF90.',0);
INSERT INTO "scope" VALUES('EPSG','1121','Geodesy. Defines ETRF91.',0);
INSERT INTO "scope" VALUES('EPSG','1122','Geodesy. Defines ETRF92.',0);
INSERT INTO "scope" VALUES('EPSG','1123','Geodesy. Defines ETRF93.',0);
INSERT INTO "scope" VALUES('EPSG','1124','Geodesy. Defines ETRF94.',0);
INSERT INTO "scope" VALUES('EPSG','1125','Geodesy. Defines ETRF96.',0);
INSERT INTO "scope" VALUES('EPSG','1126','Geodesy. Defines ETRF97.',0);
INSERT INTO "scope" VALUES('EPSG','1127','Geodesy. Defines ETRF2000.',0);
INSERT INTO "scope" VALUES('EPSG','1128','Geodesy. Defines ETRF2005.',0);
INSERT INTO "scope" VALUES('EPSG','1129','Geodesy. Defines ETRF2014.',0);
INSERT INTO "scope" VALUES('EPSG','1130','EEZ delimitation.',0);
INSERT INTO "scope" VALUES('EPSG','1131','Change of coordinate epoch for points referenced to NAD83(CSRS)v7.',0);
INSERT INTO "scope" VALUES('EPSG','1132','Derivation of approximate gravity-related heights from GNSS observations.',0);
INSERT INTO "scope" VALUES('EPSG','1133','Derivation of gravity-related heights from GNSS observations.',0);
INSERT INTO "scope" VALUES('EPSG','1134','Description of the use or purpose of the CRS.',0);
INSERT INTO "scope" VALUES('EPSG','1135','State-wide spatial data management.',0);
INSERT INTO "scope" VALUES('EPSG','1136','Oil and gas exploration and production.',0);
INSERT INTO "scope" VALUES('EPSG','1137','Emulation of polynomial.',0);
INSERT INTO "scope" VALUES('EPSG','1138','Engineering survey, harbour hydrography.',0);
INSERT INTO "scope" VALUES('EPSG','1139','Engineering survey and construction for Fehmarnbelt tunnel.',0);
INSERT INTO "scope" VALUES('EPSG','1140','Engineering survey for onshore facilities for South Pars phase 11 and Pars LNG.',0);
INSERT INTO "scope" VALUES('EPSG','1141','Engineering survey and topographic mapping for railway applications.',0);
INSERT INTO "scope" VALUES('EPSG','1142','Engineering survey, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1143','Engineering survey, GIS.',0);
INSERT INTO "scope" VALUES('EPSG','1144','Engineering survey, GIS, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1145','Engineering survey 2011 to 2015.',0);
INSERT INTO "scope" VALUES('EPSG','1146','Engineering survey including Airport and Ruperts Wharf construction.',0);
INSERT INTO "scope" VALUES('EPSG','1147','Engineering survey prior to 2016 including Airport and Ruperts Wharfe construction.',0);
INSERT INTO "scope" VALUES('EPSG','1148','Exploration and development, mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1149','Exploration and production operations in Brunei. Formerly also topographic mapping (large and medium scale) and engineering survey.',0);
INSERT INTO "scope" VALUES('EPSG','1150','Transformation of coordinates at 0.01m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1151','Transformation of coordinates at 1m to 2m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1152','Transformation of coordinates at 0.1m to 0.2m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1153','Topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1154','Geocentric to geographic 3D conversions and vice versa.',0);
INSERT INTO "scope" VALUES('EPSG','1155','Geographic 3D to geographic 2D conversions.',0);
INSERT INTO "scope" VALUES('EPSG','1156','Height to depth or depth to height conversions.',0);
INSERT INTO "scope" VALUES('EPSG','1157','Low accuracy applications.',0);
INSERT INTO "scope" VALUES('EPSG','1158','Medium accuracy applications.',0);
INSERT INTO "scope" VALUES('EPSG','1159','Approximation for medium and low accuracy applications ignoring static/dynamic CRS differences.',0);
INSERT INTO "scope" VALUES('EPSG','1160','Military survey.',0);
INSERT INTO "scope" VALUES('EPSG','1161','Pan-European spatial positioning.',0);
INSERT INTO "scope" VALUES('EPSG','1162','Statistical analysis.',0);
INSERT INTO "scope" VALUES('EPSG','1163','Spatial referencing in zoned CRSs where zone boundaries are strictly enforced.',0);
INSERT INTO "scope" VALUES('EPSG','1164','Transformation of MRT68 RSO coordinates.',0);
INSERT INTO "scope" VALUES('EPSG','1165','Forestry.',0);
INSERT INTO "scope" VALUES('EPSG','1166','Geodesy. Defines NAD83(CSRS96).',0);
INSERT INTO "scope" VALUES('EPSG','1167','Geodesy. Defines NAD83(CSRS)v2.',0);
INSERT INTO "scope" VALUES('EPSG','1168','Geodesy. Defines NAD83(CSRS)v3.',0);
INSERT INTO "scope" VALUES('EPSG','1169','Geodesy. Defines NAD83(CSRS)v4.',0);
INSERT INTO "scope" VALUES('EPSG','1170','Geodesy. Defines NAD83(CSRS)v5.',0);
INSERT INTO "scope" VALUES('EPSG','1171','Geodesy. Defines NAD83(CSRS)v6.',0);
INSERT INTO "scope" VALUES('EPSG','1172','Geodesy. Defines NAD83(CSRS)v7.',0);
INSERT INTO "scope" VALUES('EPSG','1173','Geodesy. Defines NAD83(CORS96) from 1st January 1997 through 31st December 1999.',0);
INSERT INTO "scope" VALUES('EPSG','1174','Geodesy. Defines NAD83(CORS96) from January 2000 through December 2001.',0);
INSERT INTO "scope" VALUES('EPSG','1175','Geodesy. Defines NAD83(CORS96) from from 1st January 2002 through 6th September 2011.',0);
INSERT INTO "scope" VALUES('EPSG','1176','Geodesy. Navigation and positioning using GPS satellite system.',0);
INSERT INTO "scope" VALUES('EPSG','1177','Geodesy. Navigation and positioning using Glonass satellite system.',0);
INSERT INTO "scope" VALUES('EPSG','1178','Geodesy, engineering survey, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1179','Geodesy, engineering survey.',0);
INSERT INTO "scope" VALUES('EPSG','1180','Geodesy, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1181','Geodesy, cadastre, engineering survey, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1182','Geodesy; air, land and sea navigation and safety of life purposes.',0);
INSERT INTO "scope" VALUES('EPSG','1183','Horizontal component of 3D system.',0);
INSERT INTO "scope" VALUES('EPSG','1184','Geodesy, cadastre, engineering survey.',0);
INSERT INTO "scope" VALUES('EPSG','1185','Geodesy, cadastre.',0);
INSERT INTO "scope" VALUES('EPSG','1186','Geodesy, GIS.',0);
INSERT INTO "scope" VALUES('EPSG','1187','Geodesy, offshore minerals management.',0);
INSERT INTO "scope" VALUES('EPSG','1188','Geodesy, onshore minerals management.',0);
INSERT INTO "scope" VALUES('EPSG','1189','GIS.',0);
INSERT INTO "scope" VALUES('EPSG','1190','Geological analysis.',0);
INSERT INTO "scope" VALUES('EPSG','1191','Graticule coordinates expressed in simple Cartesian form.',0);
INSERT INTO "scope" VALUES('EPSG','1192','Graticule coordinates in rectangular Cartesian form.',0);
INSERT INTO "scope" VALUES('EPSG','1193','Geological analysis.',0);
INSERT INTO "scope" VALUES('EPSG','1194','Spatial referencing in and around city and county of San Francisco.',0);
INSERT INTO "scope" VALUES('EPSG','1195','Environmental science - used as basis for EASE grid.',0);
INSERT INTO "scope" VALUES('EPSG','1196','Highway engineering.',0);
INSERT INTO "scope" VALUES('EPSG','1197','Historic record only - now superseded - see remarks.',0);
INSERT INTO "scope" VALUES('EPSG','1198','Hydrography and nautical charting.',0);
INSERT INTO "scope" VALUES('EPSG','1199','Hydrography, drilling.',0);
INSERT INTO "scope" VALUES('EPSG','1200','Hydrography, drilling, marine geophysics.',0);
INSERT INTO "scope" VALUES('EPSG','1201','Hydrography, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1202','Hydrology.',0);
INSERT INTO "scope" VALUES('EPSG','1203','Intermediate stage in transformations - not used otherwise.',0);
INSERT INTO "scope" VALUES('EPSG','1204','Preliminary estimate.',0);
INSERT INTO "scope" VALUES('EPSG','1205','KOC exploration and field development subsurface work.',0);
INSERT INTO "scope" VALUES('EPSG','1206','KOC survey control and facilities engineering.',0);
INSERT INTO "scope" VALUES('EPSG','1207','Cadastre, topographic mapping (large scale).',0);
INSERT INTO "scope" VALUES('EPSG','1208','Engineering survey, topographic mapping (large scale).',0);
INSERT INTO "scope" VALUES('EPSG','1209','Topographic mapping (large scale).',0);
INSERT INTO "scope" VALUES('EPSG','1210','Topographic mapping (medium and small scale).',0);
INSERT INTO "scope" VALUES('EPSG','1211','Topographic mapping (medium scale).',0);
INSERT INTO "scope" VALUES('EPSG','1212','No official usage.',0);
INSERT INTO "scope" VALUES('EPSG','1213','Not a valid datum.',0);
INSERT INTO "scope" VALUES('EPSG','1214','Not recommended.',0);
INSERT INTO "scope" VALUES('EPSG','1215','Obsolete.',0);
INSERT INTO "scope" VALUES('EPSG','1216','Oil and gas exploration.',0);
INSERT INTO "scope" VALUES('EPSG','1217','Oil and gas exploration offshore.',0);
INSERT INTO "scope" VALUES('EPSG','1218','NNRMS 1:250,000 national resources database of coarse resolution earth observation imagery and mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1219','NNRMS National Spatial Framework (NSF) state resource database of medium resolution earth observation imagery and mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1220','Province-wide spatial data management.',0);
INSERT INTO "scope" VALUES('EPSG','1221','State-wide spatial data presentation requiring shape preservation.',0);
INSERT INTO "scope" VALUES('EPSG','1222','State-wide spatial data presentation requiring true area measurements.',0);
INSERT INTO "scope" VALUES('EPSG','1223','Very small scale equal-area mapping - Americas-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1224','Very small scale equal-area mapping - Asia-Pacific-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1225','Very small scale equal-area mapping - Europe-Africa-centred.',0);
INSERT INTO "scope" VALUES('EPSG','1226','Wellbore survey.',0);
INSERT INTO "scope" VALUES('EPSG','1227','Pan-European medium scale conformal mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1228','Very small scale conformal mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1229','Engineering design concept visualisation.',0);
INSERT INTO "scope" VALUES('EPSG','1230','User-defined CRS in GPS receiver.',0);
INSERT INTO "scope" VALUES('EPSG','1231','GeoNB Coordinate Transformation Service.',0);
INSERT INTO "scope" VALUES('EPSG','1232','GRANIT coordinate transformation programme between 1987 and 1997.',0);
INSERT INTO "scope" VALUES('EPSG','1233','US space and military operations.',0);
INSERT INTO "scope" VALUES('EPSG','1234','Transformation of GDA94 coordinates when localised distortion needs to be taken into account, e.g. if GDA94 coordinates were derived from survey control monuments.',0);
INSERT INTO "scope" VALUES('EPSG','1235','Approximation at the 0.01m level.',0);
INSERT INTO "scope" VALUES('EPSG','1236','Topographic mapping, environmental studies.',0);
INSERT INTO "scope" VALUES('EPSG','1237','Cadastre, hydrography, topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1238','Territory-wide spatial data management.',0);
INSERT INTO "scope" VALUES('EPSG','1239','Temporary transformation pending introduction of bilinear interpolation gridded dataset.',0);
INSERT INTO "scope" VALUES('EPSG','1240','Spatial analysis for the purposes of Natural Capital Accounting.',0);
INSERT INTO "scope" VALUES('EPSG','1241','Topographic mapping (small scale).',0);
INSERT INTO "scope" VALUES('EPSG','1242','Topographic and geological mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1243','Hydrography and aeronautical charting.',0);
INSERT INTO "scope" VALUES('EPSG','1244','enter as appropriate: seismic data acquisition / processing / interpretation',0);
INSERT INTO "scope" VALUES('EPSG','1245','Satellite navigation.',0);
INSERT INTO "scope" VALUES('EPSG','1246','Regional studies.',0);
INSERT INTO "scope" VALUES('EPSG','1247','Oceanography.',0);
INSERT INTO "scope" VALUES('EPSG','1248','Municipal spatial referencing.',0);
INSERT INTO "scope" VALUES('EPSG','1249','Minerals management (including oil and gas exploration and production).',0);
INSERT INTO "scope" VALUES('EPSG','1250','Metrication of RSO grid.',0);
INSERT INTO "scope" VALUES('EPSG','1251','Marine navigation.',0);
INSERT INTO "scope" VALUES('EPSG','1252','Approximation assuming equality between plate-fixed static and earth-fixed dynamic CRSs.',0);
INSERT INTO "scope" VALUES('EPSG','1253','Approximation at the 1m level.',0);
INSERT INTO "scope" VALUES('EPSG','1254','Antarctic Digital Database and small scale topographic mapping.',0);
INSERT INTO "scope" VALUES('EPSG','1255','Transformation of coordinates at 0.02m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1256','Transformation of coordinates at accuracy of about 1 part in 10^5 of distance between points, depending on relative tectonic motion.',0);
INSERT INTO "scope" VALUES('EPSG','1257','Transformation of coordinates obtained independently of the classical geodetic network (GPS observations conducted after 1994).',0);
INSERT INTO "scope" VALUES('EPSG','1258','Products and services through the BEV Geoportal.',0);
INSERT INTO "scope" VALUES('EPSG','1259','Statistical mapping (small scale).',0);
INSERT INTO "scope" VALUES('EPSG','1260','Engineering survey for HS2 project phases 1 and 2a.',0);
INSERT INTO "scope" VALUES('EPSG','1261','Geodesy (gravity).',0);
INSERT INTO "scope" VALUES('EPSG','1262','Geodesy (GNSS), oceanography.',0);
INSERT INTO "scope" VALUES('EPSG','1263','Cadastre, engineering surveying applications over distances up to 10km.',0);
INSERT INTO "scope" VALUES('EPSG','1264','Geodesy, hydrography, transfer of accurate heights over distances greater than 10km.',0);
INSERT INTO "scope" VALUES('EPSG','1265','Hydrography, drilling, offshore engineering.',0);
INSERT INTO "scope" VALUES('EPSG','1266','Engineering survey, topographic mapping (large and medium scale).',0);
INSERT INTO "scope" VALUES('EPSG','1267','Location-based services, Intelligent Transport Services, navigation, positioning.',0);
INSERT INTO "scope" VALUES('EPSG','1268','Geodesy, location based services, intelligent transport services.',0);
INSERT INTO "scope" VALUES('EPSG','1269','Intermediate CRS in transformation to and from projected CRS.',0);
INSERT INTO "scope" VALUES('EPSG','1270','Reversible geoid model transformation.',0);
INSERT INTO "scope" VALUES('EPSG','1271','Engineering survey and mapping for the Trans-Europe Lyon-Turin (TELT) railway project.',0);
INSERT INTO "scope" VALUES('EPSG','1273','Transformation of coordinates at 0.03m level of accuracy.',0);
INSERT INTO "scope" VALUES('EPSG','1274','Spatial referencing including water resource management.',0);
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);
+14 -6
View File
@@ -112,7 +112,7 @@ INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','1256','helmer
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','1951','helmert_transformation','EPSG','6909','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','5662','helmert_transformation','EPSG','6939','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15938','helmert_transformation','EPSG','6998','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10000','grid_transformation','EPSG','8271','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10000','grid_transformation','EPSG','8371','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15800','helmert_transformation','EPSG','6907','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15897','helmert_transformation','EPSG','6895','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','1868','helmert_transformation','EPSG','6976','EPSG',1);
@@ -127,9 +127,9 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10066','grid_tra
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10067','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10068','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10069','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5334','grid_transformation','EPSG','7718','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5335','grid_transformation','EPSG','7719','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10001','grid_transformation','EPSG','8271','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5334','grid_transformation','EPSG','7958','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5335','grid_transformation','EPSG','7959','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10001','grid_transformation','EPSG','8371','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10058','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10059','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10060','grid_transformation','EPSG','5656','EPSG',1);
@@ -152,7 +152,7 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10029','grid_tra
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','1766','grid_transformation','EPSG','7788','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10027','grid_transformation','EPSG','7714','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10023','grid_transformation','EPSG','7717','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10002','grid_transformation','EPSG','8272','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10002','grid_transformation','EPSG','8372','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10073','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10038','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10074','grid_transformation','EPSG','5656','EPSG',1);
@@ -179,7 +179,7 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5339','grid_tran
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10077','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10079','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10080','grid_transformation','EPSG','5656','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10003','grid_transformation','EPSG','8272','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10003','grid_transformation','EPSG','8372','EPSG',0);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','1923','helmert_transformation','EPSG','8270','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','4829','concatenated_operation','EPSG','8443','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','4827','concatenated_operation','EPSG','8443','EPSG',1);
@@ -200,6 +200,8 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9137','grid_tran
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','6326','grid_transformation','EPSG','9229','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7646','grid_transformation','EPSG','9230','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7647','grid_transformation','EPSG','9231','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15739','helmert_transformation','EPSG','4830','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15740','helmert_transformation','EPSG','4831','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','4831','helmert_transformation','EPSG','9281','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','4830','helmert_transformation','EPSG','9281','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7000','grid_transformation','EPSG','9282','EPSG',1);
@@ -242,3 +244,9 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9176','grid_tran
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10084','grid_transformation','EPSG','3858','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9168','grid_transformation','EPSG','9173','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9169','grid_transformation','EPSG','9174','EPSG',0);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','15932','grid_transformation','EPSG','9409','EPSG',1);
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','15932','grid_transformation','EPSG','9408','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','7675','helmert_transformation','EPSG','9495','EPSG',0);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','7676','helmert_transformation','EPSG','9486','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15779','helmert_transformation','EPSG','9679','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','1458','helmert_transformation','EPSG','5827','EPSG',1);
+1 -1
View File
@@ -1,6 +1,6 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "unit_of_measure" VALUES('EPSG','1024','bin','scale',1.0,NULL,0);
INSERT INTO "unit_of_measure" VALUES('EPSG','1024','(bin)','scale',1.0,NULL,0);
INSERT INTO "unit_of_measure" VALUES('EPSG','1025','millimetre','length',0.001,NULL,0);
INSERT INTO "unit_of_measure" VALUES('EPSG','1026','metre per second','length',1.0,NULL,0);
INSERT INTO "unit_of_measure" VALUES('EPSG','1027','millimetres per year','length',3.16887651727314875889e-11,NULL,0);
+504 -223
View File
@@ -1,225 +1,506 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "vertical_crs" VALUES('EPSG','3855','EGM2008 height',NULL,NULL,'EPSG','6499','EPSG','1027','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','3886','Fao 1979 height',NULL,NULL,'EPSG','6499','EPSG','1028','EPSG','3625',0);
INSERT INTO "vertical_crs" VALUES('EPSG','3900','N2000 height',NULL,NULL,'EPSG','6499','EPSG','1030','EPSG','3333',0);
INSERT INTO "vertical_crs" VALUES('EPSG','4440','NZVD2009 height',NULL,NULL,'EPSG','6499','EPSG','1039','EPSG','1175',0);
INSERT INTO "vertical_crs" VALUES('EPSG','4458','Dunedin-Bluff 1960 height',NULL,NULL,'EPSG','6499','EPSG','1040','EPSG','3806',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5193','Incheon height',NULL,NULL,'EPSG','6499','EPSG','1049','EPSG','3739',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5195','Trieste height',NULL,NULL,'EPSG','6499','EPSG','1050','EPSG','2370',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5214','Genoa height',NULL,NULL,'EPSG','6499','EPSG','1051','EPSG','3736',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5237','SLVD height',NULL,NULL,'EPSG','6499','EPSG','1054','EPSG','3310',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5317','FVR09 height',NULL,NULL,'EPSG','6499','EPSG','1059','EPSG','3248',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5336','Black Sea depth',NULL,NULL,'EPSG','6498','EPSG','5134','EPSG','3251',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5597','FCSVR10 height',NULL,NULL,'EPSG','6499','EPSG','1079','EPSG','3890',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5600','NGPF height',NULL,NULL,'EPSG','6499','EPSG','5195','EPSG','3134',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5601','IGN 1966 height',NULL,NULL,'EPSG','6499','EPSG','5196','EPSG','3124',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5602','Moorea SAU 1981 height',NULL,NULL,'EPSG','6499','EPSG','5197','EPSG','3125',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5603','Raiatea SAU 2001 height',NULL,NULL,'EPSG','6499','EPSG','5198','EPSG','3136',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5604','Maupiti SAU 2001 height',NULL,NULL,'EPSG','6499','EPSG','5199','EPSG','3126',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5605','Huahine SAU 2001 height',NULL,NULL,'EPSG','6499','EPSG','5200','EPSG','3135',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5606','Tahaa SAU 2001 height',NULL,NULL,'EPSG','6499','EPSG','5201','EPSG','3138',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5607','Bora Bora SAU 2001 height',NULL,NULL,'EPSG','6499','EPSG','5202','EPSG','3137',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5608','IGLD 1955 height',NULL,NULL,'EPSG','6499','EPSG','5204','EPSG','3468',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5609','IGLD 1985 height',NULL,NULL,'EPSG','6499','EPSG','5205','EPSG','3468',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5610','HVRS71 height',NULL,NULL,'EPSG','6499','EPSG','5207','EPSG','3234',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5611','Caspian height',NULL,NULL,'EPSG','6499','EPSG','5106','EPSG','1291',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5612','Baltic 1977 depth',NULL,NULL,'EPSG','6498','EPSG','5105','EPSG','2423',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5613','RH2000 height',NULL,NULL,'EPSG','6499','EPSG','5208','EPSG','3313',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5614','KOC WD depth (ft)',NULL,NULL,'EPSG','6495','EPSG','5187','EPSG','3267',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5615','RH00 height',NULL,NULL,'EPSG','6499','EPSG','5209','EPSG','3313',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5616','IGN 1988 LS height',NULL,NULL,'EPSG','6499','EPSG','5210','EPSG','2895',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5617','IGN 1988 MG height',NULL,NULL,'EPSG','6499','EPSG','5211','EPSG','2894',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5618','IGN 1992 LD height',NULL,NULL,'EPSG','6499','EPSG','5212','EPSG','2893',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5619','IGN 1988 SB height',NULL,NULL,'EPSG','6499','EPSG','5213','EPSG','2891',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5620','IGN 1988 SM height',NULL,NULL,'EPSG','6499','EPSG','5214','EPSG','2890',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5621','EVRF2007 height',NULL,NULL,'EPSG','6499','EPSG','5215','EPSG','3594',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5701','ODN height',NULL,NULL,'EPSG','6499','EPSG','5101','EPSG','2792',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5702','NGVD29 height (ftUS)',NULL,NULL,'EPSG','6497','EPSG','5102','EPSG','1323',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5703','NAVD88 height',NULL,NULL,'EPSG','6499','EPSG','5103','EPSG','4161',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5704','Yellow Sea',NULL,NULL,'EPSG','6499','EPSG','5104','EPSG','1067',1);
INSERT INTO "vertical_crs" VALUES('EPSG','5705','Baltic 1977 height',NULL,NULL,'EPSG','6499','EPSG','5105','EPSG','2423',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5706','Caspian depth',NULL,NULL,'EPSG','6498','EPSG','5106','EPSG','1291',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5709','NAP height',NULL,NULL,'EPSG','6499','EPSG','5109','EPSG','1275',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5710','Ostend height',NULL,NULL,'EPSG','6499','EPSG','5110','EPSG','1347',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5711','AHD height',NULL,NULL,'EPSG','6499','EPSG','5111','EPSG','4493',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5712','AHD (Tasmania) height',NULL,NULL,'EPSG','6499','EPSG','5112','EPSG','2947',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5713','CGVD28 height',NULL,NULL,'EPSG','6499','EPSG','5114','EPSG','1289',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5714','MSL height',NULL,NULL,'EPSG','6499','EPSG','5100','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5715','MSL depth',NULL,NULL,'EPSG','6498','EPSG','5100','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5716','Piraeus height',NULL,NULL,'EPSG','6499','EPSG','5115','EPSG','3254',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5717','N60 height',NULL,NULL,'EPSG','6499','EPSG','5116','EPSG','3333',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5718','RH70 height',NULL,NULL,'EPSG','6499','EPSG','5117','EPSG','3313',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5719','NGF Lallemand height',NULL,NULL,'EPSG','6499','EPSG','5118','EPSG','1326',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5720','NGF-IGN69 height',NULL,NULL,'EPSG','6499','EPSG','5119','EPSG','1326',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5721','NGF-IGN78 height',NULL,NULL,'EPSG','6499','EPSG','5120','EPSG','1327',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5722','Maputo height',NULL,NULL,'EPSG','6499','EPSG','5121','EPSG','3281',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5723','JSLD69 height',NULL,NULL,'EPSG','6499','EPSG','5122','EPSG','4166',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5724','PHD93 height',NULL,NULL,'EPSG','6499','EPSG','5123','EPSG','3288',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5725','Fahud HD height',NULL,NULL,'EPSG','6499','EPSG','5124','EPSG','4009',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5726','Ha Tien 1960 height',NULL,NULL,'EPSG','6499','EPSG','5125','EPSG','1302',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5727','Hon Dau 1992 height',NULL,NULL,'EPSG','6499','EPSG','5126','EPSG','4015',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5728','LN02 height',NULL,NULL,'EPSG','6499','EPSG','5127','EPSG','1286',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5729','LHN95 height',NULL,NULL,'EPSG','6499','EPSG','5128','EPSG','1286',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5730','EVRF2000 height',NULL,NULL,'EPSG','6499','EPSG','5129','EPSG','1299',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5731','Malin Head height',NULL,NULL,'EPSG','6499','EPSG','5130','EPSG','1305',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5732','Belfast height',NULL,NULL,'EPSG','6499','EPSG','5131','EPSG','2530',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5733','DNN height',NULL,NULL,'EPSG','6499','EPSG','5132','EPSG','3237',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5734','AIOC95 depth',NULL,NULL,'EPSG','6498','EPSG','5133','EPSG','2592',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5735','Black Sea height',NULL,NULL,'EPSG','6499','EPSG','5134','EPSG','3251',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5736','Yellow Sea 1956 height',NULL,NULL,'EPSG','6499','EPSG','5104','EPSG','3228',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5737','Yellow Sea 1985 height',NULL,NULL,'EPSG','6499','EPSG','5137','EPSG','3228',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5738','HKPD height',NULL,NULL,'EPSG','6499','EPSG','5135','EPSG','3334',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5739','HKCD depth',NULL,NULL,'EPSG','6498','EPSG','5136','EPSG','3335',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5740','ODN Orkney height',NULL,NULL,'EPSG','6499','EPSG','5138','EPSG','2793',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5741','Fair Isle height',NULL,NULL,'EPSG','6499','EPSG','5139','EPSG','2794',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5742','Lerwick height',NULL,NULL,'EPSG','6499','EPSG','5140','EPSG','2795',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5743','Foula height',NULL,NULL,'EPSG','6499','EPSG','5141','EPSG','2796',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5744','Sule Skerry height',NULL,NULL,'EPSG','6499','EPSG','5142','EPSG','2797',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5745','North Rona height',NULL,NULL,'EPSG','6499','EPSG','5143','EPSG','2798',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5746','Stornoway height',NULL,NULL,'EPSG','6499','EPSG','5144','EPSG','2799',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5747','St. Kilda height',NULL,NULL,'EPSG','6499','EPSG','5145','EPSG','2800',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5748','Flannan Isles height',NULL,NULL,'EPSG','6499','EPSG','5146','EPSG','2801',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5749','St. Marys height',NULL,NULL,'EPSG','6499','EPSG','5147','EPSG','2802',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5750','Douglas height',NULL,NULL,'EPSG','6499','EPSG','5148','EPSG','2803',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5751','Fao height',NULL,NULL,'EPSG','6499','EPSG','5149','EPSG','3390',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5752','Bandar Abbas height',NULL,NULL,'EPSG','6499','EPSG','5150','EPSG','3336',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5753','NGNC69 height',NULL,NULL,'EPSG','6499','EPSG','5151','EPSG','2822',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5754','Poolbeg height (ft(Br36))',NULL,NULL,'EPSG','6496','EPSG','5152','EPSG','1305',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5755','NGG1977 height',NULL,NULL,'EPSG','6499','EPSG','5153','EPSG','3146',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5756','Martinique 1987 height',NULL,NULL,'EPSG','6499','EPSG','5154','EPSG','3276',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5757','Guadeloupe 1988 height',NULL,NULL,'EPSG','6499','EPSG','5155','EPSG','2892',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5758','Reunion 1989 height',NULL,NULL,'EPSG','6499','EPSG','5156','EPSG','3337',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5759','Auckland 1946 height',NULL,NULL,'EPSG','6499','EPSG','5157','EPSG','3764',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5760','Bluff 1955 height',NULL,NULL,'EPSG','6499','EPSG','5158','EPSG','3801',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5761','Dunedin 1958 height',NULL,NULL,'EPSG','6499','EPSG','5159','EPSG','3803',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5762','Gisborne 1926 height',NULL,NULL,'EPSG','6499','EPSG','5160','EPSG','3771',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5763','Lyttelton 1937 height',NULL,NULL,'EPSG','6499','EPSG','5161','EPSG','3804',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5764','Moturiki 1953 height',NULL,NULL,'EPSG','6499','EPSG','5162','EPSG','3768',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5765','Napier 1962 height',NULL,NULL,'EPSG','6499','EPSG','5163','EPSG','3772',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5766','Nelson 1955 height',NULL,NULL,'EPSG','6499','EPSG','5164','EPSG','3802',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5767','One Tree Point 1964 height',NULL,NULL,'EPSG','6499','EPSG','5165','EPSG','3762',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5768','Tararu 1952 height',NULL,NULL,'EPSG','6499','EPSG','5166','EPSG','3818',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5769','Taranaki 1970 height',NULL,NULL,'EPSG','6499','EPSG','5167','EPSG','3769',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5770','Wellington 1953 height',NULL,NULL,'EPSG','6499','EPSG','5168','EPSG','3773',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5771','Chatham Island 1959 height',NULL,NULL,'EPSG','6499','EPSG','5169','EPSG','3894',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5772','Stewart Island 1977 height',NULL,NULL,'EPSG','6499','EPSG','5170','EPSG','3338',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5773','EGM96 height',NULL,NULL,'EPSG','6499','EPSG','5171','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5774','NG-L height',NULL,NULL,'EPSG','6499','EPSG','5172','EPSG','1146',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5775','Antalya height',NULL,NULL,'EPSG','6499','EPSG','5173','EPSG','3322',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5776','NN54 height',NULL,NULL,'EPSG','6499','EPSG','5174','EPSG','1352',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5777','Durres height',NULL,NULL,'EPSG','6499','EPSG','5175','EPSG','3212',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5778','GHA height',NULL,NULL,'EPSG','6499','EPSG','5176','EPSG','1037',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5779','SVS2000 height',NULL,NULL,'EPSG','6499','EPSG','5177','EPSG','3307',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5780','Cascais height',NULL,NULL,'EPSG','6499','EPSG','5178','EPSG','1294',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5781','Constanta height',NULL,NULL,'EPSG','6499','EPSG','5179','EPSG','3295',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5782','Alicante height',NULL,NULL,'EPSG','6499','EPSG','5180','EPSG','4188',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5783','DHHN92 height',NULL,NULL,'EPSG','6499','EPSG','5181','EPSG','3339',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5784','DHHN85 height',NULL,NULL,'EPSG','6499','EPSG','5182','EPSG','2326',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5785','SNN76 height',NULL,NULL,'EPSG','6499','EPSG','5183','EPSG','1343',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5786','Baltic 1982 height',NULL,NULL,'EPSG','6499','EPSG','5184','EPSG','3224',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5787','EOMA 1980 height',NULL,NULL,'EPSG','6499','EPSG','5185','EPSG','1119',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5788','Kuwait PWD height',NULL,NULL,'EPSG','6499','EPSG','5186','EPSG','3267',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5789','KOC WD depth',NULL,NULL,'EPSG','6498','EPSG','5187','EPSG','3267',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5790','KOC CD height',NULL,NULL,'EPSG','6499','EPSG','5188','EPSG','3267',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5791','NGC 1948 height',NULL,NULL,'EPSG','6499','EPSG','5189','EPSG','1327',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5792','Danger 1950 height',NULL,NULL,'EPSG','6499','EPSG','5190','EPSG','3299',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5793','Mayotte 1950 height',NULL,NULL,'EPSG','6499','EPSG','5191','EPSG','3340',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5794','Martinique 1955 height',NULL,NULL,'EPSG','6499','EPSG','5192','EPSG','3276',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5795','Guadeloupe 1951 height',NULL,NULL,'EPSG','6499','EPSG','5193','EPSG','2892',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5796','Lagos 1955 height',NULL,NULL,'EPSG','6499','EPSG','5194','EPSG','3287',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5797','AIOC95 height',NULL,NULL,'EPSG','6499','EPSG','5133','EPSG','2592',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5798','EGM84 height',NULL,NULL,'EPSG','6499','EPSG','5203','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5799','DVR90 height',NULL,NULL,'EPSG','6499','EPSG','5206','EPSG','3237',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5829','Instantaneous Water Level height',NULL,NULL,'EPSG','6499','EPSG','5113','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5831','Instantaneous Water Level depth',NULL,NULL,'EPSG','6498','EPSG','5113','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5843','Ras Ghumays height',NULL,NULL,'EPSG','6499','EPSG','1146','EPSG','4225',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5861','LAT depth',NULL,NULL,'EPSG','6498','EPSG','1080','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5862','LLWLT depth',NULL,NULL,'EPSG','6498','EPSG','1083','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5863','ISLW depth',NULL,NULL,'EPSG','6498','EPSG','1085','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5864','MLLWS depth',NULL,NULL,'EPSG','6498','EPSG','1086','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5865','MLWS depth',NULL,NULL,'EPSG','6498','EPSG','1087','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5866','MLLW depth',NULL,NULL,'EPSG','6498','EPSG','1089','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5867','MLW depth',NULL,NULL,'EPSG','6498','EPSG','1091','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5868','MHW height',NULL,NULL,'EPSG','6499','EPSG','1092','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5869','MHHW height',NULL,NULL,'EPSG','6499','EPSG','1090','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5870','MHWS height',NULL,NULL,'EPSG','6499','EPSG','1088','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5871','HHWLT height',NULL,NULL,'EPSG','6499','EPSG','1084','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5872','HAT height',NULL,NULL,'EPSG','6499','EPSG','1082','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5873','Low Water depth',NULL,NULL,'EPSG','6498','EPSG','1093','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5874','High Water height',NULL,NULL,'EPSG','6499','EPSG','1094','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','5941','NN2000 height',NULL,NULL,'EPSG','6499','EPSG','1096','EPSG','1352',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6130','GCVD54 height (ft)',NULL,NULL,'EPSG','1030','EPSG','1097','EPSG','3185',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6131','LCVD61 height (ft)',NULL,NULL,'EPSG','1030','EPSG','1098','EPSG','4121',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6132','CBVD61 height (ft)',NULL,NULL,'EPSG','1030','EPSG','1099','EPSG','3207',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6178','Cais da Pontinha - Funchal height',NULL,NULL,'EPSG','6499','EPSG','1101','EPSG','4125',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6179','Cais da Vila - Porto Santo height',NULL,NULL,'EPSG','6499','EPSG','1102','EPSG','3680',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6180','Cais das Velas height',NULL,NULL,'EPSG','6499','EPSG','1103','EPSG','2875',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6181','Horta height',NULL,NULL,'EPSG','6499','EPSG','1104','EPSG','2873',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6182','Cais da Madalena height',NULL,NULL,'EPSG','6499','EPSG','1105','EPSG','2874',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6183','Santa Cruz da Graciosa height',NULL,NULL,'EPSG','6499','EPSG','1106','EPSG','3681',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6184','Cais da Figueirinha - Angra do Heroismo height',NULL,NULL,'EPSG','6499','EPSG','1107','EPSG','2872',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6185','Santa Cruz das Flores height',NULL,NULL,'EPSG','6499','EPSG','1108','EPSG','1344',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6186','Cais da Vila do Porto height',NULL,NULL,'EPSG','6499','EPSG','1109','EPSG','4126',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6187','Ponta Delgada height',NULL,NULL,'EPSG','6499','EPSG','1110','EPSG','2871',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6357','NAVD88 depth',NULL,NULL,'EPSG','6498','EPSG','5103','EPSG','4161',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6358','NAVD88 depth (ftUS)',NULL,NULL,'EPSG','1043','EPSG','5103','EPSG','3664',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6359','NGVD29 depth (ftUS)',NULL,NULL,'EPSG','1043','EPSG','5102','EPSG','1323',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6360','NAVD88 height (ftUS)',NULL,NULL,'EPSG','6497','EPSG','5103','EPSG','3664',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6638','Tutuila 1962 height',NULL,NULL,'EPSG','6499','EPSG','1121','EPSG','2288',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6639','Guam 1963 height',NULL,NULL,'EPSG','6499','EPSG','1122','EPSG','3255',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6640','NMVD03 height',NULL,NULL,'EPSG','6499','EPSG','1119','EPSG','4171',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6641','PRVD02 height',NULL,NULL,'EPSG','6499','EPSG','1123','EPSG','3294',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6642','VIVD09 height',NULL,NULL,'EPSG','6499','EPSG','1124','EPSG','3330',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6643','ASVD02 height',NULL,NULL,'EPSG','6499','EPSG','1125','EPSG','2288',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6644','GUVD04 height',NULL,NULL,'EPSG','6499','EPSG','1126','EPSG','3255',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6647','CGVD2013(CGG2013) height',NULL,NULL,'EPSG','6499','EPSG','1127','EPSG','1061',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6693','JSLD72 height',NULL,NULL,'EPSG','6499','EPSG','1129','EPSG','4168',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6694','JGD2000 (vertical) height',NULL,NULL,'EPSG','6499','EPSG','1130','EPSG','3263',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6695','JGD2011 (vertical) height',NULL,NULL,'EPSG','6499','EPSG','1131','EPSG','3263',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6916','SHD height',NULL,NULL,'EPSG','6499','EPSG','1140','EPSG','1210',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7446','Famagusta 1960 height',NULL,NULL,'EPSG','6499','EPSG','1148','EPSG','3236',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7447','PNG08 height',NULL,NULL,'EPSG','6499','EPSG','1149','EPSG','4384',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7651','Kumul 34 height',NULL,NULL,'EPSG','6499','EPSG','1150','EPSG','4013',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7652','Kiunga height',NULL,NULL,'EPSG','6499','EPSG','1151','EPSG','4383',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7699','DHHN12 height',NULL,NULL,'EPSG','6499','EPSG','1161','EPSG','3339',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7700','Latvia 2000 height',NULL,NULL,'EPSG','6499','EPSG','1162','EPSG','3268',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7707','ODN (Offshore) height',NULL,NULL,'EPSG','6499','EPSG','1164','EPSG','4391',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7832','POM96 height',NULL,NULL,'EPSG','6499','EPSG','1171','EPSG','4425',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7837','DHHN2016 height',NULL,NULL,'EPSG','6499','EPSG','1170','EPSG','3339',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7839','NZVD2016 height',NULL,NULL,'EPSG','6499','EPSG','1169','EPSG','1175',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7841','POM08 height',NULL,NULL,'EPSG','6499','EPSG','1172','EPSG','4425',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7888','Jamestown 1971 height',NULL,NULL,'EPSG','6499','EPSG','1175','EPSG','3183',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7889','St. Helena Tritan 2011 height',NULL,NULL,'EPSG','6499','EPSG','1176','EPSG','3183',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7890','SHVD2015 height',NULL,NULL,'EPSG','6499','EPSG','1177','EPSG','3183',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7962','Poolbeg height (m)',NULL,NULL,'EPSG','6499','EPSG','5152','EPSG','1305',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7968','NGVD29 height (m)',NULL,NULL,'EPSG','6499','EPSG','5102','EPSG','1323',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7976','HKPD depth',NULL,NULL,'EPSG','6498','EPSG','5135','EPSG','3334',0);
INSERT INTO "vertical_crs" VALUES('EPSG','7979','KOC WD height',NULL,NULL,'EPSG','6499','EPSG','5187','EPSG','3267',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8050','MSL height (ft)',NULL,NULL,'EPSG','1030','EPSG','5100','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8051','MSL depth (ft)',NULL,NULL,'EPSG','6495','EPSG','5100','EPSG','1262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8052','MSL height (ftUS)',NULL,NULL,'EPSG','6497','EPSG','5100','EPSG','1245',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8053','MSL depth (ftUS)',NULL,NULL,'EPSG','1043','EPSG','5100','EPSG','1245',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8089','ISH2004 height',NULL,NULL,'EPSG','6499','EPSG','1190','EPSG','3262',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8228','NAVD88 height (ft)',NULL,NULL,'EPSG','1030','EPSG','5103','EPSG','4464',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8266','GVR2000 height',NULL,NULL,'EPSG','6499','EPSG','1199','EPSG','4461',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8267','GVR2016 height',NULL,NULL,'EPSG','6499','EPSG','1200','EPSG','4454',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8357','Baltic 1957 height',NULL,NULL,'EPSG','6499','EPSG','1202','EPSG','1306',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8358','Baltic 1957 depth',NULL,NULL,'EPSG','6498','EPSG','1202','EPSG','1306',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8378','EPSG example wellbore local vertical CRS',NULL,NULL,'EPSG','1049','EPSG','1205','EPSG','4393',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8434','Macao height',NULL,NULL,'EPSG','6499','EPSG','1210','EPSG','1147',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8675','N43 height',NULL,NULL,'EPSG','6499','EPSG','1213','EPSG','4522',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8690','SVS2010 height',NULL,NULL,'EPSG','6499','EPSG','1215','EPSG','3307',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8691','SRB_VRS12 height',NULL,NULL,'EPSG','6499','EPSG','1216','EPSG','4543',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8841','MVGC height',NULL,NULL,'EPSG','6499','EPSG','1219','EPSG','3303',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8881','Vienna height',NULL,NULL,'EPSG','6499','EPSG','1267','EPSG','4585',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8897','EPSG example wellbore local vertical CRS (ft)',NULL,NULL,'EPSG','1050','EPSG','1205','EPSG','4393',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8904','TWVD 2001 height',NULL,NULL,'EPSG','6499','EPSG','1224','EPSG','3982',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8911','DACR52 height',NULL,NULL,'EPSG','6499','EPSG','1226','EPSG','3232',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9130','IGN 2008 LD height',NULL,NULL,'EPSG','6499','EPSG','1250','EPSG','2893',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9245','CGVD2013(CGG2013a) height',NULL,NULL,'EPSG','6499','EPSG','1256','EPSG','1061',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9255','SRVN16 height',NULL,NULL,'EPSG','6499','EPSG','1260','EPSG','4573',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9274','EVRF2000 Austria height',NULL,NULL,'EPSG','6499','EPSG','1261','EPSG','1037',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9279','SA LLD height',NULL,NULL,'EPSG','6499','EPSG','1262','EPSG','3309',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9335','KSA-VRF14 height',NULL,NULL,'EPSG','6499','EPSG','1269','EPSG','3303',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9351','NGNC08 height',NULL,NULL,'EPSG','6499','EPSG','1255','EPSG','3430',0);
INSERT INTO "vertical_crs" VALUES('EPSG','3855','EGM2008 height',NULL,'EPSG','6499','EPSG','1027',0);
INSERT INTO "usage" VALUES('EPSG','2857','vertical_crs','EPSG','3855','EPSG','1262','EPSG','1027');
INSERT INTO "vertical_crs" VALUES('EPSG','3886','Fao 1979 height',NULL,'EPSG','6499','EPSG','1028',0);
INSERT INTO "usage" VALUES('EPSG','2872','vertical_crs','EPSG','3886','EPSG','3625','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','3900','N2000 height',NULL,'EPSG','6499','EPSG','1030',0);
INSERT INTO "usage" VALUES('EPSG','2880','vertical_crs','EPSG','3900','EPSG','3333','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','4440','NZVD2009 height',NULL,'EPSG','6499','EPSG','1039',0);
INSERT INTO "usage" VALUES('EPSG','3313','vertical_crs','EPSG','4440','EPSG','1175','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','4458','Dunedin-Bluff 1960 height',NULL,'EPSG','6499','EPSG','1040',0);
INSERT INTO "usage" VALUES('EPSG','3317','vertical_crs','EPSG','4458','EPSG','3806','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5193','Incheon height',NULL,'EPSG','6499','EPSG','1049',0);
INSERT INTO "usage" VALUES('EPSG','3864','vertical_crs','EPSG','5193','EPSG','3739','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5195','Trieste height',NULL,'EPSG','6499','EPSG','1050',0);
INSERT INTO "usage" VALUES('EPSG','3865','vertical_crs','EPSG','5195','EPSG','2370','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5214','Genoa 1942 height',NULL,'EPSG','6499','EPSG','1051',0);
INSERT INTO "usage" VALUES('EPSG','3866','vertical_crs','EPSG','5214','EPSG','3736','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5237','SLVD height',NULL,'EPSG','6499','EPSG','1054',0);
INSERT INTO "usage" VALUES('EPSG','3876','vertical_crs','EPSG','5237','EPSG','3310','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5317','FVR09 height',NULL,'EPSG','6499','EPSG','1059',0);
INSERT INTO "usage" VALUES('EPSG','3924','vertical_crs','EPSG','5317','EPSG','3248','EPSG','1029');
INSERT INTO "vertical_crs" VALUES('EPSG','5597','FCSVR10 height',NULL,'EPSG','6499','EPSG','1079',0);
INSERT INTO "usage" VALUES('EPSG','4067','vertical_crs','EPSG','5597','EPSG','3890','EPSG','1139');
INSERT INTO "vertical_crs" VALUES('EPSG','5600','NGPF height',NULL,'EPSG','6499','EPSG','5195',0);
INSERT INTO "usage" VALUES('EPSG','4069','vertical_crs','EPSG','5600','EPSG','3134','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5601','IGN 1966 height',NULL,'EPSG','6499','EPSG','5196',0);
INSERT INTO "usage" VALUES('EPSG','4070','vertical_crs','EPSG','5601','EPSG','3124','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5602','Moorea SAU 1981 height',NULL,'EPSG','6499','EPSG','5197',0);
INSERT INTO "usage" VALUES('EPSG','4071','vertical_crs','EPSG','5602','EPSG','3125','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5603','Raiatea SAU 2001 height',NULL,'EPSG','6499','EPSG','5198',0);
INSERT INTO "usage" VALUES('EPSG','4072','vertical_crs','EPSG','5603','EPSG','3136','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5604','Maupiti SAU 2001 height',NULL,'EPSG','6499','EPSG','5199',0);
INSERT INTO "usage" VALUES('EPSG','4073','vertical_crs','EPSG','5604','EPSG','3126','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5605','Huahine SAU 2001 height',NULL,'EPSG','6499','EPSG','5200',0);
INSERT INTO "usage" VALUES('EPSG','4074','vertical_crs','EPSG','5605','EPSG','3135','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5606','Tahaa SAU 2001 height',NULL,'EPSG','6499','EPSG','5201',0);
INSERT INTO "usage" VALUES('EPSG','4075','vertical_crs','EPSG','5606','EPSG','3138','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5607','Bora Bora SAU 2001 height',NULL,'EPSG','6499','EPSG','5202',0);
INSERT INTO "usage" VALUES('EPSG','4076','vertical_crs','EPSG','5607','EPSG','3137','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5608','IGLD 1955 height',NULL,'EPSG','6499','EPSG','5204',0);
INSERT INTO "usage" VALUES('EPSG','4077','vertical_crs','EPSG','5608','EPSG','3468','EPSG','1202');
INSERT INTO "vertical_crs" VALUES('EPSG','5609','IGLD 1985 height',NULL,'EPSG','6499','EPSG','5205',0);
INSERT INTO "usage" VALUES('EPSG','4078','vertical_crs','EPSG','5609','EPSG','3468','EPSG','1202');
INSERT INTO "vertical_crs" VALUES('EPSG','5610','HVRS71 height',NULL,'EPSG','6499','EPSG','5207',0);
INSERT INTO "usage" VALUES('EPSG','4079','vertical_crs','EPSG','5610','EPSG','3234','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5611','Caspian height',NULL,'EPSG','6499','EPSG','5106',0);
INSERT INTO "usage" VALUES('EPSG','4080','vertical_crs','EPSG','5611','EPSG','1291','EPSG','1136');
INSERT INTO "vertical_crs" VALUES('EPSG','5613','RH2000 height',NULL,'EPSG','6499','EPSG','5208',0);
INSERT INTO "usage" VALUES('EPSG','4082','vertical_crs','EPSG','5613','EPSG','3313','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5615','RH00 height',NULL,'EPSG','6499','EPSG','5209',0);
INSERT INTO "usage" VALUES('EPSG','4084','vertical_crs','EPSG','5615','EPSG','3313','EPSG','1029');
INSERT INTO "vertical_crs" VALUES('EPSG','5616','IGN 1988 LS height',NULL,'EPSG','6499','EPSG','5210',0);
INSERT INTO "usage" VALUES('EPSG','4085','vertical_crs','EPSG','5616','EPSG','2895','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5617','IGN 1988 MG height',NULL,'EPSG','6499','EPSG','5211',0);
INSERT INTO "usage" VALUES('EPSG','4086','vertical_crs','EPSG','5617','EPSG','2894','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5618','IGN 1992 LD height',NULL,'EPSG','6499','EPSG','5212',0);
INSERT INTO "usage" VALUES('EPSG','4087','vertical_crs','EPSG','5618','EPSG','2893','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5619','IGN 1988 SB height',NULL,'EPSG','6499','EPSG','5213',0);
INSERT INTO "usage" VALUES('EPSG','4088','vertical_crs','EPSG','5619','EPSG','2891','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5620','IGN 1988 SM height',NULL,'EPSG','6499','EPSG','5214',0);
INSERT INTO "usage" VALUES('EPSG','4089','vertical_crs','EPSG','5620','EPSG','2890','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5621','EVRF2007 height',NULL,'EPSG','6499','EPSG','5215',0);
INSERT INTO "usage" VALUES('EPSG','4090','vertical_crs','EPSG','5621','EPSG','3594','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5701','ODN height',NULL,'EPSG','6499','EPSG','5101',0);
INSERT INTO "usage" VALUES('EPSG','4144','vertical_crs','EPSG','5701','EPSG','2792','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5702','NGVD29 height (ftUS)',NULL,'EPSG','6497','EPSG','5102',0);
INSERT INTO "usage" VALUES('EPSG','4145','vertical_crs','EPSG','5702','EPSG','1323','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5703','NAVD88 height',NULL,'EPSG','6499','EPSG','5103',0);
INSERT INTO "usage" VALUES('EPSG','4146','vertical_crs','EPSG','5703','EPSG','4161','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5704','Yellow Sea',NULL,'EPSG','6499','EPSG','5104',1);
INSERT INTO "usage" VALUES('EPSG','4147','vertical_crs','EPSG','5704','EPSG','1067','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5705','Baltic 1977 height',NULL,'EPSG','6499','EPSG','5105',0);
INSERT INTO "usage" VALUES('EPSG','4148','vertical_crs','EPSG','5705','EPSG','2423','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5709','NAP height',NULL,'EPSG','6499','EPSG','5109',0);
INSERT INTO "usage" VALUES('EPSG','4152','vertical_crs','EPSG','5709','EPSG','1172','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5710','Ostend height',NULL,'EPSG','6499','EPSG','5110',0);
INSERT INTO "usage" VALUES('EPSG','4153','vertical_crs','EPSG','5710','EPSG','1347','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5711','AHD height',NULL,'EPSG','6499','EPSG','5111',0);
INSERT INTO "usage" VALUES('EPSG','14230','vertical_crs','EPSG','5711','EPSG','4493','EPSG','1263');
INSERT INTO "vertical_crs" VALUES('EPSG','5712','AHD (Tasmania) height',NULL,'EPSG','6499','EPSG','5112',0);
INSERT INTO "usage" VALUES('EPSG','4155','vertical_crs','EPSG','5712','EPSG','2947','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5713','CGVD28 height',NULL,'EPSG','6499','EPSG','5114',0);
INSERT INTO "usage" VALUES('EPSG','4156','vertical_crs','EPSG','5713','EPSG','1289','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5714','MSL height',NULL,'EPSG','6499','EPSG','5100',0);
INSERT INTO "usage" VALUES('EPSG','4157','vertical_crs','EPSG','5714','EPSG','1262','EPSG','1199');
INSERT INTO "vertical_crs" VALUES('EPSG','5716','Piraeus height',NULL,'EPSG','6499','EPSG','5115',0);
INSERT INTO "usage" VALUES('EPSG','4159','vertical_crs','EPSG','5716','EPSG','3254','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5717','N60 height',NULL,'EPSG','6499','EPSG','5116',0);
INSERT INTO "usage" VALUES('EPSG','4160','vertical_crs','EPSG','5717','EPSG','3333','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5718','RH70 height',NULL,'EPSG','6499','EPSG','5117',0);
INSERT INTO "usage" VALUES('EPSG','4161','vertical_crs','EPSG','5718','EPSG','3313','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5719','NGF Lallemand height',NULL,'EPSG','6499','EPSG','5118',0);
INSERT INTO "usage" VALUES('EPSG','4162','vertical_crs','EPSG','5719','EPSG','1326','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5720','NGF-IGN69 height',NULL,'EPSG','6499','EPSG','5119',0);
INSERT INTO "usage" VALUES('EPSG','4163','vertical_crs','EPSG','5720','EPSG','1326','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5721','NGF-IGN78 height',NULL,'EPSG','6499','EPSG','5120',0);
INSERT INTO "usage" VALUES('EPSG','4164','vertical_crs','EPSG','5721','EPSG','1327','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5722','Maputo height',NULL,'EPSG','6499','EPSG','5121',0);
INSERT INTO "usage" VALUES('EPSG','4165','vertical_crs','EPSG','5722','EPSG','3281','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5723','JSLD69 height',NULL,'EPSG','6499','EPSG','5122',0);
INSERT INTO "usage" VALUES('EPSG','4166','vertical_crs','EPSG','5723','EPSG','4166','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5724','PHD93 height',NULL,'EPSG','6499','EPSG','5123',0);
INSERT INTO "usage" VALUES('EPSG','4167','vertical_crs','EPSG','5724','EPSG','3288','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5725','Fahud HD height',NULL,'EPSG','6499','EPSG','5124',0);
INSERT INTO "usage" VALUES('EPSG','4168','vertical_crs','EPSG','5725','EPSG','4009','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5726','Ha Tien 1960 height',NULL,'EPSG','6499','EPSG','5125',0);
INSERT INTO "usage" VALUES('EPSG','4169','vertical_crs','EPSG','5726','EPSG','1302','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5727','Hon Dau 1992 height',NULL,'EPSG','6499','EPSG','5126',0);
INSERT INTO "usage" VALUES('EPSG','4170','vertical_crs','EPSG','5727','EPSG','4015','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5728','LN02 height',NULL,'EPSG','6499','EPSG','5127',0);
INSERT INTO "usage" VALUES('EPSG','4171','vertical_crs','EPSG','5728','EPSG','1286','EPSG','1142');
INSERT INTO "vertical_crs" VALUES('EPSG','5729','LHN95 height',NULL,'EPSG','6499','EPSG','5128',0);
INSERT INTO "usage" VALUES('EPSG','4172','vertical_crs','EPSG','5729','EPSG','1286','EPSG','1027');
INSERT INTO "vertical_crs" VALUES('EPSG','5730','EVRF2000 height',NULL,'EPSG','6499','EPSG','5129',0);
INSERT INTO "usage" VALUES('EPSG','4173','vertical_crs','EPSG','5730','EPSG','1299','EPSG','1161');
INSERT INTO "vertical_crs" VALUES('EPSG','5731','Malin Head height',NULL,'EPSG','6499','EPSG','5130',0);
INSERT INTO "usage" VALUES('EPSG','4174','vertical_crs','EPSG','5731','EPSG','1305','EPSG','1153');
INSERT INTO "vertical_crs" VALUES('EPSG','5732','Belfast height',NULL,'EPSG','6499','EPSG','5131',0);
INSERT INTO "usage" VALUES('EPSG','4175','vertical_crs','EPSG','5732','EPSG','2530','EPSG','1209');
INSERT INTO "vertical_crs" VALUES('EPSG','5733','DNN height',NULL,'EPSG','6499','EPSG','5132',0);
INSERT INTO "usage" VALUES('EPSG','4176','vertical_crs','EPSG','5733','EPSG','3237','EPSG','1142');
INSERT INTO "vertical_crs" VALUES('EPSG','5735','Black Sea height',NULL,'EPSG','6499','EPSG','5134',0);
INSERT INTO "usage" VALUES('EPSG','4178','vertical_crs','EPSG','5735','EPSG','3251','EPSG','1153');
INSERT INTO "vertical_crs" VALUES('EPSG','5736','Yellow Sea 1956 height',NULL,'EPSG','6499','EPSG','5104',0);
INSERT INTO "usage" VALUES('EPSG','4179','vertical_crs','EPSG','5736','EPSG','3228','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5737','Yellow Sea 1985 height',NULL,'EPSG','6499','EPSG','5137',0);
INSERT INTO "usage" VALUES('EPSG','4180','vertical_crs','EPSG','5737','EPSG','3228','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5738','HKPD height',NULL,'EPSG','6499','EPSG','5135',0);
INSERT INTO "usage" VALUES('EPSG','4181','vertical_crs','EPSG','5738','EPSG','3334','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5739','HKCD depth',NULL,'EPSG','6498','EPSG','5136',0);
INSERT INTO "usage" VALUES('EPSG','4182','vertical_crs','EPSG','5739','EPSG','3335','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5740','ODN Orkney height',NULL,'EPSG','6499','EPSG','5138',0);
INSERT INTO "usage" VALUES('EPSG','4183','vertical_crs','EPSG','5740','EPSG','2793','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5741','Fair Isle height',NULL,'EPSG','6499','EPSG','5139',0);
INSERT INTO "usage" VALUES('EPSG','4184','vertical_crs','EPSG','5741','EPSG','2794','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5742','Lerwick height',NULL,'EPSG','6499','EPSG','5140',0);
INSERT INTO "usage" VALUES('EPSG','4185','vertical_crs','EPSG','5742','EPSG','2795','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5743','Foula height',NULL,'EPSG','6499','EPSG','5141',0);
INSERT INTO "usage" VALUES('EPSG','4186','vertical_crs','EPSG','5743','EPSG','2796','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5744','Sule Skerry height',NULL,'EPSG','6499','EPSG','5142',0);
INSERT INTO "usage" VALUES('EPSG','4187','vertical_crs','EPSG','5744','EPSG','2797','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5745','North Rona height',NULL,'EPSG','6499','EPSG','5143',0);
INSERT INTO "usage" VALUES('EPSG','4188','vertical_crs','EPSG','5745','EPSG','2798','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5746','Stornoway height',NULL,'EPSG','6499','EPSG','5144',0);
INSERT INTO "usage" VALUES('EPSG','4189','vertical_crs','EPSG','5746','EPSG','2799','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5747','St. Kilda height',NULL,'EPSG','6499','EPSG','5145',0);
INSERT INTO "usage" VALUES('EPSG','4190','vertical_crs','EPSG','5747','EPSG','2800','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5748','Flannan Isles height',NULL,'EPSG','6499','EPSG','5146',0);
INSERT INTO "usage" VALUES('EPSG','4191','vertical_crs','EPSG','5748','EPSG','2801','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5749','St. Marys height',NULL,'EPSG','6499','EPSG','5147',0);
INSERT INTO "usage" VALUES('EPSG','4192','vertical_crs','EPSG','5749','EPSG','2802','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5750','Douglas height',NULL,'EPSG','6499','EPSG','5148',0);
INSERT INTO "usage" VALUES('EPSG','4193','vertical_crs','EPSG','5750','EPSG','2803','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5751','Fao height',NULL,'EPSG','6499','EPSG','5149',0);
INSERT INTO "usage" VALUES('EPSG','4194','vertical_crs','EPSG','5751','EPSG','3390','EPSG','1136');
INSERT INTO "vertical_crs" VALUES('EPSG','5752','Bandar Abbas height',NULL,'EPSG','6499','EPSG','5150',0);
INSERT INTO "usage" VALUES('EPSG','4195','vertical_crs','EPSG','5752','EPSG','3336','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5753','NGNC69 height',NULL,'EPSG','6499','EPSG','5151',0);
INSERT INTO "usage" VALUES('EPSG','4196','vertical_crs','EPSG','5753','EPSG','2822','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5754','Poolbeg height (ft(Br36))',NULL,'EPSG','6496','EPSG','5152',0);
INSERT INTO "usage" VALUES('EPSG','4197','vertical_crs','EPSG','5754','EPSG','1305','EPSG','1153');
INSERT INTO "vertical_crs" VALUES('EPSG','5755','NGG1977 height',NULL,'EPSG','6499','EPSG','5153',0);
INSERT INTO "usage" VALUES('EPSG','4198','vertical_crs','EPSG','5755','EPSG','3146','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5756','Martinique 1987 height',NULL,'EPSG','6499','EPSG','5154',0);
INSERT INTO "usage" VALUES('EPSG','4199','vertical_crs','EPSG','5756','EPSG','3276','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5757','Guadeloupe 1988 height',NULL,'EPSG','6499','EPSG','5155',0);
INSERT INTO "usage" VALUES('EPSG','4200','vertical_crs','EPSG','5757','EPSG','2892','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5758','Reunion 1989 height',NULL,'EPSG','6499','EPSG','5156',0);
INSERT INTO "usage" VALUES('EPSG','4201','vertical_crs','EPSG','5758','EPSG','3337','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5759','Auckland 1946 height',NULL,'EPSG','6499','EPSG','5157',0);
INSERT INTO "usage" VALUES('EPSG','4202','vertical_crs','EPSG','5759','EPSG','3764','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5760','Bluff 1955 height',NULL,'EPSG','6499','EPSG','5158',0);
INSERT INTO "usage" VALUES('EPSG','4203','vertical_crs','EPSG','5760','EPSG','3801','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5761','Dunedin 1958 height',NULL,'EPSG','6499','EPSG','5159',0);
INSERT INTO "usage" VALUES('EPSG','4204','vertical_crs','EPSG','5761','EPSG','3803','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5762','Gisborne 1926 height',NULL,'EPSG','6499','EPSG','5160',0);
INSERT INTO "usage" VALUES('EPSG','4205','vertical_crs','EPSG','5762','EPSG','3771','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5763','Lyttelton 1937 height',NULL,'EPSG','6499','EPSG','5161',0);
INSERT INTO "usage" VALUES('EPSG','4206','vertical_crs','EPSG','5763','EPSG','3804','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5764','Moturiki 1953 height',NULL,'EPSG','6499','EPSG','5162',0);
INSERT INTO "usage" VALUES('EPSG','4207','vertical_crs','EPSG','5764','EPSG','3768','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5765','Napier 1962 height',NULL,'EPSG','6499','EPSG','5163',0);
INSERT INTO "usage" VALUES('EPSG','4208','vertical_crs','EPSG','5765','EPSG','3772','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5766','Nelson 1955 height',NULL,'EPSG','6499','EPSG','5164',0);
INSERT INTO "usage" VALUES('EPSG','4209','vertical_crs','EPSG','5766','EPSG','3802','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5767','One Tree Point 1964 height',NULL,'EPSG','6499','EPSG','5165',0);
INSERT INTO "usage" VALUES('EPSG','4210','vertical_crs','EPSG','5767','EPSG','3762','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5768','Tararu 1952 height',NULL,'EPSG','6499','EPSG','5166',0);
INSERT INTO "usage" VALUES('EPSG','4211','vertical_crs','EPSG','5768','EPSG','3818','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5769','Taranaki 1970 height',NULL,'EPSG','6499','EPSG','5167',0);
INSERT INTO "usage" VALUES('EPSG','4212','vertical_crs','EPSG','5769','EPSG','3769','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5770','Wellington 1953 height',NULL,'EPSG','6499','EPSG','5168',0);
INSERT INTO "usage" VALUES('EPSG','4213','vertical_crs','EPSG','5770','EPSG','3773','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5771','Chatham Island 1959 height',NULL,'EPSG','6499','EPSG','5169',0);
INSERT INTO "usage" VALUES('EPSG','4214','vertical_crs','EPSG','5771','EPSG','3894','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5772','Stewart Island 1977 height',NULL,'EPSG','6499','EPSG','5170',0);
INSERT INTO "usage" VALUES('EPSG','4215','vertical_crs','EPSG','5772','EPSG','3338','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5773','EGM96 height',NULL,'EPSG','6499','EPSG','5171',0);
INSERT INTO "usage" VALUES('EPSG','4216','vertical_crs','EPSG','5773','EPSG','1262','EPSG','1027');
INSERT INTO "vertical_crs" VALUES('EPSG','5774','NG-L height',NULL,'EPSG','6499','EPSG','5172',0);
INSERT INTO "usage" VALUES('EPSG','4217','vertical_crs','EPSG','5774','EPSG','1146','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5775','Antalya height',NULL,'EPSG','6499','EPSG','5173',0);
INSERT INTO "usage" VALUES('EPSG','4218','vertical_crs','EPSG','5775','EPSG','3322','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5776','NN54 height',NULL,'EPSG','6499','EPSG','5174',0);
INSERT INTO "usage" VALUES('EPSG','4219','vertical_crs','EPSG','5776','EPSG','1352','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5777','Durres height',NULL,'EPSG','6499','EPSG','5175',0);
INSERT INTO "usage" VALUES('EPSG','4220','vertical_crs','EPSG','5777','EPSG','3212','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5778','GHA height',NULL,'EPSG','6499','EPSG','5176',0);
INSERT INTO "usage" VALUES('EPSG','4221','vertical_crs','EPSG','5778','EPSG','1037','EPSG','1056');
INSERT INTO "vertical_crs" VALUES('EPSG','5779','SVS2000 height',NULL,'EPSG','6499','EPSG','5177',0);
INSERT INTO "usage" VALUES('EPSG','4222','vertical_crs','EPSG','5779','EPSG','3307','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5780','Cascais height',NULL,'EPSG','6499','EPSG','5178',0);
INSERT INTO "usage" VALUES('EPSG','4223','vertical_crs','EPSG','5780','EPSG','1294','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5781','Constanta height',NULL,'EPSG','6499','EPSG','5179',0);
INSERT INTO "usage" VALUES('EPSG','4224','vertical_crs','EPSG','5781','EPSG','3295','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5782','Alicante height',NULL,'EPSG','6499','EPSG','5180',0);
INSERT INTO "usage" VALUES('EPSG','4225','vertical_crs','EPSG','5782','EPSG','4188','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5783','DHHN92 height',NULL,'EPSG','6499','EPSG','5181',0);
INSERT INTO "usage" VALUES('EPSG','4226','vertical_crs','EPSG','5783','EPSG','3339','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5784','DHHN85 height',NULL,'EPSG','6499','EPSG','5182',0);
INSERT INTO "usage" VALUES('EPSG','4227','vertical_crs','EPSG','5784','EPSG','2326','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5785','SNN76 height',NULL,'EPSG','6499','EPSG','5183',0);
INSERT INTO "usage" VALUES('EPSG','4228','vertical_crs','EPSG','5785','EPSG','1343','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5786','Baltic 1982 height',NULL,'EPSG','6499','EPSG','5184',0);
INSERT INTO "usage" VALUES('EPSG','4229','vertical_crs','EPSG','5786','EPSG','3224','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5787','EOMA 1980 height',NULL,'EPSG','6499','EPSG','5185',0);
INSERT INTO "usage" VALUES('EPSG','4230','vertical_crs','EPSG','5787','EPSG','1119','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5788','Kuwait PWD height',NULL,'EPSG','6499','EPSG','5186',0);
INSERT INTO "usage" VALUES('EPSG','4231','vertical_crs','EPSG','5788','EPSG','3267','EPSG','1248');
INSERT INTO "vertical_crs" VALUES('EPSG','5790','KOC CD height',NULL,'EPSG','6499','EPSG','5188',0);
INSERT INTO "usage" VALUES('EPSG','4233','vertical_crs','EPSG','5790','EPSG','3267','EPSG','1206');
INSERT INTO "vertical_crs" VALUES('EPSG','5791','NGC 1948 height',NULL,'EPSG','6499','EPSG','5189',0);
INSERT INTO "usage" VALUES('EPSG','4234','vertical_crs','EPSG','5791','EPSG','1327','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5792','Danger 1950 height',NULL,'EPSG','6499','EPSG','5190',0);
INSERT INTO "usage" VALUES('EPSG','4235','vertical_crs','EPSG','5792','EPSG','3299','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5793','Mayotte 1950 height',NULL,'EPSG','6499','EPSG','5191',0);
INSERT INTO "usage" VALUES('EPSG','4236','vertical_crs','EPSG','5793','EPSG','3340','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','5794','Martinique 1955 height',NULL,'EPSG','6499','EPSG','5192',0);
INSERT INTO "usage" VALUES('EPSG','4237','vertical_crs','EPSG','5794','EPSG','3276','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5795','Guadeloupe 1951 height',NULL,'EPSG','6499','EPSG','5193',0);
INSERT INTO "usage" VALUES('EPSG','4238','vertical_crs','EPSG','5795','EPSG','2892','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5796','Lagos 1955 height',NULL,'EPSG','6499','EPSG','5194',0);
INSERT INTO "usage" VALUES('EPSG','4239','vertical_crs','EPSG','5796','EPSG','3287','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5797','AIOC95 height',NULL,'EPSG','6499','EPSG','5133',0);
INSERT INTO "usage" VALUES('EPSG','4240','vertical_crs','EPSG','5797','EPSG','2592','EPSG','1136');
INSERT INTO "vertical_crs" VALUES('EPSG','5798','EGM84 height',NULL,'EPSG','6499','EPSG','5203',0);
INSERT INTO "usage" VALUES('EPSG','4241','vertical_crs','EPSG','5798','EPSG','1262','EPSG','1027');
INSERT INTO "vertical_crs" VALUES('EPSG','5799','DVR90 height',NULL,'EPSG','6499','EPSG','5206',0);
INSERT INTO "usage" VALUES('EPSG','4242','vertical_crs','EPSG','5799','EPSG','3237','EPSG','1142');
INSERT INTO "vertical_crs" VALUES('EPSG','5829','Instantaneous Water Level height',NULL,'EPSG','6499','EPSG','5113',0);
INSERT INTO "usage" VALUES('EPSG','4267','vertical_crs','EPSG','5829','EPSG','1262','EPSG','1200');
INSERT INTO "vertical_crs" VALUES('EPSG','5843','Ras Ghumays height',NULL,'EPSG','6499','EPSG','1146',0);
INSERT INTO "usage" VALUES('EPSG','4278','vertical_crs','EPSG','5843','EPSG','4225','EPSG','1142');
INSERT INTO "vertical_crs" VALUES('EPSG','5861','LAT depth',NULL,'EPSG','6498','EPSG','1080',0);
INSERT INTO "usage" VALUES('EPSG','4295','vertical_crs','EPSG','5861','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5862','LLWLT depth',NULL,'EPSG','6498','EPSG','1083',0);
INSERT INTO "usage" VALUES('EPSG','4296','vertical_crs','EPSG','5862','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5863','ISLW depth',NULL,'EPSG','6498','EPSG','1085',0);
INSERT INTO "usage" VALUES('EPSG','4297','vertical_crs','EPSG','5863','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5864','MLLWS depth',NULL,'EPSG','6498','EPSG','1086',0);
INSERT INTO "usage" VALUES('EPSG','4298','vertical_crs','EPSG','5864','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5865','MLWS depth',NULL,'EPSG','6498','EPSG','1087',0);
INSERT INTO "usage" VALUES('EPSG','4299','vertical_crs','EPSG','5865','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5866','MLLW depth',NULL,'EPSG','6498','EPSG','1089',0);
INSERT INTO "usage" VALUES('EPSG','4300','vertical_crs','EPSG','5866','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5867','MLW depth',NULL,'EPSG','6498','EPSG','1091',0);
INSERT INTO "usage" VALUES('EPSG','4301','vertical_crs','EPSG','5867','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5868','MHW height',NULL,'EPSG','6499','EPSG','1092',0);
INSERT INTO "usage" VALUES('EPSG','4302','vertical_crs','EPSG','5868','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5869','MHHW height',NULL,'EPSG','6499','EPSG','1090',0);
INSERT INTO "usage" VALUES('EPSG','4303','vertical_crs','EPSG','5869','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5870','MHWS height',NULL,'EPSG','6499','EPSG','1088',0);
INSERT INTO "usage" VALUES('EPSG','4304','vertical_crs','EPSG','5870','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5871','HHWLT height',NULL,'EPSG','6499','EPSG','1084',0);
INSERT INTO "usage" VALUES('EPSG','4305','vertical_crs','EPSG','5871','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5872','HAT height',NULL,'EPSG','6499','EPSG','1082',0);
INSERT INTO "usage" VALUES('EPSG','4306','vertical_crs','EPSG','5872','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5873','Low Water depth',NULL,'EPSG','6498','EPSG','1093',0);
INSERT INTO "usage" VALUES('EPSG','4307','vertical_crs','EPSG','5873','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5874','High Water height',NULL,'EPSG','6499','EPSG','1094',0);
INSERT INTO "usage" VALUES('EPSG','4308','vertical_crs','EPSG','5874','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5941','NN2000 height',NULL,'EPSG','6499','EPSG','1096',0);
INSERT INTO "usage" VALUES('EPSG','4345','vertical_crs','EPSG','5941','EPSG','1352','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6130','GCVD54 height (ft)',NULL,'EPSG','1030','EPSG','1097',0);
INSERT INTO "usage" VALUES('EPSG','4457','vertical_crs','EPSG','6130','EPSG','3185','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6131','LCVD61 height (ft)',NULL,'EPSG','1030','EPSG','1098',0);
INSERT INTO "usage" VALUES('EPSG','4458','vertical_crs','EPSG','6131','EPSG','4121','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6132','CBVD61 height (ft)',NULL,'EPSG','1030','EPSG','1099',0);
INSERT INTO "usage" VALUES('EPSG','4459','vertical_crs','EPSG','6132','EPSG','3207','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6178','Cais da Pontinha - Funchal height',NULL,'EPSG','6499','EPSG','1101',0);
INSERT INTO "usage" VALUES('EPSG','4497','vertical_crs','EPSG','6178','EPSG','4125','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6179','Cais da Vila - Porto Santo height',NULL,'EPSG','6499','EPSG','1102',0);
INSERT INTO "usage" VALUES('EPSG','4498','vertical_crs','EPSG','6179','EPSG','3680','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6180','Cais das Velas height',NULL,'EPSG','6499','EPSG','1103',0);
INSERT INTO "usage" VALUES('EPSG','4499','vertical_crs','EPSG','6180','EPSG','2875','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6181','Horta height',NULL,'EPSG','6499','EPSG','1104',0);
INSERT INTO "usage" VALUES('EPSG','4500','vertical_crs','EPSG','6181','EPSG','2873','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6182','Cais da Madalena height',NULL,'EPSG','6499','EPSG','1105',0);
INSERT INTO "usage" VALUES('EPSG','4501','vertical_crs','EPSG','6182','EPSG','2874','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6183','Santa Cruz da Graciosa height',NULL,'EPSG','6499','EPSG','1106',0);
INSERT INTO "usage" VALUES('EPSG','4502','vertical_crs','EPSG','6183','EPSG','3681','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6184','Cais da Figueirinha - Angra do Heroismo height',NULL,'EPSG','6499','EPSG','1107',0);
INSERT INTO "usage" VALUES('EPSG','4503','vertical_crs','EPSG','6184','EPSG','2872','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6185','Santa Cruz das Flores height',NULL,'EPSG','6499','EPSG','1108',0);
INSERT INTO "usage" VALUES('EPSG','4504','vertical_crs','EPSG','6185','EPSG','1344','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6186','Cais da Vila do Porto height',NULL,'EPSG','6499','EPSG','1109',0);
INSERT INTO "usage" VALUES('EPSG','4505','vertical_crs','EPSG','6186','EPSG','4126','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6187','Ponta Delgada height',NULL,'EPSG','6499','EPSG','1110',0);
INSERT INTO "usage" VALUES('EPSG','4506','vertical_crs','EPSG','6187','EPSG','2871','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6638','Tutuila 1962 height',NULL,'EPSG','6499','EPSG','1121',0);
INSERT INTO "usage" VALUES('EPSG','4859','vertical_crs','EPSG','6638','EPSG','2288','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6639','Guam 1963 height',NULL,'EPSG','6499','EPSG','1122',0);
INSERT INTO "usage" VALUES('EPSG','4860','vertical_crs','EPSG','6639','EPSG','3255','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6640','NMVD03 height',NULL,'EPSG','6499','EPSG','1119',0);
INSERT INTO "usage" VALUES('EPSG','4861','vertical_crs','EPSG','6640','EPSG','4171','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6641','PRVD02 height',NULL,'EPSG','6499','EPSG','1123',0);
INSERT INTO "usage" VALUES('EPSG','4862','vertical_crs','EPSG','6641','EPSG','3294','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6642','VIVD09 height',NULL,'EPSG','6499','EPSG','1124',0);
INSERT INTO "usage" VALUES('EPSG','4863','vertical_crs','EPSG','6642','EPSG','3330','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6643','ASVD02 height',NULL,'EPSG','6499','EPSG','1125',0);
INSERT INTO "usage" VALUES('EPSG','4864','vertical_crs','EPSG','6643','EPSG','2288','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6644','GUVD04 height',NULL,'EPSG','6499','EPSG','1126',0);
INSERT INTO "usage" VALUES('EPSG','4865','vertical_crs','EPSG','6644','EPSG','3255','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6647','CGVD2013(CGG2013) height',NULL,'EPSG','6499','EPSG','1127',0);
INSERT INTO "usage" VALUES('EPSG','4867','vertical_crs','EPSG','6647','EPSG','1061','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','6693','JSLD72 height',NULL,'EPSG','6499','EPSG','1129',0);
INSERT INTO "usage" VALUES('EPSG','4912','vertical_crs','EPSG','6693','EPSG','4168','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6694','JGD2000 (vertical) height',NULL,'EPSG','6499','EPSG','1130',0);
INSERT INTO "usage" VALUES('EPSG','4913','vertical_crs','EPSG','6694','EPSG','3263','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6695','JGD2011 (vertical) height',NULL,'EPSG','6499','EPSG','1131',0);
INSERT INTO "usage" VALUES('EPSG','4914','vertical_crs','EPSG','6695','EPSG','3263','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6916','SHD height',NULL,'EPSG','6499','EPSG','1140',0);
INSERT INTO "usage" VALUES('EPSG','5039','vertical_crs','EPSG','6916','EPSG','1210','EPSG','1144');
INSERT INTO "vertical_crs" VALUES('EPSG','7446','Famagusta 1960 height',NULL,'EPSG','6499','EPSG','1148',0);
INSERT INTO "usage" VALUES('EPSG','5289','vertical_crs','EPSG','7446','EPSG','3236','EPSG','1142');
INSERT INTO "vertical_crs" VALUES('EPSG','7447','PNG08 height',NULL,'EPSG','6499','EPSG','1149',0);
INSERT INTO "usage" VALUES('EPSG','5290','vertical_crs','EPSG','7447','EPSG','4384','EPSG','1027');
INSERT INTO "vertical_crs" VALUES('EPSG','7651','Kumul 34 height',NULL,'EPSG','6499','EPSG','1150',0);
INSERT INTO "usage" VALUES('EPSG','5409','vertical_crs','EPSG','7651','EPSG','4013','EPSG','1029');
INSERT INTO "vertical_crs" VALUES('EPSG','7652','Kiunga height',NULL,'EPSG','6499','EPSG','1151',0);
INSERT INTO "usage" VALUES('EPSG','5410','vertical_crs','EPSG','7652','EPSG','4383','EPSG','1029');
INSERT INTO "vertical_crs" VALUES('EPSG','7699','DHHN12 height',NULL,'EPSG','6499','EPSG','1161',0);
INSERT INTO "usage" VALUES('EPSG','5436','vertical_crs','EPSG','7699','EPSG','3339','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','7700','Latvia 2000 height',NULL,'EPSG','6499','EPSG','1162',0);
INSERT INTO "usage" VALUES('EPSG','5437','vertical_crs','EPSG','7700','EPSG','3268','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','7707','ODN (Offshore) height',NULL,'EPSG','6499','EPSG','1164',0);
INSERT INTO "usage" VALUES('EPSG','5439','vertical_crs','EPSG','7707','EPSG','4391','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','7832','POM96 height',NULL,'EPSG','6499','EPSG','1171',0);
INSERT INTO "usage" VALUES('EPSG','5497','vertical_crs','EPSG','7832','EPSG','4425','EPSG','1029');
INSERT INTO "vertical_crs" VALUES('EPSG','7837','DHHN2016 height',NULL,'EPSG','6499','EPSG','1170',0);
INSERT INTO "usage" VALUES('EPSG','5498','vertical_crs','EPSG','7837','EPSG','3339','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','7839','NZVD2016 height',NULL,'EPSG','6499','EPSG','1169',0);
INSERT INTO "usage" VALUES('EPSG','5499','vertical_crs','EPSG','7839','EPSG','1175','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','7841','POM08 height',NULL,'EPSG','6499','EPSG','1172',0);
INSERT INTO "usage" VALUES('EPSG','5500','vertical_crs','EPSG','7841','EPSG','4425','EPSG','1029');
INSERT INTO "vertical_crs" VALUES('EPSG','7888','Jamestown 1971 height',NULL,'EPSG','6499','EPSG','1175',0);
INSERT INTO "usage" VALUES('EPSG','5530','vertical_crs','EPSG','7888','EPSG','3183','EPSG','1153');
INSERT INTO "vertical_crs" VALUES('EPSG','7889','St. Helena Tritan 2011 height',NULL,'EPSG','6499','EPSG','1176',0);
INSERT INTO "usage" VALUES('EPSG','5531','vertical_crs','EPSG','7889','EPSG','3183','EPSG','1145');
INSERT INTO "vertical_crs" VALUES('EPSG','7890','SHVD2015 height',NULL,'EPSG','6499','EPSG','1177',0);
INSERT INTO "usage" VALUES('EPSG','5532','vertical_crs','EPSG','7890','EPSG','3183','EPSG','1027');
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 "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);
INSERT INTO "usage" VALUES('EPSG','5759','vertical_crs','EPSG','8267','EPSG','4454','EPSG','1153');
INSERT INTO "vertical_crs" VALUES('EPSG','8357','Baltic 1957 height',NULL,'EPSG','6499','EPSG','1202',0);
INSERT INTO "usage" VALUES('EPSG','5803','vertical_crs','EPSG','8357','EPSG','1306','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','8378','EPSG example wellbore local vertical CRS',NULL,'EPSG','1049','EPSG','1205',0);
INSERT INTO "usage" VALUES('EPSG','5808','vertical_crs','EPSG','8378','EPSG','4393','EPSG','1226');
INSERT INTO "vertical_crs" VALUES('EPSG','8434','Macao height',NULL,'EPSG','6499','EPSG','1210',0);
INSERT INTO "usage" VALUES('EPSG','5831','vertical_crs','EPSG','8434','EPSG','1147','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','8675','N43 height',NULL,'EPSG','6499','EPSG','1213',0);
INSERT INTO "usage" VALUES('EPSG','5861','vertical_crs','EPSG','8675','EPSG','4522','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','8690','SVS2010 height',NULL,'EPSG','6499','EPSG','1215',0);
INSERT INTO "usage" VALUES('EPSG','5871','vertical_crs','EPSG','8690','EPSG','3307','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','8691','SRB_VRS12 height',NULL,'EPSG','6499','EPSG','1216',0);
INSERT INTO "usage" VALUES('EPSG','5872','vertical_crs','EPSG','8691','EPSG','4543','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','8841','MVGC height',NULL,'EPSG','6499','EPSG','1219',0);
INSERT INTO "usage" VALUES('EPSG','6006','vertical_crs','EPSG','8841','EPSG','3303','EPSG','1181');
INSERT INTO "vertical_crs" VALUES('EPSG','8881','Vienna height',NULL,'EPSG','6499','EPSG','1267',0);
INSERT INTO "usage" VALUES('EPSG','13973','vertical_crs','EPSG','8881','EPSG','4585','EPSG','1248');
INSERT INTO "vertical_crs" VALUES('EPSG','8897','EPSG example wellbore local vertical CRS (ft)',NULL,'EPSG','1050','EPSG','1205',0);
INSERT INTO "usage" VALUES('EPSG','6013','vertical_crs','EPSG','8897','EPSG','4393','EPSG','1226');
INSERT INTO "vertical_crs" VALUES('EPSG','8904','TWVD 2001 height',NULL,'EPSG','6499','EPSG','1224',0);
INSERT INTO "usage" VALUES('EPSG','6020','vertical_crs','EPSG','8904','EPSG','3982','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','8911','DACR52 height',NULL,'EPSG','6499','EPSG','1226',0);
INSERT INTO "usage" VALUES('EPSG','6027','vertical_crs','EPSG','8911','EPSG','3232','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9130','IGN 2008 LD height',NULL,'EPSG','6499','EPSG','1250',0);
INSERT INTO "usage" VALUES('EPSG','6138','vertical_crs','EPSG','9130','EPSG','2893','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9245','CGVD2013(CGG2013a) height',NULL,'EPSG','6499','EPSG','1256',0);
INSERT INTO "usage" VALUES('EPSG','13877','vertical_crs','EPSG','9245','EPSG','1061','EPSG','1180');
INSERT INTO "vertical_crs" VALUES('EPSG','9255','SRVN16 height',NULL,'EPSG','6499','EPSG','1260',0);
INSERT INTO "usage" VALUES('EPSG','13908','vertical_crs','EPSG','9255','EPSG','4573','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9274','EVRF2000 Austria height',NULL,'EPSG','6499','EPSG','1261',0);
INSERT INTO "usage" VALUES('EPSG','13915','vertical_crs','EPSG','9274','EPSG','1037','EPSG','1027');
INSERT INTO "vertical_crs" VALUES('EPSG','9279','SA LLD height',NULL,'EPSG','6499','EPSG','1262',0);
INSERT INTO "usage" VALUES('EPSG','13916','vertical_crs','EPSG','9279','EPSG','3309','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9287','LAT NL depth',NULL,'EPSG','6498','EPSG','1290',0);
INSERT INTO "usage" VALUES('EPSG','14122','vertical_crs','EPSG','9287','EPSG','1630','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','9288','MSL NL depth',NULL,'EPSG','6498','EPSG','1270',0);
INSERT INTO "usage" VALUES('EPSG','14123','vertical_crs','EPSG','9288','EPSG','1630','EPSG','1265');
INSERT INTO "vertical_crs" VALUES('EPSG','9303','HS2-VRF height',NULL,'EPSG','6499','EPSG','1265',0);
INSERT INTO "usage" VALUES('EPSG','14049','vertical_crs','EPSG','9303','EPSG','4582','EPSG','1260');
INSERT INTO "vertical_crs" VALUES('EPSG','9335','KSA-VRF14 height',NULL,'EPSG','6499','EPSG','1269',0);
INSERT INTO "usage" VALUES('EPSG','13922','vertical_crs','EPSG','9335','EPSG','3303','EPSG','1181');
INSERT INTO "vertical_crs" VALUES('EPSG','9351','NGNC08 height',NULL,'EPSG','6499','EPSG','1255',0);
INSERT INTO "usage" VALUES('EPSG','13977','vertical_crs','EPSG','9351','EPSG','3430','EPSG','1026');
INSERT INTO "vertical_crs" VALUES('EPSG','9389','EVRF2019 height',NULL,'EPSG','6499','EPSG','1274',0);
INSERT INTO "usage" VALUES('EPSG','14658','vertical_crs','EPSG','9389','EPSG','4608','EPSG','1261');
INSERT INTO "vertical_crs" VALUES('EPSG','9390','EVRF2019 mean-tide height',NULL,'EPSG','6499','EPSG','1287',0);
INSERT INTO "usage" VALUES('EPSG','14659','vertical_crs','EPSG','9390','EPSG','4608','EPSG','1262');
INSERT INTO "vertical_crs" VALUES('EPSG','9392','Mallorca height',NULL,'EPSG','6499','EPSG','1275',0);
INSERT INTO "usage" VALUES('EPSG','14031','vertical_crs','EPSG','9392','EPSG','4602','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9393','Menorca height',NULL,'EPSG','6499','EPSG','1276',0);
INSERT INTO "usage" VALUES('EPSG','14032','vertical_crs','EPSG','9393','EPSG','4603','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9394','Ibiza height',NULL,'EPSG','6499','EPSG','1277',0);
INSERT INTO "usage" VALUES('EPSG','14033','vertical_crs','EPSG','9394','EPSG','4604','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9395','Lanzarote height',NULL,'EPSG','6499','EPSG','1278',0);
INSERT INTO "usage" VALUES('EPSG','14034','vertical_crs','EPSG','9395','EPSG','4591','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9396','Fuerteventura height',NULL,'EPSG','6499','EPSG','1279',0);
INSERT INTO "usage" VALUES('EPSG','14035','vertical_crs','EPSG','9396','EPSG','4592','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9397','Gran Canaria height',NULL,'EPSG','6499','EPSG','1280',0);
INSERT INTO "usage" VALUES('EPSG','14036','vertical_crs','EPSG','9397','EPSG','4593','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9398','Tenerife height',NULL,'EPSG','6499','EPSG','1281',0);
INSERT INTO "usage" VALUES('EPSG','14037','vertical_crs','EPSG','9398','EPSG','4594','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9399','La Gomera height',NULL,'EPSG','6499','EPSG','1282',0);
INSERT INTO "usage" VALUES('EPSG','14038','vertical_crs','EPSG','9399','EPSG','4595','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9400','La Palma height',NULL,'EPSG','6499','EPSG','1283',0);
INSERT INTO "usage" VALUES('EPSG','14039','vertical_crs','EPSG','9400','EPSG','4596','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9401','El Hierro height',NULL,'EPSG','6499','EPSG','1284',0);
INSERT INTO "usage" VALUES('EPSG','14040','vertical_crs','EPSG','9401','EPSG','4597','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9402','Ceuta 2 height',NULL,'EPSG','6499','EPSG','1285',0);
INSERT INTO "usage" VALUES('EPSG','14041','vertical_crs','EPSG','9402','EPSG','4590','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9451','BI height',NULL,'EPSG','6499','EPSG','1288',0);
INSERT INTO "usage" VALUES('EPSG','14087','vertical_crs','EPSG','9451','EPSG','4606','EPSG','1026');
INSERT INTO "vertical_crs" VALUES('EPSG','9458','AVWS height',NULL,'EPSG','6499','EPSG','1292',0);
INSERT INTO "usage" VALUES('EPSG','14231','vertical_crs','EPSG','9458','EPSG','4177','EPSG','1264');
INSERT INTO "vertical_crs" VALUES('EPSG','9471','INAGeoid2020 height',NULL,'EPSG','6499','EPSG','1294',0);
INSERT INTO "usage" VALUES('EPSG','14153','vertical_crs','EPSG','9471','EPSG','1122','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9650','Baltic 1986 height',NULL,'EPSG','6499','EPSG','1296',0);
INSERT INTO "usage" VALUES('EPSG','15032','vertical_crs','EPSG','9650','EPSG','3293','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9651','EVRF2007-PL height',NULL,'EPSG','6499','EPSG','1297',0);
INSERT INTO "usage" VALUES('EPSG','15034','vertical_crs','EPSG','9651','EPSG','3293','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9663','EH2000 height',NULL,'EPSG','6499','EPSG','1298',0);
INSERT INTO "usage" VALUES('EPSG','14747','vertical_crs','EPSG','9663','EPSG','3246','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9666','LAS07 height',NULL,'EPSG','6499','EPSG','1299',0);
INSERT INTO "usage" VALUES('EPSG','14754','vertical_crs','EPSG','9666','EPSG','3272','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9669','BGS2005 height',NULL,'EPSG','6499','EPSG','1300',0);
INSERT INTO "usage" VALUES('EPSG','14770','vertical_crs','EPSG','9669','EPSG','3224','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9672','CD Norway depth',NULL,'EPSG','6498','EPSG','1301',0);
INSERT INTO "usage" VALUES('EPSG','14776','vertical_crs','EPSG','9672','EPSG','4615','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','9675','Pago Pago 2020 height',NULL,'EPSG','6499','EPSG','1302',0);
INSERT INTO "usage" VALUES('EPSG','14793','vertical_crs','EPSG','9675','EPSG','2288','EPSG','1026');
INSERT INTO "vertical_crs" VALUES('EPSG','9681','NVD 1992 height',NULL,'EPSG','6499','EPSG','1303',0);
INSERT INTO "usage" VALUES('EPSG','14851','vertical_crs','EPSG','9681','EPSG','3217','EPSG','1181');
INSERT INTO "vertical_crs" VALUES('EPSG','9721','Catania 1965 height',NULL,'EPSG','6499','EPSG','1306',0);
INSERT INTO "usage" VALUES('EPSG','15276','vertical_crs','EPSG','9721','EPSG','2340','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','9722','Cagliari 1956 height',NULL,'EPSG','6499','EPSG','1307',0);
INSERT INTO "usage" VALUES('EPSG','15278','vertical_crs','EPSG','9722','EPSG','2339','EPSG','1178');
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);
INSERT INTO "usage" VALUES('EPSG','4081','vertical_crs','EPSG','5612','EPSG','2423','EPSG','1136');
INSERT INTO "vertical_crs" VALUES('EPSG','5706','Caspian depth',NULL,'EPSG','6498','EPSG','5106',0);
INSERT INTO "usage" VALUES('EPSG','4149','vertical_crs','EPSG','5706','EPSG','1291','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','5715','MSL depth',NULL,'EPSG','6498','EPSG','5100',0);
INSERT INTO "usage" VALUES('EPSG','4158','vertical_crs','EPSG','5715','EPSG','1262','EPSG','1199');
INSERT INTO "vertical_crs" VALUES('EPSG','5734','AIOC95 depth',NULL,'EPSG','6498','EPSG','5133',0);
INSERT INTO "usage" VALUES('EPSG','4177','vertical_crs','EPSG','5734','EPSG','2592','EPSG','1136');
INSERT INTO "vertical_crs" VALUES('EPSG','5789','KOC WD depth',NULL,'EPSG','6498','EPSG','5187',0);
INSERT INTO "usage" VALUES('EPSG','4232','vertical_crs','EPSG','5789','EPSG','3267','EPSG','1205');
INSERT INTO "vertical_crs" VALUES('EPSG','5831','Instantaneous Water Level depth',NULL,'EPSG','6498','EPSG','5113',0);
INSERT INTO "usage" VALUES('EPSG','4269','vertical_crs','EPSG','5831','EPSG','1262','EPSG','1200');
INSERT INTO "vertical_crs" VALUES('EPSG','6357','NAVD88 depth',NULL,'EPSG','6498','EPSG','5103',0);
INSERT INTO "usage" VALUES('EPSG','4591','vertical_crs','EPSG','6357','EPSG','4161','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6359','NGVD29 depth (ftUS)',NULL,'EPSG','1043','EPSG','5102',0);
INSERT INTO "usage" VALUES('EPSG','4593','vertical_crs','EPSG','6359','EPSG','1323','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','6360','NAVD88 height (ftUS)',NULL,'EPSG','6497','EPSG','5103',0);
INSERT INTO "usage" VALUES('EPSG','4594','vertical_crs','EPSG','6360','EPSG','3664','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','7962','Poolbeg height (m)',NULL,'EPSG','6499','EPSG','5152',0);
INSERT INTO "usage" VALUES('EPSG','5568','vertical_crs','EPSG','7962','EPSG','1305','EPSG','1203');
INSERT INTO "vertical_crs" VALUES('EPSG','7968','NGVD29 height (m)',NULL,'EPSG','6499','EPSG','5102',0);
INSERT INTO "usage" VALUES('EPSG','5569','vertical_crs','EPSG','7968','EPSG','1323','EPSG','1203');
INSERT INTO "vertical_crs" VALUES('EPSG','7976','HKPD depth',NULL,'EPSG','6498','EPSG','5135',0);
INSERT INTO "usage" VALUES('EPSG','5570','vertical_crs','EPSG','7976','EPSG','3334','EPSG','1203');
INSERT INTO "vertical_crs" VALUES('EPSG','8050','MSL height (ft)',NULL,'EPSG','1030','EPSG','5100',0);
INSERT INTO "usage" VALUES('EPSG','5600','vertical_crs','EPSG','8050','EPSG','1262','EPSG','1199');
INSERT INTO "vertical_crs" VALUES('EPSG','8052','MSL height (ftUS)',NULL,'EPSG','6497','EPSG','5100',0);
INSERT INTO "usage" VALUES('EPSG','5602','vertical_crs','EPSG','8052','EPSG','1245','EPSG','1199');
INSERT INTO "vertical_crs" VALUES('EPSG','8228','NAVD88 height (ft)',NULL,'EPSG','1030','EPSG','5103',0);
INSERT INTO "usage" VALUES('EPSG','5736','vertical_crs','EPSG','8228','EPSG','4464','EPSG','1144');
INSERT INTO "vertical_crs" VALUES('EPSG','8358','Baltic 1957 depth',NULL,'EPSG','6498','EPSG','1202',0);
INSERT INTO "usage" VALUES('EPSG','5804','vertical_crs','EPSG','8358','EPSG','1306','EPSG','1178');
INSERT INTO "vertical_crs" VALUES('EPSG','5614','KOC WD depth (ft)',NULL,'EPSG','6495','EPSG','5187',0);
INSERT INTO "usage" VALUES('EPSG','4083','vertical_crs','EPSG','5614','EPSG','3267','EPSG','1205');
INSERT INTO "vertical_crs" VALUES('EPSG','6358','NAVD88 depth (ftUS)',NULL,'EPSG','1043','EPSG','5103',0);
INSERT INTO "usage" VALUES('EPSG','4592','vertical_crs','EPSG','6358','EPSG','3664','EPSG','1179');
INSERT INTO "vertical_crs" VALUES('EPSG','8051','MSL depth (ft)',NULL,'EPSG','6495','EPSG','5100',0);
INSERT INTO "usage" VALUES('EPSG','5601','vertical_crs','EPSG','8051','EPSG','1262','EPSG','1199');
INSERT INTO "vertical_crs" VALUES('EPSG','8053','MSL depth (ftUS)',NULL,'EPSG','1043','EPSG','5100',0);
INSERT INTO "usage" VALUES('EPSG','5603','vertical_crs','EPSG','8053','EPSG','1245','EPSG','1199');
+460 -201
View File
@@ -1,203 +1,462 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "vertical_datum" VALUES('EPSG','1027','EGM2008 geoid',NULL,NULL,'EPSG','1262','2008-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1028','Fao 1979',NULL,NULL,'EPSG','3625','1979-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1030','N2000',NULL,NULL,'EPSG','3333','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1039','New Zealand Vertical Datum 2009',NULL,NULL,'EPSG','1175','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1040','Dunedin-Bluff 1960',NULL,NULL,'EPSG','3806','1960-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1049','Incheon',NULL,NULL,'EPSG','3739','1963-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1050','Trieste',NULL,NULL,'EPSG','2370','1875-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1051','Genoa',NULL,NULL,'EPSG','3736','1942-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1054','Sri Lanka Vertical Datum',NULL,NULL,'EPSG','3310','1932-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1059','Faroe Islands Vertical Reference 2009',NULL,NULL,'EPSG','3248','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1079','Fehmarnbelt Vertical Reference 2010',NULL,NULL,'EPSG','3890','2010-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1080','Lowest Astronomic Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1082','Highest Astronomic Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1083','Lower Low Water Large Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1084','Higher High Water Large Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1085','Indian Spring Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1086','Mean Lower Low Water Spring Tides',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1087','Mean Low Water Spring Tides',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1088','Mean High Water Spring Tides',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1089','Mean Lower Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1090','Mean Higher High Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1091','Mean Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1092','Mean High Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1093','Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1094','High Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1096','Norway Normal Null 2000',NULL,NULL,'EPSG','1352','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1097','Grand Cayman Vertical Datum 1954',NULL,NULL,'EPSG','3185','1954-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1098','Little Cayman Vertical Datum 1961',NULL,NULL,'EPSG','4121','1961-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1099','Cayman Brac Vertical Datum 1961',NULL,NULL,'EPSG','3207','1961-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1101','Cais da Pontinha - Funchal',NULL,NULL,'EPSG','4125','1913-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1102','Cais da Vila - Porto Santo',NULL,NULL,'EPSG','3680','1936-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1103','Cais das Velas',NULL,NULL,'EPSG','2875','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1104','Horta',NULL,NULL,'EPSG','2873','1935-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1105','Cais da Madalena',NULL,NULL,'EPSG','2874','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1106','Santa Cruz da Graciosa',NULL,NULL,'EPSG','3681','1938-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1107','Cais da Figueirinha - Angra do Heroismo',NULL,NULL,'EPSG','2872','1951-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1108','Santa Cruz das Flores',NULL,NULL,'EPSG','1344','1965-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1109','Cais da Vila do Porto',NULL,NULL,'EPSG','4126','1965-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1110','Ponta Delgada',NULL,NULL,'EPSG','2871','1991-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1119','Northern Marianas Vertical Datum of 2003',NULL,NULL,'EPSG','4171','2003-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1121','Tutuila Vertical Datum of 1962',NULL,NULL,'EPSG','2288','1962-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1122','Guam Vertical Datum of 1963',NULL,NULL,'EPSG','3255','1963-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1123','Puerto Rico Vertical Datum of 2002',NULL,NULL,'EPSG','3294','2002-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1124','Virgin Islands Vertical Datum of 2009',NULL,NULL,'EPSG','3330','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1125','American Samoa Vertical Datum of 2002',NULL,NULL,'EPSG','2288','2002-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1126','Guam Vertical Datum of 2004',NULL,NULL,'EPSG','3255','2004-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1127','Canadian Geodetic Vertical Datum of 2013 (CGG2013)',NULL,NULL,'EPSG','1061','2013-11-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1129','Japanese Standard Levelling Datum 1972',NULL,NULL,'EPSG','4168','1972-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1130','Japanese Geodetic Datum 2000 (vertical)',NULL,NULL,'EPSG','3263','2002-04-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1131','Japanese Geodetic Datum 2011 (vertical)',NULL,NULL,'EPSG','3263','2011-10-31',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1140','Singapore Height Datum',NULL,NULL,'EPSG','1210','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1146','Ras Ghumays',NULL,NULL,'EPSG','4225','1979-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1148','Famagusta 1960',NULL,NULL,'EPSG','3236',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1149','PNG08',NULL,NULL,'EPSG','4384','2011-10-14',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1150','Kumul 34',NULL,NULL,'EPSG','4013',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1151','Kiunga',NULL,NULL,'EPSG','4383',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1161','Deutsches Haupthoehennetz 1912',NULL,NULL,'EPSG','3339','1912-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1162','Latvian Height System 2000',NULL,NULL,'EPSG','3268','2005-07-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1164','Ordnance Datum Newlyn (Offshore)',NULL,NULL,'EPSG','4391','2016-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1169','New Zealand Vertical Datum 2016',NULL,NULL,'EPSG','1175','2016-06-27',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1170','Deutsches Haupthoehennetz 2016',NULL,NULL,'EPSG','3339','1996-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1171','Port Moresby 1996',NULL,NULL,'EPSG','4425',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1172','Port Moresby 2008',NULL,NULL,'EPSG','4425',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1175','Jamestown 1971',NULL,NULL,'EPSG','3183','1971-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1176','St. Helena Tritan Vertical Datum 2011',NULL,NULL,'EPSG','3183','2011-10-09',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 2015',NULL,NULL,'EPSG','3183','2015-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1190','Landshaedarkerfi Islands 2004',NULL,NULL,'EPSG','3262','2004-08-07',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,NULL,'EPSG','4461',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1200','Greenland Vertical Reference 2016',NULL,NULL,'EPSG','4454',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1202','Baltic 1957',NULL,NULL,'EPSG','1306','1957-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1205','EPSG example wellbore vertical datum',NULL,NULL,'EPSG','4393',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1210','Macao Height Datum',NULL,NULL,'EPSG','1147','1980-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1213','Helsinki 1943',NULL,NULL,'EPSG','4522','1943-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1215','Slovenian Vertical System 2010',NULL,NULL,'EPSG','3307','2010-10-10',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1216','Serbian Vertical Reference System 2012',NULL,NULL,'EPSG','4543',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1219','MOMRA Vertical Geodetic Control',NULL,NULL,'EPSG','3303','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1224','Taiwan Vertical Datum 2001',NULL,NULL,'EPSG','3982',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1226','Datum Altimetrico de Costa Rica 1952',NULL,NULL,'EPSG','3232','1952-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1250','IGN 2008 LD',NULL,NULL,'EPSG','2893','2008-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1255','Nivellement General de Nouvelle Caledonie 2008',NULL,NULL,'EPSG','3430','2008-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1256','Canadian Geodetic Vertical Datum of 2013 (CGG2013a)',NULL,NULL,'EPSG','1061','2015-12-05',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1260','Sistema de Referencia Vertical Nacional 2016',NULL,NULL,'EPSG','4573','2013-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1261','European Vertical Reference Frame 2000 Austria',NULL,NULL,'EPSG','1037',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1262','South Africa Land Levelling Datum',NULL,NULL,'EPSG','3309','2010-05-11',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1267','Wiener Null',NULL,NULL,'EPSG','4585',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1269','Kingdom of Saudi Arabia Vertical Reference Frame Jeddah 2014',NULL,NULL,'EPSG','3303','2014-10-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,NULL,'EPSG','2792',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5102','National Geodetic Vertical Datum 1929',NULL,NULL,'EPSG','1323','1929-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5103','North American Vertical Datum 1988',NULL,NULL,'EPSG','4161','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5104','Yellow Sea 1956',NULL,NULL,'EPSG','3228','1956-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5105','Baltic 1977',NULL,NULL,'EPSG','2423','1977-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5106','Caspian Sea',NULL,NULL,'EPSG','1291',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5107','Nivellement general de la France',NULL,NULL,'EPSG','1326',NULL,1);
INSERT INTO "vertical_datum" VALUES('EPSG','5109','Normaal Amsterdams Peil',NULL,NULL,'EPSG','1275',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5110','Ostend',NULL,NULL,'EPSG','1347','1981-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5111','Australian Height Datum',NULL,NULL,'EPSG','4493','1971-05-05',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5112','Australian Height Datum (Tasmania)',NULL,NULL,'EPSG','2947','1972-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5113','Instantaneous Water Level',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5114','Canadian Geodetic Vertical Datum of 1928',NULL,NULL,'EPSG','1289','1928-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5115','Piraeus Harbour 1986',NULL,NULL,'EPSG','3254','1986-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5116','Helsinki 1960',NULL,NULL,'EPSG','3333','1960-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5117','Rikets hojdsystem 1970',NULL,NULL,'EPSG','3313','1970-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5118','Nivellement General de la France - Lallemand',NULL,NULL,'EPSG','1326',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5119','Nivellement General de la France - IGN69',NULL,NULL,'EPSG','1326','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5120','Nivellement General de la France - IGN78',NULL,NULL,'EPSG','1327','1978-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5121','Maputo',NULL,NULL,'EPSG','3281',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5122','Japanese Standard Levelling Datum 1969',NULL,NULL,'EPSG','4166','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5123','PDO Height Datum 1993',NULL,NULL,'EPSG','3288','1993-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5124','Fahud Height Datum',NULL,NULL,'EPSG','4009',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5125','Ha Tien 1960',NULL,NULL,'EPSG','1302','1960-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5126','Hon Dau 1992',NULL,NULL,'EPSG','4015','1992-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5127','Landesnivellement 1902',NULL,NULL,'EPSG','1286','1902-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5128','Landeshohennetz 1995',NULL,NULL,'EPSG','1286','1995-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5129','European Vertical Reference Frame 2000',NULL,NULL,'EPSG','1299','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5130','Malin Head',NULL,NULL,'EPSG','1305','1970-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5131','Belfast Lough',NULL,NULL,'EPSG','2530','1957-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5132','Dansk Normal Nul',NULL,NULL,'EPSG','3237',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5133','AIOC 1995',NULL,NULL,'EPSG','2592','1995-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5134','Black Sea',NULL,NULL,'EPSG','3251',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5135','Hong Kong Principal Datum',NULL,NULL,'EPSG','3334','1980-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5136','Hong Kong Chart Datum',NULL,NULL,'EPSG','3335',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5137','Yellow Sea 1985',NULL,NULL,'EPSG','3228','1985-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5138','Ordnance Datum Newlyn (Orkney Isles)',NULL,NULL,'EPSG','2793',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5139','Fair Isle',NULL,NULL,'EPSG','2794',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5140','Lerwick',NULL,NULL,'EPSG','2795',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5141','Foula',NULL,NULL,'EPSG','2796',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5142','Sule Skerry',NULL,NULL,'EPSG','2797',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5143','North Rona',NULL,NULL,'EPSG','2798',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5144','Stornoway',NULL,NULL,'EPSG','2799',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5145','St. Kilda',NULL,NULL,'EPSG','2800',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5146','Flannan Isles',NULL,NULL,'EPSG','2801',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5147','St. Marys',NULL,NULL,'EPSG','2802',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5148','Douglas',NULL,NULL,'EPSG','2803',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5149','Fao',NULL,NULL,'EPSG','3390',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5150','Bandar Abbas',NULL,NULL,'EPSG','3336','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5151','Nivellement General de Nouvelle Caledonie',NULL,NULL,'EPSG','2822','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5152','Poolbeg',NULL,NULL,'EPSG','1305','1837-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5153','Nivellement General Guyanais 1977',NULL,NULL,'EPSG','3146','1977-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5154','Martinique 1987',NULL,NULL,'EPSG','3276','1987-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5155','Guadeloupe 1988',NULL,NULL,'EPSG','2892','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5156','Reunion 1989',NULL,NULL,'EPSG','3337','1989-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5157','Auckland 1946',NULL,NULL,'EPSG','3764','1946-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5158','Bluff 1955',NULL,NULL,'EPSG','3801','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5159','Dunedin 1958',NULL,NULL,'EPSG','3803','1958-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5160','Gisborne 1926',NULL,NULL,'EPSG','3771','1926-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5161','Lyttelton 1937',NULL,NULL,'EPSG','3804','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5162','Moturiki 1953',NULL,NULL,'EPSG','3768','1953-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5163','Napier 1962',NULL,NULL,'EPSG','3772','1962-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5164','Nelson 1955',NULL,NULL,'EPSG','3802','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5165','One Tree Point 1964',NULL,NULL,'EPSG','3762','1964-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5166','Tararu 1952',NULL,NULL,'EPSG','3818','1952-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5167','Taranaki 1970',NULL,NULL,'EPSG','3769','1970-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5168','Wellington 1953',NULL,NULL,'EPSG','3773','1953-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5169','Waitangi (Chatham Island) 1959',NULL,NULL,'EPSG','3894','1959-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5170','Stewart Island 1977',NULL,NULL,'EPSG','3338','1977-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5171','EGM96 geoid',NULL,NULL,'EPSG','1262','1996-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5172','Nivellement General du Luxembourg',NULL,NULL,'EPSG','1146','1995-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5173','Antalya',NULL,NULL,'EPSG','3322',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5174','Norway Normal Null 1954',NULL,NULL,'EPSG','1352','1974-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5175','Durres',NULL,NULL,'EPSG','3212',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5176','Gebrauchshohen ADRIA',NULL,NULL,'EPSG','1037',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5177','Slovenian Vertical System 2000',NULL,NULL,'EPSG','3307','1999-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5178','Cascais',NULL,NULL,'EPSG','1294','1938-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5179','Constanta',NULL,NULL,'EPSG','3295',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5180','Alicante',NULL,NULL,'EPSG','4188',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5181','Deutsches Haupthoehennetz 1992',NULL,NULL,'EPSG','3339','1992-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5182','Deutsches Haupthoehennetz 1985',NULL,NULL,'EPSG','2326','1985-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5183','Staatlichen Nivellementnetzes 1976',NULL,NULL,'EPSG','1343','1976-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5184','Baltic 1982',NULL,NULL,'EPSG','3224','1982-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5185','Baltic 1980',NULL,NULL,'EPSG','1119',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5186','Kuwait PWD',NULL,NULL,'EPSG','3267',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5187','KOC Well Datum',NULL,NULL,'EPSG','3267','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5188','KOC Construction Datum',NULL,NULL,'EPSG','3267','1952-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5189','Nivellement General de la Corse 1948',NULL,NULL,'EPSG','1327','1948-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5190','Danger 1950',NULL,NULL,'EPSG','3299','1950-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5191','Mayotte 1950',NULL,NULL,'EPSG','3340','1950-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5192','Martinique 1955',NULL,NULL,'EPSG','3276','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5193','Guadeloupe 1951',NULL,NULL,'EPSG','2892','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5194','Lagos 1955',NULL,NULL,'EPSG','3287','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5195','Nivellement General de Polynesie Francaise',NULL,NULL,'EPSG','3134',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5196','IGN 1966',NULL,NULL,'EPSG','3124','1966-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5197','Moorea SAU 1981',NULL,NULL,'EPSG','3125','1981-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5198','Raiatea SAU 2001',NULL,NULL,'EPSG','3136','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5199','Maupiti SAU 2001',NULL,NULL,'EPSG','3126','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5200','Huahine SAU 2001',NULL,NULL,'EPSG','3135','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5201','Tahaa SAU 2001',NULL,NULL,'EPSG','3138','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5202','Bora Bora SAU 2001',NULL,NULL,'EPSG','3137','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5203','EGM84 geoid',NULL,NULL,'EPSG','1262','1987-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5204','International Great Lakes Datum 1955',NULL,NULL,'EPSG','3468','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5205','International Great Lakes Datum 1985',NULL,NULL,'EPSG','3468','1985-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990',NULL,NULL,'EPSG','3237',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5207','Croatian Vertical Reference System 1971',NULL,NULL,'EPSG','3234','1971-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5208','Rikets hojdsystem 2000',NULL,NULL,'EPSG','3313','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5209','Rikets hojdsystem 1900',NULL,NULL,'EPSG','3313','1900-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5210','IGN 1988 LS',NULL,NULL,'EPSG','2895','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5211','IGN 1988 MG',NULL,NULL,'EPSG','2894','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5212','IGN 1992 LD',NULL,NULL,'EPSG','2893','1992-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5213','IGN 1988 SB',NULL,NULL,'EPSG','2891','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5214','IGN 1988 SM',NULL,NULL,'EPSG','2890','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5215','European Vertical Reference Frame 2007',NULL,NULL,'EPSG','3594','2007-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1027','EGM2008 geoid',NULL,'2008-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13079','vertical_datum','EPSG','1027','EPSG','1262','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','1028','Fao 1979',NULL,'1979-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13080','vertical_datum','EPSG','1028','EPSG','3625','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1030','N2000',NULL,'2000-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13082','vertical_datum','EPSG','1030','EPSG','3333','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1039','New Zealand Vertical Datum 2009',NULL,'2009-09-14',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13091','vertical_datum','EPSG','1039','EPSG','1175','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1040','Dunedin-Bluff 1960',NULL,'1960-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13092','vertical_datum','EPSG','1040','EPSG','3806','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1049','Incheon',NULL,'1963-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13101','vertical_datum','EPSG','1049','EPSG','3739','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1050','Trieste',NULL,'1875-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13102','vertical_datum','EPSG','1050','EPSG','2370','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1051','Genoa 1942',NULL,'1942-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13103','vertical_datum','EPSG','1051','EPSG','3736','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1054','Sri Lanka Vertical Datum',NULL,'1932-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13106','vertical_datum','EPSG','1054','EPSG','3310','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1059','Faroe Islands Vertical Reference 2009',NULL,'2009-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13111','vertical_datum','EPSG','1059','EPSG','3248','EPSG','1142');
INSERT INTO "vertical_datum" VALUES('EPSG','1079','Fehmarnbelt Vertical Reference 2010',NULL,'2010-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13131','vertical_datum','EPSG','1079','EPSG','3890','EPSG','1139');
INSERT INTO "vertical_datum" VALUES('EPSG','1080','Lowest Astronomical Tide',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13132','vertical_datum','EPSG','1080','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1082','Highest Astronomical Tide',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13134','vertical_datum','EPSG','1082','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1083','Lower Low Water Large Tide',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13135','vertical_datum','EPSG','1083','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1084','Higher High Water Large Tide',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13136','vertical_datum','EPSG','1084','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1085','Indian Spring Low Water',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13137','vertical_datum','EPSG','1085','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1086','Mean Lower Low Water Spring Tides',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13138','vertical_datum','EPSG','1086','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1087','Mean Low Water Spring Tides',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13139','vertical_datum','EPSG','1087','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1088','Mean High Water Spring Tides',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13140','vertical_datum','EPSG','1088','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1089','Mean Lower Low Water',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13141','vertical_datum','EPSG','1089','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1090','Mean Higher High Water',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13142','vertical_datum','EPSG','1090','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1091','Mean Low Water',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13143','vertical_datum','EPSG','1091','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1092','Mean High Water',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13144','vertical_datum','EPSG','1092','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1093','Low Water',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13145','vertical_datum','EPSG','1093','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1094','High Water',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13146','vertical_datum','EPSG','1094','EPSG','1262','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1096','Norway Normal Null 2000',NULL,'2000-01-01',2000.0,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13148','vertical_datum','EPSG','1096','EPSG','1352','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1097','Grand Cayman Vertical Datum 1954',NULL,'1954-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13149','vertical_datum','EPSG','1097','EPSG','3185','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1098','Little Cayman Vertical Datum 1961',NULL,'1961-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13150','vertical_datum','EPSG','1098','EPSG','4121','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1099','Cayman Brac Vertical Datum 1961',NULL,'1961-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13151','vertical_datum','EPSG','1099','EPSG','3207','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1101','Cais da Pontinha - Funchal',NULL,'1913-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13153','vertical_datum','EPSG','1101','EPSG','4125','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1102','Cais da Vila - Porto Santo',NULL,'1936-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13154','vertical_datum','EPSG','1102','EPSG','3680','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1103','Cais das Velas',NULL,'1937-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13155','vertical_datum','EPSG','1103','EPSG','2875','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1104','Horta',NULL,'1935-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13156','vertical_datum','EPSG','1104','EPSG','2873','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1105','Cais da Madalena',NULL,'1937-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13157','vertical_datum','EPSG','1105','EPSG','2874','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1106','Santa Cruz da Graciosa',NULL,'1938-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13158','vertical_datum','EPSG','1106','EPSG','3681','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1107','Cais da Figueirinha - Angra do Heroismo',NULL,'1951-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13159','vertical_datum','EPSG','1107','EPSG','2872','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1108','Santa Cruz das Flores',NULL,'1965-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13160','vertical_datum','EPSG','1108','EPSG','1344','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1109','Cais da Vila do Porto',NULL,'1965-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13161','vertical_datum','EPSG','1109','EPSG','4126','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1110','Ponta Delgada',NULL,'1991-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13162','vertical_datum','EPSG','1110','EPSG','2871','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1119','Northern Marianas Vertical Datum of 2003',NULL,'2009-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13171','vertical_datum','EPSG','1119','EPSG','4171','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1121','Tutuila Vertical Datum of 1962',NULL,'1962-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13173','vertical_datum','EPSG','1121','EPSG','2288','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1122','Guam Vertical Datum of 1963',NULL,'1963-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13174','vertical_datum','EPSG','1122','EPSG','3255','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1123','Puerto Rico Vertical Datum of 2002',NULL,'2012-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13175','vertical_datum','EPSG','1123','EPSG','3294','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1124','Virgin Islands Vertical Datum of 2009',NULL,'2011-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13176','vertical_datum','EPSG','1124','EPSG','3330','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1125','American Samoa Vertical Datum of 2002',NULL,'2009-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13177','vertical_datum','EPSG','1125','EPSG','2288','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1126','Guam Vertical Datum of 2004',NULL,'2009-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13178','vertical_datum','EPSG','1126','EPSG','3255','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1127','Canadian Geodetic Vertical Datum of 2013 (CGG2013)',NULL,'2013-11-28',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13179','vertical_datum','EPSG','1127','EPSG','1061','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1129','Japanese Standard Levelling Datum 1972',NULL,'1972-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13181','vertical_datum','EPSG','1129','EPSG','4168','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1130','Japanese Geodetic Datum 2000 (vertical)',NULL,'2002-04-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13182','vertical_datum','EPSG','1130','EPSG','3263','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1131','Japanese Geodetic Datum 2011 (vertical)',NULL,'2011-10-21',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13183','vertical_datum','EPSG','1131','EPSG','3263','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1140','Singapore Height Datum',NULL,'2009-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13192','vertical_datum','EPSG','1140','EPSG','1210','EPSG','1144');
INSERT INTO "vertical_datum" VALUES('EPSG','1146','Ras Ghumays',NULL,'1979-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13198','vertical_datum','EPSG','1146','EPSG','4225','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1148','Famagusta 1960',NULL,'1960-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13200','vertical_datum','EPSG','1148','EPSG','3236','EPSG','1142');
INSERT INTO "vertical_datum" VALUES('EPSG','1149','PNG08',NULL,'2011-10-14',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13201','vertical_datum','EPSG','1149','EPSG','4384','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','1150','Kumul 34',NULL,'2005-06-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13202','vertical_datum','EPSG','1150','EPSG','4013','EPSG','1029');
INSERT INTO "vertical_datum" VALUES('EPSG','1151','Kiunga',NULL,'1990-10-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13203','vertical_datum','EPSG','1151','EPSG','4383','EPSG','1029');
INSERT INTO "vertical_datum" VALUES('EPSG','1161','Deutsches Haupthoehennetz 1912',NULL,'1912-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13213','vertical_datum','EPSG','1161','EPSG','3339','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1162','Latvian Height System 2000',NULL,'2005-07-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13214','vertical_datum','EPSG','1162','EPSG','3268','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1164','Ordnance Datum Newlyn (Offshore)',NULL,'2016-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13216','vertical_datum','EPSG','1164','EPSG','4391','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','1169','New Zealand Vertical Datum 2016',NULL,'2016-06-27',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13221','vertical_datum','EPSG','1169','EPSG','1175','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1170','Deutsches Haupthoehennetz 2016',NULL,'2016-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13222','vertical_datum','EPSG','1170','EPSG','3339','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1171','Port Moresby 1996',NULL,'1996-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13223','vertical_datum','EPSG','1171','EPSG','4425','EPSG','1029');
INSERT INTO "vertical_datum" VALUES('EPSG','1172','Port Moresby 2008',NULL,'2008-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13224','vertical_datum','EPSG','1172','EPSG','4425','EPSG','1029');
INSERT INTO "vertical_datum" VALUES('EPSG','1175','Jamestown 1971',NULL,'1971-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13227','vertical_datum','EPSG','1175','EPSG','3183','EPSG','1153');
INSERT INTO "vertical_datum" VALUES('EPSG','1176','St. Helena Tritan Vertical Datum 2011',NULL,'2011-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13228','vertical_datum','EPSG','1176','EPSG','3183','EPSG','1029');
INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 2015',NULL,'2015-01-01',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,0);
INSERT INTO "usage" VALUES('EPSG','13242','vertical_datum','EPSG','1190','EPSG','3262','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,'2000-01-01',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,0);
INSERT INTO "usage" VALUES('EPSG','13252','vertical_datum','EPSG','1200','EPSG','4454','EPSG','1153');
INSERT INTO "vertical_datum" VALUES('EPSG','1202','Baltic 1957',NULL,'1957-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13254','vertical_datum','EPSG','1202','EPSG','1306','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1205','EPSG example wellbore vertical datum',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13257','vertical_datum','EPSG','1205','EPSG','4393','EPSG','1226');
INSERT INTO "vertical_datum" VALUES('EPSG','1210','Macao Height Datum',NULL,'1980-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13262','vertical_datum','EPSG','1210','EPSG','1147','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1213','Helsinki 1943',NULL,'1943-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13265','vertical_datum','EPSG','1213','EPSG','4522','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1215','Slovenian Vertical System 2010',NULL,'2010-10-10',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13267','vertical_datum','EPSG','1215','EPSG','3307','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1216','Serbian Vertical Reference System 2012',NULL,'2012-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13268','vertical_datum','EPSG','1216','EPSG','4543','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1219','MOMRA Vertical Geodetic Control',NULL,'1969-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13271','vertical_datum','EPSG','1219','EPSG','3303','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1224','Taiwan Vertical Datum 2001',NULL,'2001-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13276','vertical_datum','EPSG','1224','EPSG','3982','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1226','Datum Altimetrico de Costa Rica 1952',NULL,'1962-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13278','vertical_datum','EPSG','1226','EPSG','3232','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1250','IGN 2008 LD',NULL,'2008-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13302','vertical_datum','EPSG','1250','EPSG','2893','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1255','Nivellement General de Nouvelle Caledonie 2008',NULL,'2008-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13979','vertical_datum','EPSG','1255','EPSG','3430','EPSG','1026');
INSERT INTO "vertical_datum" VALUES('EPSG','1256','Canadian Geodetic Vertical Datum of 2013 (CGG2013a)',NULL,'2015-12-05',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13972','vertical_datum','EPSG','1256','EPSG','1061','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','1260','Sistema de Referencia Vertical Nacional 2016',NULL,'2016-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13893','vertical_datum','EPSG','1260','EPSG','4573','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1261','European Vertical Reference Frame 2000 Austria',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13894','vertical_datum','EPSG','1261','EPSG','1037','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','1262','South Africa Land Levelling Datum',NULL,'2010-05-11',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13895','vertical_datum','EPSG','1262','EPSG','3309','EPSG','1181');
INSERT INTO "vertical_datum" VALUES('EPSG','1265','HS2 Vertical Reference Frame',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14027','vertical_datum','EPSG','1265','EPSG','4582','EPSG','1260');
INSERT INTO "vertical_datum" VALUES('EPSG','1267','Wiener Null',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13981','vertical_datum','EPSG','1267','EPSG','4585','EPSG','1248');
INSERT INTO "vertical_datum" VALUES('EPSG','1269','Kingdom of Saudi Arabia Vertical Reference Frame Jeddah 2014',NULL,'2014-10-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13897','vertical_datum','EPSG','1269','EPSG','3303','EPSG','1181');
INSERT INTO "vertical_datum" VALUES('EPSG','1270','Mean Sea Level Netherlands',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14119','vertical_datum','EPSG','1270','EPSG','1630','EPSG','1265');
INSERT INTO "vertical_datum" VALUES('EPSG','1274','European Vertical Reference Frame 2019',NULL,'2020-09-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14738','vertical_datum','EPSG','1274','EPSG','4608','EPSG','1261');
INSERT INTO "vertical_datum" VALUES('EPSG','1275','Mallorca',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14014','vertical_datum','EPSG','1275','EPSG','4602','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1276','Menorca',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14015','vertical_datum','EPSG','1276','EPSG','4603','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1277','Ibiza',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14016','vertical_datum','EPSG','1277','EPSG','4604','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1278','Lanzarote',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14017','vertical_datum','EPSG','1278','EPSG','4591','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1279','Fuerteventura',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14018','vertical_datum','EPSG','1279','EPSG','4592','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1280','Gran Canaria',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14019','vertical_datum','EPSG','1280','EPSG','4593','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1281','Tenerife',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14020','vertical_datum','EPSG','1281','EPSG','4594','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1282','La Gomera',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14021','vertical_datum','EPSG','1282','EPSG','4595','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1283','La Palma',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14022','vertical_datum','EPSG','1283','EPSG','4596','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1284','El Hierro',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14023','vertical_datum','EPSG','1284','EPSG','4597','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1285','Ceuta 2',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14024','vertical_datum','EPSG','1285','EPSG','4590','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1287','European Vertical Reference Frame 2019 mean tide',NULL,'2020-09-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14739','vertical_datum','EPSG','1287','EPSG','4608','EPSG','1262');
INSERT INTO "vertical_datum" VALUES('EPSG','1290','Lowest Astronomical Tide Netherlands',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14120','vertical_datum','EPSG','1290','EPSG','1630','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1292','Australian Vertical Working Surface',NULL,'2020-07-14',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14134','vertical_datum','EPSG','1292','EPSG','4177','EPSG','1264');
INSERT INTO "vertical_datum" VALUES('EPSG','1294','Indonesian Geoid 2020',NULL,'2020-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14149','vertical_datum','EPSG','1294','EPSG','1122','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1296','Baltic 1986',NULL,'1986-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14975','vertical_datum','EPSG','1296','EPSG','3293','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1297','European Vertical Reference Frame 2007 Poland',NULL,'2019-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','15033','vertical_datum','EPSG','1297','EPSG','3293','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1298','Estonian Height System 2000',NULL,'2005-07-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14743','vertical_datum','EPSG','1298','EPSG','3246','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1299','Lithuanian Height System 2007',NULL,'2005-07-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14758','vertical_datum','EPSG','1299','EPSG','3272','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1300','Bulgarian Height System 2005',NULL,'2005-07-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14768','vertical_datum','EPSG','1300','EPSG','3224','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1301','Norwegian Chart Datum',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14864','vertical_datum','EPSG','1301','EPSG','4615','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1302','Local Tidal Datum at Pago Pago 2020',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14795','vertical_datum','EPSG','1302','EPSG','2288','EPSG','1026');
INSERT INTO "vertical_datum" VALUES('EPSG','1303','National Vertical Datum 1992',NULL,'1994-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14852','vertical_datum','EPSG','1303','EPSG','3217','EPSG','1181');
INSERT INTO "vertical_datum" VALUES('EPSG','1306','Catania 1965',NULL,'1965-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','15330','vertical_datum','EPSG','1306','EPSG','2340','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1307','Cagliari 1956',NULL,'1956-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','15331','vertical_datum','EPSG','1307','EPSG','2339','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',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,0);
INSERT INTO "usage" VALUES('EPSG','13308','vertical_datum','EPSG','5101','EPSG','2792','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5102','National Geodetic Vertical Datum 1929',NULL,'1929-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13309','vertical_datum','EPSG','5102','EPSG','1323','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5103','North American Vertical Datum 1988',NULL,'1993-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13310','vertical_datum','EPSG','5103','EPSG','4161','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5104','Yellow Sea 1956',NULL,'1956-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13311','vertical_datum','EPSG','5104','EPSG','3228','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5105','Baltic 1977',NULL,'1977-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13312','vertical_datum','EPSG','5105','EPSG','2423','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5106','Caspian Sea',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13313','vertical_datum','EPSG','5106','EPSG','1291','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','5107','Nivellement general de la France',NULL,NULL,NULL,NULL,1);
INSERT INTO "usage" VALUES('EPSG','13314','vertical_datum','EPSG','5107','EPSG','1326','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5109','Normaal Amsterdams Peil',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13315','vertical_datum','EPSG','5109','EPSG','1172','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5110','Ostend',NULL,'1981-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13316','vertical_datum','EPSG','5110','EPSG','1347','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5111','Australian Height Datum',NULL,'1971-05-05',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13317','vertical_datum','EPSG','5111','EPSG','4493','EPSG','1263');
INSERT INTO "vertical_datum" VALUES('EPSG','5112','Australian Height Datum (Tasmania)',NULL,'1972-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13318','vertical_datum','EPSG','5112','EPSG','2947','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5113','Instantaneous Water Level',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13319','vertical_datum','EPSG','5113','EPSG','1262','EPSG','1200');
INSERT INTO "vertical_datum" VALUES('EPSG','5114','Canadian Geodetic Vertical Datum of 1928',NULL,'1935-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13320','vertical_datum','EPSG','5114','EPSG','1289','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5115','Piraeus Harbour 1986',NULL,'1986-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13321','vertical_datum','EPSG','5115','EPSG','3254','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5116','Helsinki 1960',NULL,'1960-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13322','vertical_datum','EPSG','5116','EPSG','3333','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5117','Rikets hojdsystem 1970',NULL,'1970-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13323','vertical_datum','EPSG','5117','EPSG','3313','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5118','Nivellement General de la France - Lallemand',NULL,'1897-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13324','vertical_datum','EPSG','5118','EPSG','1326','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5119','Nivellement General de la France - IGN69',NULL,'1969-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13325','vertical_datum','EPSG','5119','EPSG','1326','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5120','Nivellement General de la France - IGN78',NULL,'1978-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13326','vertical_datum','EPSG','5120','EPSG','1327','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5121','Maputo',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13327','vertical_datum','EPSG','5121','EPSG','3281','EPSG','1153');
INSERT INTO "vertical_datum" VALUES('EPSG','5122','Japanese Standard Levelling Datum 1969',NULL,'1969-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13328','vertical_datum','EPSG','5122','EPSG','4166','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5123','PDO Height Datum 1993',NULL,'1993-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13329','vertical_datum','EPSG','5123','EPSG','3288','EPSG','1216');
INSERT INTO "vertical_datum" VALUES('EPSG','5124','Fahud Height Datum',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13330','vertical_datum','EPSG','5124','EPSG','4009','EPSG','1216');
INSERT INTO "vertical_datum" VALUES('EPSG','5125','Ha Tien 1960',NULL,'1960-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13331','vertical_datum','EPSG','5125','EPSG','1302','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5126','Hon Dau 1992',NULL,'1992-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13332','vertical_datum','EPSG','5126','EPSG','4015','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5127','Landesnivellement 1902',NULL,'1902-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13333','vertical_datum','EPSG','5127','EPSG','1286','EPSG','1091');
INSERT INTO "vertical_datum" VALUES('EPSG','5128','Landeshohennetz 1995',NULL,'1995-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13334','vertical_datum','EPSG','5128','EPSG','1286','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','5129','European Vertical Reference Frame 2000',NULL,'2000-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13335','vertical_datum','EPSG','5129','EPSG','1299','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','5130','Malin Head',NULL,'1970-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13336','vertical_datum','EPSG','5130','EPSG','1305','EPSG','1153');
INSERT INTO "vertical_datum" VALUES('EPSG','5131','Belfast Lough',NULL,'1957-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13337','vertical_datum','EPSG','5131','EPSG','2530','EPSG','1209');
INSERT INTO "vertical_datum" VALUES('EPSG','5132','Dansk Normal Nul',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13338','vertical_datum','EPSG','5132','EPSG','3237','EPSG','1142');
INSERT INTO "vertical_datum" VALUES('EPSG','5133','AIOC 1995',NULL,'1995-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13339','vertical_datum','EPSG','5133','EPSG','2592','EPSG','1136');
INSERT INTO "vertical_datum" VALUES('EPSG','5134','Black Sea',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13340','vertical_datum','EPSG','5134','EPSG','1102','EPSG','1201');
INSERT INTO "vertical_datum" VALUES('EPSG','5135','Hong Kong Principal Datum',NULL,'1980-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13341','vertical_datum','EPSG','5135','EPSG','3334','EPSG','1184');
INSERT INTO "vertical_datum" VALUES('EPSG','5136','Hong Kong Chart Datum',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13342','vertical_datum','EPSG','5136','EPSG','3335','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','5137','Yellow Sea 1985',NULL,'1985-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13343','vertical_datum','EPSG','5137','EPSG','3228','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5138','Ordnance Datum Newlyn (Orkney Isles)',NULL,'1956-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13344','vertical_datum','EPSG','5138','EPSG','2793','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5139','Fair Isle',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13345','vertical_datum','EPSG','5139','EPSG','2794','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5140','Lerwick',NULL,'1979-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13346','vertical_datum','EPSG','5140','EPSG','2795','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5141','Foula',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13347','vertical_datum','EPSG','5141','EPSG','2796','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5142','Sule Skerry',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13348','vertical_datum','EPSG','5142','EPSG','2797','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5143','North Rona',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13349','vertical_datum','EPSG','5143','EPSG','2798','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5144','Stornoway',NULL,'1977-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13350','vertical_datum','EPSG','5144','EPSG','2799','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5145','St. Kilda',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13351','vertical_datum','EPSG','5145','EPSG','2800','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5146','Flannan Isles',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13352','vertical_datum','EPSG','5146','EPSG','2801','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5147','St. Marys',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13353','vertical_datum','EPSG','5147','EPSG','2802','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5148','Douglas',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13354','vertical_datum','EPSG','5148','EPSG','2803','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5149','Fao',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13355','vertical_datum','EPSG','5149','EPSG','3390','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5150','Bandar Abbas',NULL,'2001-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13356','vertical_datum','EPSG','5150','EPSG','3336','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5151','Nivellement General de Nouvelle Caledonie',NULL,'1969-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13357','vertical_datum','EPSG','5151','EPSG','2822','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5152','Poolbeg',NULL,'1837-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13358','vertical_datum','EPSG','5152','EPSG','1305','EPSG','1153');
INSERT INTO "vertical_datum" VALUES('EPSG','5153','Nivellement General Guyanais 1977',NULL,'1977-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13359','vertical_datum','EPSG','5153','EPSG','3146','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5154','Martinique 1987',NULL,'1987-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13360','vertical_datum','EPSG','5154','EPSG','3276','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5155','Guadeloupe 1988',NULL,'1988-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13361','vertical_datum','EPSG','5155','EPSG','2892','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5156','Reunion 1989',NULL,'1989-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13362','vertical_datum','EPSG','5156','EPSG','3337','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5157','Auckland 1946',NULL,'1945-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13363','vertical_datum','EPSG','5157','EPSG','3764','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5158','Bluff 1955',NULL,'1955-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13364','vertical_datum','EPSG','5158','EPSG','3801','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5159','Dunedin 1958',NULL,'1958-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13365','vertical_datum','EPSG','5159','EPSG','3803','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5160','Gisborne 1926',NULL,'1926-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13366','vertical_datum','EPSG','5160','EPSG','3771','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5161','Lyttelton 1937',NULL,'1937-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13367','vertical_datum','EPSG','5161','EPSG','3804','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5162','Moturiki 1953',NULL,'1953-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13368','vertical_datum','EPSG','5162','EPSG','3768','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5163','Napier 1962',NULL,'1962-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13369','vertical_datum','EPSG','5163','EPSG','3772','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5164','Nelson 1955',NULL,'1955-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13370','vertical_datum','EPSG','5164','EPSG','3802','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5165','One Tree Point 1964',NULL,'1964-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13371','vertical_datum','EPSG','5165','EPSG','3762','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5166','Tararu 1952',NULL,'1952-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13372','vertical_datum','EPSG','5166','EPSG','3818','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5167','Taranaki 1970',NULL,'1970-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13373','vertical_datum','EPSG','5167','EPSG','3769','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5168','Wellington 1953',NULL,'1953-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13374','vertical_datum','EPSG','5168','EPSG','3773','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5169','Waitangi (Chatham Island) 1959',NULL,'1959-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13375','vertical_datum','EPSG','5169','EPSG','3894','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5170','Stewart Island 1977',NULL,'1977-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13376','vertical_datum','EPSG','5170','EPSG','3338','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5171','EGM96 geoid',NULL,'1996-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13377','vertical_datum','EPSG','5171','EPSG','1262','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','5172','Nivellement General du Luxembourg',NULL,'1995-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13378','vertical_datum','EPSG','5172','EPSG','1146','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5173','Antalya',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13379','vertical_datum','EPSG','5173','EPSG','3322','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5174','Norway Normal Null 1954',NULL,'1954-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13380','vertical_datum','EPSG','5174','EPSG','1352','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5175','Durres',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13381','vertical_datum','EPSG','5175','EPSG','3212','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5176','Gebrauchshohen ADRIA',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13382','vertical_datum','EPSG','5176','EPSG','1037','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5177','Slovenian Vertical System 2000',NULL,'1999-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13383','vertical_datum','EPSG','5177','EPSG','3307','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5178','Cascais',NULL,'1938-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13384','vertical_datum','EPSG','5178','EPSG','1294','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5179','Constanta',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13385','vertical_datum','EPSG','5179','EPSG','3295','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5180','Alicante',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13386','vertical_datum','EPSG','5180','EPSG','4188','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5181','Deutsches Haupthoehennetz 1992',NULL,'1992-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13387','vertical_datum','EPSG','5181','EPSG','3339','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5182','Deutsches Haupthoehennetz 1985',NULL,'1985-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13388','vertical_datum','EPSG','5182','EPSG','2326','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5183','Staatlichen Nivellementnetzes 1976',NULL,'1976-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13389','vertical_datum','EPSG','5183','EPSG','1343','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5184','Baltic 1982',NULL,'1982-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13390','vertical_datum','EPSG','5184','EPSG','3224','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5185','Baltic 1980',NULL,'1980-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13391','vertical_datum','EPSG','5185','EPSG','1119','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5186','Kuwait PWD',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13392','vertical_datum','EPSG','5186','EPSG','3267','EPSG','1248');
INSERT INTO "vertical_datum" VALUES('EPSG','5187','KOC Well Datum',NULL,'1937-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13393','vertical_datum','EPSG','5187','EPSG','3267','EPSG','1205');
INSERT INTO "vertical_datum" VALUES('EPSG','5188','KOC Construction Datum',NULL,'1952-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13394','vertical_datum','EPSG','5188','EPSG','3267','EPSG','1206');
INSERT INTO "vertical_datum" VALUES('EPSG','5189','Nivellement General de la Corse 1948',NULL,'1948-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13395','vertical_datum','EPSG','5189','EPSG','1327','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5190','Danger 1950',NULL,'1950-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13396','vertical_datum','EPSG','5190','EPSG','3299','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5191','Mayotte 1950',NULL,'1950-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13397','vertical_datum','EPSG','5191','EPSG','3340','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5192','Martinique 1955',NULL,'1955-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13398','vertical_datum','EPSG','5192','EPSG','3276','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5193','Guadeloupe 1951',NULL,'1951-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13399','vertical_datum','EPSG','5193','EPSG','2892','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5194','Lagos 1955',NULL,'1955-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13400','vertical_datum','EPSG','5194','EPSG','3287','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5195','Nivellement General de Polynesie Francaise',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13401','vertical_datum','EPSG','5195','EPSG','3134','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5196','IGN 1966',NULL,'1966-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13402','vertical_datum','EPSG','5196','EPSG','3124','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5197','Moorea SAU 1981',NULL,'1981-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13403','vertical_datum','EPSG','5197','EPSG','3125','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5198','Raiatea SAU 2001',NULL,'2001-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13404','vertical_datum','EPSG','5198','EPSG','3136','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5199','Maupiti SAU 2001',NULL,'2001-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13405','vertical_datum','EPSG','5199','EPSG','3126','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5200','Huahine SAU 2001',NULL,'2001-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13406','vertical_datum','EPSG','5200','EPSG','3135','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5201','Tahaa SAU 2001',NULL,'2001-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13407','vertical_datum','EPSG','5201','EPSG','3138','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5202','Bora Bora SAU 2001',NULL,'2001-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13408','vertical_datum','EPSG','5202','EPSG','3137','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5203','EGM84 geoid',NULL,'1987-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13409','vertical_datum','EPSG','5203','EPSG','1262','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','5204','International Great Lakes Datum 1955',NULL,'1955-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13410','vertical_datum','EPSG','5204','EPSG','3468','EPSG','1202');
INSERT INTO "vertical_datum" VALUES('EPSG','5205','International Great Lakes Datum 1985',NULL,'1985-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13411','vertical_datum','EPSG','5205','EPSG','3468','EPSG','1202');
INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990',NULL,'1990-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13412','vertical_datum','EPSG','5206','EPSG','3237','EPSG','1142');
INSERT INTO "vertical_datum" VALUES('EPSG','5207','Croatian Vertical Reference Datum 1971',NULL,'1971-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13413','vertical_datum','EPSG','5207','EPSG','3234','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','5208','Rikets hojdsystem 2000',NULL,'2000-01-01',2000.0,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13414','vertical_datum','EPSG','5208','EPSG','3313','EPSG','1180');
INSERT INTO "vertical_datum" VALUES('EPSG','5209','Rikets hojdsystem 1900',NULL,'1900-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13415','vertical_datum','EPSG','5209','EPSG','3313','EPSG','1142');
INSERT INTO "vertical_datum" VALUES('EPSG','5210','IGN 1988 LS',NULL,'1988-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13416','vertical_datum','EPSG','5210','EPSG','2895','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5211','IGN 1988 MG',NULL,'1988-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13417','vertical_datum','EPSG','5211','EPSG','2894','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5212','IGN 1992 LD',NULL,'1992-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13418','vertical_datum','EPSG','5212','EPSG','2893','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5213','IGN 1988 SB',NULL,'1988-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13419','vertical_datum','EPSG','5213','EPSG','2891','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5214','IGN 1988 SM',NULL,'1988-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13420','vertical_datum','EPSG','5214','EPSG','2890','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','5215','European Vertical Reference Frame 2007',NULL,'2008-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14655','vertical_datum','EPSG','5215','EPSG','3594','EPSG','1027');
INSERT INTO "vertical_datum" VALUES('EPSG','1288','British Isles height ensemble',NULL,NULL,NULL,0.4,0);
INSERT INTO "usage" VALUES('EPSG','14086','vertical_datum','EPSG','1288','EPSG','4606','EPSG','1026');
@@ -0,0 +1,11 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5130',1);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5131',2);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5101',3);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','1164',4);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5138',5);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5140',6);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5144',7);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5148',8);
INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5147',9);
+7 -1
View File
@@ -5,13 +5,16 @@ set(SQL_FILES
"${SQL_DIR}/conversion_triggers.sql"
"${SQL_DIR}/metadata.sql"
"${SQL_DIR}/unit_of_measure.sql"
"${SQL_DIR}/area.sql"
"${SQL_DIR}/extent.sql"
"${SQL_DIR}/scope.sql"
"${SQL_DIR}/coordinate_system.sql"
"${SQL_DIR}/axis.sql"
"${SQL_DIR}/ellipsoid.sql"
"${SQL_DIR}/prime_meridian.sql"
"${SQL_DIR}/geodetic_datum.sql"
"${SQL_DIR}/geodetic_datum_ensemble_member.sql"
"${SQL_DIR}/vertical_datum.sql"
"${SQL_DIR}/vertical_datum_ensemble_member.sql"
"${SQL_DIR}/conversion.sql"
"${SQL_DIR}/geodetic_crs.sql"
"${SQL_DIR}/projected_crs.sql"
@@ -21,6 +24,7 @@ set(SQL_FILES
"${SQL_DIR}/grid_transformation.sql"
"${SQL_DIR}/grid_transformation_custom.sql"
"${SQL_DIR}/other_transformation.sql"
"${SQL_DIR}/other_transformation_custom.sql"
"${SQL_DIR}/concatenated_operation.sql"
"${SQL_DIR}/concatenated_operation_step.sql"
"${SQL_DIR}/alias_name.sql"
@@ -28,8 +32,10 @@ set(SQL_FILES
"${SQL_DIR}/deprecation.sql"
"${SQL_DIR}/esri.sql"
"${SQL_DIR}/ignf.sql"
"${SQL_DIR}/nkg.sql"
"${SQL_DIR}/grid_alternatives.sql"
"${SQL_DIR}/grid_alternatives_generated_noaa.sql"
"${SQL_DIR}/customizations.sql"
"${SQL_DIR}/nkg_post_customizations.sql"
"${SQL_DIR}/commit.sql"
)
+46
View File
@@ -0,0 +1,46 @@
{
"file_type": "triangulation_file",
"format_version": "1.0",
"name": "Name",
"version": "Version",
"publication_date": "2018-07-01T00:00:00Z",
"license": "Creative Commons Attribution 4.0 International",
"description": "Test triangulation",
"authority": {
"name": "Authority name",
"url": "http://example.com",
"address": "Adress",
"email": "test@example.com"
},
"links": [
{
"href": "https://example.com/about.html",
"rel": "about",
"type": "text/html",
"title": "About"
},
{
"href": "https://example.com/download",
"rel": "source",
"type": "application/zip",
"title": "Authoritative source"
},
{
"href": "https://creativecommons.org/licenses/by/4.0/",
"rel": "license",
"type": "text/html",
"title": "Creative Commons Attribution 4.0 International license"
},
{
"href": "https://example.com/metadata.xml",
"rel": "metadata",
"type": "application/xml",
"title": " ISO 19115 XML encoded metadata regarding the deformation model"
}
],
"transformed_components": [ "horizontal" ],
"vertices_columns": [ "source_x", "source_y", "target_x", "target_y" ],
"triangles_columns": [ "idx_vertex1", "idx_vertex2", "idx_vertex3" ],
"vertices": [ [2,49,2.1,49.1], [3,50,3.1,50.1], [2, 50, 2.1,50.1] ],
"triangles": [ [0, 1, 2] ]
}
@@ -0,0 +1,50 @@
{
"file_type": "triangulation_file",
"format_version": "1.0",
"name": "Name",
"version": "Version",
"publication_date": "2018-07-01T00:00:00Z",
"license": "Creative Commons Attribution 4.0 International",
"description": "Test triangulation",
"authority": {
"name": "Authority name",
"url": "http://example.com",
"address": "Adress",
"email": "test@example.com"
},
"links": [
{
"href": "https://example.com/about.html",
"rel": "about",
"type": "text/html",
"title": "About"
},
{
"href": "https://example.com/download",
"rel": "source",
"type": "application/zip",
"title": "Authoritative source"
},
{
"href": "https://creativecommons.org/licenses/by/4.0/",
"rel": "license",
"type": "text/html",
"title": "Creative Commons Attribution 4.0 International license"
},
{
"href": "https://example.com/metadata.xml",
"rel": "metadata",
"type": "application/xml",
"title": " ISO 19115 XML encoded metadata regarding the triangulation"
}
],
"input_crs": "EPSG:2393",
"output_crs": "EPSG:3067",
"transformed_components": [ "horizontal" ],
"vertices_columns": [ "source_x", "source_y", "target_x", "target_y" ],
"triangles_columns": [ "idx_vertex1", "idx_vertex2", "idx_vertex3" ],
"vertices": [ [3244102.707, 6693710.937, 244037.137, 6690900.686],
[3205290.722, 6715311.822, 205240.895, 6712492.577],
[3218328.492, 6649538.429, 218273.648, 6646745.973] ],
"triangles": [ [0, 1, 2] ]
}
@@ -0,0 +1,50 @@
{
"file_type": "triangulation_file",
"format_version": "1.0",
"name": "Name",
"version": "Version",
"publication_date": "2018-07-01T00:00:00Z",
"license": "Creative Commons Attribution 4.0 International",
"description": "Test triangulation",
"authority": {
"name": "Authority name",
"url": "http://example.com",
"address": "Adress",
"email": "test@example.com"
},
"links": [
{
"href": "https://example.com/about.html",
"rel": "about",
"type": "text/html",
"title": "About"
},
{
"href": "https://example.com/download",
"rel": "source",
"type": "application/zip",
"title": "Authoritative source"
},
{
"href": "https://creativecommons.org/licenses/by/4.0/",
"rel": "license",
"type": "text/html",
"title": "Creative Commons Attribution 4.0 International license"
},
{
"href": "https://example.com/metadata.xml",
"rel": "metadata",
"type": "application/xml",
"title": " ISO 19115 XML encoded metadata regarding the tirangulation"
}
],
"input_crs": "EPSG:2393+5717",
"output_crs": "EPSG:2393+5941",
"transformed_components": [ "vertical" ],
"vertices_columns": [ "source_x", "source_y", "source_z", "target_z" ],
"triangles_columns": [ "idx_vertex1", "idx_vertex2", "idx_vertex3" ],
"vertices": [ [3188607.0, 6688748.0, 23.123, 23.4133],
[3184981.0, 6725255.0, 8.044, 8.34499],
[3220912.0, 6699508.0, 1.724, 2.0101] ],
"triangles": [ [0, 1, 2] ]
}
+206
View File
@@ -0,0 +1,206 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Schema for triangulation based transformation",
"type": "object",
"properties": {
"file_type": {
"type": "string",
"enum": [
"triangulation_file"
],
"description": "File type. Always \"triangulation_file\""
},
"format_version": {
"type": "string",
"enum": [
"1.0"
]
},
"name": {
"type": "string",
"description": "A brief descriptive name of the triangulation"
},
"version": {
"type": "string",
"description": "A string identifying the version of the triangulation. The format for specifying version will be defined by the agency responsible for the triangulation"
},
"publication_date": {
"$ref": "#/definitions/datetime",
"description": "The date on which this version of the triangulation was published (or possibly the date on which it takes effect?)"
},
"license": {
"type": "string",
"description": "License under which the file is published"
},
"description": {
"type": "string",
"description": "A text description of the file"
},
"authority": {
"type": "object",
"description": "Basic information about the agency responsible for the data set",
"properties": {
"name": {
"type": "string",
"description": "The name of the agency"
},
"url": {
"type": "string",
"description": "The url of the agency website",
"format": "uri"
},
"address": {
"type": "string",
"description": "The postal address of the agency"
},
"email": {
"type": "string",
"description": "An email contact address for the agency",
"format": "email"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"links": {
"type": "array",
"description": "Links to related information",
"items": {
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "The URL holding the information",
"format": "uri"
},
"rel": {
"type": "string",
"description": "The relationship to the dataset. Proposed relationships are:\n- \"about\": a web page for human consumption describing the model\n- \"source\": the authoritative source data from which the triangulation is built.\n- \"metadata\": ISO 19115 XML metadata regarding the triangulation."
},
"type": {
"type": "string",
"description": "MIME type"
},
"title": {
"type": "string",
"description": "Description of the link"
}
},
"required": [
"href"
],
"additionalProperties": false
}
},
"extent": {
"$ref": "#/definitions/extent",
"description": "Defines the region within which the triangulation is defined. This should be a bounding box defined as an array of [west,south,east,north] coordinate values in a unspecified geographic CRS. This bounding box should be seen as approximate, given that triangulation may be defined with projected coordinates, and also because some triangulations may not cover the whole bounding box."
},
"input_crs": {
"$ref": "#/definitions/crs",
"description": "String identifying the CRS of source coordinates in the vertices. Typically \"EPSG:XXXX\". If the transformation is for vertical component, this should be the code for a compound CRS (can be EPSG:XXXX+YYYY where XXXX is the code of the horizontal CRS and YYYY the code of the vertical CRS). For example, for the KKJ->ETRS89 transformation, this is EPSG:2393 (\"KKJ / Finland Uniform Coordinate System\"). The input coordinates are assumed to be passed in the \"normalized for visualisation\" / \"GIS friendly\" order, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates."
},
"output_crs": {
"$ref": "#/definitions/crs",
"description": "String identifying the CRS of target coordinates in the vertices. Typically \"EPSG:XXXX\". If the transformation is for vertical component, this should be the code for a compound CRS (can be EPSG:XXXX+YYYY where XXXX is the code of the horizontal CRS and YYYY the code of the vertical CRS). For example, for the KKJ->ETRS89 transformation, this is EPSG:3067 (\"ETRS89 / TM35FIN(E,N)\"). The output coordinates will be returned in the \"normalized for visualisation\" / \"GIS friendly\" order, that is easting, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates."
},
"transformed_components": {
"type": "array",
"description": "Specify which component of the coordinates are transformed. Either \"horizontal\", \"vertical\" or both",
"minItems": 1,
"maxItems": 2,
"items": {
"type": "string",
"enum": [
"horizontal",
"vertical"
]
}
},
"vertices_columns": {
"type": "array",
"description": "Specify the name of the columns of the rows in the \"vertices\" array. There must be exactly as many elements in \"vertices_columns\" as in a row of \"vertices\". The following names have a special meaning: \"source_x\", \"source_y\", \"target_x\", \"target_y\", \"source_z\", \"target_z\" and \"offset_z\". \"source_x\" and \"source_y\" are compulsory. \"source_x\" is for the source longitude (in degree) or easting. \"source_y\" is for the source latitude (in degree) or northing. \"target_x\" and \"target_y\" are compulsory when \"horizontal\" is specified in \"transformed_components\". (\"source_z\" and \"target_z\") or \"offset_z\" are compulsory when \"vertical\" is specified in \"transformed_components\".",
"minItems": 3,
"items": {
"type": "string"
}
},
"triangles_columns": {
"type": "array",
"description": "Specify the name of the columns of the rows in the \"triangles\" array. There must be exactly as many elements in \"triangles_columns\" as in a row of \"triangles\". The following names have a special meaning: \"idx_vertex1\", \"idx_vertex2\", \"idx_vertex3\". They are compulsory.",
"minItems": 3,
"items": {
"type": "string"
}
},
"vertices": {
"type": "array",
"description": "an array whose items are themselves arrays with as many columns as described in \"vertices_columns\"",
"items": {
"type": "array"
}
},
"triangles": {
"type": "array",
"description": "an array whose items are themselves arrays with as many columns as described in \"triangles_columns\". The value of the \"idx_vertexN\" columns must be indices (between 0 and len(\"vertices\"-1) of items of the \"vertices\" array",
"items": {
"type": "array"
}
}
},
"required": [
"file_type",
"format_version",
"transformed_components",
"vertices_columns",
"triangles_columns",
"vertices",
"triangles"
],
"additionalProperties": false,
"definitions": {
"crs": {
"type": "string"
},
"datetime": {
"type": "string",
"format": "date-time",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
},
"extent": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"bbox"
]
},
"name" : {
"type": "string",
"description": "Name of the extent (e.g. \"Finland - mainland south of 66°N\")"
},
"parameters": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "number"
}
}
}
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
}
}
}
+66
View File
@@ -0,0 +1,66 @@
# This is the config file for building proj and running its test suite
# with Travis-ci.org
language: cpp
branches:
except:
- /^(cherry-pick-)?backport-\d+-to-/
cache:
directories:
- $HOME/.ccache
matrix:
fast_finish: true
include:
- os: linux
dist: xenial
compiler: gcc
services:
- docker
env:
- BUILD_NAME=publish_doc
- DETAILS="publish_doc"
- os: linux
dist: bionic
compiler: gcc
arch: s390x
env:
- BUILD_NAME=linux_generic
- DETAILS="linux, s390x"
- os: linux
dist: bionic
compiler: gcc
arch: arm64
env:
- BUILD_NAME=linux_generic
- DETAILS="linux, arm64"
- NPROC=4
allow_failures:
- env: BUILD_NAME=mingw32
before_install: ./travis/${BUILD_NAME}/before_install.sh
install: ./travis/${BUILD_NAME}/install.sh
script:
- echo "done"
after_success: ./travis/${BUILD_NAME}/after_success.sh
notifications:
irc:
channels:
- "irc.freenode.org#proj-activity"
# - "irc.freenode.org#gdal"
# - "irc.freenode.org#proj"
use_notice: true
# #email:
# # recipients:
# # - gdal-commits@lists.osgeo.org
#
@@ -11,9 +11,9 @@ environment:
BUILD_SHARED_LIBS: OFF
# VS 2017
- platform: x64
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
BUILD_SHARED_LIBS: ON
# - platform: x64
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# BUILD_SHARED_LIBS: ON
shallow_clone: true
+18
View File
@@ -0,0 +1,18 @@
name: Backport
on:
pull_request_target:
types:
- closed
- labeled
jobs:
backport:
runs-on: ubuntu-18.04
name: Backport
steps:
- name: Backport Bot
id: backport
if: github.event.pull_request.merged && ( ( github.event.action == 'closed' && contains( join( github.event.pull_request.labels.*.name ), 'backport') ) || contains( github.event.label.name, 'backport' ) )
uses: m-kuhn/backport@v1.1.1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
+24
View File
@@ -0,0 +1,24 @@
name: CLang Linux
on: [push, pull_request]
jobs:
clang_linux:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache
uses: actions/cache@v2
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-clang-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-clang-
- name: Run
run: docker run -e CI -e TRAVIS_BUILD_DIR="$PWD" -e WORK_DIR="$PWD" -e TRAVIS_OS_NAME=linux -e BUILD_NAME=linux_clang -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/clang_linux/start.sh
+32
View File
@@ -0,0 +1,32 @@
#!/bin/sh
set -e
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sudo autoconf automake libtool clang++-10 python3-clang-10 make cmake ccache pkg-config tar zip \
sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev jq python3-pip nlohmann-json3-dev
python3 -m pip install --user jsonschema
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
fi
export CCACHE_CPP2=yes
export PROJ_DB_CACHE_DIR="$HOME/.ccache"
ccache -M 500M
ccache -s
# -fno-use-cxa-atexit is needed to build with -coverage
CC="ccache clang-10" CXX="ccache clang++-10" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./travis/install.sh
ccache -s
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
@@ -0,0 +1,15 @@
name: CLang Static Analyzer
on: [push, pull_request]
jobs:
clang_static_analyzer:
runs-on: ubuntu-18.04
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run
run: .github/workflows/clang_static_analyzer/start.sh
@@ -2,16 +2,28 @@
set -e
sudo apt update
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y --no-install-recommends \
autoconf automake libtool g++ make sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev jq
CLANG_LLVM=clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04
wget -nv https://releases.llvm.org/9.0.0/$CLANG_LLVM.tar.xz
tar xJf $CLANG_LLVM.tar.xz
mv $CLANG_LLVM clang+llvm-9
# prepare build files
./autogen.sh
NPROC=$(nproc)
echo "NPROC=${NPROC}"
export MAKEFLAGS="-j ${NPROC}"
export PATH=$PWD/clang+llvm-9/bin:$PATH
CXXFLAGS="-std=c++11" scan-build -o scanbuildoutput -plist -v ./configure
rm -rf scanbuildoutput
TOPDIR=$PWD
scan-build -o $TOPDIR/scanbuildoutput -sarif -v -enable-checker alpha.unix.cstring.OutOfBounds,alpha.unix.cstring.BufferOverlap,optin.cplusplus.VirtualCall,optin.cplusplus.UninitializedObject make -j2
sudo apt-get install jq
scan-build -o $TOPDIR/scanbuildoutput -sarif -v -enable-checker alpha.unix.cstring.OutOfBounds,alpha.unix.cstring.BufferOverlap,optin.cplusplus.VirtualCall,optin.cplusplus.UninitializedObject make
rm -f filtered_scanbuild.txt
files=$(find scanbuildoutput -name "*.sarif")
+20
View File
@@ -0,0 +1,20 @@
name: Code Checks
on: [push, pull_request]
jobs:
cppcheck_2004:
runs-on: ubuntu-20.04
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Requirements
run: |
sudo apt update
sudo apt install -y --no-install-recommends cppcheck
- name: Run cppcheck test
run: ./scripts/cppcheck.sh
+44
View File
@@ -0,0 +1,44 @@
name: Conda
on:
push:
branches: '*'
jobs:
build:
name: Conda ${{ matrix.platform }}
if: github.repository == 'OSGeo/PROJ'
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: true
matrix:
platform: ['ubuntu-latest','windows-latest','macos-latest']
env:
PLATFORM: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
- uses: conda-incubator/setup-miniconda@v2
with:
channels: conda-forge
auto-update-conda: true
- name: Setup
shell: bash -l {0}
run: |
source ./scripts/ci/conda/setup.sh
- name: Build
shell: bash -l {0}
run: |
source ../scripts/ci/conda/compile.sh
working-directory: ./proj.4-feedstock
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.platform }}-conda-package
path: ./proj.4-feedstock/packages/
+51
View File
@@ -0,0 +1,51 @@
name: coverity-scan
# Controls when the action will run.
on:
# Run this action on a schedule (we're allowed a maximum of two per day)
schedule:
- cron: '0 18 * * SUN' # Sunday at 18:00 UTC
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
runs-on: ubuntu-20.04
if: github.repository == 'OSGeo/PROJ'
steps:
- uses: actions/checkout@v2
- name: Install Libraries
run: |
sudo apt-get update
sudo apt-get install --allow-unauthenticated curl libcurl4-gnutls-dev libtiff-dev sqlite3 libsqlite3-dev g++ make cmake
- name: Configure PROJ
run: |
cmake . -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF
- name: Download Coverity Build Tool
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=OSGeo%2Fproj.4" -O cov-analysis-linux64.tar.gz
mkdir cov-analysis-linux64
tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
- name: Build with cov-build
run: |
pwd
export PATH=`pwd`/cov-analysis-linux64/bin:$PATH
cov-build --dir cov-int make -j$(nproc)
- name: Submit to Coverity Scan
run: |
tar czvf proj.tgz cov-int
curl \
--form project=OSGeo%2Fproj.4 \
--form token=$TOKEN \
--form email=even.rouault@spatialys.com \
--form file=@proj.tgz \
--form version=master \
--form description="`git rev-parse --abbrev-ref HEAD` `git rev-parse --short HEAD`" \
https://scan.coverity.com/builds?project=OSGeo%2Fproj.4
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
+95
View File
@@ -0,0 +1,95 @@
name: Docs
on: [push, pull_request]
jobs:
plots:
name: Plots
runs-on: ubuntu-latest
env:
PROJ_EXE: proj
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: conda-incubator/setup-miniconda@v2
with:
channels: conda-forge
auto-update-conda: true
- name: Setup
shell: bash -l {0}
run: |
conda update -n base -c defaults conda
conda install descartes shapely geopandas matplotlib proj
- name: Plot
shell: bash -l {0}
working-directory: ./docs/plot
run: |
./plot.sh
- uses: actions/upload-artifact@v2
with:
name: Images
path: docs/plot/images
docs:
name: Docs
needs: [plots]
runs-on: ubuntu-latest
strategy:
fail-fast: true
container: osgeo/proj-docs
steps:
- uses: actions/checkout@v2
- name: Print versions
shell: bash -l {0}
run: |
python3 --version
sphinx-build --version
python3 -m pip list --not-required --format=columns
- uses: actions/download-artifact@v2
name: Images
with:
name: Images
path: ./docs/source/operations/projections/images
- name: Lint .rst files
shell: bash -l {0}
run: |
if find . -name '*.rst' | xargs grep -P '\t'; then echo 'Tabs are bad, please use four spaces in .rst files.'; false; fi
working-directory: ./docs
- name: Doxygen
shell: bash -l {0}
run: |
mkdir -p docs/build
doxygen Doxyfile
- name: HTML
shell: bash -l {0}
run: |
make html
working-directory: ./docs
- name: PDF
shell: bash -l {0}
run: |
make latexpdf
working-directory: ./docs
- name: Spelling
shell: bash -l {0}
run: |
make spelling
working-directory: ./docs
- uses: actions/upload-artifact@v2
with:
name: PDF
path: docs/build/latex/proj.pdf
- uses: actions/upload-artifact@v2
with:
name: HTML
path: docs/build/html/*
- uses: actions/upload-artifact@v2
with:
name: Misspelled
path: docs/build/spelling/output.txt
+78
View File
@@ -0,0 +1,78 @@
name: Docker
on: [push, pull_request, workflow_dispatch]
# adapted from https://raw.githubusercontent.com/stefanprodan/podinfo/master/.github/workflows/release.yml
#
jobs:
containers:
name: ${{ matrix.container }} Container
runs-on: ubuntu-latest
strategy:
matrix:
container: ["proj","proj-docs"]
dockerfile: ["./Dockerfile", "./docs/docbuild/Dockerfile"]
exclude:
- container: "proj"
dockerfile: "./docs/docbuild/Dockerfile"
- container: "proj-docs"
dockerfile: "./Dockerfile"
env:
PUSH_PACKAGES: ${{ github.repository_owner == 'OSGeo' && github.event_name != 'pull_request' }}
CONTAINER: ${{ matrix.container }}
steps:
- uses: actions/checkout@v2
- name: Lint
id: lint
run: |
echo "are we pushing packages" ${{ env.PUSH_PACKAGES }}
echo "event_name" ${{ github.event_name }}
echo "ref" ${{ github.ref }}
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: latest
- if: ${{ env.PUSH_PACKAGES == 'true' }}
name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_TOKEN }}
- if: ${{ env.PUSH_PACKAGES == 'true' }}
name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Prepare
id: prep
run: |
VERSION=sha-${GITHUB_SHA::8}
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF/refs\/tags\//}
fi
echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
echo ::set-output name=VERSION::${VERSION}
- name: Build image
uses: docker/build-push-action@v2
with:
push: ${{ env.PUSH_PACKAGES == 'true' }}
builder: ${{ steps.buildx.outputs.name }}
context: .
file: ${{ matrix.dockerfile }}
platforms: linux/amd64
tags: |
docker.io/osgeo/${{ matrix.container }}:${{ steps.prep.outputs.VERSION }}
docker.io/osgeo/${{ matrix.container }}:latest
ghcr.io/osgeo/${{ matrix.container }}:${{ steps.prep.outputs.VERSION }}
ghcr.io/osgeo/${{ matrix.container }}:latest
labels: |
org.opencontainers.image.title=${{ github.event.repository.name }}
org.opencontainers.image.description=${{ github.event.repository.description }}
org.opencontainers.image.source=${{ github.event.repository.html_url }}
org.opencontainers.image.url=${{ github.event.repository.html_url }}
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.version=${{ steps.prep.outputs.VERSION }}
org.opencontainers.image.created=${{ steps.prep.outputs.BUILD_DATE }}
+24
View File
@@ -0,0 +1,24 @@
name: Linux GCC 32bit
on: [push, pull_request]
jobs:
linux_gcc_32bit:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache
uses: actions/cache@v2
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-gcc32bit-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-gcc32bit-
- name: Run
run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/linux_gcc_32bit/start.sh
+56
View File
@@ -0,0 +1,56 @@
#!/bin/bash
set -e
export TRAVIS_OS_NAME=linux
export BUILD_NAME=linux_gcc_32bit
export TRAVIS_BUILD_DIR="$WORK_DIR"
ARCH=i386
dpkg --add-architecture i386
apt update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends -o APT::Immediate-Configure=0 \
autoconf automake libtool gcc-multilib g++-multilib g++ sqlite3 \
python3-pip \
make cmake ccache pkg-config tar zip \
libsqlite3-dev:$ARCH libtiff-dev:$ARCH libcurl4-openssl-dev:$ARCH \
jq
python3 -m pip install --user jsonschema
export PATH=$HOME/.local/bin:$PATH
export CXXFLAGS='-g -O2 -m32 -D_GLIBCXX_ASSERTIONS'
export CFLAGS='-g -O2 -m32'
export TIFF_CFLAGS=-I/usr/include/i386-linux-gnu
export TIFF_LIBS="-L/usr/lib/i386-linux-gnu -ltiff"
export SQLITE3_CFLAGS=-I/usr/include/i386-linux-gnu
export SQLITE3_LIBS="-L/usr/lib/i386-linux-gnu -lsqlite3"
export CC="ccache gcc"
export CXX="ccache g++"
NPROC=$(nproc)
echo "NPROC=${NPROC}"
export MAKEFLAGS="-j ${NPROC}"
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
fi
export CCACHE_CPP2=yes
export PROJ_DB_CACHE_DIR="$HOME/.ccache"
ccache -M 500M
ccache -s
CFLAGS="-Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh
ccache -s
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
+29
View File
@@ -0,0 +1,29 @@
name: Linux GCC 4.8
on: [push, pull_request]
jobs:
linux_gcc_4_8:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache
uses: actions/cache@v2
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-gcc-4-8-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-gcc-4-8-
- name: Run
run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:16.04 $PWD/.github/workflows/linux_gcc_4_8/start.sh
- name: Coveralls
uses: coverallsapp/github-action@v1.1.2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
+55
View File
@@ -0,0 +1,55 @@
#!/bin/bash
set -e
export TRAVIS_OS_NAME=linux
export BUILD_NAME=linux_gcc
export TRAVIS_BUILD_DIR="$WORK_DIR"
apt update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
autoconf automake libtool g++-4.8 sqlite3 \
python3-pip python3-setuptools \
make cmake ccache pkg-config tar zip \
libsqlite3-dev libtiff-dev libcurl4-openssl-dev \
jq lcov
python3 -m pip install --user --upgrade "pip < 21.0"
echo `python3 -m pip --version`
python3 -m pip config --user set global.progress_bar off
python3 -m pip install --user jsonschema
python3 -m pip install --user cmake==3.9.6
export PATH=$HOME/.local/bin:$PATH
export CC="ccache gcc-4.8"
export CXX="ccache g++-4.8"
NPROC=$(nproc)
echo "NPROC=${NPROC}"
export MAKEFLAGS="-j ${NPROC}"
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
fi
export CCACHE_CPP2=yes
export PROJ_DB_CACHE_DIR="$HOME/.ccache"
ccache -M 500M
ccache -s
CFLAGS="-Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh
ccache -s
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
mkdir -p coverage
lcov --no-external --capture --directory src --output-file coverage/lcov.info
+39
View File
@@ -0,0 +1,39 @@
name: MacOS build
on: [push, pull_request]
jobs:
macos_build:
runs-on: macos-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- uses: actions/checkout@v2
- uses: conda-incubator/setup-miniconda@v2
with:
channels: conda-forge
auto-update-conda: true
- name: Cache
uses: actions/cache@v2
id: cache
with:
path: ~/.ccache
key: ${{ runner.os }}-cache-mac-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-mac-
- name: Install Requirements
shell: bash -l {0}
run: |
source .github/workflows/mac/before_install.sh
- name: Build
shell: bash -l {0}
run: |
export TRAVIS_BUILD_DIR=$PWD
source .github/workflows/mac/install.sh
env:
TRAVIS_OS_NAME: osx
BUILD_NAME: osx
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
set -e
conda update -n base -c defaults conda
conda install compilers -y
conda config --set channel_priority strict
conda install --yes --quiet python=3.8 autoconf automake libtool ccache -y
conda install --yes --quiet proj=7.1.1=h45baca5_3 --only-deps -y
./travis/before_install_pip.sh
@@ -5,6 +5,9 @@ set -e
export CCACHE_CPP2=yes
export PROJ_DB_CACHE_DIR="$HOME/.ccache"
export PATH=$HOME/Library/Python/3.6/bin:$PATH
ccache -M 200M
ccache -s
CC="ccache clang" CXX="ccache clang++" CFLAGS="-Werror -O2" CXXFLAGS="-Werror -O2" ./travis/install.sh
ccache -s
+24
View File
@@ -0,0 +1,24 @@
name: mingw_w64 build
on: [push, pull_request]
jobs:
mingw_w64_build:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache
uses: actions/cache@v2
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-mingw_w64-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-mingw_w64-
- name: Build
run: docker run -e CI -e TRAVIS_OS_NAME=linux -e BUILD_NAME=mingw_w64 -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:18.04 $PWD/.github/workflows/mingw_w64/start.sh
+118
View File
@@ -0,0 +1,118 @@
#!/bin/sh
set -e
SCRIPT_DIR=$(dirname "$0")
case $SCRIPT_DIR in
"/"*)
;;
".")
SCRIPT_DIR=$(pwd)
;;
*)
SCRIPT_DIR=$(pwd)/$(dirname "$0")
;;
esac
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sudo wget tzdata
USER=root
export USER
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
fi
export PROJ_DB_CACHE_DIR="$HOME/.ccache"
sudo apt-get install -y --no-install-recommends \
ccache \
binutils-mingw-w64-x86-64 \
gcc-mingw-w64-x86-64 \
g++-mingw-w64-x86-64 \
g++-mingw-w64 \
mingw-w64-tools \
wine-stable \
make autoconf automake libtool zip \
sqlite3 \
curl ca-certificates
# Select posix/pthread for std::mutex
update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
ccache -M 500M
ccache -s
MINGW_ARCH=x86_64-w64-mingw32
MINGW_PREFIX=/usr/lib/gcc/$MINGW_ARCH/7.3-posix
export CCACHE_CPP2=yes
export CC="ccache $MINGW_ARCH-gcc"
export CXX="ccache $MINGW_ARCH-g++"
export LD=$MINGW_ARCH-ld
UNAME="$(uname)" || UNAME=""
NPROC=$(nproc);
echo "NPROC=${NPROC}"
export MAKEFLAGS="-j ${NPROC}"
# prepare wine environment
export WINE_PREFIX="$HOME/.wine"
WINE_SYSDIR=$WINE_PREFIX/drive_c/windows
wine64 cmd /c dir
ln -s $MINGW_PREFIX/libstdc++-6.dll $WINE_SYSDIR
ln -s $MINGW_PREFIX/libgcc_s_seh-1.dll $WINE_SYSDIR
ln -s $MINGW_PREFIX/libgcc_s_sjlj-1.dll $WINE_SYSDIR
ln -s /usr/$MINGW_ARCH/lib/libwinpthread-1.dll $WINE_SYSDIR
# build zlib
wget https://github.com/madler/zlib/archive/v1.2.11.tar.gz
tar xzf v1.2.11.tar.gz
(cd zlib-1.2.11 && sudo make install -fwin32/Makefile.gcc SHARED_MODE=1 PREFIX=x86_64-w64-mingw32- DESTDIR=/usr/$MINGW_ARCH/)
sudo mkdir -p /usr/$MINGW_ARCH/include
sudo mkdir -p /usr/$MINGW_ARCH/lib
sudo cp /usr/$MINGW_ARCH/*.h /usr/$MINGW_ARCH/include
sudo cp /usr/$MINGW_ARCH/libz.* /usr/$MINGW_ARCH/lib
ln -s /usr/$MINGW_ARCH/zlib1.dll $WINE_SYSDIR
# build libtiff
wget http://download.osgeo.org/libtiff/tiff-4.1.0.tar.gz
tar xzf tiff-4.1.0.tar.gz
(cd tiff-4.1.0 && ./configure --host=$MINGW_ARCH --prefix=/usr/$MINGW_ARCH && make && sudo make install)
ln -s /usr/$MINGW_ARCH/bin/libtiff-5.dll $WINE_SYSDIR
# build sqlite3
wget https://sqlite.org/2020/sqlite-autoconf-3330000.tar.gz
tar xzf sqlite-autoconf-3330000.tar.gz
# Build with SQLITE_DQS=0 to ensure we properly use single quotes and double quotes (cf issue #2480)
(cd sqlite-autoconf-3330000 &&
CFLAGS="-DSQLITE_DQS=0" ./configure --host=$MINGW_ARCH --prefix=/usr/$MINGW_ARCH && make && sudo make install)
ln -s /usr/$MINGW_ARCH/bin/libsqlite3-0.dll $WINE_SYSDIR
# prepare build files
./autogen.sh
# autoconf build
mkdir build_autoconf
cd build_autoconf
CFLAGS="-Werror" CXXFLAGS="-Werror" ../configure --host=$MINGW_ARCH --prefix=/tmp/proj_autoconf_install --without-curl
make
make install
make dist-all
find /tmp/proj_autoconf_install
(cd test; make)
cp -r ../data/tests /tmp/proj_autoconf_install/share/proj
cp ../data/tests/egm96_15_downsampled.gtx /tmp/proj_autoconf_install/share/proj/egm96_15.gtx
cp ../data/tests/ntv2_0_downsampled.gsb /tmp/proj_autoconf_install/share/proj/ntv2_0.gsb
wine64 test/unit/test_cpp_api.exe
ccache -s
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
+111
View File
@@ -0,0 +1,111 @@
name: Windows build
on: [push, pull_request]
jobs:
MSVC:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
env:
ARCH: x64
BUILD_SHARED_LIBS: ON
steps:
- uses: actions/checkout@v2
- uses: ilammy/msvc-dev-cmd@v1
- name: Cache vcpkg packages
uses: actions/cache@v2
id: cache
with:
path: c:\vcpkg\installed
key: ${{ runner.os }}-vcpkg-${{ hashFiles('.github/workflows/windows.yml') }}
- name: Install build requirements
shell: cmd
if: steps.cache.outputs.cache-hit != 'true'
run: |
vcpkg install sqlite3[core,tool]:${{ env.ARCH }}-windows
vcpkg install tiff:${{ env.ARCH }}-windows
vcpkg install curl:${{ env.ARCH }}-windows
- name: Build
shell: cmd
run: |
set VCPKG_INSTALLED=c:\vcpkg\installed\${{ env.ARCH }}-windows
dir %VCPKG_INSTALLED%\bin
set PATH=%VCPKG_INSTALLED%\bin;%PATH%
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
mkdir %PROJ_BUILD%
cd %PROJ_BUILD%
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS="{{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%"
ninja -v
ninja install
dir %PROJ_DIR%\bin
- name: Run tests
shell: cmd
run: |
set VCPKG_INSTALLED=c:\vcpkg\installed\${{ env.ARCH }}-windows
set PATH=%VCPKG_INSTALLED%\bin;%PATH%
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
cd %PROJ_BUILD%
ctest -V -C Release
set PATH=%PROJ_DIR%\bin;%PATH%
call %GITHUB_WORKSPACE%\test\postinstall\test_cmake.bat %PROJ_DIR%
proj
MSYS2:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
defaults:
run:
shell: msys2 {0}
env:
CMAKE_GENERATOR: "MSYS Makefiles"
steps:
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
git
make
mingw-w64-x86_64-cmake
mingw-w64-x86_64-curl
mingw-w64-x86_64-gcc
mingw-w64-x86_64-libtiff
mingw-w64-x86_64-sqlite3
- name: Build
run: |
PROJ_BUILD=${GITHUB_WORKSPACE}/build
PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir
mkdir ${PROJ_BUILD}
cd ${PROJ_BUILD}
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${PROJ_DIR}" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" ..
make -j 2
make install
ls ${PROJ_DIR}/bin
- name: Run tests
run: |
PROJ_BUILD=${GITHUB_WORKSPACE}/build
PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir
cd ${PROJ_BUILD}
ctest --output-on-failure
export PATH=${PROJ_DIR}/bin:${PATH}
../test/postinstall/test_cmake.sh ${PROJ_DIR}
../test/postinstall/test_pkg-config.sh ${PROJ_DIR}
proj
+18 -202
View File
@@ -1,228 +1,44 @@
# Makefile for Sphinx documentation
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS = -W
SPHINXBUILD = sphinx-build
PAPER =
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
HTMLOPTS ?= -W
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
.PHONY: help
# Put it first so that "make" without argument is like "make help".
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
.PHONY: clean
clean:
rm -rf $(BUILDDIR)/*
rm -rf .doxygen_up_to_date
.doxygen_up_to_date: ../Doxyfile ../src/*.cpp ../include/proj/*.hpp
.doxygen_up_to_date:
../scripts/doxygen.sh
touch .doxygen_up_to_date
.PHONY: html
html: .doxygen_up_to_date
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(HTMLOPTS) $(BUILDDIR)/html
# Undoes the hack done in scripts/doxygen.sh
@sed "s/io::Convention_/io::Convention/g" < $(BUILDDIR)/html/development/reference/cpp/io.html | sed "s/>Convention_/>Convention/g" | sed "s/_WKT2/WKT2/g" | sed "s/_WKT1/WKT1/g" > $(BUILDDIR)/html/development/reference/cpp/io.html.tmp
@mv $(BUILDDIR)/html/development/reference/cpp/io.html.tmp $(BUILDDIR)/html/development/reference/cpp/io.html
# Undoes the hacks of scripts/generate_breathe_friendly_general_doc.py
@sed "s/<em class=\"property\">namespace <\/em>//g" < $(BUILDDIR)/html/development/reference/cpp/cpp_general.html > $(BUILDDIR)/html/development/reference/cpp/cpp_general.html.tmp
@mv $(BUILDDIR)/html/development/reference/cpp/cpp_general.html.tmp $(BUILDDIR)/html/development/reference/cpp/cpp_general.html
@cp -r ../schemas $(BUILDDIR)/html/schemas
@cp ../data/triangulation.schema.json $(BUILDDIR)/html/schemas
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: dirhtml
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
.PHONY: singlehtml
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
.PHONY: pickle
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
.PHONY: json
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
.PHONY: htmlhelp
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
.PHONY: qthelp
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/proj.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/proj.qhc"
.PHONY: applehelp
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
.PHONY: devhelp
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/proj"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/proj"
@echo "# devhelp"
.PHONY: epub
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
.PHONY: latex
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
.PHONY: latexpdf
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: latexpdfja
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: text
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
.PHONY: man
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
.PHONY: texinfo
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
.PHONY: info
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
.PHONY: gettext
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
.PHONY: changes
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
.PHONY: linkcheck
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
.PHONY: doctest
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
.PHONY: coverage
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
.PHONY: xml
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
.PHONY: pseudoxml
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+22 -3
View File
@@ -4,10 +4,29 @@ RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
python3-dev python3-pip g++ doxygen dvipng latexmk \
cmake libjpeg8-dev zlib1g-dev texlive-latex-base \
texlive-latex-extra git latex-cjk-all texlive-lang-all \
graphviz python3-matplotlib wget unzip
graphviz python3-matplotlib wget unzip enchant locales
RUN pip3 install Sphinx breathe \
RUN python3 -m pip install Sphinx breathe \
sphinx_bootstrap_theme awscli sphinxcontrib-bibtex \
sphinx_rtd_theme recommonmark sphinx-markdown-tables
sphinx_rtd_theme recommonmark sphinx-markdown-tables \
sphinxcontrib-spelling
# Set the locale for spelling
RUN sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales && \
update-locale LANG=en_GB.UTF-8
ENV LANG en_GB.UTF-8
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y curl flex bison && \
curl -LOs https://doxygen.nl/files/doxygen-1.9.1.src.tar.gz && \
tar xvzf doxygen-1.9.1.src.tar.gz && \
rm -rf doxygen-1.9.1.src.tar.gz && \
cd doxygen-1.9.1 && \
mkdir build && \
cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX=/usr && \
make -j$(nproc) && \
make install && \
cd ../.. && \
rm -rf doxygen-1.9.1
+16
View File
@@ -0,0 +1,16 @@
name: proj
channels:
- conda-forge
dependencies:
- descartes
- doxygen = 1.9.1
- geojson
- matplotlib
- shapely < 1.8
- pip
- pip:
- breathe
- pybtex
- sphinx-rtd-theme
- sphinxcontrib-bibtex
- sphinxcontrib-spelling
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

-86
View File
@@ -1,86 +0,0 @@
name: proj
channels:
- defaults
dependencies:
- blas=1.0=mkl
- bzip2=1.0.6=h1de35cc_5
- ca-certificates=2018.03.07=0
- cairo=1.14.12=hc4e6be7_4
- certifi=2018.8.24=py37_1
- click=6.7=py37_0
- click-plugins=1.0.3=py37_1
- cligj=0.4.0=py37_1
- curl=7.61.0=ha441bb4_0
- cycler=0.10.0=py37_0
- descartes=1.1.0=py37_0
- expat=2.2.6=h0a44026_0
- fiona=1.7.12=py37h0dff353_0
- fontconfig=2.13.0=h5d5b041_1
- freetype=2.9.1=hb4e5f40_0
- freexl=1.0.5=h1de35cc_0
- gdal=2.2.4=py37h6440ff4_1
- geos=3.6.2=h5470d99_2
- gettext=0.19.8.1=h15daf44_3
- giflib=5.1.4=h1de35cc_1
- glib=2.56.2=hd9629dc_0
- hdf4=4.2.13=h39711bb_2
- hdf5=1.10.2=hfa1e0ec_1
- icu=58.2=h4b95b61_1
- intel-openmp=2019.0=118
- jpeg=9b=he5867d9_2
- json-c=0.13.1=h3efe00b_0
- kealib=1.4.7=h40e48e4_6
- kiwisolver=1.0.1=py37h0a44026_0
- krb5=1.16.1=h24a3359_6
- libboost=1.67.0=hebc422b_4
- libcurl=7.61.0=hf30b1f0_0
- libcxx=4.0.1=h579ed51_0
- libcxxabi=4.0.1=hebd6815_0
- libdap4=3.19.1=h3d3e54a_0
- libedit=3.1.20170329=hb402a30_2
- libffi=3.2.1=h475c297_4
- libgdal=2.2.4=h7b1ea53_1
- libgfortran=3.0.1=h93005f0_2
- libiconv=1.15=hdd342a3_7
- libkml=1.3.0=hbe12b63_4
- libnetcdf=4.6.1=h4e6abe9_1
- libpng=1.6.34=he12f830_0
- libpq=10.5=hf30b1f0_0
- libspatialite=4.3.0a=ha12ebda_19
- libssh2=1.8.0=h322a93b_4
- libtiff=4.0.9=hcb84e12_2
- libuuid=1.0.3=h6bb4b03_2
- libxml2=2.9.8=hab757c2_1
- matplotlib=2.2.3=py37h54f8f79_0
- mkl=2019.0=118
- mkl_fft=1.0.4=py37h5d10147_1
- mkl_random=1.0.1=py37h5d10147_1
- munch=2.3.2=py37_0
- ncurses=6.1=h0a44026_0
- numpy=1.15.1=py37h6a91979_0
- numpy-base=1.15.1=py37h8a80b8c_0
- openjpeg=2.3.0=hb95cd4c_1
- openssl=1.0.2p=h1de35cc_0
- pcre=8.42=h378b8a2_0
- pip=10.0.1=py37_0
- pixman=0.34.0=hca0a616_3
- poppler=0.65.0=ha097c24_1
- poppler-data=0.4.9=0
- proj4=5.0.1=h1de35cc_0
- pyparsing=2.2.0=py37_1
- python=3.7.0=hc167b69_0
- python-dateutil=2.7.3=py37_0
- pytz=2018.5=py37_0
- readline=7.0=h1de35cc_5
- setuptools=40.2.0=py37_0
- shapely=1.6.4=py37h20de77a_0
- six=1.11.0=py37_1
- sqlite=3.24.0=ha441bb4_0
- tk=8.6.8=ha441bb4_0
- tornado=5.1=py37h1de35cc_0
- wheel=0.31.1=py37_0
- xerces-c=3.2.1=h44e365a_0
- xz=5.2.4=h1de35cc_4
- zlib=1.2.11=hf3cbc9b_2
prefix: /usr/local/miniconda3/envs/proj
Regular → Executable
+108 -60
View File
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
'''
Plot map data in different projections supported by PROJ.4
Plot map data in different projections supported by PROJ.
Call with:
@@ -41,28 +42,31 @@ or "line". The rest of the inputs are fairly free form.
Change PROJ to path on your local system before running the script.
'''
from __future__ import print_function
from __future__ import division
import argparse
import os
import os.path
import shutil
import sys
import json
import subprocess
import functools
from pathlib import Path
import geojson
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
import fiona
from shapely.geometry import Polygon
from shapely.geometry import MultiPolygon
from shapely.geometry import MultiPolygon, Polygon, box as Box
from shapely.geometry import shape
from shapely.ops import transform
from descartes import PolygonPatch
PROJ = os.environ.get('PROJ_EXE', '../../src/proj')
PROJ_LIB = '../../data'
PROJ_COMMAND = os.environ.get('PROJ_EXE', '../../src/proj')
if not os.path.exists(PROJ_COMMAND):
PROJ = shutil.which('proj')
if PROJ is None:
raise ValueError("specify PROJ_EXE or modify PATH to find proj")
else:
PROJ = PROJ_COMMAND
PROJ_LIB = os.environ.get('PROJ_LIB', '../../data')
LINE_LOW = 'data/coastline.geojson'
LINE_MED = 'data/coastline50.geojson'
@@ -160,9 +164,9 @@ def project(coordinates, proj_string, in_radians=False):
try:
proc = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
env={'PROJ_LIB': os.path.abspath(PROJ_LIB)})
except FileNotFoundError:
except FileNotFoundError as e:
print("'proj' binary not found, set the PROJ_EXE environment variable "
"to point to your local 'proj' binary")
"to point to your local 'proj' binary --%s--" % e)
exit(1)
stdout, _ = proc.communicate(coordinates.tobytes(order='C'))
@@ -223,7 +227,10 @@ def resample_polygon(polygon):
'''
Use interp_coords() to resample (multi)polygons.
'''
xy = polygon.exterior.coords.xy
try:
xy = polygon.exterior.coords.xy
except AttributeError: #no xy's
return polygon
ext = interp_coords(xy, 2)
# interiors
rings = []
@@ -232,31 +239,46 @@ 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.
'''
axes = plt.axes()
bounds = (plotdef['lonmin'], plotdef['latmin'], plotdef['lonmax'], plotdef['latmax'])
for geom in data.filter(bbox=bounds):
temp_pol = shape(geom['geometry'])
box = Polygon([
(plotdef['lonmin'], plotdef['latmin']),
(plotdef['lonmin'], plotdef['latmax']),
(plotdef['lonmax'], plotdef['latmax']),
(plotdef['lonmax'], plotdef['latmin']),
])
try:
temp_pol = temp_pol.intersection(box)
except Exception as e:
box = Box(
plotdef['lonmin'], plotdef['latmin'],
plotdef['lonmax'], plotdef['latmax'])
for feat in data["features"]:
geom = shape(feat["geometry"])
if not geom.intersects(box):
continue
temp_pol = geom.intersection(box)
if plotdef['type'] == 'poly':
if isinstance(temp_pol, MultiPolygon):
polys = [resample_polygon(polygon) for polygon in temp_pol]
polys = [resample_polygon(polygon) for polygon in temp_pol.geoms]
pol = MultiPolygon(polys)
else:
pol = resample_polygon(temp_pol)
@@ -267,11 +289,15 @@ def plotproj(plotdef, data, outdir):
proj_geom = transform(trans, pol)
if plotdef['type'] == 'poly':
patch = PolygonPatch(proj_geom, fc=COLOR_LAND, zorder=0)
axes.add_patch(patch)
try:
patch = PolygonPatch(proj_geom, fc=COLOR_LAND, zorder=0)
axes.add_patch(patch)
except TypeError:
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 = [
@@ -282,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'],
@@ -296,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')
@@ -315,9 +363,12 @@ def plotproj(plotdef, data, outdir):
# Make sure the plot is not stretched
axes.set_aspect('equal')
if not os.path.exists(outdir):
os.makedirs(outdir)
plt.savefig(outdir + '/' + plotdef['filename'],
outdir = Path(outdir)
if not outdir.exists():
outdir.mkdir(parents=True)
if not outdir.is_dir():
raise OSError("outdir is not a directory")
plt.savefig(outdir / plotdef['filename'],
dpi=400,
bbox_inches='tight')
@@ -327,36 +378,22 @@ def plotproj(plotdef, data, outdir):
plt.close()
def main():
def main(plotdefs, outdir, plots=[]):
'''
Main function of plotting script.
Parses json-file with plot setups and runs the plotting
for each plot setup.
'''
plotdefs = json.loads(Path(plotdefs).read_text())
data = {
('line', 'low'): fiona.open(LINE_LOW),
('line', 'med'): fiona.open(LINE_MED),
('poly', 'low'): fiona.open(POLY_LOW),
('poly', 'med'): fiona.open(POLY_MED),
('line', 'low'): geojson.loads(Path(LINE_LOW).read_text()),
('line', 'med'): geojson.loads(Path(LINE_MED).read_text()),
('poly', 'low'): geojson.loads(Path(POLY_LOW).read_text()),
('poly', 'med'): geojson.loads(Path(POLY_MED).read_text()),
}
if os.path.exists(sys.argv[1]):
# first argument is the JSON plot definition setup file
with open(sys.argv[1]) as plotsetup:
plotdefs = json.load(plotsetup)
else:
raise ValueError('No plot definition file entered')
plots = []
# second argument is the output dir
outdir = sys.argv[2]
# subsecond arguments are (optional) names of plot in plotdef.json
if len(sys.argv) > 3:
plots = sys.argv[3:len(sys.argv)]
for i, plotdef in enumerate(plotdefs):
if plots != [] and plotdef['name'] not in plots:
continue
@@ -368,9 +405,20 @@ def main():
plotproj(plotdef, data[(plotdef['type'], plotdef['res'])], outdir)
for key in data:
data[key].close()
if __name__ == "__main__":
sys.exit(main())
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument(
'plotdefs',
help='A JSON file with setup for each auto-generated plot')
parser.add_argument(
'outdir',
help='Directory to put the plots in.')
parser.add_argument(
'plots', nargs='*',
help='A list of plot names within the plotdefs file. '
'More than one plotname can be given at once.')
args = parser.parse_args()
sys.exit(main(**vars(args)))

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