Compare commits

..
163 Commits
Author SHA1 Message Date
Mike Taves e18784c1a4 ReadTheDocs: update output directory for artefacts, other updates 2023-01-25 20:28:17 +13:00
Mike Taves 8aecfba19f Improve docs for 7.0 2023-01-25 01:54:38 +13:00
Mike Taves c12f3c7db3 Implement ReadTheDocs for 7.0, disable other CI workflows (#3564) 2023-01-15 13:23:20 +13:00
Even Rouault 7a3e507115 travis/after_success.sh: disable publication of 7.0 doc [ci skip] 2020-07-01 12:42:57 +02:00
Kristian Evers a1fb4932cd Update code contributor guidelines so they reflect current state of affairs 2020-06-13 10:26:23 +02:00
Javier Jimenez Shaw 510d4b16e5 add favicon.png in html 2020-06-13 10:26:13 +02:00
Even Rouault 76652fd256 Doc: use Doxygen output for proj_normalize_for_visualization() to avoid duplication of info (current .rst content is outdated) 2020-06-05 19:33:09 +02:00
Even Rouault efc6fb545e Merge pull request #2257 from PROJ-BOT/backport-2255-to-7.0
[Backport 7.0] Doc: add specific explanations for lat_ts for +proj=stere, also mentions +lat_0 and +k_0
2020-06-03 17:06:11 +02:00
github-actions[bot] 4c79209d0e Doc: add specific explanations for lat_ts for +proj=stere, also mentions +lat_0 and +k_0 2020-06-03 13:11:30 +00:00
PROJ-BOTandgithub-actions[bot] 5775cdc0eb .travis.yml: disable notifications as they are probably more spam than useful [skip appveyor] (#2210)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2020-05-06 21:01:18 +02:00
Even Rouault ff70bc4136 resource_file.rst: fix link to crs2crsgrid.py [skip appveyor] (#2207) 2020-05-04 18:41:52 +02:00
Even Rouault 6d6cbf8b69 Merge pull request #2205 from PROJ-BOT/backport-2204-to-7.0
[Backport 7.0] Doc: fix/hacks for compatibility with Breathe 4.17.0 [skip appveyor]
2020-05-02 16:19:03 +02:00
github-actions[bot] d45c97d33e Doc: fix/hacks for compatibility with Breathe 4.17.0 [skip appveyor] 2020-05-02 13:22:40 +00:00
Even Rouault 1f93923bb7 Merge pull request #2201 from PROJ-BOT/backport-2200-to-7.0
[Backport 7.0] createFromProjString(): handle default parameters of '+krovak +type=crs', and handle +czech correctly (fixes #2199)
2020-05-02 00:44:20 +02:00
Kristian Evers efc03e8f01 Bump version numbers for a potential 7.0.2 release 2020-05-01 11:03:52 +02:00
Kristian Evers 6d5ac4dd75 doc: update download and news pages with new releases 2020-05-01 10:38:46 +02:00
github-actions[bot] b7ec687790 createFromProjString(): handle default parameters of '+krovak +type=crs', and handle +czech correctly (fixes #2199) 2020-04-28 09:37:04 +00:00
Kristian Evers dd46b0388e Update NEWS for 7.0.1 2020-04-27 10:55:20 +02:00
Kristian Evers e74eb55fb3 Update man-pages from Sphinx-docs 2020-04-27 10:33:46 +02:00
Kristian Evers 1d8527a0c0 Bump version numbers for 7.0.1 2020-04-27 10:33:07 +02:00
Kristian Evers 865621bfd8 Update ABI numbers for 7.0.1 2020-04-27 10:21:21 +02:00
Even Rouault 44ef1c9682 pipeline initialization: avoid deep recursion on corrupted PROJ string like https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21889 2020-04-26 16:47:46 +02:00
Kristian EversandGreg Troxel a4394115e8 Update cs2cs options -r/-s to reflect axis ordering of PROJ >6
Originally proposed by Greg Troxel on the mailing list:
https://lists.osgeo.org/pipermail/proj/2020-April/009597.html

Co-authored-by: Greg Troxel <gdt@lexort.com>
2020-04-26 15:54:29 +02:00
Even Rouault 6ff9b2dff0 projinfo: do not emit warnings about missing grids in quiet mode 2020-04-25 23:37:46 +02:00
Even Rouault d149b7160a include/proj/util.hpp: recognized a PROJ_INTERNAL_CPP_NAMESPACE to use osgeo::internalproj namespace 2020-04-25 18:00:31 +02:00
Even Rouault 372a1dd4af Tune support for WKT1_GDAL with netCDF rotated pole formulation. Follow-up to 40466db404 2020-04-24 23:28:26 +02:00
Even Rouault 8b7c182ebf Merge pull request #2192 from PROJ-BOT/backport-2191-to-7.0
[Backport 7.0] Doc: fixes for Sphinx 3.0 compat [skip appveyor]
2020-04-24 21:09:54 +02:00
github-actions[bot] f124c7f8b2 Doc: fixes for Sphinx 3.0 compat [skip appveyor] 2020-04-24 19:42:55 +02:00
Even Rouault a92fa24db8 Merge pull request #2186 from rouault/backport_7_0_pr2185
[Backport 7.0] Fix support of WKT1_GDAL with netCDF rotated pole formulation (#2185)
2020-04-24 01:14:26 +02:00
Even Rouault 079f53c2db Fix support of WKT1_GDAL with netCDF rotated pole formulation (#2185)
Contributes to fixing issue raised in
https://lists.osgeo.org/pipermail/gdal-dev/2020-April/052003.html
2020-04-23 21:46:40 +02:00
Even Rouault cea52c3735 Merge pull request #2184 from PROJ-BOT/backport-2183-to-7.0
[Backport 7.0] io.hpp: avoid dependency to proj_json_streaming_writer.hpp (fixes #2182)
2020-04-23 20:20:20 +02:00
github-actions[bot] 7109852077 io.hpp: avoid dependency to proj_json_streaming_writer.hpp (fixes #2182) 2020-04-23 17:15:53 +00:00
Even Rouault fa1fef0d76 .travis.yml: switch to bionic to restore i386 builds with gcc8 (fixes #2175)
Credits to @sebastic for his suggestion to try bionic and use aptitude
instead of apt !
2020-04-23 12:23:42 +02:00
Even Rouault 974b0dbf59 Merge pull request #2180 from PROJ-BOT/backport-2179-to-7.0
[Backport 7.0] .travis.yml: give-up with i386 builds on linux_gcc8 (refs #2175)
2020-04-23 00:49:52 +02:00
github-actions[bot] a38ee5b6bd .travis.yml: give-up with i386 builds on linux_gcc8 (refs #2175) 2020-04-22 22:26:17 +00:00
Even Rouault 9308c4d27e Merge pull request #2177 from PROJ-BOT/backport-2174-to-7.0
[Backport 7.0] PROJ4 string import: take into correctly non-metre unit when the string looks like the one for WGS 84 / Pseudo Mercator
2020-04-22 22:22:38 +02:00
github-actions[bot] f995ae4bcb PROJ4 string import: take into correctly non-metre unit when the string looks like the one for WGS 84 / Pseudo Mercator 2020-04-22 17:25:44 +00:00
Even Rouault 0527b3977e Merge pull request #2172 from PROJ-BOT/backport-2171-to-7.0
[Backport 7.0] Add limited support for non-conformant WKT1 LAS COMPD_CS[]
2020-04-21 21:48:26 +02:00
github-actions[bot] c47934d9e2 Add limited support for non-conformant WKT1 LAS COMPD_CS[] 2020-04-21 18:46:17 +00:00
Even Rouault 171fa81e48 Doxyfile: remove TCL_SUBST variable considered obsolete by latest Doxygen 2020-04-19 15:50:12 +02:00
Even Rouault 2dbad26a9a travis/osx/before_install.sh: 'brew install graphviz' for missing 'dot' program 2020-04-19 15:50:12 +02:00
Even Rouault 0db9eb90e4 Merge pull request #2167 from rouault/backport_7_0_pr2166
[Backport 7.0] Ingestion of WKT1_GDAL: correctly map 'Cylindrical_Equal_Area'
2020-04-19 15:47:00 +02:00
Even Rouault ba393af329 Ingestion of WKT1_GDAL: correctly map 'Cylindrical_Equal_Area'
Map it to 'Lambert Cylindrical Equal Area' / EPSG:9835 non-spherical
method, when the ellipsoid is not a sphere. And rationalize the
handling of this for other methods with spherical vs non-spherical formulations
2020-04-19 14:42:16 +02:00
Kristian Evers bc79cfbfe1 Merge pull request #2163 from kbevers/backport-appveyor-speedup
[backport 7.0] AppVeyor: use Ninja generator, cache vcpkg installed packages
2020-04-18 10:49:33 +02:00
Mike Taves 098cd6bb88 AppVeyor: use Ninja generator, cache vcpkg [skip travis] 2020-04-18 09:55:22 +02:00
Even Rouault a551cab966 Merge pull request #2161 from PROJ-BOT/backport-2160-to-7.0
[Backport 7.0] createFromCoordinateReferenceSystemCodes(): 'optimization' to avoid using C++ exceptions
2020-04-17 21:46:03 +02:00
github-actions[bot] e7c73835d2 createFromCoordinateReferenceSystemCodes(): 'optimization' to avoid using C++ exceptions 2020-04-17 18:23:05 +00:00
Even Rouault af85cdb2b7 Merge pull request #2156 from rouault/backport_7_0_pr2143
[Backport 7.0] createOperations(): do not remove ballpark transformation if there are only grid based operations, even if they cover the whole area of use (fixes #2143)
2020-04-16 00:44:49 +02:00
PROJ-BOT 70aebec863 Robinson inverse projection: error on out of domain values (fixes #2151) 2020-04-15 00:17:56 +02:00
Even Rouault 953ff68cbd lookForGridAlternative(): fix bug with Dutch 2008 grids 2020-04-15 00:06:54 +02:00
Even Rouault 5078ce3534 createOperations(): do not remove ballpark transformation if there are only grid based operations, even if they cover the whole area of use (fixes #2143) 2020-04-15 00:06:48 +02:00
Even Rouault d462db642c Merge pull request #2153 from PROJ-BOT/backport-2150-to-7.0
[Backport 7.0] ProjectedCRS identification: deal with switched 1st/2nd std parallels for LCC_2SP
2020-04-14 22:08:03 +02:00
github-actions[bot] 443db469e1 ProjectedCRS identification: deal with switched 1st/2nd std parallels for LCC_2SP 2020-04-14 16:14:13 +00:00
Even Rouault 94de29e755 proj_create(): improve error message in case of PJ* failure instanciation 2020-04-10 20:23:58 +02:00
Even Rouault a4da3dabf7 createFromPROJString(): ignore +wktext in '+init=epsg:XXX +wktext' string (refs https://github.com/OSGeo/gdal/issues/2392) 2020-04-09 11:14:40 +02:00
Even Rouault 574abdd782 Code formatting fix [skip ci] 2020-04-08 11:50:03 +02:00
Even Rouault 07ab2a2f13 Merge pull request #2142 from PROJ-BOT/backport-2138-to-7.0
[Backport 7.0] Test GCC 4.8 and CMake 3.9; resolve a few shadowed declaration warnings
2020-04-08 00:23:51 +02:00
Even Rouault f1e7bcd771 Merge pull request #2141 from PROJ-BOT/backport-2139-to-7.0
[Backport 7.0] Database: update to EPSG v9.8.9
2020-04-08 00:03:54 +02:00
github-actions[bot] 66f5b4e5f1 Test GCC 4.8 and CMake 3.9; resolve a few shadowed declaration warnings 2020-04-07 20:01:46 +00:00
github-actions[bot] 0928ce7295 Database: update to EPSG v9.8.9 2020-04-07 17:20:07 +00:00
PROJ-BOTandgithub-actions[bot] e62a4a4cb0 appveyor.yml: reduce to 2 configurations (still testing the same number of variables) (#2136)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2020-04-07 14:17:00 +12:00
Even Rouault dec8a20b5a travis/osx/before_install.sh: use fixed version of sphinx and breathe to avoid build failure [skip appveyor] 2020-04-06 19:27:05 +02:00
PROJ-BOT 7018f85e2d [Backport 7.0] hgridshift/vgridshift: defer grid opening when grid has already been opened (#2132) 2020-04-05 12:52:29 +02:00
Even Rouault d43a473758 Merge pull request #2131 from PROJ-BOT/backport-2128-to-7.0
[Backport 7.0] createOperations(): improve results of compoundCRS to compoundCRS case (fixes #2115)
2020-04-04 23:37:52 +02:00
Even Rouault bf96d0064d glossary.rst: fix recent typo [skip appveyor] 2020-04-04 21:51:08 +02:00
Even Rouault 5be86f4cb9 Doc: define 'Ballpark transformation' 2020-04-04 19:27:55 +02:00
github-actions[bot] a1b8eaf852 createOperations(): improve results of compoundCRS to compoundCRS case (fixes #2115) 2020-04-04 17:23:52 +00:00
Even Rouault b8dba1a922 .travis.yml: fix issue with ubuntu-toolchain-r-test source 2020-04-03 14:44:57 +02:00
Even Rouault fe47637118 Merge pull request #2125 from PROJ-BOT/backport-2123-to-7.0
[Backport 7.0] Make sure that importing a Projected 3D CRS from WKT:2019 keeps the base geographic CRS as 3D (fixes #2122)
2020-04-03 10:36:28 +02:00
github-actions[bot] 4d9027a3e2 Make sure that importing a Projected 3D CRS from WKT:2019 keeps the base geographic CRS as 3D (fixes #2122) 2020-04-03 08:06:33 +00:00
Even Rouault 49ad77477a Merge pull request #2119 from PROJ-BOT/backport-2117-to-7.0
[Backport 7.0] ESRI_WKT ingestion: make sure to identify to non-deprecated EPSG entry when possible (fixes #2116)
2020-03-31 10:27:29 +02:00
github-actions[bot] 80546db0a9 ESRI_WKT ingestion: make sure to identify to non-deprecated EPSG entry when possible (fixes #2116) 2020-03-30 21:05:40 +00:00
Even Rouault 21bbf920f4 Merge pull request #2114 from PROJ-BOT/backport-2113-to-7.0
[Backport 7.0] Database: fix registration of custom entries of grid_transformation_custom.sql for geoid grids (fixes #2112)
2020-03-30 14:12:28 +02:00
github-actions[bot] 71d4232457 Database: fix registration of custom entries of grid_transformation_custom.sql for geoid grids (fixes #2112) 2020-03-30 10:57:34 +00:00
Even Rouault 48db80eb7a Merge pull request #2111 from PROJ-BOT/backport-2109-to-7.0
[Backport 7.0] Fix working of Helmert transform between the horizontal part of 2 compoundCRS (fixes #2108)
2020-03-30 10:32:38 +02:00
github-actions[bot] 3fbb904c58 Fix working of Helmert transform between the horizontal part of 2 compoundCRS (fixes #2108) 2020-03-29 22:37:53 +00:00
PROJ-BOTandgithub-actions[bot] 7962bd46c5 CMake: prefer to use use PROJ_SOURCE_DIR and PROJ_BINARY_DIR (#2107)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2020-03-28 20:18:03 +13:00
Even Rouault 7c846d0f79 Merge pull request #2106 from PROJ-BOT/backport-2105-to-7.0
[Backport 7.0] Fix identification of projected CRS whose name is close but not strictly equal to a ESRI alias (fixes #2099)
2020-03-27 23:33:20 +01:00
github-actions[bot] 685b28445f Fix identification of projected CRS whose name is close but not strictly equal to a ESRI alias (fixes #2099) 2020-03-27 21:36:38 +00:00
Even Rouault 7be171d3ef Merge pull request #2104 from PROJ-BOT/backport-2102-to-7.0
[Backport 7.0] Fixes wrong grids file name in esri.sql
2020-03-27 15:35:52 +01:00
github-actions[bot] a4c1c4375d Fixes wrong grids file name in esri.sql 2020-03-27 14:34:37 +00:00
Even Rouault 0600b21b81 Merge pull request #2098 from PROJ-BOT/backport-2097-to-7.0
[Backport 7.0] Use jtsk03-jtsk horizontal grid from CDN
2020-03-26 23:39:41 +01:00
github-actions[bot] 72e1888d9b Use jtsk03-jtsk horizontal grid from CDN 2020-03-26 22:16:45 +00:00
Even Rouault edce2ae69b Merge pull request #2092 from PROJ-BOT/backport-2090-to-7.0
[Backport 7.0] EngineeringCRS: when exporting to WKT1_GDAL, output unit and axis (fixes https://github.com/OSGeo/gdal/issues/2347)
2020-03-25 17:55:24 +01:00
github-actions[bot] c9ba095e04 EngineeringCRS: when exporting to WKT1_GDAL, output unit and axis (fixes https://github.com/OSGeo/gdal/issues/2347) 2020-03-25 14:16:08 +00:00
Even Rouault f1d7b64e8b Merge pull request #2089 from PROJ-BOT/backport-2088-to-7.0
[Backport 7.0] ESRI WKT import / identification: special case for NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501 with Foot_US unit (fixes #2086)
2020-03-24 13:29:28 +01:00
github-actions[bot] 84e13c06dd ESRI WKT import / identification: special case for NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501 with Foot_US unit (fixes #2086) 2020-03-24 09:18:47 +00:00
PROJ-BOTandgithub-actions[bot] 22f357a56c CMake: fix bug with find_package(PROJ) with macOS (#2083)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2020-03-19 08:51:45 +13:00
Even Rouault 3cd1668e02 Merge pull request #2081 from PROJ-BOT/backport-2080-to-7.0
[Backport 7.0] cs2cs: don't require +to for '{source_crs} {target_crs} filename...' syntax (fixes #2012)
2020-03-18 10:27:24 +01:00
github-actions[bot] 5c7f901bf3 cs2cs: don't require +to for '{source_crs} {target_crs} filename...' syntax (fixes #2012) 2020-03-18 08:35:46 +00:00
PROJ-BOT 2b4037d7a0 [Backport 7.0] Align install.rst with current version (#2078) [skip appveyor] 2020-03-17 12:32:07 +01:00
Even Rouault d0bdd7f386 Merge pull request #2074 from PROJ-BOT/backport-2073-to-7.0
[Backport 7.0] Fix build with libtiff master (libtiff > 4.1.0)
2020-03-15 12:00:55 +01:00
github-actions[bot] 424fce6640 Fix build with libtiff master (libtiff > 4.1.0) 2020-03-15 10:51:27 +00:00
Even Rouault 723933b52f Merge pull request #2069 from PROJ-BOT/backport-2067-to-7.0
[Backport 7.0] Autotools/pkg-conf: Define datarootdir
2020-03-12 23:49:02 +01:00
github-actions[bot] bbc97913a4 Autotools/pkg-conf: Define datarootdir 2020-03-12 22:47:05 +00:00
Even Rouault dc8ef32190 Merge pull request #2066 from PROJ-BOT/backport-2063-to-7.0
[Backport 7.0] Fix build with gcc 4.8.5 (fixes #2062)
2020-03-12 19:41:21 +01:00
github-actions[bot] a495d8b73b Fix build with gcc 4.8.5 (fixes #2062) 2020-03-12 18:39:00 +00:00
Even Rouault b3ff509f61 Merge pull request #2061 from PROJ-BOT/backport-2060-to-7.0
[Backport 7.0] Add note about orientation of control points in `chamb`
2020-03-12 15:32:54 +01:00
github-actions[bot] 396dba3e8c ProjectedCRS::identify(): tune it to better work with ESRI WKT representation of EPSG:2193 2020-03-12 11:04:21 +01:00
github-actions[bot] b79efe60e5 Add note about orientation of control points in chamb 2020-03-12 10:03:55 +00:00
Even Rouault 8db7e753a5 Merge pull request #2057 from PROJ-BOT/backport-2056-to-7.0
[Backport 7.0] .cirrus.yml: disable ccache as cache uploading can be super slow
2020-03-11 18:27:33 +01:00
github-actions[bot] 5a92d8aee7 .cirrus.yml: disable ccache as cache uploading can be super slow 2020-03-11 17:16:48 +00:00
Even Rouault 486e72bd32 Merge pull request #2050 from PROJ-BOT/backport-2046-to-7.0
[Backport 7.0] Doc: use 'ellipsoidal' to refer to the ellipsoidal formulation (to be opposed to the spherical one)
2020-03-11 11:00:00 +01:00
github-actions[bot] b97a7babbc Doc: use 'ellipsoidal' to refer to the ellipsoidal formulation (to be opposed to the spherical one) 2020-03-11 08:23:05 +00:00
Even Rouault b3c04bb1d2 Merge pull request #2048 from PROJ-BOT/backport-2044-to-7.0
[Backport 7.0] data/Makefile.am: remove bashism
2020-03-10 23:05:57 +01:00
github-actions[bot] 4f4b6bba5b data/Makefile.am: remove bashism 2020-03-10 20:53:11 +00:00
Even Rouault 1aa6662399 Merge pull request #2045 from PROJ-BOT/backport-2026-to-7.0
[Backport 7.0] utm/ups: make sure to set errno to PJD_ERR_ELLIPSOID_USE_REQUIRED if es==0
2020-03-10 21:52:59 +01:00
github-actions[bot] 9d3fabcf8d utm/ups: make sure to set errno to PJD_ERR_ELLIPSOID_USE_REQUIRED if es==0 2020-03-10 17:02:14 +00:00
Even Rouault ad1732b5e4 Merge pull request #2041 from PROJ-BOT/backport-2037-to-7.0
[Backport 7.0] fix documentation for proj_trans_generic()
2020-03-10 12:37:42 +01:00
github-actions[bot] 29a50617a1 fix documentation for proj_trans_generic() 2020-03-10 11:17:47 +00:00
Kristian Evers 056e9b8051 Merge pull request #2034 from kbevers/backport-7.0-60d3df6
[backport 7.0] src/projections/: remove assignments in expression and multiple state…
2020-03-09 13:58:39 +01:00
Even Rouault 5e946fdafc src/projections/: remove assignments in expression and multiple statements per line
Should hopefully result in no change in results, and hopefully more
readable code...
2020-03-09 11:05:09 +01:00
Even Rouault 0d682c7372 Typo fixes identified by scripts/fix_typos.sh 2020-03-06 18:38:38 +01:00
Even Rouaultandgithub-actions[bot] b34aa2fb81 Remove occurences of deprecated PROJ.4 syntax (#2021)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-03-05 08:20:37 +01:00
PROJ-BOTandgithub-actions[bot] b7efec5d0c Document Autotools and CMake configure options (#2018)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-03-04 12:48:29 +01:00
github-actions[bot] 74b7c6b995 Update README with info on PROJ-data 2020-03-04 07:41:00 +01:00
Even Rouault 6214506440 Merge pull request #2014 from PROJ-BOT/backport-2011-to-7.0
[Backport 7.0] createUnitOfMeasure(): use full double resolution for the conversion factor
2020-03-04 00:32:15 +01:00
github-actions[bot] 63a8992d56 createUnitOfMeasure(): use full double resolution for the conversion factor 2020-03-03 18:43:19 +00:00
Chris Mayo 2ed04de712 Fix download link for proj-data 1.0 2020-03-03 07:57:01 +01:00
github-actions[bot] c8e213fff8 Fix bad copy&replace pattern on HEALPix and rHEALPix projection names 2020-03-03 07:49:28 +01:00
Even Rouault e7fb805d5d Dummy commit to force doc publication 2020-03-01 12:53:18 +01:00
Even Rouault 641df65880 createOperations(): fix wrong pipeline generation with CRS that has +nadgrids= and +pm= (#1998)
Fixes issue reported at
https://lists.osgeo.org/pipermail/gdal-dev/2020-February/051749.html

The generated pipeline assumes that the input coordinates for the grid transformation
were related to the non-Greenwich based datum, so we must compensate for that and
add logic to go back to Greenwich.
2020-03-01 11:51:08 +01:00
github-actions[bot] e8c150186f Add missing projection property tables 2020-03-01 11:50:56 +01:00
github-actions[bot] eb3092f121 Avoid crash when running against SQLite3 binary built with -DSQLITE_OMIT_AUTOINIT (fixes #1932) 2020-03-01 11:50:40 +01:00
github-actions[bot] 3c97d5b3a5 Make tests independent of proj-datumgrid 2020-03-01 11:50:26 +01:00
github-actions[bot] b86f349dab proj_create_crs_to_crs(): avoid potential reprojection failures when reprojecting area of use to source and target CRS 2020-03-01 11:50:10 +01:00
github-actions[bot] ac26298dd5 Database: update to EPSG v9.8.7 2020-03-01 11:49:54 +01:00
Kristian Evers f1cd90a47b Update github_version in sphinx config 2020-03-01 11:48:57 +01:00
Kristian Evers aaadd48d50 Update docs in preparation for 7.0.0 release 2020-03-01 11:23:42 +01:00
Even Rouault 6cb4a50283 createOperations(): be robust to a GeographicCRS having a wrong ID attached to it (fixes #1982) 2020-02-25 16:29:38 +01:00
Even Rouault ca8dd841cc Merge pull request #1981 from PROJ-BOT/backport-1978-to-7.0
[Backport 7.0] CompoundCRS::create(): reject combinations of components not allowed by ISO 19111
2020-02-25 00:21:55 +01:00
github-actions[bot] ddb491f741 CompoundCRS::create(): reject combinations of components not allowed by ISO 19111 2020-02-24 23:19:51 +00:00
Even Rouault cbd35978e3 Merge pull request #1980 from PROJ-BOT/backport-1976-to-7.0
[Backport 7.0] createOperations(): keep height/z value in Helmert transform between 3D CRS
2020-02-24 21:18:12 +01:00
github-actions[bot] 421e0cb878 createOperations(): keep height/z value in Helmert transform between 3D CRS 2020-02-24 19:38:20 +00:00
Even Rouault 9e7db46b62 Merge pull request #1977 from PROJ-BOT/backport-1974-to-7.0
[Backport 7.0] pj_hgrid_apply(): change error code when no grid match to PJD_ERR_GRID_AREA (refs #1973)
2020-02-24 13:00:07 +01:00
github-actions[bot] 2869eaf638 pj_hgrid_apply(): change error code when no grid match to PJD_ERR_GRID_AREA (refs #1973) 2020-02-24 11:59:43 +00:00
Even Rouault 3cf6b0fc50 Merge pull request #1975 from PROJ-BOT/backport-1971-to-7.0
[Backport 7.0] Fix mapping of Vertical_Near_Side_Perspective (fixes #1965)
2020-02-24 12:58:00 +01:00
github-actions[bot] 137dbc3573 Fix mapping of Vertical_Near_Side_Perspective (fixes #1965) 2020-02-24 11:43:31 +00:00
Even Rouault c7c06c1b2a Merge pull request #1972 from PROJ-BOT/backport-1967-to-7.0
[Backport 7.0] Expose proj_context_is_network_enabled() in C API
2020-02-24 12:42:36 +01:00
github-actions[bot] 9f1afa969a Expose proj_context_is_network_enabled() in C API 2020-02-24 09:32:55 +00:00
Even Rouault 595686c323 Merge pull request #1968 from wonder-sk/slovakia-jtsk-ntv2-master
Add alternative grid for JTSK - JTSK03 transform (EPSG:8364)
2020-02-24 08:50:02 +01:00
Kristian Evers 91289ed13e Merge pull request #1964 from PROJ-BOT/backport-1959-to-7.0
[Backport 7.0] test_network.cpp: fix test failures on big endian archs (fixes #1958)
2020-02-23 21:06:27 +01:00
Kristian Evers 741c791370 Merge pull request #1963 from PROJ-BOT/backport-1951-to-7.0
[Backport 7.0] Switch build configuration logic from DISABLE_TIFF to ENABLE_TIFF
2020-02-23 21:06:14 +01:00
Kristian Evers 1e6b0f2bf1 Merge pull request #1966 from mwtoews/7.0
[Backport 7.0] CMake: rename BUILD_LIBPROJ_SHARED to BUILD_SHARED_LIBS
2020-02-22 14:54:46 +01:00
Mike Taves ec4c66f40d Merge pull request #1962 from mwtoews/shared
CMake: rename BUILD_LIBPROJ_SHARED to BUILD_SHARED_LIBS
2020-02-22 13:44:59 +13:00
Even Rouault f0ecf2709d Doc: advertize lat_0 for proj=nsper 2020-02-21 13:36:27 +01:00
Nyall Dawson 0139b8580b Add support for creating coordinates operations using Compact Miller,
Times and Vertical Near Side Perspective projections
2020-02-21 11:31:07 +01:00
Nyall Dawson ae01170481 Add support for creating coordinates operations using Natural Earth/Natural Earth 2 projection 2020-02-21 11:30:59 +01:00
Nyall Dawson 67da822c73 Add support for creating coordinates operations using ESRI:53079 (patterson) CRS 2020-02-21 11:30:49 +01:00
github-actions[bot] 5df17ec18c test_network.cpp: fix test failures on big endian archs (fixes #1958) 2020-02-21 10:24:12 +00:00
github-actions[bot] 532abdf67d Switch build configuration logic from DISABLE_TIFF to ENABLE_TIFF 2020-02-21 10:23:42 +00:00
github-actions[bot] 2be384c5ac Fix wrong byte-swapping for NTv2 grids affecting master after RFC4 work (fixes #1938) 2020-02-20 19:24:19 +01:00
github-actions[bot] 8cf7204f89 Add/update description for pkg-config and CMake, ignore proj.pc.in warning 2020-02-20 19:24:12 +01:00
github-actions[bot] e8319d7f08 CMake: rename ENABLE_LTO to ENABLE_IPO 2020-02-20 19:23:53 +01:00
github-actions[bot] 6b6ceb57f5 appveyor: Use sqlite tool from vcpkg 2020-02-20 13:18:24 +01:00
Even Rouault 427274c0fd Merge pull request #1948 from PROJ-BOT/backport-1945-to-7.0
[Backport 7.0] validateParameters(): fix false-positive warning on Equidistant Cylindrical
2020-02-19 22:35:37 +01:00
github-actions[bot] 6695c75bf5 validateParameters(): fix false-positive warning on Equidistant Cylindrical 2020-02-19 17:13:40 +00:00
github-actions[bot] 4217d81f5e DatabaseContext::lookForGridInfo(): use also old_proj_grid_name for lookups (fixes #1942) 2020-02-19 18:12:37 +01:00
github-actions[bot] 10d4c48eb3 test: enhance testing of proj_grid_get_info_from_database 2020-02-19 18:11:37 +01:00
github-actions[bot] b49c5b783b Fix static linking (due to typo in pc) 2020-02-18 16:23:15 +01:00
Bas Couwenberg 1dbad5e232 Don't assume $HOME to be writable.
The read_grid_from_user_writable_directory test fails otherwise.

Fixes: #1933
2020-02-18 14:03:24 +01:00
Kristian Evers 1b88d7fb13 Remove man3 Makefile from configure.ac 2020-02-17 21:22:19 +01:00
Kristian Evers 357cdada21 Update CMake setup with new projsync man file and removed man3 files 2020-02-17 21:14:44 +01:00
881 changed files with 121161 additions and 199675 deletions
-2
View File
@@ -1,2 +0,0 @@
BasedOnStyle: llvm
IndentWidth: 4
-2
View File
@@ -1,2 +0,0 @@
f090353792c0530a7aa5d02e44ad9b236986757b
aa818d6772887453432ce607410b784ff56308a1
-18
View File
@@ -1,18 +0,0 @@
name: Backport
on:
pull_request_target:
types:
- closed
- labeled
jobs:
backport:
runs-on: ubuntu-latest
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 }}
-33
View File
@@ -1,33 +0,0 @@
name: CIFuzz
on:
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
Fuzzing:
runs-on: ubuntu-latest
steps:
- name: Build Fuzzers
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'proj4'
dry-run: false
- name: Run Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'proj4'
fuzz-seconds: 600
dry-run: false
- name: Upload Crash
uses: actions/upload-artifact@v3
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
path: ./out/artifacts
-35
View File
@@ -1,35 +0,0 @@
name: Clang Linux
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
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@v3
- name: Cache
uses: actions/cache@v3
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
-34
View File
@@ -1,34 +0,0 @@
#!/bin/sh
set -e
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
autoconf automake libtool make cmake ccache pkg-config python3-pip sqlite3 tar zip \
clang++-10 jq python3-clang-10 \
libsqlite3-dev \
libtiff-dev libwebp-dev libzstd-dev \
libcurl4-openssl-dev libnghttp2-dev libidn2-dev librtmp-dev libssh-dev \
libpsl-dev libssl-dev libkrb5-dev comerr-dev libldap2-dev libbrotli-dev \
nlohmann-json3-dev libgtest-dev
python3 -m pip install --user jsonschema
export PATH=$HOME/.local/bin:$PATH
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"
ccache -M 500M
# -fno-use-cxa-atexit is needed to build with -coverage
CC="clang-10" CXX="clang++-10" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./travis/install.sh
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
-47
View File
@@ -1,47 +0,0 @@
name: Code Checks
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
cppcheck_2204:
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Requirements
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends cppcheck
- name: Run cppcheck test
run: ./scripts/cppcheck.sh
other_checks:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Requirements
run: |
sudo apt-get install python3-pip
sudo pip3 install cffconvert
- name: Validate citation file
run: |
cffconvert --validate
cffconvert -f bibtex
cffconvert -f apalike
-50
View File
@@ -1,50 +0,0 @@
name: Conda
on:
push:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
conda:
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@v3
- uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Mambaforge
miniforge-version: latest
- 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@v3
with:
name: ${{ matrix.platform }}-conda-package
path: ./proj.4-feedstock/packages/
-51
View File
@@ -1,51 +0,0 @@
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:
coverity:
runs-on: ubuntu-22.04
if: github.repository == 'OSGeo/PROJ'
steps:
- uses: actions/checkout@v3
- 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 }}
-90
View File
@@ -1,90 +0,0 @@
name: Docker
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
# 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@v3
- 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@v2
with:
version: latest
- if: ${{ env.PUSH_PACKAGES == 'true' }}
name: Login to GitHub Container Registry
uses: docker/login-action@v2
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@v2
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@v4
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 }}
-34
View File
@@ -1,34 +0,0 @@
name: Linux GCC 32bit
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
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@v3
- name: Cache
uses: actions/cache@v3
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
@@ -1,49 +0,0 @@
#!/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-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends -o APT::Immediate-Configure=0 \
autoconf automake libtool make cmake ccache pkg-config python3-pip sqlite3 tar zip \
gcc-multilib g++-multilib g++ jq dpkg-dev \
libsqlite3-dev:$ARCH \
libtiff-dev:$ARCH libwebp-dev:$ARCH libzstd-dev:$ARCH \
libcurl4-openssl-dev:$ARCH libnghttp2-dev:$ARCH libidn2-dev:$ARCH librtmp-dev:$ARCH libssh-dev:$ARCH \
libpsl-dev:$ARCH libssl-dev:$ARCH libkrb5-dev:$ARCH comerr-dev:$ARCH libldap2-dev:$ARCH libbrotli-dev:$ARCH
python3 -m pip install --user jsonschema
export PATH=$HOME/.local/bin:$PATH
export CXXFLAGS='-m32 -D_GLIBCXX_ASSERTIONS'
export CFLAGS='-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 PKG_CONFIG=i686-linux-gnu-pkg-config
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"
ccache -M 500M
CFLAGS="-Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" CMAKE_BUILD_TYPE=RelWithDebInfo ./travis/install.sh
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
-39
View File
@@ -1,39 +0,0 @@
name: Linux GCC 5.4
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
linux_gcc_5_4:
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@v3
- name: Cache
uses: actions/cache@v3
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-gcc-5-4-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-gcc-5-4-
- name: Run
run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:16.04 $PWD/.github/workflows/linux_gcc_5_4/start.sh
- name: Coveralls
uses: coverallsapp/github-action@v1.1.2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
-44
View File
@@ -1,44 +0,0 @@
#!/bin/bash
set -e
export TRAVIS_OS_NAME=linux
export BUILD_NAME=linux_gcc
export TRAVIS_BUILD_DIR="$WORK_DIR"
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
autoconf automake libtool make cmake ccache pkg-config python3-pip sqlite3 tar zip \
g++ jq lcov python3-setuptools \
libsqlite3-dev \
libtiff-dev \
libcurl4-openssl-dev libidn11-dev librtmp-dev libssl-dev libkrb5-dev comerr-dev libldap2-dev
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
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"
ccache -M 500M
CFLAGS="-Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh
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
-51
View File
@@ -1,51 +0,0 @@
name: MacOS build
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
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@v3
- uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Mambaforge
miniforge-version: latest
use-mamba: true
- name: Cache
uses: actions/cache@v3
id: cache
with:
path: ${{ github.workspace }}/.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:
CCACHE_DIR: ${{ github.workspace }}/.ccache
TRAVIS_OS_NAME: osx
BUILD_NAME: osx
-7
View File
@@ -1,7 +0,0 @@
#!/bin/bash
set -e
mamba install --yes --quiet compilers
mamba install --yes --quiet python=3.8 autoconf automake libtool pkg-config ccache jsonschema
mamba install --yes --quiet --only-deps proj=7.1.1=h45baca5_3
-9
View File
@@ -1,9 +0,0 @@
#!/bin/bash
set -e
export PROJ_DB_CACHE_DIR="$HOME/.ccache"
ccache -M 200M
CC="clang" CXX="clang++" CFLAGS="-Werror" CXXFLAGS="-Werror" CMAKE_BUILD_TYPE=RelWithDebInfo ./travis/install.sh
-34
View File
@@ -1,34 +0,0 @@
name: mingw_w64 build
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
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@v3
- name: Cache
uses: actions/cache@v3
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
-126
View File
@@ -1,126 +0,0 @@
#!/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 \
binutils-mingw-w64-x86-64 \
gcc-mingw-w64-x86-64 \
g++-mingw-w64-x86-64 \
g++-mingw-w64 \
mingw-w64-tools \
wine-stable \
cmake make ccache \
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 CC="$MINGW_ARCH-gcc"
export CXX="$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 -f win32/Makefile.gcc SHARED_MODE=1 \
PREFIX=${MINGW_ARCH}- \
prefix=/usr/${MINGW_ARCH} \
DESTDIR=/usr/${MINGW_ARCH}/ \
BINARY_PATH=bin INCLUDE_PATH=include LIBRARY_PATH=lib)
ln -s /usr/$MINGW_ARCH/bin/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
# build proj
mkdir build
cd build
cmake -G "Unix Makefiles" \
-D CMAKE_SYSTEM_NAME=Windows \
-D CMAKE_CROSSCOMPILING_EMULATOR=/usr/bin/wine64 \
-D CMAKE_C_COMPILER=/usr/bin/${MINGW_ARCH}-gcc \
-D CMAKE_CXX_COMPILER=/usr/bin/${MINGW_ARCH}-g++ \
-D CMAKE_C_FLAGS="-Werror" \
-D CMAKE_CXX_FLAGS="-Werror" \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_FIND_ROOT_PATH=/usr/${MINGW_ARCH} \
-D CMAKE_INSTALL_PREFIX=/tmp/proj_install \
-D ENABLE_CURL=OFF \
-D BUILD_PROJSYNC=OFF \
-D USE_CCACHE=ON \
..
make
# Run a subset of tests that should pass
ctest --output-on-failure -R "proj_test_cpp_api|geodesic-test|proj_errno_string_test|proj_angular_io_test|proj_context_test|pj_phi2_test|gie_self_tests|test_network|test_defmodel|test_tinshift|test_misc|test_fork"
# TODO: fix failing tests with .gie files; see #2168 and run
# PROJ_DATA=./data/for_tests wine64 ./bin/gie.exe ../test/gie/more_builtins.gie
make install
ccache -s
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
-152
View File
@@ -1,152 +0,0 @@
name: Windows build
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
MSVC:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
strategy:
fail-fast: false
matrix:
BUILD_SHARED_LIBS: [ON, OFF]
BUILD_TYPE: [Release, Debug]
env:
ARCH: x64
BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS }}
BUILD_TYPE: ${{ matrix.BUILD_TYPE }}
CMAKE_GENERATOR: Ninja
steps:
- uses: actions/checkout@v3
- uses: ilammy/msvc-dev-cmd@v1
- name: Cache vcpkg packages
uses: actions/cache@v3
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] tiff curl --triplet=${{ env.ARCH }}-windows
- name: Build
shell: cmd
run: |
set VCPKG_INSTALLED=c:\vcpkg\installed\${{ env.ARCH }}-windows
dir %VCPKG_INSTALLED%\bin
dir %VCPKG_INSTALLED%\tools
set PATH=%VCPKG_INSTALLED%\bin;%VCPKG_INSTALLED%\tools;%PATH%
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
mkdir %PROJ_BUILD%
cd %PROJ_BUILD%
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
cmake -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" -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_ROOT=c:\vcpkg
set platform=${{ env.ARCH }}
set VCPKG_INSTALLED=%VCPKG_ROOT%\installed\%platform%-windows
set PATH=%VCPKG_INSTALLED%\bin;%PATH%
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
cd %PROJ_BUILD%
ctest --output-on-failure -C "${{ env.BUILD_TYPE }}"
set PATH=%PROJ_DIR%\bin;%PATH%
set BUILD_MODE=shared
if "${{ env.BUILD_SHARED_LIBS }}"=="OFF" (set BUILD_MODE=static)
if "${{ env.BUILD_TYPE }}"=="Release" call %GITHUB_WORKSPACE%\test\postinstall\test_cmake.bat %PROJ_DIR% %BUILD_MODE%
if "${{ env.BUILD_TYPE }}"=="Release" 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}
strategy:
fail-fast: false
matrix:
BUILD_SHARED_LIBS: [ON, OFF]
env:
BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS }}
BUILD_TYPE: Release
CMAKE_GENERATOR: "MSYS Makefiles"
steps:
- uses: actions/checkout@v3
- name: Cache
uses: actions/cache@v3
id: cache
with:
path: ~/.ccache
key: ${{ runner.os }}-cache-msys-${{ hashFiles('.github/workflows/windows.yml') }}
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
git
make
mingw-w64-x86_64-cmake
mingw-w64-x86_64-ccache
mingw-w64-x86_64-curl
mingw-w64-x86_64-gcc
mingw-w64-x86_64-libtiff
mingw-w64-x86_64-sqlite3
- name: Build
run: |
ccache -M 500M
ccache -s
PROJ_BUILD=${GITHUB_WORKSPACE}/build
PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir
mkdir ${PROJ_BUILD}
cd ${PROJ_BUILD}
cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DBUILD_SHARED_LIBS=${{ env.BUILD_SHARED_LIBS }} -DCMAKE_INSTALL_PREFIX="${PROJ_DIR}" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" -DUSE_CCACHE=ON ..
make -j 2
make install
ls ${PROJ_DIR}/bin
ccache -s
- 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}
BUILD_MODE=shared
if [ ${{ env.BUILD_SHARED_LIBS }} == "OFF" ]; then BUILD_MODE=static; fi
../test/postinstall/test_cmake.sh ${PROJ_DIR} ${BUILD_MODE}
../test/postinstall/test_pkg-config.sh ${PROJ_DIR} ${BUILD_MODE}
proj
+13 -19
View File
@@ -26,19 +26,18 @@ build.local.sh
# Autotools
autom4te.cache
aclocal.m4
compile
config.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
test-driver
install-sh
ltmain.sh
missing
/aclocal.m4
/compile
/config.cache
/config.guess
/config.log
/config.status
/config.sub
/configure
/depcomp
/install-sh
/ltmain.sh
/missing
libtool
.deps
.dirstamp
@@ -62,6 +61,7 @@ install_manifest.txt
/bin
/lib
/proj.pc
/test-driver
/Testing
# data
@@ -93,7 +93,6 @@ install_manifest.txt
/data/stlrnc
/data/stpaul
/data/tv_out
/data/for_tests/
# docs
/docs/.doxygen_up_to_date
@@ -118,7 +117,6 @@ m4/lt~obsolete.m4
/src/proj_config.h
/src/proj_config.h.in
/src/projinfo
/src/projsync
/src/stamp-h1
/src/test-suite.log
@@ -132,10 +130,6 @@ 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
-30
View File
@@ -1,30 +0,0 @@
Aaron Puchert <aaron.puchert@sap.com> <aaronpuchert@alice-dsl.net>
Alan D. Snow <alansnow21@gmail.com>
Alan D. Snow <alansnow21@gmail.com> <alan.snow@pioneer.com>
Ben Boeckel <ben.boeckel@kitware.com> <mathstuf@users.noreply.github.com>
Bojan Šavrič <bsavric@esri.com>
Brendan Jurd <direvus@gmail.com> <brendan.jurd@geoplex.com.au>
Charles Karney <charles@karney.com>
Charles Karney <charles@karney.com> <charles.karney@sri.com>
Charles Karney <charles@karney.com> <ckarney@karney.com>
dalia2 <dalia@lmi.is> <57895979+dalia2@users.noreply.github.com>
Eli Rykoff <erykoff@stanford.edu>
Even Rouault <even.rouault@spatialys.com> <even.rouault@mines-paris.org>
George Ouzounoudis <geothrock@gmail.com>
Jeff McKenna <jeffmckenna@gmail.com>
Jeff McKenna <jeffmckenna@gmail.com> <jmckenna@gatewaygeomatics.com>
Jürnjakob Dugge <juernjakob@gmail.com>
Jürnjakob Dugge <juernjakob@gmail.com> <jdugge@users.noreply.github.com>
Kurt Schwehr <schwehr@google.com> <schwehr@gmail.com>
Martin Desruisseaux <martin.desruisseaux@geomatys.com> <martin.desruisseaux@geomatys.fr>
Mateusz Łoskot <mateusz@loskot.net>
Mike Taves <mwtoews@gmail.com>
Olli Räisä <olli.raisa@trimble.com>
Sebastian Val <Sebastian.Val@jpl.nasa.gov> <sval-dev@users.noreply.github.com>
Sveinung Himle <himsve@kartverket.no>
Sveinung Himle <himsve@kartverket.no> <56073535+himsve@users.noreply.github.com>
Sveinung Himle <himsve@kartverket.no> <Sveinung.Himle@kartverket.no>
Thomas Knudsen <thokn@sdfe.dk>
Thomas Knudsen <thokn@sdfe.dk> <busstoptaktik@users.noreply.github.com>
Thomas Knudsen <thokn@sdfe.dk> <knudsen.thomas@gmail.com>
Thomas Knudsen <thokn@sdfe.dk> <lastname DOT firstname AT gmail DOT com>
-22
View File
@@ -1,22 +0,0 @@
repos:
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: 'v15.0.4'
hooks:
- id: clang-format
exclude: >
(?x)^(
data/|
schemas/|
docs/|
include/proj/nn.hpp|
include/proj/internal/lru_cache.hpp|
include/proj/internal/vendor/nlohmann/json.hpp|
src/wkt1_generated_parser.c|
src/wkt1_generated_parser.h|
src/wkt2_generated_parser.c|
src/wkt2_generated_parser.h|
src/geodesic.c|
src/geodesic.h|
src/tests/geodtest.c|
src/tests/geodsigntest.c
)
+13 -2
View File
@@ -12,7 +12,18 @@ build:
jobs:
post_checkout:
- (git --no-pager log --pretty="tformat:%s -- %b" -1 | grep -viqP "skip ci|ci skip") || exit 183
# 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/7.0 -- docs/ .readthedocs.yaml;
then
exit 183;
fi
- (git --no-pager log --pretty="tformat:%s -- %b" -1 | grep -viq "skip ci") || exit 183
pre_build:
- ./docs/rtd/pre_build.sh
- ./scripts/doxygen.sh
@@ -30,8 +41,8 @@ build:
- libcurl4-openssl-dev
formats:
- htmlzip
- pdf
- epub
conda:
environment: docs/environment.yml
-66
View File
@@ -1,66 +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=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
#
+2 -4
View File
@@ -1,8 +1,7 @@
To cite PROJ in publications use:
PROJ contributors (2023). PROJ coordinate transformation software
PROJ contributors (2020). PROJ coordinate transformation software
library. Open Source Geospatial Foundation. URL https://proj.org/.
DOI: 10.5281/zenodo.5884394
A BibTeX entry for LaTeX users is
@@ -12,7 +11,6 @@ A BibTeX entry for LaTeX users is
title = {{PROJ} coordinate transformation software library},
author = {{PROJ contributors}},
organization = {Open Source Geospatial Foundation},
year = {2023},
year = {2020},
url = {https://proj.org/},
doi = {10.5281/zenodo.5884394},
}
-70
View File
@@ -1,70 +0,0 @@
cff-version: 1.2.0
message: Please cite this software using these metadata or in the CITATION file.
type: software
title: PROJ
version: 9.2.1
date-released: 2023-06-01
doi: 10.5281/zenodo.5884394
abstract: PROJ is a generic coordinate transformation software that transforms
geospatial coordinates from one coordinate reference system (CRS) to another.
This includes cartographic projections as well as geodetic transformations.
url: https://proj.org
repository-code: https://github.com/OSGeo/PROJ/
license: MIT
authors:
- given-names: Gerald I.
family-names: Evenden
affiliation: United States Geological Survey
- given-names: Even
family-names: Rouault
affiliation: Spatialys
orcid: https://orcid.org/0000-0002-5068-0476
- given-names: Frank
family-names: Warmerdam
affiliation: Planet Labs Inc
- given-names: Kristian
family-names: Evers
affiliation: Danish Agency for Data Supply and Infrastructure
orcid: https://orcid.org/0000-0002-1310-4576
- given-names: Thomas
family-names: Knudsen
affiliation: Danish Agency for Data Supply and Infrastructure
- given-names: Howard
family-names: Butler
affiliation: Hobu Inc
orcid: https://orcid.org/0000-0002-5340-1380
- given-names: Mike W.
family-names: Taves
affiliation: GNS Science
orcid: https://orcid.org/0000-0003-3657-7963
- given-names: Kurt
family-names: Schwehr
affiliation: Google Inc
orcid: https://orcid.org/0000-0002-5624-8190
- given-names: Elliott
family-names: Sales de Andrade
orcid: https://orcid.org/0000-0001-7310-8942
- given-names: Charles
family-names: Karney
affiliation: SRI International
orcid: https://orcid.org/0000-0002-5006-5836
- given-names: Sebastiaan
family-names: Couwenberg
- given-names: Nyall
family-names: Dawson
affiliation: North Road
orcid: https://orcid.org/0000-0001-9812-7584
- given-names: Alan D.
family-names: Snow
affiliation: Corteva
orcid: https://orcid.org/0000-0002-7333-3100
- given-names: Javier
family-names: Jimenez Shaw
orcid: https://orcid.org/0000-0002-7227-9173
keywords:
- PROJ
- geodesy
- cartography
- coordinates
- projections
- conversion
+40 -172
View File
@@ -73,11 +73,6 @@ elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
/wd4706 # Suppress warning about assignment within conditional expression
/wd4996 # Suppress warning about sprintf, etc., being unsafe
)
if("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm64")
# Suppress an inaccurate warning when compiling for an MSVC/ARM64 platform
# It incorrectly assumes a division by zero is possible despite a check
set(PROJ_C_WARN_FLAGS ${PROJ_C_WARN_FLAGS} /wd4723)
endif()
set(PROJ_CXX_WARN_FLAGS /EHsc ${PROJ_C_WARN_FLAGS})
elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
if(MSVC)
@@ -89,13 +84,6 @@ elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
endif()
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
# Intel CXX compiler based on clang defaults to -ffast-math, which
# breaks std::isinf(), std::isnan(), etc.
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -fno-fast-math)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fno-fast-math)
endif ()
set(PROJ_C_WARN_FLAGS "${PROJ_C_WARN_FLAGS}"
CACHE STRING "C flags used to compile PROJ targets")
set(PROJ_CXX_WARN_FLAGS "${PROJ_CXX_WARN_FLAGS}"
@@ -115,62 +103,20 @@ message(STATUS "Configuring PROJ:")
#PROJ version information
################################################################################
include(ProjVersion)
proj_version(MAJOR 9 MINOR 2 PATCH 1)
set(PROJ_SOVERSION 25)
set(PROJ_BUILD_VERSION "${PROJ_SOVERSION}.${PROJ_VERSION}")
proj_version(MAJOR 7 MINOR 0 PATCH 2)
set(PROJ_API_VERSION "19")
set(PROJ_BUILD_VERSION "19.1.0")
################################################################################
# Build features and variants
################################################################################
include(Ccache)
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!")
@@ -218,42 +164,18 @@ if(ENABLE_CURL)
find_package(CURL REQUIRED)
if(CURL_FOUND)
set(CURL_ENABLED TRUE)
# Target CURL::libcurl only defined since CMake 3.12
# TODO: remove this when CMake >= 3.12 required
if(NOT TARGET CURL::libcurl)
add_library(CURL::libcurl INTERFACE IMPORTED)
set_target_properties(CURL::libcurl PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CURL_LIBRARIES}"
)
endif()
else()
message(SEND_ERROR "curl dependency not found!")
endif()
endif()
################################################################################
if(DEFINED PROJ_LIB_ENV_VAR_TRIED_LAST)
set(PROJ_DATA_ENV_VAR_TRIED_LAST ${PROJ_LIB_ENV_VAR_TRIED_LAST})
message(WARNING "PROJ_LIB_ENV_VAR_TRIED_LAST option has been renamed to PROJ_DATA_ENV_VAR_TRIED_LAST. PROJ_LIB_ENV_VAR_TRIED_LAST is still working for now, but may be completely replaced by PROJ_DATA_ENV_VAR_TRIED_LAST in a future release")
else()
option(PROJ_DATA_ENV_VAR_TRIED_LAST "Whether the PROJ_DATA environment variable should be tried after the hardcoded location" OFF)
endif()
if(PROJ_DATA_ENV_VAR_TRIED_LAST)
add_definitions(-DPROJ_DATA_ENV_VAR_TRIED_LAST)
endif()
################################################################################
# threading configuration
################################################################################
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)
if(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT)
set(CMAKE_REQUIRED_LIBRARIES
"${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}")
endif()
include(CheckIncludeFiles)
include(CheckCSourceCompiles)
if(MSVC)
@@ -263,6 +185,23 @@ else()
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} -Werror -Wall")
endif()
if(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT)
set(CMAKE_REQUIRED_LIBRARIES
"${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}")
check_c_source_compiles("
#include <pthread.h>
int main(int argc, char* argv[]) {
(void)PTHREAD_MUTEX_RECURSIVE;
(void)argv;
return argc;
}
" HAVE_PTHREAD_MUTEX_RECURSIVE_DEFN)
if(HAVE_PTHREAD_MUTEX_RECURSIVE_DEFN)
add_definitions(-DHAVE_PTHREAD_MUTEX_RECURSIVE=1)
endif()
endif()
# Set a default build type for single-configuration cmake generators if
# no build type is set.
if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
@@ -288,27 +227,30 @@ link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
# Installation
################################################################################
include(ProjInstallPath)
# By default GNUInstallDirs will use the upper case project name
# for CMAKE_INSTALL_DOCDIR, resulting in something like share/doc/PROJ
# instead of share/doc/proj which historically have been the path used
# by the project.
# Here force the use of a lower case project name and reset after
# GNUInstallDirs has done its thing
set(PROJECT_NAME_ORIGINAL "${PROJECT_NAME}")
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME)
include(GNUInstallDirs)
set(PROJECT_NAME "${PROJECT_NAME_ORIGINAL}")
set(PROJ_DATA_PATH "${CMAKE_INSTALL_FULL_DATADIR}/proj")
set(BINDIR "${DEFAULT_BINDIR}"
CACHE PATH "The directory to install binaries into.")
set(LIBDIR "${DEFAULT_LIBDIR}"
CACHE PATH "The directory to install libraries into.")
set(DATADIR "${DEFAULT_DATADIR}"
CACHE PATH "The directory to install data files into.")
set(DOCDIR "${DEFAULT_DOCDIR}"
CACHE PATH "The directory to install doc files into.")
set(INCLUDEDIR "${DEFAULT_INCLUDEDIR}"
CACHE PATH "The directory to install includes into.")
set(CMAKECONFIGDIR "${DEFAULT_CMAKEDIR}"
CACHE PATH "Parent of the directory to install cmake config files into.")
################################################################################
# Tests
################################################################################
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()
@@ -328,77 +270,3 @@ add_subdirectory(cmake)
if(BUILD_TESTING)
add_subdirectory(test)
endif()
set(docfiles COPYING NEWS AUTHORS)
install(FILES ${docfiles}
DESTINATION ${CMAKE_INSTALL_DOCDIR})
################################################################################
# pkg-config support
################################################################################
configure_proj_pc()
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/proj.pc
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
################################################################################
# "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
/disabled_workflows/
/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()
configure_file(cmake/uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/proj_uninstall.cmake @ONLY)
add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/proj_uninstall.cmake)
+20 -20
View File
@@ -1,11 +1,11 @@
# How to contribute to PROJ
# How to contribute to PROJ.4
PROJ has a wide and varied user base. Some are highly skilled geodesists with a deep
PROJ.4 has a wide and varied user base. Some are highly skilled geodesists with a deep
knowledge of map projections and reference systems, some are GIS software developers
and others are GIS users. All users, regardless of the profession or skill level,
has the ability to contribute to PROJ. Here's a few suggestion on how:
has the ability to contribute to PROJ.4. Here's a few suggestion on how:
* Help PROJ-users that is less experienced than yourself.
* Help PROJ.4-users that is less experienced than yourself.
* Write a bug report
* Request a new feature
* Write documentation for your favorite map projection
@@ -13,16 +13,16 @@ has the ability to contribute to PROJ. Here's a few suggestion on how:
* Implement a new feature
In the following sections you can find some guidelines on how to contribute.
As PROJ is managed on GitHub most contributions require that you have a GitHub
As PROJ.4 is managed on GitHub most contributions require that you have a GitHub
account. Familiarity with [issues](https://guides.github.com/features/issues/) and
the [GitHub Flow](https://guides.github.com/introduction/flow/) is an advantage.
## Help a fellow PROJ user
The main forum for support for PROJ is the mailing list. You can subscribe to
## Help a fellow PROJ.4 user
The main forum for support for PROJ.4 is the mailing list. You can subscribe to
the mailing list [here](http://lists.osgeo.org/mailman/listinfo/proj) and read
the archive [here](http://lists.osgeo.org/pipermail/proj/).
If you have questions about the usage of PROJ the mailing list is also the place to go.
If you have questions about the usage of PROJ.4 the mailing list is also the place to go.
Please *do not* use the GitHub issue tracker as a support forum. Your question is much
more likely to be answered on the mailing list, as many more people follow that than
the issue tracker.
@@ -30,7 +30,7 @@ the issue tracker.
## Adding bug reports
Bug reports are handled in the [issue tracker](https://github.com/OSGeo/PROJ/issues)
on PROJ's home on GitHub. Writing a good bug report is not easy. But fixing a poorly
on PROJ.4's home on GitHub. Writing a good bug report is not easy. But fixing a poorly
documented bug is not easy either, so please put in the effort it takes to create a
thorough bug report.
@@ -38,7 +38,7 @@ A good bug report includes at least:
* A title that quickly explains the problem
* A description of the problem and how it can be reproduced
* Version of PROJ being used
* Version of PROJ.4 being used
* Version numbers of any other relevant software being used, e.g. operating system
* A description of what already has been done to solve the problem
@@ -47,15 +47,15 @@ will find interest in solving the problem. You will probably get follow-up quest
after submitting a bug report. Please answer them in a timely manner if you have an
interest in getting the issue solved.
Finally, please only submit bug reports that are actually related to PROJ. If the
issue materializes in software that uses PROJ it is likely a problem with that
particular software. Make sure that it actually is a PROJ problem before you submit
an issue. If you can reproduce the problem only by using tools from PROJ it is
definitely a problem with PROJ.
Finally, please only submit bug reports that are actually related to PROJ.4. If the
issue materializes in software that uses PROJ.4 it is likely a problem with that
particular software. Make sure that it actually is a PROJ.4 problem before you submit
an issue. If you can reproduce the problem only by using tools from PROJ.4 it is
definitely a problem with PROJ.4.
## Feature requests
Got an idea for a new feature in PROJ? Submit a thorough description of the new
Got an idea for a new feature in PROJ.4? Submit a thorough description of the new
feature in the [issue tracker](https://github.com/OSGeo/PROJ/issues). Please
include any technical documents that can help the developer make the new feature a
reality. An example of this could be a publicly available academic paper that
@@ -67,13 +67,13 @@ Note that not all feature requests are accepted.
## Write documentation
PROJ is in dire need of better documentation. Any contributions of documentation
are greatly appreciated. The PROJ documentation is available on [proj.org](https://proj.org).
PROJ.4 is in dire need of better documentation. Any contributions of documentation
are greatly appreciated. The PROJ.4 documentation is available on [proj.org](https://proj.org).
The website is generated with [Sphinx](http://www.sphinx-doc.org/en/stable/). Contributions
to the documentation should be made as [Pull Requests](https://github.com/OSGeo/PROJ/pulls)
on GitHub.
If you intend to document one of PROJ's supported projections please use the
If you intend to document one of PROJ.4's supported projections please use the
[Mercator projection](https://proj.org/operations/projections/merc.html) as a template.
@@ -83,7 +83,7 @@ See [Code Contributions](https://proj.org/community/code_contributions.html)
#### Legalese
Committers are the front line gatekeepers to keep the code base clear of improperly contributed code.
It is important to the PROJ users, developers and the OSGeo foundation to avoid contributing any
It is important to the PROJ.4 users, developers and the OSGeo foundation to avoid contributing any
code to the project without it being clearly licensed under the project license.
Generally speaking the key issues are that those providing code to be included in the repository
+9 -9
View File
@@ -1,20 +1,19 @@
All source, data files and other contents of the PROJ package are
All source, data files and other contents of the PROJ.4 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. Frank Warmerdam placed
everything under the following MIT style license because he believed it is
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
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.
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.
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.
--------------
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
@@ -32,3 +31,4 @@ Copyright information can be found in source files.
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_gridshift.c: rework the translation of nadgrids parameters
src/pj_apply_gridshit.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.
+7 -8
View File
@@ -1,7 +1,7 @@
##
# OSGeo/PROJ
FROM ubuntu:20.04 as builder
FROM ubuntu:18.04 as builder
MAINTAINER Howard Butler <howard@hobu.co>
@@ -9,25 +9,24 @@ ARG DESTDIR="/build"
# Setup build env
RUN apt-get update -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --fix-missing --no-install-recommends \
&& apt-get install -y --fix-missing --no-install-recommends \
software-properties-common build-essential ca-certificates \
cmake wget unzip \
zlib1g-dev libsqlite3-dev sqlite3 libcurl4-gnutls-dev \
make cmake wget unzip libtool automake \
zlib1g-dev libsqlite3-dev pkg-config sqlite3 libcurl4-gnutls-dev \
libtiff5-dev
COPY . /PROJ
RUN cd /PROJ \
&& mkdir build \
&& cd build \
&& cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \
&& ./autogen.sh \
&& ./configure --prefix=/usr \
&& make -j$(nproc) \
&& make install
FROM ubuntu:20.04 as runner
FROM ubuntu:18.04 as runner
RUN date
+68 -2
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 src/iso19111/operation include/proj src/proj.h src/proj_experimental.h src/general_doc.dox src/filemanager.cpp src/networkfilemanager.cpp src/4D_api.cpp
INPUT = src/iso19111 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,6 +1033,13 @@ 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
@@ -1440,6 +1447,17 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
# Note that when changing this option you need to delete any form_*.png files in
# the HTML output directory before the changes have effect.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
@@ -1718,6 +1736,16 @@ LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
# code with syntax highlighting in the LaTeX output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
@@ -1852,7 +1880,7 @@ MAN_LINKS = NO
# captures the structure of the code including all documentation.
# The default value is: NO.
GENERATE_XML = YES
GENERATE_XML = NO
# 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
@@ -2097,6 +2125,15 @@ EXTERNAL_PAGES = YES
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
# NO turns the diagrams off. Note that this option also works with HAVE_DOT
# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
# The default value is: YES.
CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
@@ -2139,6 +2176,23 @@ HAVE_DOT = YES
DOT_NUM_THREADS = 0
# When you want a differently looking font in the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make
# sure dot is able to find the font, which can be done by putting it in a
# standard location or by setting the DOTFONTPATH environment variable or by
# setting DOT_FONTPATH to the directory containing the font.
# The default value is: Helvetica.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTNAME = Helvetica
# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
# dot graphs.
# Minimum value: 4, maximum value: 24, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTSIZE = 10
# By default doxygen will tell dot to use the default font as specified with
# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
# the path where dot can find it using this tag.
@@ -2348,6 +2402,18 @@ DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not seem
# to support this out of the box.
#
# Warning: Depending on the platform used, enabling this option may lead to
# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_TRANSPARENT = NO
# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+37 -42
View File
@@ -31,12 +31,28 @@ list. The PROJ PSC guidelines describes the rules for passing a motion.
-------------------------------------------------------------------------------
In case of a un-planned maintenance release, make sure that version numbers are
properly updated: see 3.1
propertly updated: see 3.1
For each release version, increment PROJ_SOVERSION in CMakeLists.txt if the
ABI is not backwards compatible, i.e. any interfaces have been removed, or
changed since the last release. See also:
https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B
Determine the ABI version number. It consists of "current:revision:age". Follow
the steps below to determine the next ABI version number:
- If the library source code has changed at all since the last update,
then increment revision (c:r:a becomes c:r+1:a).
- If any interfaces have been added, removed, or changed since the last
update, increment current, and set revision to 0.
- If any interfaces have been added since the last public release, then
increment age.
- If any interfaces have been removed since the last public release, then
set age to 0.
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)
*Commit the changes to master.*
@@ -75,27 +91,15 @@ slightly since not all authors has properly configured their names in git.
*Commit the changes to master.*
1.4 Update `CITATION.cff` and `CITATION`
1.4 Update `CITATION`
-------------------------------------------------------------------------------
Update the "version" and "date-released" fields in `CITATION.cff`. The
"doi" does not need to be updated.
If needed, update the two instances of year in `CITATION`.
If needed, update the year in `CITATION`.
*Commit the changes to master.*
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
1.5 Create maintenance branch
-------------------------------------------------------------------------------
*Skip this step if you are preparing a patch release or RC2 and later.*
@@ -113,20 +117,17 @@ subsequently cherry-picked to the maintenance branch.
*Push branch upstream.*
1.7 Prepare and upload archives
1.6 Prepare and upload archives
-------------------------------------------------------------------------------
Checkout the GitHub repo to an isolated local directory to package files only
tracked in git. Then, run CMake and build source distributions:
Run autoconf and configure the build:
```
BRANCH_NAME=master
git clone --depth 1 --branch $BRANCH_NAME \
https://github.com/OSGeo/PROJ.git PROJ-$BRANCH_NAME
cd PROJ-$BRANCH_NAME
mkdir _build && cd _build
cmake -D BUILD_TESTING=OFF ..
cmake --build . --target dist
./autogen.sh
mkdir build
cd build
../configure
make dist
```
Rename the archives and generate MD5 sum files:
@@ -141,19 +142,19 @@ md5 proj-x.y.zRCn.zip > proj-x.y.zRCn.zip.md5
Upload to the OSGeo download server:
```
scp proj-x.y.zRCn.* warmerdam@upload.osgeo.org:/osgeo/download/proj
scp proj-x.y.zRCn.* warmerdam@download.osgeo.org:/osgeo/download/proj
```
Adjust version numbers and usernames accordingly.
1.8 Announce the release candidate
1.7 Announce the release candidate
-------------------------------------------------------------------------------
Announce the release candidate on the PROJ mailing list.
1.9 Promotion to final release
1.8 Promotion to final release
-------------------------------------------------------------------------------
When you are confident that the latest release candidate is ready for promotion
@@ -175,18 +176,10 @@ See step 1.6 above. Do not rename the archives with RC postfixes.
------------------------------------------------------------------------------
- Add the release notes from `NEWS` to `docs/source/news.rst`
These vim substitutions are helpfull when converting NEWS to rst:
:s!(\#\(\d\{4}\))!(`\#\1 <https://github.com/OSGeo/PROJ/issues/\1>`_)!
:s/^o/*/
- Update download links in `docs/source/download.rst`
- Update `$TRAVIS_BRANCH` in `travis\after_success.sh` to new maintenance
branch.
*Commit the changes to master and cherry-pick into maintenance branch.*
When pushed upstream the website will be update to the current version.
@@ -231,11 +224,13 @@ PROJ uses [semantic versioning](http://semver.org/). Depending on the changes
in the release will be either a major, minor or patch release. Update the
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
- docs/source/conf.py: Update version number
*Commit changes. Either to master or maintenance branch depending on the nature
+175 -9
View File
@@ -1,16 +1,182 @@
Basic Installation
==================
These are generic installation instructions. See details online at
https://proj.org/install.html
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
PROJ can be built using a modern C/C++ compiler with CMake. From the source
directory, use the following commands to configure, build and install PROJ:
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
mkdir build
cd build
cmake ..
cmake --build .
cmake --build . --target install
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c99 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=PATH' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.
+21
View File
@@ -0,0 +1,21 @@
SUBDIRS = include src man data cmake
DIST_SUBDIRS = include src man data cmake test
EXTRA_DIST = CMakeLists.txt CITATION README.md
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = proj.pc
AUTOMAKE_OPTIONS = dist-zip
ACLOCAL_AMFLAGS = -I m4
check-local:
cd test; $(MAKE) check
all-local: README
README: README.md
fgrep -v "[![" $< > $@
clean-local:
$(RM) README
+5 -1364
View File
File diff suppressed because it is too large Load Diff
+3 -5
View File
@@ -1,16 +1,14 @@
# PROJ
[![Travis Status](https://app.travis-ci.com/OSGeo/PROJ.svg?branch=master)](https://app.travis-ci.com/github/OSGeo/PROJ)
[![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) -->
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5884394.svg)](https://doi.org/10.5281/zenodo.5884394)
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.
-76
View File
@@ -1,76 +0,0 @@
branches:
except:
- /(cherry-pick-)?backport-\d+-to-/
environment:
matrix:
# VS 2015
- platform: x86
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
BUILD_SHARED_LIBS: OFF
CMAKE_GENERATOR: Ninja
# VS 2017
# - platform: x64
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# BUILD_SHARED_LIBS: ON
# CMAKE_GENERATOR: Ninja
shallow_clone: true
cache:
- C:\Tools\vcpkg\installed\ -> appveyor.yml
build_script:
- set VCPKG_ROOT=C:\Tools\vcpkg
- set VCPKG_INSTALLED=%VCPKG_ROOT%\installed\%platform%-windows
- set VCPKG_DEFAULT_TRIPLET=%platform%-windows
- set VCPKG_DEFAULT_HOST_TRIPLET=%platform%-windows
# If cached directory does not exist, update vcpkg and install dependencies
# The checkout of a precise sha1 for VS2015 is a workaround for https://github.com/microsoft/vcpkg/issues/11666
- if not exist %VCPKG_INSTALLED%\bin (
cd "%VCPKG_ROOT%" &
git fetch --depth=1 origin 2023.04.15 &
(if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (git -c advice.detachedHead=false checkout FETCH_HEAD)) &
.\bootstrap-vcpkg.bat -disableMetrics &
vcpkg install sqlite3[core,tool] tiff curl --triplet=%platform%-windows &
cd %APPVEYOR_BUILD_FOLDER%
)
- dir %VCPKG_INSTALLED%\bin
- set PATH=%VCPKG_INSTALLED%\tools;%PATH%
# See https://www.appveyor.com/docs/lang/cpp/
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if %platform%==x86
(call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86)
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017"
(call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %platform% )
#
- set PROJ_BUILD=%APPVEYOR_BUILD_FOLDER%\build
- mkdir %PROJ_BUILD%
- cd %PROJ_BUILD%
- set PROJ_DIR=%APPVEYOR_BUILD_FOLDER%\proj_dir
- >-
cmake ..
-D CMAKE_BUILD_TYPE=Release
-D BUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%"
-D CMAKE_C_FLAGS="/WX"
-D CMAKE_CXX_FLAGS="/WX"
-D CMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake
-D CMAKE_INSTALL_PREFIX="%PROJ_DIR%"
- ninja -v
- ninja install
- dir %PROJ_DIR%\bin
test_script:
- echo test_script
- set PROJ_DATA=%PROJ_DIR%\share\proj
- cd %PROJ_BUILD%
- ctest --output-on-failure -C Release
- set BUILD_MODE=shared
- if BUILD_SHARED_LIBS==OFF (set BUILD_MODE=static)
- call %APPVEYOR_BUILD_FOLDER%\test\postinstall\test_cmake.bat %PROJ_DIR% %BUILD_MODE%
# Executables in %PROJ_DIR%\bin need runtime from %VCPKG_INSTALLED%\bin
- set PATH=%PROJ_DIR%\bin;%VCPKG_INSTALLED%\bin;%PATH%
- proj
deploy: off
Executable
+41
View File
@@ -0,0 +1,41 @@
#!/bin/sh
#
# Autotools boostrapping script
#
giveup()
{
echo
echo " Something went wrong, giving up!"
echo
exit 1
}
OSTYPE=`uname -s`
for libtoolize in glibtoolize libtoolize; do
LIBTOOLIZE=`which $libtoolize 2>/dev/null`
if test "$LIBTOOLIZE"; then
break;
fi
done
#AMFLAGS="--add-missing --copy --force-missing"
AMFLAGS="--add-missing --copy"
if test "$OSTYPE" = "IRIX" -o "$OSTYPE" = "IRIX64"; then
AMFLAGS=$AMFLAGS" --include-deps";
fi
echo "Running aclocal"
aclocal -I ./m4 || giveup
echo "Running autoheader"
autoheader || giveup
echo "Running libtoolize"
$LIBTOOLIZE --force --copy || giveup
echo "Running automake"
automake $AMFLAGS # || giveup
echo "Running autoconf"
autoconf || giveup
echo "======================================"
echo "Now you are ready to run './configure'"
echo "======================================"
+9 -18
View File
@@ -64,6 +64,9 @@ string (TOLOWER "${PROJECT_LEGACY_NAME}" PROJECT_LEGACY_LOWER)
#
# At some more distant date, the PROJ4::proj target will be retired.
#
# To support this change, the CACHE variables PROJ_CMAKE_SUBDIR (and
# CMAKECONFIGDIR) is now the "Parent of directory to install cmake
# config files into".
#
# All this messiness is confined to
#
@@ -90,19 +93,9 @@ else ()
set (CMAKE_CROSSCOMPILING_STR "OFF")
endif ()
# If this is a regular build (PROJECT_SOURCE_DIR == CMAKE_SOURCE_DIR), export legacy files by default
# Otherwise, this is embedded in another project, only export PROJ target
# cf https://github.com/OSGeo/gdal/issues/5646
string(COMPARE EQUAL "${PROJECT_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}" DEFAULT_VAL)
option(INSTALL_LEGACY_CMAKE_FILES "Install PROJ4 legacy target CMake files" ${DEFAULT_VAL})
set(PROJECT_LIST ${PROJECT_NAME})
if (INSTALL_LEGACY_CMAKE_FILES)
set(PROJECT_LIST "${PROJECT_LIST}" "${PROJECT_LEGACY_NAME}")
endif ()
foreach (PROJECT_VARIANT_NAME IN LISTS PROJECT_LIST)
foreach (PROJECT_VARIANT_NAME ${PROJECT_NAME} ${PROJECT_LEGACY_NAME})
string (TOLOWER "${PROJECT_VARIANT_NAME}" PROJECT_VARIANT_LOWER)
set (CMAKECONFIGSUBDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_VARIANT_LOWER}")
set (CMAKECONFIGSUBDIR "${CMAKECONFIGDIR}/${PROJECT_VARIANT_LOWER}")
# proj-config.cmake for the install tree. It's installed in
# ${CMAKECONFIGSUBDIR} and @PROJECT_ROOT_DIR@ is the relative
# path to the root from there. (Note that the whole install tree can
@@ -127,11 +120,9 @@ foreach (PROJECT_VARIANT_NAME IN LISTS PROJECT_LIST)
NAMESPACE ${PROJECT_NAME}::
FILE ${PROJECT_NAME_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGSUBDIR}")
if (INSTALL_LEGACY_CMAKE_FILES)
install(EXPORT targets
NAMESPACE ${PROJECT_LEGACY_NAME}::
FILE ${PROJECT_LEGACY_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGSUBDIR}")
endif()
install(EXPORT targets
NAMESPACE ${PROJECT_LEGACY_NAME}::
FILE ${PROJECT_LEGACY_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGSUBDIR}")
endforeach ()
-64
View File
@@ -1,64 +0,0 @@
#
# CMake module to support ccache (or clcache for MSVC)
#
# Copyright (c) 2021, Mike Taves <mwtoews at gmail dot com>
#
# Usage:
# Add "include(Ccache)" to CMakeLists.txt and enable
# using the option -D USE_CCACHE=ON
cmake_minimum_required(VERSION 3.4)
option(USE_CCACHE
"Use ccache (or clcache for MSVC) to compile C/C++ objects" OFF)
if(NOT USE_CCACHE)
# stop here and return to including file
return()
endif()
# Search priority:
# 1. ccache for many compilers except MSVC
# 2. clcache for MSVC
find_program(CCACHE_PROGRAM NAMES ccache clcache)
if(CCACHE_PROGRAM)
message(STATUS "Configuring ccache with ${CCACHE_PROGRAM}")
if(CMAKE_GENERATOR STREQUAL "Xcode")
# see https://crascit.com/2016/04/09/using-ccache-with-cmake/
set(C_LAUNCHER "${CCACHE_PROGRAM}")
set(CXX_LAUNCHER "${CCACHE_PROGRAM}")
set(CCACHE_LAUNCH_C ${CMAKE_BINARY_DIR}/ccache-c)
set(CCACHE_LAUNCH_CXX ${CMAKE_BINARY_DIR}/ccache-cxx)
file(WRITE "${CCACHE_LAUNCH_C}" "\
#!/bin/sh
shift
exec \"${C_LAUNCHER}\" \"${CMAKE_C_COMPILER}\" \"$@\"
")
file(WRITE "${CCACHE_LAUNCH_CXX}" "\
#!/bin/sh
shift
exec \"${CXX_LAUNCHER}\" \"${CMAKE_CXX_COMPILER}\" \"$@\"
")
# Note: file(CHMOD) introduced in CMake 3.19
execute_process(
COMMAND chmod a+rx
"${CCACHE_LAUNCH_C}"
"${CCACHE_LAUNCH_CXX}"
)
# Set Xcode project attributes to route compilation and linking
# through the wrapper scripts
set(CMAKE_XCODE_ATTRIBUTE_CC "${CCACHE_LAUNCH_C}")
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CCACHE_LAUNCH_CXX}")
set(CMAKE_XCODE_ATTRIBUTE_LD "${CCACHE_LAUNCH_C}")
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CCACHE_LAUNCH_CXX}")
else()
# Most other generators (Unix Makefiles, Ninja, etc.)
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
endif()
else()
message(WARNING "Ccache was requested, but no program was not found")
endif()
+14
View File
@@ -0,0 +1,14 @@
EXTRA_DIST = CMakeLists.txt \
ProjInstallPath.cmake \
ProjUtilities.cmake \
proj_config.cmake.in \
ProjConfig.cmake \
ProjMac.cmake \
ProjTest.cmake \
ProjVersion.cmake \
policies.cmake \
proj_config.cmake.in \
project-config-version.cmake.in \
project-config.cmake.in \
FindSqlite3.cmake
+15 -17
View File
@@ -7,30 +7,28 @@
# (See accompanying file LICENSE_1_0.txt or copy at
# https://www.boost.org/LICENSE_1_0.txt)
################################################################################
include(CheckIncludeFiles)
include(CheckLibraryExists)
include(CheckFunctionExists)
# if C flags have -Werror, temporarily remove these while running some checks
string(FIND "${CMAKE_C_FLAGS}" "-Werror" FIND_WERROR)
if(FIND_WERROR GREATER_EQUAL 0)
# we must be careful about not matching -Werror=something, so let's append
# a space at the end of CMAKE_C_FLAGS and match -Werror with a trailing space
string(REPLACE "-Werror " " " _tmp_CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
set(_prev_CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_C_FLAGS "${_tmp_CMAKE_C_FLAGS}")
endif()
# check needed include file
check_include_files(dlfcn.h HAVE_DLFCN_H)
check_include_files(inttypes.h HAVE_INTTYPES_H)
check_include_files(memory.h HAVE_MEMORY_H)
check_include_files(stdint.h HAVE_STDINT_H)
check_include_files(stdlib.h HAVE_STDLIB_H)
check_include_files(string.h HAVE_STRING_H)
check_include_files(sys/stat.h HAVE_SYS_STAT_H)
check_include_files(sys/types.h HAVE_SYS_TYPES_H)
check_include_files(unistd.h HAVE_UNISTD_H)
check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
check_function_exists(localeconv HAVE_LOCALECONV)
check_function_exists(strerror HAVE_STRERROR)
if(NOT WIN32)
check_library_exists(dl dladdr "" HAVE_LIBDL)
check_library_exists(m exp "" HAVE_LIBM)
endif()
# restore CMAKE_C_FLAGS as before
if(FIND_WERROR GREATER_EQUAL 0)
set(CMAKE_C_FLAGS "${_prev_CMAKE_C_FLAGS}")
check_library_exists(dl dladdr "" HAVE_LIBDL)
# check libm need on unix
check_library_exists(m ceil "" HAVE_LIBM)
endif()
set(PACKAGE "proj")
+56
View File
@@ -18,3 +18,59 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX ${DEFAULT_PROJ_ROOT_DIR}
CACHE PATH "Proj install prefix" FORCE)
endif()
#TODO
# for data install testing the PROJ_LIB envVar
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
if(UNIX)
include(GNUInstallDirs)
set(DEFAULT_BIN_SUBDIR ${CMAKE_INSTALL_BINDIR})
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_CMAKE_SUBDIR ${CMAKE_INSTALL_LIBDIR}/cmake)
else()
# Common locations for Unix and Mac OS X
set(DEFAULT_BIN_SUBDIR bin)
set(DEFAULT_LIB_SUBDIR lib)
set(DEFAULT_DATA_SUBDIR share/proj)
set(DEFAULT_DOC_SUBDIR doc/proj)
set(DEFAULT_INCLUDE_SUBDIR include)
set(DEFAULT_DOC_SUBDIR share/doc/proj)
set(DEFAULT_CMAKE_SUBDIR lib/cmake)
endif()
# Locations are changeable by user to customize layout of PROJ installation
# (default values are platform-specific)
set(PROJ_BIN_SUBDIR ${DEFAULT_BIN_SUBDIR} CACHE STRING
"Subdirectory where executables will be installed")
set(PROJ_LIB_SUBDIR ${DEFAULT_LIB_SUBDIR} CACHE STRING
"Subdirectory where libraries will be installed")
set(PROJ_INCLUDE_SUBDIR ${DEFAULT_INCLUDE_SUBDIR} CACHE STRING
"Subdirectory where header files will be installed")
set(PROJ_DATA_SUBDIR ${DEFAULT_DATA_SUBDIR} CACHE STRING
"Subdirectory where data will be installed")
set(PROJ_DOC_SUBDIR ${DEFAULT_DOC_SUBDIR} CACHE STRING
"Subdirectory where doc will be installed")
set(PROJ_CMAKE_SUBDIR ${DEFAULT_CMAKE_SUBDIR} CACHE STRING
"Parent of subdirectory where cmake proj-config file will be installed")
# Mark *DIR variables as advanced and dedicated to use by power-users only.
mark_as_advanced(
PROJ_ROOT_DIR
PROJ_BIN_SUBDIR
PROJ_LIB_SUBDIR
PROJ_INCLUDE_SUBDIR
PROJ_DATA_SUBDIR
PROJ_DOC_SUBDIR
PROJ_CMAKE_SUBDIR
)
set(DEFAULT_BINDIR "${PROJ_BIN_SUBDIR}")
set(DEFAULT_LIBDIR "${PROJ_LIB_SUBDIR}")
set(DEFAULT_DATADIR "${PROJ_DATA_SUBDIR}")
set(DEFAULT_DOCDIR "${PROJ_DOC_SUBDIR}")
set(DEFAULT_INCLUDEDIR "${PROJ_INCLUDE_SUBDIR}")
set(DEFAULT_CMAKEDIR "${PROJ_CMAKE_SUBDIR}")
+1 -3
View File
@@ -22,9 +22,7 @@ if(APPLE)
option(BUILD_FRAMEWORKS_AND_BUNDLE
"if set to ON, build a library framework and application bundle, \
otherwise install classical UNIX bin/lib" OFF)
if(BUILD_FRAMEWORKS_AND_BUNDLE)
set(CMAKE_INSTALL_BINDIR ${BUNDLEDIR})
endif()
set(DEFAULT_BINDIR ${BUNDLEDIR})
print_variable(BUNDLEDIR)
print_variable(PROJ_INSTALL_NAME_DIR)
print_variable(FRAMEWORKDIR)
-28
View File
@@ -1,28 +0,0 @@
#
# 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})
+2 -24
View File
@@ -6,7 +6,7 @@ function(proj_test_set_properties TESTNAME)
set_property(TEST ${TESTNAME}
PROPERTY ENVIRONMENT
"PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES"
"PROJ_DATA=${PROJ_BINARY_DIR}/data/for_tests")
"PROJ_LIB=${PROJ_BINARY_DIR}/data/for_tests")
endfunction()
function(proj_add_test_script_sh SH_NAME BIN_USE)
@@ -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_BINARY_DIR}/test/cli
WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/data
COMMAND bash ${PROJ_SOURCE_DIR}/test/cli/${SH_NAME}
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${${BIN_USE}}
)
@@ -36,25 +36,3 @@ 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 remove_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir)
function(proj_add_gie_network_dependent_test TESTNAME TESTCASE)
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_DATA=${PROJ_BINARY_DIR}/data/for_tests")
endfunction()
+1 -66
View File
@@ -14,8 +14,7 @@
# Macros in this module:
#
# print_variable
# proj_target_output_name
# configure_proj_pc
# proj_target_output_name:
#
################################################################################
@@ -61,67 +60,3 @@ 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(set_variable_from_rel_or_absolute_path var root rel_or_abs_path)
if(IS_ABSOLUTE "${rel_or_abs_path}")
set(${var} "${rel_or_abs_path}" PARENT_SCOPE)
else()
set(${var} "${root}/${rel_or_abs_path}" PARENT_SCOPE)
endif()
endfunction()
function(configure_proj_pc)
set(prefix ${CMAKE_INSTALL_PREFIX})
set_variable_from_rel_or_absolute_path("libdir" "$\{prefix\}" "${CMAKE_INSTALL_LIBDIR}")
set_variable_from_rel_or_absolute_path("includedir" "$\{prefix\}" "${CMAKE_INSTALL_INCLUDEDIR}")
set_variable_from_rel_or_absolute_path("datarootdir" "$\{prefix\}" "${CMAKE_INSTALL_DATAROOTDIR}")
set(datadir "$\{datarootdir\}")
set(PACKAGE "proj")
set(VERSION ${PROJ_VERSION})
# Build strings of dependencies (Libs.private, Requires.private)
set(EXTRA_LIBS "${CMAKE_THREAD_LIBS_INIT}")
set(EXTRA_REQUIRES "")
option(USE_PKGCONFIG_REQUIRES "Use 'Requires' instead 'Libs' in proj.pc" ON)
macro(add_module_or_libs MODULE)
if(USE_PKGCONFIG_REQUIRES)
list(APPEND EXTRA_REQUIRES "${MODULE}")
else()
list(APPEND EXTRA_LIBS "${ARGN}")
endif()
endmacro()
add_module_or_libs(sqlite3 -lsqlite3)
if(TIFF_ENABLED)
add_module_or_libs(libtiff-4 -ltiff)
endif()
if(CURL_ENABLED)
add_module_or_libs(libcurl -lcurl)
endif()
if(WIN32 AND NOT MINGW)
list(APPEND EXTRA_LIBS -lole32 -lshell32)
else()
set(cxx_libs "${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}")
list(REMOVE_ITEM cxx_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} nonempty)
foreach(lib IN LISTS cxx_libs)
list(APPEND EXTRA_LIBS "-l${lib}")
endforeach()
endif()
if(HAVE_LIBM AND NOT "-lm" IN_LIST EXTRA_LIBS)
list(APPEND EXTRA_LIBS -lm)
endif()
if(HAVE_LIBDL)
list(APPEND EXTRA_LIBS -ldl)
endif()
# Join list with a space; list(JOIN) added CMake 3.12
string(REPLACE ";" " " EXTRA_LIBS "${EXTRA_LIBS}")
string(REPLACE ";" " " EXTRA_REQUIRES "${EXTRA_REQUIRES}")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/proj.pc.in
${CMAKE_CURRENT_BINARY_DIR}/proj.pc
@ONLY)
endfunction()
+36
View File
@@ -1,12 +1,45 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
/* Define to 1 if you have the `dl' library (-ldl). */
#cmakedefine HAVE_LIBDL 1
/* Define to 1 if you have the `m' library (-lm). */
#cmakedefine HAVE_LIBM 1
/* Define to 1 if you have localeconv */
#cmakedefine HAVE_LOCALECONV 1
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H 1
/* Define to 1 if you have the `strerror' function. */
#cmakedefine HAVE_STRERROR 1
/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
/* Name of package */
#cmakedefine PACKAGE "${PACKAGE}"
@@ -25,5 +58,8 @@
/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION "${PACKAGE_VERSION}"
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
/* Version number of package */
#cmakedefine VERSION "${VERSION}"
+3 -48
View File
@@ -7,58 +7,13 @@
# @PROJECT_VARIANT_NAME@_LIBRARY_DIRS = /usr/local/lib
# @PROJECT_VARIANT_NAME@_BINARY_DIRS = /usr/local/bin
# @PROJECT_VARIANT_NAME@_VERSION = 4.9.1 (for example)
if(@PROJECT_VARIANT_NAME@ STREQUAL "PROJ4")
message(DEPRECATION "find_package(PROJ4) is deprecated and will be retired soon. Please use find_package(PROJ) instead.")
endif()
include(CMakeFindDependencyMacro)
# We cannot have a find_dependency() call between cmake_policy(PUSH)/cmake_policy(POP)
# because find_dependency() issues a return() on failure, which results in
# imbalanced push/pop
# Cf https://gitlab.kitware.com/cmake/cmake/-/issues/17612
cmake_policy(PUSH)
cmake_policy(SET CMP0012 NEW)
if("@ENABLE_TIFF@")
set(PROJ_CONFIG_FIND_TIFF_DEP ON)
endif()
if("@CURL_ENABLED@")
set(PROJ_CONFIG_FIND_CURL_DEP ON)
endif()
cmake_policy(POP)
if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP)
find_dependency(TIFF)
endif()
if(DEFINED PROJ_CONFIG_FIND_CURL_DEP)
# Chainload CURL usage requirements
find_dependency(CURL)
# Target CURL::libcurl only defined since CMake 3.12
if(NOT TARGET CURL::libcurl)
add_library(CURL::libcurl INTERFACE IMPORTED)
set_target_properties(CURL::libcurl PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CURL_LIBRARIES}"
)
endif()
endif()
function(set_variable_from_rel_or_absolute_path var root rel_or_abs_path)
if(IS_ABSOLUTE "${rel_or_abs_path}")
set(${var} "${rel_or_abs_path}" PARENT_SCOPE)
else()
set(${var} "${root}/${rel_or_abs_path}" PARENT_SCOPE)
endif()
endfunction()
# Tell the user project where to find our headers and libraries
get_filename_component (_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
get_filename_component (_ROOT "${_DIR}/@PROJECT_ROOT_DIR@" ABSOLUTE)
# Use _ROOT as prefix here for the possibility of relocation after installation.
set_variable_from_rel_or_absolute_path("@PROJECT_VARIANT_NAME@_INCLUDE_DIRS" "${_ROOT}" "@CMAKE_INSTALL_INCLUDEDIR@")
set_variable_from_rel_or_absolute_path("@PROJECT_VARIANT_NAME@_LIBRARY_DIRS" "${_ROOT}" "@CMAKE_INSTALL_LIBDIR@")
set_variable_from_rel_or_absolute_path("@PROJECT_VARIANT_NAME@_BINARY_DIRS" "${_ROOT}" "@CMAKE_INSTALL_BINDIR@")
set (@PROJECT_VARIANT_NAME@_INCLUDE_DIRS "${_ROOT}/@INCLUDEDIR@")
set (@PROJECT_VARIANT_NAME@_LIBRARY_DIRS "${_ROOT}/@LIBDIR@")
set (@PROJECT_VARIANT_NAME@_BINARY_DIRS "${_ROOT}/@BINDIR@")
set (@PROJECT_VARIANT_NAME@_LIBRARIES @PROJECT_VARIANT_NAME@::proj)
# Read in the exported definition of the library
-65
View File
@@ -1,65 +0,0 @@
# install_manifest.txt is created in the top build tree, not the project one
if (NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_BINARY_DIR@/install_manifest.txt\"")
endif()
set(uninstall_file_list "@CMAKE_BINARY_DIR@/install_manifest.txt")
if(EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest_extra.txt")
list(APPEND uninstall_file_list "@CMAKE_CURRENT_BINARY_DIR@/install_manifest_extra.txt")
endif()
set(dir_list)
foreach (manifest_file IN ITEMS ${uninstall_file_list})
file(READ "${manifest_file}" files)
string(REGEX REPLACE "\n$" "" files "${files}")
string(REGEX REPLACE "\n" ";" files "${files}")
list(REVERSE files)
foreach (file ${files})
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
if (IS_DIRECTORY "$ENV{DESTDIR}${file}")
list(APPEND dir_list "${file}")
elseif (EXISTS "$ENV{DESTDIR}${file}")
get_filename_component(dir "${file}" DIRECTORY)
list(APPEND dir_list "${dir}")
execute_process(
COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}"
OUTPUT_VARIABLE rm_out
RESULT_VARIABLE rm_retval
)
if(NOT ${rm_retval} EQUAL 0)
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
endif (NOT ${rm_retval} EQUAL 0)
else ()
message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
endif ()
endforeach(file)
endforeach()
while(NOT "${dir_list}" STREQUAL "")
list(REMOVE_DUPLICATES dir_list)
set(new_dir_list)
foreach (file IN ITEMS ${dir_list})
if (IS_DIRECTORY "$ENV{DESTDIR}${file}" AND "${file}" MATCHES "@CMAKE_INSTALL_PREFIX@[/\\].+")
file(GLOB file_list "$ENV{DESTDIR}${file}/*")
list(LENGTH file_list file_list_len)
# Only remove empty directories
if(file_list_len EQUAL 0)
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
execute_process(
COMMAND @CMAKE_COMMAND@ -E remove_directory "$ENV{DESTDIR}${file}"
OUTPUT_VARIABLE rm_out
RESULT_VARIABLE rm_retval
)
if(${rm_retval} EQUAL 0)
get_filename_component(upper_dir "${file}" DIRECTORY)
list(APPEND new_dir_list "${upper_dir}")
else()
message(STATUS "Problem when removing directory \"$ENV{DESTDIR}${file}\"")
endif()
endif()
endif()
endforeach()
set(dir_list "${new_dir_list}")
endwhile()
+363
View File
@@ -0,0 +1,363 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT([PROJ], [7.0.2],
[https://github.com/OSGeo/PROJ/issues], proj, [https://proj.org])
AC_CONFIG_MACRO_DIR([m4])
AC_LANG(C)
AC_CONFIG_AUX_DIR([.])
AM_INIT_AUTOMAKE([subdir-objects])
AM_CONFIG_HEADER(src/proj_config.h)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CC_C99
AC_PROG_CXX
AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AM_PROG_LIBTOOL
PKG_PROG_PKG_CONFIG
dnl Enable as much warnings as possible
AX_CFLAGS_WARN_ALL(C_WFLAGS)
AX_CXXFLAGS_WARN_ALL(CXX_WFLAGS)
dnl For ICC: it needs -we10006 instead of -Werror to turn unknown options to errors
dnl Some gcc/clang versions might succeed on this test, so also include -Werror in ERROR_ON_UNKNOWN_OPTIONS
AX_CHECK_COMPILE_FLAG([-Werror -we10006],[ERROR_ON_UNKNOWN_OPTIONS="-Werror -we10006"],[ERROR_ON_UNKNOWN_OPTIONS="-Werror"])
dnl A few ICC warnings to turn off
dnl warning #188: enumerated type mixed with another type (needed on libcsf)
dnl warning #1684: conversion from pointer to same-sized integral type (potential portability problem) (needed on frmts/mrf)
dnl warning #2259: non-pointer conversion from "size_t={unsigned long}" to "int" may lose significant bits
dnl warning #2304: non-explicit constructor with single argument may cause implicit type conversion
dnl warning #3280: declaration hides member
dnl remark #11074: Inlining inhibited by limit max-size
dnl remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
AX_CHECK_COMPILE_FLAG([-diag-disable 188,1684,2259,2304,3280,11074,11076],[C_WFLAGS="$C_WFLAGS -diag-disable 188,1684,2259,2304,3280,11074,11076" CXX_WFLAGS="$CXX_WFLAGS -diag-disable 188,1684,2259,2304,3280,11074,11076"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wextra],[C_WFLAGS="$C_WFLAGS -Wextra" CXX_WFLAGS="$CXX_WFLAGS -Wextra"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Winit-self],[C_WFLAGS="$C_WFLAGS -Winit-self" CXX_WFLAGS="$CXX_WFLAGS -Winit-self"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wunused-parameter], [C_WFLAGS="$C_WFLAGS -Wunused-parameter" CXX_WFLAGS="$CXX_WFLAGS -Wunused-parameter" NO_UNUSED_PARAMETER_FLAG="-Wno-unused-parameter"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [C_WFLAGS="$C_WFLAGS -Wmissing-prototypes"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wmissing-declarations], [C_WFLAGS="$C_WFLAGS -Wmissing-declarations"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wformat], [C_WFLAGS="$C_WFLAGS -Wformat" CXX_WFLAGS="$CXX_WFLAGS -Wformat"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wformat -Werror=format-security -Wno-format-nonliteral], [C_WFLAGS="$C_WFLAGS -Werror=format-security -Wno-format-nonliteral" CXX_WFLAGS="$CXX_WFLAGS -Werror=format-security -Wno-format-nonliteral"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wshorten-64-to-32], [C_WFLAGS="$C_WFLAGS -Wshorten-64-to-32" CXX_WFLAGS="$CXX_WFLAGS -Wshorten-64-to-32"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wlogical-op], [C_WFLAGS="$C_WFLAGS -Wlogical-op" CXX_WFLAGS="$CXX_WFLAGS -Wlogical-op" NO_LOGICAL_OP_FLAG="-Wno-logical-op"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wshadow], [C_WFLAGS="$C_WFLAGS -Wshadow" CXX_WFLAGS="$CXX_WFLAGS -Wshadow"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl Error out on things that will fail with MSVC
AX_CHECK_COMPILE_FLAG([-Werror=vla], [C_WFLAGS="$C_WFLAGS -Werror=vla" CXX_WFLAGS="$CXX_WFLAGS -Werror=vla"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Werror=declaration-after-statement], [C_WFLAGS="$C_WFLAGS -Wdeclaration-after-statement"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl -Wclobbered is not reliable on most gcc versions
dnl AX_CHECK_COMPILE_FLAG([-Wno-clobbered], [C_WFLAGS="$C_WFLAGS -Wno-clobbered" CXX_WFLAGS="$CXX_WFLAGS -Wno-clobbered"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl Warn when macros __TIME__, __DATE__ or __TIMESTAMP__ are encountered as they might prevent bit-wise-identical reproducible compilations.
AX_CHECK_COMPILE_FLAG([-Wdate-time], [C_WFLAGS="$C_WFLAGS -Wdate-time" CXX_WFLAGS="$CXX_WFLAGS -Wdate-time"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl GCC 6 warnings
AX_CHECK_COMPILE_FLAG([-Wnull-dereference], [C_WFLAGS="$C_WFLAGS -Wnull-dereference" CXX_WFLAGS="$CXX_WFLAGS -Wnull-dereference"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wduplicated-cond], [C_WFLAGS="$C_WFLAGS -Wduplicated-cond" CXX_WFLAGS="$CXX_WFLAGS -Wduplicated-cond"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl GCC 7 warnings
dnl Do not enable yet. Causes warning in alg/gdalthinplate.cpp due to armadillo templates
dnl AX_CHECK_COMPILE_FLAG([-Wduplicated-branches], [C_WFLAGS="$C_WFLAGS -Wduplicated-branches" CXX_WFLAGS="$CXX_WFLAGS -Wduplicated-branches"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl GCC 8 warnings
AC_LANG_PUSH([C++])
AX_CHECK_COMPILE_FLAG([-Wextra-semi], [CXX_WFLAGS="$CXX_WFLAGS -Wextra-semi"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AC_LANG_POP([C++])
AX_CHECK_COMPILE_FLAG([-Wno-sign-compare], [NO_SIGN_COMPARE="-Wno-sign-compare"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl clang >= 3.9
AX_CHECK_COMPILE_FLAG([-Wcomma], [C_WFLAGS="$C_WFLAGS -Wcomma" CXX_WFLAGS="$CXX_WFLAGS -Wcomma"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl clang and gcc 5
AX_CHECK_COMPILE_FLAG([-Wfloat-conversion], [C_WFLAGS="$C_WFLAGS -Wfloat-conversion" CXX_WFLAGS="$CXX_WFLAGS -Wfloat-conversion"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl clang >= 3.2
AX_CHECK_COMPILE_FLAG([-Wdocumentation -Wno-documentation-deprecated-sync], [C_WFLAGS="$C_WFLAGS -Wdocumentation -Wno-documentation-deprecated-sync" CXX_WFLAGS="$CXX_WFLAGS -Wdocumentation -Wno-documentation-deprecated-sync"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl C++ specific stuff
AC_LANG_PUSH([C++])
AX_CHECK_COMPILE_FLAG([-Wunused-private-field], [CXX_WFLAGS="$CXX_WFLAGS -Wunused-private-field"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wmissing-declarations], [CXX_WFLAGS="$CXX_WFLAGS -Wmissing-declarations"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wnon-virtual-dtor], [CXX_WFLAGS="$CXX_WFLAGS -Wnon-virtual-dtor" NO_NON_VIRTUAL_DTOR_FLAG="-Wno-non-virtual-dtor"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wold-style-cast], [WARN_OLD_STYLE_CAST="-Wold-style-cast"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Weffc++], [WARN_EFFCPLUSPLUS="-Weffc++"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl g++-4.8 complain a bit too much with -Weffc++
if test "$WARN_EFFCPLUSPLUS" != ""; then
SAVED_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $WARN_EFFCPLUSPLUS -Werror"
AC_MSG_CHECKING([if -Weffc++ should be enabled])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[
class Base {};
class A: public Base {};
]])],
[AC_MSG_RESULT([yes])],
[WARN_EFFCPLUSPLUS=""]
[AC_MSG_RESULT([no])])
CXXFLAGS="$SAVED_CXXFLAGS"
CXX_WFLAGS="$CXX_WFLAGS $WARN_EFFCPLUSPLUS"
fi
dnl Clang enables -Woverloaded-virtual if -Wall is defined, but not GCC
AX_CHECK_COMPILE_FLAG([-Woverloaded-virtual], [CXX_WFLAGS="$CXX_WFLAGS -Woverloaded-virtual"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wweak-vtables], [CXX_WFLAGS="$CXX_WFLAGS -Wweak-vtables"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wdeprecated], [CXX_WFLAGS="$CXX_WFLAGS -Wdeprecated"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wabstract-vbase-init], [CXX_WFLAGS="$CXX_WFLAGS -Wabstract-vbase-init"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Winconsistent-missing-destructor-override], [CXX_WFLAGS="$CXX_WFLAGS -Winconsistent-missing-destructor-override"],,[$ERROR_ON_UNKNOWN_OPTIONS])
HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT=no
AX_CHECK_COMPILE_FLAG([-Wzero-as-null-pointer-constant], [CXX_WFLAGS="$CXX_WFLAGS -Wzero-as-null-pointer-constant" HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT=yes NO_ZERO_AS_NULL_POINTER_CONSTANT_FLAG="-Wno-zero-as-null-pointer-constant"],,[$ERROR_ON_UNKNOWN_OPTIONS])
if test "$HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT" = "yes"; then
AC_DEFINE_UNQUOTED(HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT, 1,
[Define to 1 if the compiler supports -Wzero-as-null-pointer-constant])
fi
AC_LANG_POP([C++])
dnl ---------------------------------------------------------------------------
dnl Check for --enable-lto
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([to enable LTO (link time optimization) build])
AC_ARG_ENABLE(lto,
AS_HELP_STRING([--enable-lto],
[enable LTO(link time optimization) (disabled by default)]))
FLTO_FLAG=""
if test "x$enable_lto" = "xyes"; then
AC_LANG_PUSH([C++])
AX_CHECK_COMPILE_FLAG([-flto], [FLTO_FLAG="-flto"],,[$ERROR_ON_UNKNOWN_OPTIONS])
if test "$FLTO_FLAG" != ""; then
SAVED_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $FLTO_FLAG -Werror"
AC_MSG_CHECKING([if -flto is available at link time])
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[[]])],
[AC_MSG_RESULT([yes])],
[FLTO_FLAG=""]
[AC_MSG_RESULT([no])])
CXXFLAGS="$SAVED_CXXFLAGS"
fi
AC_LANG_POP([C++])
AX_CHECK_COMPILE_FLAG([-Wodr], [CXX_WFLAGS="$CXX_WFLAGS -Wodr"],,[$ERROR_ON_UNKNOWN_OPTIONS])
else
AC_MSG_RESULT([no])
fi
AC_SUBST(FLTO_FLAG,$FLTO_FLAG)
dnl Result in better inlining, but larger file
dnl AX_CHECK_COMPILE_FLAG([-fno-semantic-interposition], [CFLAGS="$CFLAGS -fno-semantic-interposition" CXXFLAGS="$CXXFLAGS -fno-semantic-interposition"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AC_SUBST(C_WFLAGS,$C_WFLAGS)
AC_SUBST(CXX_WFLAGS,$CXX_WFLAGS)
AC_SUBST(NO_ZERO_AS_NULL_POINTER_CONSTANT_FLAG,$NO_ZERO_AS_NULL_POINTER_CONSTANT_FLAG)
CFLAGS="${CFLAGS} -fvisibility=hidden"
CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
case "${host_os}" in
cygwin* | mingw32* | pw32* | beos* | darwin*)
CFLAGS="${CFLAGS} -DNOMINMAX"
CXXFLAGS="${CXXFLAGS} -DNOMINMAX"
;;
*)
;;
esac
dnl Checks for libraries.
save_CFLAGS="$CFLAGS"
CFLAGS=`echo "$CFLAGS" | sed "s/-Werror/ /"`
AC_CHECK_LIB(m,exp,,,)
CFLAGS="$save_CFLAGS"
dnl We check for headers
AC_HEADER_STDC
dnl Check flag for accurate arithmetic with Intel compiler. This is
dnl needed to stop the compiler from ignoring parentheses in expressions
dnl like (a + b) + c and from simplifying 0.0 + x to x (which is wrong if
dnl x = -0.0).
AX_CHECK_COMPILE_FLAG([-fp-model precise],
[CFLAGS="$CFLAGS -fp-model precise"],,[-Werror])
AC_SEARCH_LIBS([sqrt], [m])
AC_CHECK_FUNC(localeconv, [AC_DEFINE(HAVE_LOCALECONV,1,[Define to 1 if you have localeconv])])
AC_CHECK_FUNCS([strerror])
AC_CHECK_LIB(dl,dladdr,,,)
dnl ---------------------------------------------------------------------------
dnl Provide a mechanism to disable real mutex support (if lacking win32 or
dnl posix mutexes for instance).
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([mutex],
AS_HELP_STRING([--without-mutex],
[Disable real mutex locks (lacking pthreads)]),,)
AC_MSG_CHECKING([for mutexes])
THREAD_LIB=""
if test "$with_mutex" = yes -o x"$with_mutex" = x ; then
MUTEX_SETTING=pthread
AC_CHECK_LIB(pthread,pthread_create,PTHREAD_EXISTS=YES,,,)
if test -n "$PTHREAD_EXISTS" ; then
THREAD_LIB="-lpthread"
fi
AC_CHECK_LIB(pthread,pthread_mutexattr_settype,,,)
AC_CHECK_DECL(PTHREAD_MUTEX_RECURSIVE,
AC_DEFINE(HAVE_PTHREAD_MUTEX_RECURSIVE, [], [Define if your pthreads implementation have PTHREAD_MUTEX_RECURSIVE]),
,
[#include <pthread.h>])
AC_MSG_RESULT([enabled, pthread])
else
MUTEX_SETTING=stub
AC_MSG_RESULT([disabled by user])
fi
AC_SUBST(MUTEX_SETTING,$MUTEX_SETTING)
AC_SUBST(THREAD_LIB,$THREAD_LIB)
dnl ---------------------------------------------------------------------------
dnl Check for sqlite3 library and binary
dnl ---------------------------------------------------------------------------
if test "x$SQLITE3_CFLAGS$SQLITE3_LIBS" = "x" ; then
dnl Would build and run with older versions, but with horrible performance
dnl See https://github.com/OSGeo/PROJ/issues/1718
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.11])
fi
AC_SUBST(SQLITE3_CFLAGS,$SQLITE3_CFLAGS)
AC_SUBST(SQLITE3_LIBS,$SQLITE3_LIBS)
AC_CHECK_PROG(SQLITE3_CHECK,sqlite3,yes)
if test x"$SQLITE3_CHECK" != x"yes" ; then
AC_MSG_ERROR([Please install sqlite3 binary.])
fi
dnl ---------------------------------------------------------------------------
dnl Check for libtiff
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE([tiff],
AS_HELP_STRING([--enable-tiff],
[Enable TIFF support; strongly encouraged to read some grids [default=yes]]))
if test "x$enable_tiff" != "xno" -o "x$enable_tiff" = ""; then
if test "x$TIFF_CFLAGS$TIFF_LIBS" = "x" ; then
if $PKG_CONFIG libtiff; then
PKG_CHECK_MODULES([TIFF], [libtiff])
else
PKG_CHECK_MODULES([TIFF], [libtiff-4])
fi
fi
TIFF_ENABLED_FLAGS=-DTIFF_ENABLED
fi
AC_SUBST(TIFF_CFLAGS,$TIFF_CFLAGS)
AC_SUBST(TIFF_LIBS,$TIFF_LIBS)
AC_SUBST(TIFF_ENABLED_FLAGS,$TIFF_ENABLED_FLAGS)
dnl ---------------------------------------------------------------------------
dnl Check for curl
dnl ---------------------------------------------------------------------------
FOUND_CURL=no
CURL_CFLAGS=
CURL_LIB=
AC_ARG_WITH(curl,
[ --with-curl[=ARG] Enable curl support (ARG=path to curl-config.)],,,)
dnl Clear some cache variables
unset ac_cv_path_LIBCURL
if test "`basename xx/$with_curl`" = "curl-config" ; then
LIBCURL_CONFIG="$with_curl"
elif test "$with_curl" = "no" ; then
LIBCURL_CONFIG=no
else
AC_PATH_PROG(LIBCURL_CONFIG, curl-config, not-found)
fi
if test "$LIBCURL_CONFIG" = "not-found" ; then
AC_MSG_ERROR([curl not found. If wanting to do a build without curl support (and thus without built-in networking capability), explictly disable it with --without-curl])
elif test "$LIBCURL_CONFIG" != "no" ; then
CURL_VERNUM=`$LIBCURL_CONFIG --vernum`
CURL_VER=`$LIBCURL_CONFIG --version | awk '{print $2}'`
AC_MSG_RESULT([ found libcurl version $CURL_VER])
AC_CHECK_LIB(curl,curl_global_init,FOUND_CURL=yes,FOUND_CURL=no,`$LIBCURL_CONFIG --libs`)
if test "$FOUND_CURL" = "no" ; then
AC_MSG_ERROR([curl not found. If wanting to do a build without curl support (and thus without built-in networking capability), explictly disable it with --without-curl])
fi
CURL_ENABLED_FLAGS=-DCURL_ENABLED
fi
if test "$FOUND_CURL" = "yes" ; then
CURL_CFLAGS=`$LIBCURL_CONFIG --cflags`
CURL_LIBS=`$LIBCURL_CONFIG --libs`
fi
AC_SUBST(CURL_CFLAGS,$CURL_CFLAGS)
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 Check for external Google Test
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(external-gtest,
AS_HELP_STRING([--with-external-gtest],
[Whether to use external Google Test]),,)
if test "x$with_external_gtest" = "xyes" ; then
AC_MSG_RESULT([using external GTest.])
PKG_CHECK_MODULES([GTEST], [gtest >= 1.8.0])
else
AC_MSG_RESULT([using internal GTest.])
GTEST_CFLAGS="-I\$(top_srcdir)/test/googletest/include"
GTEST_LIBS="\$(top_builddir)/test/googletest/libgtest.la"
fi
AM_CONDITIONAL(USE_EXTERNAL_GTEST, [test "x$with_external_gtest" = "xyes"])
AC_SUBST(GTEST_CFLAGS,$GTEST_CFLAGS)
AC_SUBST(GTEST_LIBS,$GTEST_LIBS)
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
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
AC_CONFIG_FILES([test/googletest/Makefile test/googletest/include/Makefile
test/googletest/include/gtest/Makefile
test/googletest/include/gtest/internal/Makefile
test/googletest/include/gtest/internal/custom/Makefile
test/googletest/src/Makefile])
fi
AC_CONFIG_FILES([proj.pc])
AC_OUTPUT
+4 -3
View File
@@ -3,7 +3,8 @@
# See: https://shop.swisstopo.admin.ch/en/products/geo_software/GIS_info
#
# You'll need to download the grids separately and put in a directory
# scanned by libproj.
# scanned by libproj. Directories may be added to the scan list through
# the PROJ_LIB environment variable
#
# Note that an independent effort was made to derive an usable grid
# from the CH1903->CH1903+ grid initially available from the Swisstopo
@@ -17,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 <>
+16 -8
View File
@@ -27,20 +27,29 @@ 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 ${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 ${EXE_SQLITE3} -init ${ALL_SQL_IN} ${PROJ_DB} .quit
COMMAND ${CMAKE_COMMAND} -E copy ${PROJ_DB} ${CMAKE_CURRENT_BINARY_DIR}/for_tests
DEPENDS ${SQL_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/generate_proj_db.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
# note: we didn't port yet the foreign_key_check done in Makefile.am
DEPENDS generate_all_sql_in ${ALL_SQL_IN}
COMMENT "Generating proj.db"
VERBATIM
)
@@ -97,9 +106,8 @@ set(ALL_DATA_FILE
${PROJ_DICTIONARY}
${GRIDSHIFT_FILES}
${PROJ_DB}
${SCHEMA_FILES}
)
install(
FILES ${ALL_DATA_FILE}
DESTINATION ${PROJ_DATA_PATH}
DESTINATION ${DATADIR}
)
+2 -35
View File
@@ -48,47 +48,14 @@
<NAZC> +proj=helmert +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector
<NOAM> +proj=helmert +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector
<NOAM> +proj=helmert +drx=0.000035 +dry=-0.000662 +drz=0.0001 +convention=position_vector
<NUBI> +proj=helmert +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector
<PCFC> +proj=helmert +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector
<PCFC> +proj=helmert +drx=0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector
<SOAM> +proj=helmert +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector
<SOMA> +proj=helmert +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector
<SUND> +proj=helmert +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector
# Plate names suffixed by _T (for Translation) that includes the translation
# rates +dx=0.00041 +dy=0.00022 +dz=0.00041 given by Table 2 of the ITRF2008 plate motion model
# paper
<AMUR_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector
<ANTA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector
<ARAB_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector
<AUST_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector
<CARB_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
<EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector
<INDI_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
<NAZC_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector
<NOAM_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector
<NUBI_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector
<PCFC_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector
<SOAM_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector
<SOMA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector
<SUND_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector
+3 -3
View File
@@ -9,9 +9,9 @@
<ITRF97> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +d=0.0038 +rz=0.00026 +dx0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF96> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF96> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +t_epoch=2010.0 +convention=position_vector
<ITRF94> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF94> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +t_epoch=2010.0 +convention=position_vector
<ITRF93> +proj=helmert +x=-0.0504 +y=0.0033 +z=-0.0602 +s=0.00429 +rx=-0.00281 +ry=-0.00338 +rz=0.0004 +dx=-0.0028 +dy=-0.0001 +dz=-0.0025 +ds=0.00012 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2010.0 +convention=position_vector
@@ -23,7 +23,7 @@
<ITRF89> +proj=helmert +x=0.0304 +y=0.0355 +z=-0.1308 +s=0.00819 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF88> +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF88> +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz= +dx=0.00026 +dy=0.0001 +dx=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
# ITRF2014 Plate Motion Model parameters
#
+201
View File
@@ -0,0 +1,201 @@
DATAPATH = $(top_srcdir)/data
pkgdata_DATA = proj.ini GL27 nad.lst nad27 nad83 world other.extra \
CH \
ITRF2000 ITRF2008 ITRF2014 proj.db \
projjson.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/coordinate_system.sql \
sql/axis.sql \
sql/ellipsoid.sql \
sql/prime_meridian.sql \
sql/geodetic_datum.sql \
sql/vertical_datum.sql \
sql/conversion.sql \
sql/geodetic_crs.sql \
sql/projected_crs.sql \
sql/vertical_crs.sql \
sql/compound_crs.sql \
sql/helmert_transformation.sql \
sql/grid_transformation.sql \
sql/grid_transformation_custom.sql \
sql/other_transformation.sql \
sql/concatenated_operation.sql \
sql/concatenated_operation_step.sql \
sql/alias_name.sql \
sql/supersession.sql \
sql/deprecation.sql \
sql/esri.sql \
sql/ignf.sql \
sql/grid_alternatives.sql \
sql/grid_alternatives_generated_noaa.sql \
sql/customizations.sql \
sql/commit.sql
EXTRA_DIST = proj.ini GL27 nad.lst nad27 nad83 \
world other.extra \
CH \
ITRF2000 ITRF2008 ITRF2014 \
projjson.schema.json \
CMakeLists.txt \
tests/test_nodata.gtx \
tests/test_vgrid_bigendian_bigtiff.tif \
tests/test_vgrid_bigendian.tif \
tests/test_vgrid_bigtiff.tif \
tests/test_vgrid_bottomup_with_matrix.tif \
tests/test_vgrid_bottomup_with_scale.tif \
tests/test_vgrid_deflate_floatingpointpredictor.tif \
tests/test_vgrid_deflate.tif \
tests/test_vgrid_float64.tif \
tests/test_vgrid_in_second_channel.tif \
tests/test_vgrid_int16.tif \
tests/test_vgrid_int32.tif \
tests/test_vgrid_uint32.tif \
tests/test_vgrid_invalid_channel_type.tif \
tests/test_vgrid_nodata.tif \
tests/test_vgrid_pixelisarea.tif \
tests/test_vgrid_pixelispoint.tif \
tests/test_vgrid_uint16.tif \
tests/test_vgrid_uint16_with_scale_offset.tif \
tests/test_vgrid_unsupported_byte.tif \
tests/test_vgrid_with_overview.tif \
tests/test_vgrid_with_subgrid.tif \
tests/test_hgrid.tif \
tests/test_hgrid_separate.tif \
tests/test_hgrid_tiled.tif \
tests/test_hgrid_tiled_separate.tif \
tests/test_hgrid_strip.tif \
tests/test_hgrid_positive_west.tif \
tests/test_hgrid_lon_shift_first.tif \
tests/test_hgrid_radian.tif \
tests/test_hgrid_degree.tif \
tests/test_hgrid_with_overview.tif \
tests/test_hgrid_extra_ifd_with_other_info.tif \
tests/test_hgrid_with_subgrid.tif \
tests/test_hgrid_with_subgrid_no_grid_name.tif \
tests/subset_of_gr3df97a.tif \
tests/egm96_15_uncompressed_truncated.tif \
tests/test_vgrid_single_strip_truncated.tif \
tests/nkgrf03vel_realigned_extract.tif \
tests/nkgrf03vel_realigned_xy_extract.ct2 \
tests/nkgrf03vel_realigned_z_extract.gtx \
tests/test_hgrid_with_two_level_of_subgrids_no_grid_name.tif \
tests/us_noaa_geoid06_ak_subset_at_antimeridian.tif \
tests/test_hgrid_little_endian.gsb \
tests/test_hgrid_big_endian.gsb \
tests/BETA2007.gsb \
tests/MD \
tests/alaska \
tests/conus \
tests/egm96_15_downsampled.gtx \
tests/ntv1_can.dat \
tests/ntv2_0_downsampled.gsb \
tests/ntf_r93.gsb \
generate_all_sql_in.cmake sql_filelist.cmake \
$(SQL_ORDERED_LIST)
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
@for gridfile in $(DATAPATH)/*.gsb $(DATAPATH)/*.gtx $(DATAPATH)/ntv1_can.dat dummy \
$(DATAPATH)/alaska $(DATAPATH)/conus $(DATAPATH)/hawaii \
$(DATAPATH)/prvi $(DATAPATH)/stgeorge $(DATAPATH)/stlrnc $(DATAPATH)/stpaul \
$(DATAPATH)/FL $(DATAPATH)/MD $(DATAPATH)/TN $(DATAPATH)/WI $(DATAPATH)/WO; do \
if test "$$gridfile" != "dummy" -a -f "$$gridfile" ; then \
echo $(INSTALL_DATA) $$gridfile $(DESTDIR)$(pkgdatadir)/`basename $$gridfile`; \
$(INSTALL_DATA) $$gridfile $(DESTDIR)$(pkgdatadir)/`basename $$gridfile`; \
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"; \
done; \
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 \
&& (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; \
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 \
mkdir -p "$(PROJ_DB_CACHE_DIR)"; \
cat $${SQL_EXPANDED_LIST} | md5sum > "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5"; \
cp proj.db "$(PROJ_DB_CACHE_DIR)"; \
fi \
fi \
fi
# 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
# influenced by the presence of other grids
# egm96_15_downsampled.gtx created with
# gdal_translate proj-datumgrid/egm96_15.gtx egm96_15_downsampled.gtx -of GTX -outsize 25% 25% -r average
# ntv2_0_downsampled.gsb created with:
# gdal_translate NTv2:0:/home/even/proj/proj-datumgrid/north-america/ntv2_0.gsb /tmp/ntv2_0_downsampled.gsb -of NTv2 -outsize 10% 10%
# gdal_translate NTv2:1:/home/even/proj/proj-datumgrid/north-america/ntv2_0.gsb /tmp/ntv2_0_downsampled.gsb -of NTv2 -outsize 10% 10% -co append_subdataset=yes
# gdal_translate NTv2:2:/home/even/proj/proj-datumgrid/north-america/ntv2_0.gsb /tmp/ntv2_0_downsampled.gsb -of NTv2 -outsize 10% 10% -co append_subdataset=yes
# gdal_translate NTv2:3:/home/even/proj/proj-datumgrid/north-america/ntv2_0.gsb /tmp/ntv2_0_downsampled.gsb -of NTv2 -outsize 10% 10% -co append_subdataset=yes
# gdal_translate NTv2:99:/home/even/proj/proj-datumgrid/north-america/ntv2_0.gsb /tmp/ntv2_0_downsampled.gsb -of NTv2 -co append_subdataset=yes
# gdal_translate NTv2:44:/home/even/proj/proj-datumgrid/north-america/ntv2_0.gsb /tmp/ntv2_0_downsampled.gsb -of NTv2 -co append_subdataset=yes
# gdal_translate NTv2:4:/home/even/proj/proj-datumgrid/north-america/ntv2_0.gsb /tmp/ntv2_0_downsampled.gsb -of NTv2 -co append_subdataset=yes
check-local:
@if [ ! -f GL27 ]; then \
for x in $(DATAPATH)/*; do \
ln -sf $$x .; \
done \
fi; \
rm -rf for_tests; \
mkdir for_tests; \
for x in $(DATAPATH)/GL27 \
$(DATAPATH)/nad27 \
$(DATAPATH)/nad83 \
$(DATAPATH)/tests/ntv1_can.dat \
$(DATAPATH)/tests/MD \
$(DATAPATH)/tests/ntf_r93.gsb \
$(DATAPATH)/tests/conus \
$(DATAPATH)/tests/alaska \
$(DATAPATH)/ITRF2000 \
$(DATAPATH)/tests/BETA2007.gsb; \
do \
if test -f "$$x" ; then \
ln -sf "../$$x" for_tests; \
else \
echo "ERROR: grid $$x missing: some tests will be skipped"; \
exit 1; \
fi \
done; \
ln -sf ../$(DATAPATH)/tests for_tests; \
ln -sf ../$(DATAPATH)/tests/ntv2_0_downsampled.gsb for_tests/ntv2_0.gsb; \
ln -sf ../$(DATAPATH)/tests/egm96_15_downsampled.gtx for_tests/egm96_15.gtx; \
ln -sf ../$(DATAPATH)/proj.ini for_tests; \
ln -sf ../proj.db for_tests
clean-local:
$(RM) proj.db
$(RM) -rf for_tests
+16 -1
View File
@@ -4,6 +4,16 @@ 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).
@@ -15,4 +25,9 @@ world --- Proj specifications for several international grid systems.
nad.lst --- Reference list of SPCS States and NGS datum identifiers
Additional data files are available in https://github.com/OSGeo/PROJ-data
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/
-582
View File
@@ -1,582 +0,0 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Schema for deformation models",
"type": "object",
"properties": {
"file_type": {
"type": "string",
"enum": [
"deformation_model_master_file"
],
"description": "File type. Always \"deformation_model_master_file\""
},
"format_version": {
"type": "string",
"enum": [
"1.0"
]
},
"name": {
"type": "string",
"description": "A brief descriptive name of the deformation model"
},
"version": {
"type": "string",
"description": "A string identifying the version of the deformation model. The format for specifying version will be defined by the agency responsible for the deformation model"
},
"publication_date": {
"$ref": "#/definitions/datetime",
"description": "The date on which this version of the deformation model was published (or possibly the date on which it takes effect?)"
},
"license": {
"type": "string",
"description": "License under which the model is published"
},
"description": {
"type": "string",
"description": "A text description of the model"
},
"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 deformation model is built.\n- \"metadata\": ISO 19115 XML metadata regarding the deformation model."
},
"type": {
"type": "string",
"description": "MIME type"
},
"title": {
"type": "string",
"description": "Description of the link"
}
},
"required": [
"href"
],
"additionalProperties": false
}
},
"source_crs": {
"$ref": "#/definitions/crs",
"description": "The coordinate reference system to which the deformation model applies"
},
"target_crs": {
"$ref": "#/definitions/crs",
"description": "For a time dependent coordinate transformation the coordinate reference system resulting from applying the deformation"
},
"definition_crs": {
"$ref": "#/definitions/crs",
"description": "The coordinate reference system used to define the component spatial models. This proposal only supports using the same value for the source and definition coordinate reference system."
},
"reference_epoch": {
"$ref": "#/definitions/datetime",
"description": "A nominal reference epoch of the deformation model. This is not necessarily used to calculate the deformation model - each component defines its own time function."
},
"uncertainty_reference_epoch": {
"$ref": "#/definitions/datetime",
"description": "The uncertainties of the deformation model are calculated in terms of this epoch. This is described below in the Time functions section."
},
"horizontal_offset_unit": {
"type": "string",
"enum": [
"metre",
"degree"
]
},
"vertical_offset_unit": {
"type": "string",
"enum": [
"metre"
]
},
"horizontal_uncertainty_type": {
"type": "string",
"enum": [
"circular 95% confidence limit"
]
},
"horizontal_uncertainty_unit": {
"type": "string",
"enum": [
"metre"
]
},
"vertical_uncertainty_type": {
"type": "string",
"enum": [
"95% confidence limit"
]
},
"vertical_uncertainty_unit": {
"type": "string",
"enum": [
"metre"
]
},
"horizontal_offset_method": {
"type": "string",
"description": "Defines how the horizontal offsets are applied to geographic coordinates",
"enum": [
"addition",
"geocentric"
]
},
"extent": {
"$ref": "#/definitions/extent",
"description": "Defines the region within which the deformation model is defined. It cannot be calculated outside this region. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values"
},
"time_extent": {
"type": "object",
"description": "Defines the range of times for which the model is valid, specified by a first and a last value. The deformation model is undefined for dates outside this range.",
"properties": {
"first": {
"$ref": "#/definitions/datetime"
},
"last": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"first",
"last"
],
"additionalProperties": false
},
"components": {
"type": "array",
"items": {
"$ref": "#/definitions/component"
}
}
},
"required": [
"file_type",
"format_version",
"source_crs",
"target_crs",
"definition_crs",
"extent",
"time_extent",
"components"
],
"additionalProperties": false,
"definitions": {
"component": {
"type": "object",
"definition": "A component describes an aspect of the deformation, such as glacial isostatic adjustment, secular deformation, earthquakes, etc.",
"properties": {
"description": {
"type": "string",
"description": "A text description of this component of the model"
},
"extent": {
"$ref": "#/definitions/extent",
"description": "The region within the component is defined. Outside this region the component evaluates to 0. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values"
},
"displacement_type": {
"type": "string",
"description": "The displacement parameters defined by the model. The \"none\" option allows for a component which defines uncertainty with different grids to those defining displacement",
"enum": [
"none",
"horizontal",
"vertical",
"3d"
]
},
"uncertainty_type": {
"type": "string",
"description": "The uncertainty parameters defined by the model",
"enum": [
"none",
"horizontal",
"vertical",
"3d"
]
},
"horizontal_uncertainty": {
"type": "number",
"description": "The horizontal uncertainty to use if it is not defined explicitly in the spatial model"
},
"vertical_uncertainty": {
"type": "number",
"description": "The vertical uncertainty to use if it is not defined explicitly in the spatial model"
},
"spatial_model": {
"type": "object",
"description": "Defines the spatial model",
"properties": {
"type": {
"type": "string",
"description": "Specifies the type of the spatial model data file. Initially it is proposed that only GeoTIFF is supported",
"enum": [
"GeoTIFF"
]
},
"interpolation_method": {
"type": "string",
"description": "Interpolation method",
"enum": [
"bilinear",
"geocentric_bilinear"
]
},
"filename": {
"type": "string",
"description": "Specifies location of the spatial model GeoTIFF file relative to this JSON file"
},
"md5_checksum": {
"type": "string",
"description": "A hex encoded MD5 checksum of the grid file that can be used to validate that it is the correct version of the file"
}
},
"required": [
"type",
"interpolation_method",
"filename"
],
"additionalProperties": false
},
"time_function": {
"$ref": "#/definitions/time_function"
}
},
"required": [
"description",
"extent",
"displacement_type",
"spatial_model",
"time_function"
],
"additionalProperties": false
},
"crs": {
"type": "string",
"pattern": "^[a-zA-Z]+:[a-zA-Z0-9]+$"
},
"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"
]
},
"parameters": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "number"
}
}
}
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function": {
"description": "Function describing a multiplicative factor to apply to the spatial_model depending on the time",
"oneOf": [
{
"$ref": "#/definitions/time_function_constant"
},
{
"$ref": "#/definitions/time_function_velocity"
},
{
"$ref": "#/definitions/time_function_step"
},
{
"$ref": "#/definitions/time_function_reverse_step"
},
{
"$ref": "#/definitions/time_function_piecewise"
},
{
"$ref": "#/definitions/time_function_exponential"
}
]
},
"time_function_constant": {
"description": "The valuation of this function is 1 at any epoch",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"constant"
]
},
"parameters": {
"type": "object",
"properties": {
},
"additionalProperties": false
}
},
"required": [
"type"
],
"additionalProperties": false
},
"time_function_velocity": {
"description": "The valuation of this function is 0 at reference_epoch, and proportional to the time difference to it at other times",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"velocity"
]
},
"parameters": {
"type": "object",
"properties": {
"reference_epoch": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"reference_epoch"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_step": {
"description": "The valuation of this function is 0 before step_epoch, and 1 starting from it",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"step"
]
},
"parameters": {
"type": "object",
"properties": {
"step_epoch": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"step_epoch"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_reverse_step": {
"description": "The valuation of this function is 1 before step_epoch, and 0 starting from it",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"reverse_step"
]
},
"parameters": {
"type": "object",
"properties": {
"step_epoch": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"step_epoch"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_piecewise": {
"description": "Piecewise time function",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"piecewise"
]
},
"parameters": {
"type": "object",
"properties": {
"before_first": {
"type": "string",
"description": "Defines the behaviour of the function before the first defined epoch",
"enum": [
"zero",
"constant",
"linear"
]
},
"after_last": {
"type": "string",
"description": "Defines the behaviour of the function after the last defined epoch",
"enum": [
"zero",
"constant",
"linear"
]
},
"model": {
"type": "array",
"description": "A sorted array data points each defined by two elements, \"epoch\" defines the date/time of the data point, and \"scale_factor\" is the corresponding function value. The array is sorted in order of increasing epoch. Note: where the time function includes a step it is represented by two consecutive data points with the same epoch. The first defines the scale factor that applies before the epoch and the second the scale factor that applies after the epoch",
"items": {
"type": "object",
"properties": {
"epoch": {
"$ref": "#/definitions/datetime"
},
"scale_factor": {
"type": "number"
}
},
"required": [
"epoch",
"scale_factor"
],
"additionalProperties": false
},
"minItems": 2
}
},
"required": [
"before_first",
"after_last",
"model"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_exponential": {
"description": "The valuation of this function is an exponential function with a time-based relaxation constant",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"exponential"
]
},
"parameters": {
"type": "object",
"properties": {
"reference_epoch": {
"$ref": "#/definitions/datetime",
"description": "The date/time at which the exponential decay starts"
},
"end_epoch": {
"$ref": "#/definitions/datetime",
"description": "The date/time at which the exponential decay ends (optional)"
},
"relaxation_constant": {
"type": "number",
"description": "Relaxation constant in years"
},
"before_scale_factor": {
"type": "number",
"description": "The scale factor that applies before the reference epoch"
},
"initial_scale_factor": {
"type": "number",
"description": "The initial scale factor"
},
"final_scale_factor": {
"type": "number",
"description": "The scale factor the exponential function approaches"
}
},
"required": [
"reference_epoch",
"relaxation_constant",
"before_scale_factor",
"initial_scale_factor",
"final_scale_factor"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
}
}
}
+2
View File
@@ -0,0 +1,2 @@
# 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
@@ -0,0 +1,10 @@
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
@@ -1,23 +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()
# 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()
-23
View File
@@ -14,26 +14,3 @@ cache_enabled = on
cache_size_MB = 300
cache_ttl_sec = 86400
; Can be set to on so that by default the lack of a known resource files needed
; for the best transformation PROJ would normally use causes an error, or off
; to accept missing resource files without errors or warnings.
; This default value itself is overriden by the PROJ_ONLY_BEST_DEFAULT environment
; variable if set, and then by the ONLY_BEST setting that can be
; passed to the proj_create_crs_to_crs() method, or with the --only-best
; option of the cs2cs program.
; (added in PROJ 9.2)
; only_best_default = on
; Filename of the Certificate Authority (CA) bundle.
; Can be overriden with the PROJ_CURL_CA_BUNDLE / CURL_CA_BUNDLE environment variable.
; (added in PROJ 9.0)
; ca_bundle_path = /path/to/cabundle.pem
; Transverse Mercator (and UTM) default algorithm: auto, evenden_snyder or poder_engsager
; * evenden_snyder is the fastest, but less accurate far from central meridian
; * poder_engsager is slower, but more accurate far from central meridian
; * default will auto-select between the two above depending on the coordinate
; to transform and will use evenden_snyder if the error in doing so is below
; 0.1 mm (for an ellipsoid of the size of Earth)
tmerc_default_algo = poder_engsager
+23 -215
View File
@@ -1,8 +1,8 @@
{
"$id": "https://proj.org/schemas/v0.7/projjson.schema.json",
"$id": "https://proj.org/schemas/v0.2/projjson.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Schema for PROJJSON (v0.7)",
"$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_DEFAULT_VERSION accordingly in io.cpp",
"description": "Schema for PROJJSON",
"$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": [
{ "$ref": "#/definitions/crs" },
@@ -11,8 +11,7 @@
{ "$ref": "#/definitions/ellipsoid" },
{ "$ref": "#/definitions/prime_meridian" },
{ "$ref": "#/definitions/single_operation" },
{ "$ref": "#/definitions/concatenated_operation" },
{ "$ref": "#/definitions/coordinate_metadata" }
{ "$ref": "#/definitions/concatenated_operation" }
],
"definitions": {
@@ -23,10 +22,6 @@
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["AbridgedTransformation"] },
"name": { "type": "string" },
"source_crs": {
"$ref": "#/definitions/crs",
"$comment": "Only present when the source_crs of the bound_crs does not match the source_crs of the AbridgedTransformation. No equivalent in WKT"
},
"method": { "$ref": "#/definitions/method" },
"parameters": {
"type": "array",
@@ -90,11 +85,7 @@
"future",
"past",
"unspecified" ] },
"meridian": { "$ref": "#/definitions/meridian" },
"unit": { "$ref": "#/definitions/unit" },
"minimum_value": { "type": "number" },
"maximum_value": { "type": "number" },
"range_meaning": { "type": "string", "enum": [ "exact", "wraparound"] },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
@@ -120,22 +111,12 @@
"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" },
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
"transformation": { "$ref": "#/definitions/abridged_transformation" }
},
"required" : [ "source_crs", "target_crs", "transformation" ],
"additionalProperties": false
@@ -155,8 +136,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -177,13 +156,10 @@
"type": "array",
"items": { "$ref": "#/definitions/single_operation" }
},
"accuracy": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -213,18 +189,6 @@
"additionalProperties": false
},
"coordinate_metadata": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["CoordinateMetadata"] },
"crs": { "$ref": "#/definitions/crs" },
"coordinateEpoch": { "type": "number" }
},
"required" : [ "crs" ],
"additionalProperties": false
},
"coordinate_system": {
"type": "object",
"properties": {
@@ -238,7 +202,6 @@
"vertical",
"ordinal",
"parametric",
"affine",
"TemporalDateTime",
"TemporalCount",
"TemporalMeasure"] },
@@ -321,17 +284,6 @@
"additionalProperties": false
},
"deformation_model": {
"description": "Association to a PointMotionOperation",
"type": "object",
"properties": {
"name": { "type": "string" },
"id": { "$ref": "#/definitions/id" }
},
"required" : [ "name" ],
"additionalProperties": false
},
"derived_engineering_crs": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
@@ -346,8 +298,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -371,8 +321,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -395,8 +343,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -419,8 +365,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -443,8 +387,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -467,8 +409,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -479,21 +419,19 @@
"dynamic_geodetic_reference_frame": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"allOf": [{ "$ref": "#/definitions/geodetic_reference_frame" }],
"properties": {
"type": { "type": "string", "enum": ["DynamicGeodeticReferenceFrame"] },
"name": {},
"anchor": {},
"anchor_epoch": {},
"ellipsoid": {},
"prime_meridian": {},
"frame_reference_epoch": { "type": "number" },
"deformation_model": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -504,19 +442,17 @@
"dynamic_vertical_reference_frame": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"allOf": [{ "$ref": "#/definitions/vertical_reference_frame" }],
"properties": {
"type": { "type": "string", "enum": ["DynamicVerticalReferenceFrame"] },
"name": {},
"anchor": {},
"anchor_epoch": {},
"frame_reference_epoch": { "type": "number" },
"deformation_model": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -584,8 +520,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -605,8 +539,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -628,16 +560,10 @@
},
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" },
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
"deformation_models": {
"type": "array",
"items": { "$ref": "#/definitions/deformation_model" }
},
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -658,15 +584,12 @@
"type": { "type": "string", "enum": ["GeodeticReferenceFrame"] },
"name": { "type": "string" },
"anchor": { "type": "string" },
"anchor_epoch": { "type": "number" },
"ellipsoid": { "$ref": "#/definitions/ellipsoid" },
"prime_meridian": { "$ref": "#/definitions/prime_meridian" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -675,29 +598,13 @@
"additionalProperties": false
},
"geoid_model": {
"type": "object",
"properties": {
"name": { "type": "string" },
"interpolation_crs": { "$ref": "#/definitions/crs" },
"id": { "$ref": "#/definitions/id" }
},
"required" : [ "name" ],
"additionalProperties": false
},
"id": {
"type": "object",
"properties": {
"authority": { "type": "string" },
"code": {
"oneOf": [ { "type": "string" }, { "type": "integer" } ]
},
"version": {
"oneOf": [ { "type": "string" }, { "type": "number" } ]
},
"authority_citation": { "type": "string" },
"uri": { "type": "string" }
}
},
"required" : [ "authority", "code" ],
"additionalProperties": false
@@ -748,22 +655,6 @@
]
},
"meridian": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["Meridian"] },
"longitude": { "$ref": "#/definitions/value_in_degree_or_value_and_unit" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
"required" : [ "longitude" ],
"allOf": [
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
],
"additionalProperties": false
},
"object_usage": {
"anyOf": [
{
@@ -773,8 +664,6 @@
"scope": { "type": "string" },
"area": { "type": "string" },
"bbox": { "$ref": "#/definitions/bbox" },
"vertical_extent": { "$ref": "#/definitions/vertical_extent" },
"temporal_extent": { "$ref": "#/definitions/temporal_extent" },
"remarks": { "type": "string" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
@@ -834,8 +723,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -855,8 +742,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -865,41 +750,13 @@
"additionalProperties": false
},
"point_motion_operation": {
"$comment": "Not implemented in PROJ (at least as of PROJ 9.1)",
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"properties": {
"type": { "type": "string", "enum": ["PointMotionOperation"] },
"name": { "type": "string" },
"source_crs": { "$ref": "#/definitions/crs" },
"method": { "$ref": "#/definitions/method" },
"parameters": {
"type": "array",
"items": { "$ref": "#/definitions/parameter_value" }
},
"accuracy": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
},
"required" : [ "name", "source_crs", "method", "parameters" ],
"additionalProperties": false
},
"prime_meridian": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["PrimeMeridian"] },
"name": { "type": "string" },
"longitude": { "$ref": "#/definitions/value_in_degree_or_value_and_unit" },
"longitude": { "$ref": "#/definitions/value_and_unit" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
@@ -913,8 +770,7 @@
"single_operation": {
"oneOf": [
{ "$ref": "#/definitions/conversion" },
{ "$ref": "#/definitions/transformation" },
{ "$ref": "#/definitions/point_motion_operation" }
{ "$ref": "#/definitions/transformation" }
]
},
@@ -932,8 +788,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -954,8 +808,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -976,8 +828,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -986,16 +836,6 @@
"additionalProperties": false
},
"temporal_extent": {
"type": "object",
"properties": {
"start": { "type": "string" },
"end": { "type": "string" }
},
"required" : [ "start", "end" ],
"additionalProperties": false
},
"transformation": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
@@ -1015,8 +855,6 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -1058,9 +896,7 @@
"properties": {
"scope": { "type": "string" },
"area": { "type": "string" },
"bbox": { "$ref": "#/definitions/bbox" },
"vertical_extent": { "$ref": "#/definitions/vertical_extent" },
"temporal_extent": { "$ref": "#/definitions/temporal_extent" }
"bbox": { "$ref": "#/definitions/bbox" }
},
"additionalProperties": false
}
@@ -1076,13 +912,6 @@
"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" },
@@ -1103,21 +932,20 @@
},
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" },
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
"geoid_model": { "$ref": "#/definitions/geoid_model" },
"geoid_models": {
"type": "array",
"items": { "$ref": "#/definitions/geoid_model" }
},
"deformation_models": {
"type": "array",
"items": { "$ref": "#/definitions/deformation_model" }
"geoid_model": {
"type": "object",
"properties": {
"name": { "type": "string" },
"interpolation_crs": { "$ref": "#/definitions/crs" },
"id": { "$ref": "#/definitions/id" }
},
"required" : [ "name" ],
"additionalProperties": false
},
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -1126,28 +954,11 @@
"description": "One and only one of datum and datum_ensemble must be provided",
"allOf": [
{ "$ref": "#/definitions/object_usage" },
{ "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" },
{
"not": {
"type": "object",
"required": [ "geoid_model", "geoid_models" ]
}
}
{ "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" }
],
"additionalProperties": false
},
"vertical_extent": {
"type": "object",
"properties": {
"minimum": { "type": "number" },
"maximum": { "type": "number" },
"unit": { "$ref": "#/definitions/unit" }
},
"required" : [ "minimum", "maximum" ],
"additionalProperties": false
},
"vertical_reference_frame": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
@@ -1155,13 +966,10 @@
"type": { "type": "string", "enum": ["VerticalReferenceFrame"] },
"name": { "type": "string" },
"anchor": { "type": "string" },
"anchor_epoch": { "type": "number" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

-53
View File
@@ -1,53 +0,0 @@
# Directory data/sql
- Simplified UML diagram of database classes:
* [diagram.xmi](diagram.xmi): to be opened with Umbrello
* CRS related tables: ![CRS related tables](CRS.png)
* Transformation releated tables: ![Transformation releated tables](Transformations.png)
- Hand generated files:
* [proj_db_table_defs.sql](proj_db_table_defs.sql): Database structure: CREATE TABLE / CREATE VIEW / CREATE TRIGGER.
* [metadata.sql](metadata.sql): key/value content of the metadata table.
* [begin.sql](begin.sql): Technical prologue for all concatenated files.
* [commit.sql](commit.sql): Epilogue for all concatenated files. Include consistency checks.
* [customizations_early.sql](customizations_early.sql): Customizations to be applied before EPSG generated tables.
* [customizations.sql](customizations.sql): Customizations to be applied after all geodetic registries.
* [grid_alternatives.sql](grid_alternatives.sql): Link official EPSG grid names to PROJ ones.
* [grid_transformation_custom.sql](grid_transformation_custom.sql): PROJ specific entries in grid_transformation table.
* [other_transformation_custom.sql](other_transformation_custom.sql): PROJ specific entries in other_transformation table.
- Files generated from EPSG dataset by [build_db.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db.py):
* [alias_name.sql](alias_name.sql)
* [axis.sql](axis.sql)
* [compound_crs.sql](compound_crs.sql)
* [concatenated_operation.sql](concatenated_operation.sql)
* [concatenated_operation_step.sql](concatenated_operation_step.sql)
* [conversion.sql](conversion.sql)
* [conversion_triggers.sql](conversion_triggers.sql)
* [coordinate_system.sql](coordinate_system.sql)
* [deprecation.sql](deprecation.sql)
* [ellipsoid.sql](ellipsoid.sql)
* [extent.sql](extent.sql)
* [geodetic_crs.sql](geodetic_crs.sql)
* [geodetic_datum_ensemble_member.sql](geodetic_datum_ensemble_member.sql)
* [geodetic_datum.sql](geodetic_datum.sql)
* [grid_alternatives_generated_noaa.sql](grid_alternatives_generated_noaa.sql)
* [grid_transformation.sql](grid_transformation.sql)
* [helmert_transformation.sql](helmert_transformation.sql)
* [other_transformation.sql](other_transformation.sql)
* [prime_meridian.sql](prime_meridian.sql)
* [projected_crs.sql](projected_crs.sql)
* [scope.sql](scope.sql)
* [supersession.sql](supersession.sql)
* [unit_of_measure.sql](unit_of_measure.sql)
* [vertical_crs.sql](vertical_crs.sql)
* [vertical_datum_ensemble_member.sql](vertical_datum_ensemble_member.sql)
* [vertical_datum.sql](vertical_datum.sql)
- Other registries:
* [esri.sql](esri.sql): ESRI registry. Generated by [build_db_from_esri.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db_from_esri.py)
* [ignf.sql](ignf.sql): IGN France registry. Generated by [build_db_create_ignf_from_xml.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db_create_ignf_from_xml.py)
* [iau.sql](iau.sql): IAU 2015 registry. Generated by [build_db_from_iau.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db_from_iau.py)
* [versioned_auth_name_mapping.sql](versioned_auth_name_mapping.sql): used for the IAU:2015 / IAU alias
* [nkg.sql](nkg.sql): Nordic Geodetic Commission registry. Hand-written
* [nkg_post_customizations.sql](nkg_post_customizations.sql): Registration of NKG in authority_to_authority_preference table
Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

+79 -853
View File
File diff suppressed because it is too large Load Diff
+3561
View File
File diff suppressed because it is too large Load Diff
+51 -60
View File
@@ -1,7 +1,7 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
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','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','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,6 +12,7 @@ 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');
@@ -31,29 +32,27 @@ INSERT INTO "axis" VALUES('EPSG','1481','Easting','X','South along 165°W','EPSG
INSERT INTO "axis" VALUES('EPSG','1482','Northing','Y','South along 75°W','EPSG','1038',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1486','Easting','E','east','EPSG','1039',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1487','Northing','N','north','EPSG','1039',2,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','32855','Forward','x','forward','EPSG','1040',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32856','Starboard','y','starboard','EPSG','1040',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32857','Platform Up','z','up','EPSG','1040',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32858','Forward','x','forward','EPSG','1041',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32859','Starboard','y','starboard','EPSG','1041',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32860','Platform Down','z','down','EPSG','1041',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32861','Starboard','x','starboard','EPSG','1042',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32862','Forward','y','forward','EPSG','1042',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32863','Platform Up','z','up','EPSG','1042',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1024','Forward','x','Ahead','EPSG','1040',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1025','Starboard','y','Starboard','EPSG','1040',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1026','Platform Up','z','Upward','EPSG','1040',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1030','Forward','x','Ahead','EPSG','1041',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1031','Starboard','y','Starboard','EPSG','1041',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1032','Platform Down','z','Downward','EPSG','1041',3,'EPSG','9001');
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','32864','Starboard','x','starboard','EPSG','1045',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32865','Forward','y','forward','EPSG','1045',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32866','Platform Down','z','down','EPSG','1045',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32928','Northing','X','north','EPSG','1046',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32929','Easting','Y','east','EPSG','1046',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32930','Ellipsoidal height','h','up','EPSG','1046',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1044','Starboard','x','Starboard','EPSG','1045',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1045','Forward','y','Ahead','EPSG','1045',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1046','Platform Down','z','Downward','EPSG','1045',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1042','Local northing','n','north','EPSG','1047',1,'EPSG','9001');
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','32933','Northing','N','north','EPSG','1053',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','32934','Easting','E','east','EPSG','1053',2,'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','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');
@@ -76,8 +75,8 @@ INSERT INTO "axis" VALUES('EPSG','19','Easting','E','east','EPSG','4409',1,'EPSG
INSERT INTO "axis" VALUES('EPSG','20','Northing','N','north','EPSG','4409',2,'EPSG','9040');
INSERT INTO "axis" VALUES('EPSG','181','Easting','E','east','EPSG','4410',1,'EPSG','9301');
INSERT INTO "axis" VALUES('EPSG','182','Northing','N','north','EPSG','4410',2,'EPSG','9301');
INSERT INTO "axis" VALUES('EPSG','32875','Easting','E','South along 90°E','EPSG','4460',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32876','Northing','N','South along 180°E','EPSG','4460',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','236','Easting','E','South along 90°E.','EPSG','4460',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','237','Northing','N','South along 180°E','EPSG','4460',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','205','Topocentric East','U','east','EPSG','4461',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','206','Topocentric North','V','north','EPSG','4461',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','207','Topocentric height','W','up','EPSG','4461',3,'EPSG','9001');
@@ -173,42 +172,6 @@ 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','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','32877','Plant North','n','northWest','EPSG','6504',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32878','Plant East','e','northEast','EPSG','6504',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32873','First local axis','n','northWest','EPSG','6505',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32874','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','32871','Plant East','x','northEast','EPSG','6510',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32872','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','32890','Bin grid I','I','columnPositive','EPSG','32760',1,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32891','Bin grid J','J','rowPositive','EPSG','32760',2,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32894','Bin grid I','I','columnNegative','EPSG','32761',1,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32895','Bin grid J','J','rowPositive','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');
@@ -216,9 +179,11 @@ INSERT INTO "axis" VALUES('EPSG','56','Geodetic latitude','Lat','north','EPSG','
INSERT INTO "axis" VALUES('EPSG','57','Geodetic longitude','Long','east','EPSG','6402',2,'EPSG','9108');
INSERT INTO "axis" VALUES('EPSG','58','Geodetic latitude','Lat','north','EPSG','6403',1,'EPSG','9105');
INSERT INTO "axis" VALUES('EPSG','59','Geodetic longitude','Lon','east','EPSG','6403',2,'EPSG','9105');
INSERT INTO "axis" VALUES('EPSG','32879','Spherical latitude','lat','north','EPSG','6404',1,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','32880','Spherical longitude','lon','east','EPSG','6404',2,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','32881','Geocentric radius','R','up','EPSG','6404',3,'EPSG','9001');
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');
@@ -290,5 +255,31 @@ 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,4 +1 @@
PRAGMA page_size = 4096;
PRAGMA foreign_keys = 1;
BEGIN;
+25 -208
View File
@@ -9,8 +9,10 @@ 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);
-- We don't need to select by auth_name, code so nullify them to save space
UPDATE usage SET auth_name = NULL, code = NULL;
-- 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;
-- Final consistency checks
CREATE TABLE dummy(foo);
@@ -28,59 +30,11 @@ 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
JOIN grid_transformation g2
ON g1.source_crs_auth_name = g2.source_crs_auth_name
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 g1.code NOT LIKE '%_RESTRICTED_TO_VERTCRS%' AND g2.auth_name = 'EPSG' AND g2.deprecated = 0)
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 g1.code NOT LIKE '%_RESTRICTED_TO_VERTCRS%' AND g2.auth_name = 'EPSG' AND g2.deprecated = 0);
WHERE EXISTS (SELECT 1 FROM grid_transformation g1, grid_transformation g2 WHERE
lower(g1.grid_name) = lower(g2.grid_name) AND
g1.auth_name = 'PROJ' 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');
@@ -116,161 +70,39 @@ 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 or Geog3D to Geog2D+XXX has not its source_crs in geodetic_crs table with type = ''geographic 3D''')
SELECT RAISE(ABORT, 'One grid_transformation with Geographic3D to GravityRelatedHeight 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 %' OR g.method_name LIKE 'Geog3D to %') 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.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, usage vu, extent ve, usage cu, extent ce WHERE
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, area va, area ca WHERE
v.deprecated = 0 AND
(v.table_name = 'grid_transformation' OR v.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF')) AND
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
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))) );
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));
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, usage vu, extent ve, usage cu, extent ce WHERE
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, area va, area ca WHERE
v.deprecated = 0 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.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF') AND
v.target_crs_auth_name = c.auth_name AND
v.target_crs_code = c.code AND
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))) );
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));
-- check geoid_model table
SELECT RAISE(ABORT, 'missing GEOID99 in geoid_model')
@@ -292,24 +124,9 @@ 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 '$%');
-- Only available in sqlite >= 3.16. May be activated as soon as support for ubuntu 16 is dropped
-- check all foreign key contraints have an 'ON DELETE CASCADE'
-- SELECT RAISE(ABORT, 'FK constraint with missing "ON DELETE CASCADE"')
-- WHERE EXISTS (SELECT 1 FROM
-- pragma_foreign_key_list(name),
-- (SELECT name from sqlite_master WHERE type='table')
-- WHERE upper(on_delete) != 'CASCADE');
END;
INSERT INTO dummy DEFAULT VALUES;
DROP TRIGGER final_checks;
DROP TABLE dummy;
ANALYZE;
VACUUM;
VACUUM;
+277 -844
View File
File diff suppressed because it is too large Load Diff
+212 -441
View File
@@ -1,443 +1,214 @@
--- 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)','','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 v1 (2)','Second step is an emulation (using the NTv2 method) of the geocentric interpolation method described in CT 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,'EPSG-Ire',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,'EPSG-Ire',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','9104','NAD27 to ITRF2014 (2)','For use in new operations - see CT code 9103 for alternative for legacy data. Note that steps 1 to 5 are documented in the geog2D domain, steps 6 and 7 in the geocentric domain. Steps 6 and 7 may be implemented in one operation using CT code 8970.','EPSG','4267','EPSG','7789',0.2,'IOGP-Usa GoM non-legacy',0);
INSERT INTO "usage" VALUES('EPSG','10918','concatenated_operation','EPSG','9104','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 v1 (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');
INSERT INTO "concatenated_operation" VALUES('EPSG','10146','INAGeoid2020 v1 height to INAGeoid v2 height (1)','In central Java INAGeoid2020 v2 height minus INAGeoid2020 v1 height is approximately +0.2m (v1 surface is above the v2 surface). This difference varies significantly across Indonesia.','EPSG','9471','EPSG','20036',0.2,'BIG-Idn 2022',0);
INSERT INTO "usage" VALUES('EPSG','18452','concatenated_operation','EPSG','10146','EPSG','1122','EPSG','1178');
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);
+10 -31
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','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',1,'EPSG','7963');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',2,'EPSG','7964');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',1,'EPSG','7963');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',2,'EPSG','7966');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',1,'EPSG','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',2,'EPSG','7969');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',1,'EPSG','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',2,'EPSG','7970');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',1,'EPSG','7813');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',1,'EPSG','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',2,'EPSG','7971');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',1,'EPSG','7812');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',1,'EPSG','7982');
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','7812');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',2,'EPSG','7984');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',1,'EPSG','7980');
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','7987',2,'EPSG','7984');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',3,'EPSG','7985');
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','8452');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',2,'EPSG','1123');
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');
@@ -425,28 +425,7 @@ INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',2,'EPSG','8971');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',3,'EPSG','7807');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',4,'EPSG','7790');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',1,'EPSG','8555');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',2,'EPSG','8556');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',3,'EPSG','8861');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',4,'EPSG','8862');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',5,'EPSG','8559');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',6,'EPSG','7807');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',7,'EPSG','7790');
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');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','10146',1,'EPSG','9629');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','10146',2,'EPSG','10145');
+2419 -5309
View File
File diff suppressed because it is too large Load Diff
+1 -7
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 = '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);
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');
@@ -94,12 +94,6 @@ BEGIN
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 Lambert Conic Conformal (1SP variant B)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1102' AND (NEW.method_name != 'Lambert Conic Conformal (1SP variant B)' 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 != '8805' OR NEW.param2_name != 'Scale factor at 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) != 'scale' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8821' OR NEW.param3_name != 'Latitude of 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) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8822' OR NEW.param4_name != 'Longitude of 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) != '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 3D')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1111' AND (NEW.method_name != 'Transverse Mercator 3D' 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 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);
-4
View File
@@ -22,12 +22,10 @@ INSERT INTO "coordinate_system" VALUES('EPSG','1042','Cartesian',3);
INSERT INTO "coordinate_system" VALUES('EPSG','1043','vertical',1);
INSERT INTO "coordinate_system" VALUES('EPSG','1044','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','1045','Cartesian',3);
INSERT INTO "coordinate_system" VALUES('EPSG','1046','Cartesian',3);
INSERT INTO "coordinate_system" VALUES('EPSG','1047','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','1048','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','1049','vertical',1);
INSERT INTO "coordinate_system" VALUES('EPSG','1050','vertical',1);
INSERT INTO "coordinate_system" VALUES('EPSG','1053','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','4400','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','4401','Cartesian',2);
INSERT INTO "coordinate_system" VALUES('EPSG','4402','Cartesian',2);
@@ -136,5 +134,3 @@ 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);
+13 -229
View File
@@ -18,101 +18,15 @@ 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,'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 "geodetic_crs" VALUES('OGC','CRS84','WGS 84 (CRS84)',NULL,NULL,'geographic 2D','EPSG','6424','EPSG','6326','EPSG','1262',NULL,0);
-- Defined in http://www.opengis.net/def/crs/OGC/0/CRS84h . Same as EPSG:4979 except axis order
INSERT INTO "geodetic_crs" VALUES('OGC','CRS84h','WGS 84 longitude-latitude-height',NULL,'geographic 3D','EPSG','6426','EPSG','6326',NULL,0);
INSERT INTO "scope" VALUES('PROJ','OGC_CRS84h','3D system frequently used in GIS, Web APIs and Web applications',0);
INSERT INTO "usage" VALUES(
'PROJ',
'OGC_CRS84h_USAGE',
'geodetic_crs',
'OGC',
'CRS84h',
'EPSG','1262', -- extent ('World')
'PROJ','OGC_CRS84h' -- scope
);
INSERT INTO "geodetic_crs" VALUES('OGC','CRS27','NAD27 (CRS27)',NULL,'geographic 2D','EPSG','6424','EPSG','6267',NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'OGC_CRS27_USAGE',
'geodetic_crs',
'OGC',
'CRS27',
'EPSG','1349', -- extent
'EPSG','1024' -- unknown
);
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 "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 "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 "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
);
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);
-- alias of EPSG:3857
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'
);
INSERT INTO "projected_crs" VALUES('EPSG','900913','Google Maps Global Mercator',NULL,NULL,'EPSG','4499','EPSG','4326','EPSG','3856','EPSG','3544',NULL,1);
-- ('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,50 +58,6 @@ UPDATE grid_transformation SET accuracy = 2.0 WHERE auth_name = 'EPSG' AND code
UPDATE grid_transformation SET accuracy = 2.0 WHERE auth_name = 'EPSG' AND code = '1462';
-- Create a PROJ copy of EPSG:9123 "NAD83(CSRS) to CGVD28 height (1)" by
-- removing the deprecation flag.
-- Having a transformation from/to CGVD28 using the "generic" NAD83(CSRS) is much
-- more convenient for low accuracy cases like https://github.com/OSGeo/PROJ/issues/3328
INSERT INTO grid_transformation SELECT
'PROJ' AS auth_name,
'EPSG_9123' AS code,
name,
description || ' Imported from EPSG:9123 with deprecation flag removed by PROJ' AS description,
method_auth_name,
method_code,
method_name,
source_crs_auth_name,
source_crs_code,
target_crs_auth_name,
target_crs_code,
accuracy,
grid_param_auth_name,
grid_param_code,
grid_param_name,
grid_name,
grid2_param_auth_name,
grid2_param_code,
grid2_param_name,
grid2_name,
interpolation_crs_auth_name,
interpolation_crs_code,
operation_version,
0 AS deprecated
FROM grid_transformation WHERE auth_name = 'EPSG' AND code = '9123';
INSERT INTO usage SELECT
'PROJ' AS auth_name,
'USAGE_PROJ_EPSG_9123' AS code,
object_table_name,
'PROJ' AS object_auth_name,
'EPSG_9123' AS object_code,
extent_auth_name,
extent_code,
scope_auth_name,
scope_code
FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '9123';
-- Define the allowed authorities, and their precedence, when researching a
-- coordinate operation
@@ -228,6 +98,14 @@ INSERT INTO "axis" VALUES('PROJ','1','Easting','E','east','PROJ','ENh',1,'EPSG',
INSERT INTO "axis" VALUES('PROJ','2','Northing','N','north','PROJ','ENh',2,'EPSG','9001');
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);
---- Geoid models -----
INSERT INTO "geoid_model" SELECT 'GEOID99', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g1999%' AND deprecated = 0;
@@ -245,10 +123,6 @@ INSERT INTO "geoid_model" SELECT 'GEOID12B', auth_name, code FROM grid_transform
INSERT INTO "geoid_model" SELECT 'GEOID18', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g2018%' AND deprecated = 0;
INSERT INTO "geoid_model" SELECT 'OSGM15', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE '%OSGM15%' AND deprecated = 0;
INSERT INTO "geoid_model" SELECT 'GGM10', auth_name, code FROM grid_transformation WHERE auth_name = 'PROJ' AND grid_name LIKE 'GGM10.txt' AND deprecated = 0;
---- PROJ historic +datum aliases -----
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6326','WGS84','PROJ');
@@ -260,94 +134,4 @@ 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');
-- 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)
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4326','WGS84','PROJ');
---- PROJ unit short names -----
-- Linear units
UPDATE unit_of_measure SET proj_short_name = 'mm' WHERE auth_name = 'EPSG' AND code = '1025';
UPDATE unit_of_measure SET proj_short_name = 'cm' WHERE auth_name = 'EPSG' AND code = '1033';
UPDATE unit_of_measure SET proj_short_name = 'm' WHERE auth_name = 'EPSG' AND code = '9001';
UPDATE unit_of_measure SET proj_short_name = 'ft' WHERE auth_name = 'EPSG' AND code = '9002';
UPDATE unit_of_measure SET proj_short_name = 'us-ft' WHERE auth_name = 'EPSG' AND code = '9003';
UPDATE unit_of_measure SET proj_short_name = 'fath' WHERE auth_name = 'EPSG' AND code = '9014';
UPDATE unit_of_measure SET proj_short_name = 'kmi' WHERE auth_name = 'EPSG' AND code = '9030';
UPDATE unit_of_measure SET proj_short_name = 'us-ch' WHERE auth_name = 'EPSG' AND code = '9033';
UPDATE unit_of_measure SET proj_short_name = 'us-mi' WHERE auth_name = 'EPSG' AND code = '9035';
UPDATE unit_of_measure SET proj_short_name = 'km' WHERE auth_name = 'EPSG' AND code = '9036';
UPDATE unit_of_measure SET proj_short_name = 'ind-ft' WHERE auth_name = 'EPSG' AND code = '9081';
UPDATE unit_of_measure SET proj_short_name = 'ind-yd' WHERE auth_name = 'EPSG' AND code = '9085';
UPDATE unit_of_measure SET proj_short_name = 'mi' WHERE auth_name = 'EPSG' AND code = '9093';
UPDATE unit_of_measure SET proj_short_name = 'yd' WHERE auth_name = 'EPSG' AND code = '9096';
UPDATE unit_of_measure SET proj_short_name = 'ch' WHERE auth_name = 'EPSG' AND code = '9097';
UPDATE unit_of_measure SET proj_short_name = 'link' WHERE auth_name = 'EPSG' AND code = '9098';
-- Angular units
UPDATE unit_of_measure SET proj_short_name = 'rad' WHERE auth_name = 'EPSG' AND code = '9101';
UPDATE unit_of_measure SET proj_short_name = 'deg' WHERE auth_name = 'EPSG' AND code = '9102';
UPDATE unit_of_measure SET proj_short_name = 'grad' WHERE auth_name = 'EPSG' AND code = '9105';
-- PROJ specific units
INSERT INTO "unit_of_measure" VALUES('PROJ','DM','decimeter','length',0.01,'dm',0);
INSERT INTO "unit_of_measure" VALUES('PROJ','IN','inch','length',0.0254,'in',0);
INSERT INTO "unit_of_measure" VALUES('PROJ','US_IN','US survey inch','length',0.025400050800101,'us-in',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: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
INSERT INTO "grid_transformation"
SELECT
'PROJ' AS auth_name,
gt.auth_name || '_' || gt.code || '_RESTRICTED_TO_VERTCRS' AS code,
gcrs.name || ' to ' || vcrs.name || ' (from ' || gt.name || ')' AS name,
NULL AS description,
'EPSG' AS method_auth_name,
'9665' AS method_code,
'Geographic3D to GravityRelatedHeight (gtx)' AS method_name,
gt.source_crs_auth_name,
gt.source_crs_code,
c.vertical_crs_auth_name AS target_crs_auth_name,
c.vertical_crs_code AS target_crs_code,
gt.accuracy,
gt.grid_param_auth_name,
gt.grid_param_code,
gt.grid_param_name,
gt.grid_name,
gt.grid2_param_auth_name,
gt.grid2_param_code,
gt.grid2_param_name,
gt.grid2_name,
gt.interpolation_crs_auth_name,
gt.interpolation_crs_code,
gt.operation_version,
gt.deprecated
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_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');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6277','OSGB36','PROJ');
-17
View File
@@ -1,17 +0,0 @@
-- 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);
INSERT INTO celestial_body VALUES('PROJ', 'EARTH', 'Earth', 6378137.0);
INSERT INTO versioned_auth_name_mapping VALUES ('IAU_2015', 'IAU', '2015', 1);
CREATE TRIGGER conversion_method_check_insert_trigger_orthographic
INSTEAD OF INSERT ON conversion
BEGIN
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Orthographic')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9840' AND (NEW.method_name != 'Orthographic' 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);
END;
-7
View File
@@ -463,10 +463,3 @@ 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');
INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5832','EPSG','9928','EPSG');
INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5833','EPSG','9929','EPSG');
INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5834','EPSG','9930','EPSG');
INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5835','EPSG','9931','EPSG');
INSERT INTO "deprecation" VALUES('compound_crs','EPSG','9924','EPSG','10293','EPSG');
INSERT INTO "deprecation" VALUES('projected_crs','EPSG','8395','EPSG','10285','EPSG');
-612
View File
@@ -1,612 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://schema.omg.org/spec/UML/2.1">
<xmi:Documentation exporter="umbrello uml modeller 2.35.0 (Applications 22.08.0) http://umbrello.kde.org" exporterVersion="2.0.4"/>
<uml:Model xmi:id="m1" name="Modèle UML">
<packagedElement xmi:type="uml:Stereotype" xmi:id="folder" name="folder"/>
<packagedElement xmi:type="uml:Stereotype" xmi:id="dataType" name="dataType"/>
<packagedElement xmi:type="uml:Stereotype" xmi:id="interface" name="interface"/>
<packagedElement xmi:type="uml:Model" xmi:id="Logical_View" name="Logical View">
<uml:Package xmi:id="Datatypes" name="Datatypes" stereotype="folder">
<packagedElement xmi:type="uml:DataType" xmi:id="un10q3RAZh9YU" name="char" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uAynv6TbgG11Z" name="int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="ucOVt2J1fTMkF" name="float" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uiXGLFrfkCoBN" name="double" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uM3vdo8djgFgC" name="bool" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uhL8F851fQQyq" name="string" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="utJAws36TUGWD" name="unsigned char" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="unKRfzLu0XGvb" name="signed char" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="u95deU2ow68b1" name="unsigned int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uLpP90F2P3CjD" name="signed int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="u4xSDe1bTIp4y" name="short int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="ujAtUquSJ4ymf" name="unsigned short int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uQJ6caew3c0pr" name="signed short int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="u0pTHqeM9ZjOn" name="long int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uHILGaUoMVqSP" name="signed long int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uMQGXdDcGxXwm" name="unsigned long int" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uGU1cu1WWxGTK" name="long double" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uxDmw01nt3l8h" name="wchar_t" stereotype="dataType"/>
<packagedElement xmi:type="uml:DataType" xmi:id="uoLfrpRTKO5H9" name="celestial_body" stereotype="dataType" isActive="false"/>
</uml:Package>
<packagedElement xmi:type="uml:Class" xmi:id="usFiDnmfbJFfx" name="celestial_body"/>
<packagedElement xmi:type="uml:Class" xmi:id="uObC58hPo02ai" name="ellipsoid"/>
<packagedElement xmi:type="uml:Class" xmi:id="uxIdWYUj1tC89" name="extent"/>
<packagedElement xmi:type="uml:Class" xmi:id="uJg1To66U2yLo" name="scope"/>
<packagedElement xmi:type="uml:Class" xmi:id="u7xVpU72itjoO" name="usage"/>
<packagedElement xmi:type="uml:Class" xmi:id="uyKfofPnOJBBz" name="prime_meridian"/>
<packagedElement xmi:type="uml:Class" xmi:id="uXIw9hpV4Laec" name="geodetic_datum"/>
<packagedElement xmi:type="uml:Class" xmi:id="uZFrn4Xpu0xx2" name="geodetic_datum_ensemble_member"/>
<packagedElement xmi:type="uml:Association" xmi:id="u2iZnV3lQo8VV" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uIclTFwqf3Qzm" name="" type="uObC58hPo02ai" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ubctbZ3lLchnR" name="" type="usFiDnmfbJFfx" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uVfxEzXLrb5Rx" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="udba8A00mJCH4" name="" type="usFiDnmfbJFfx" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u4UKCzMwHfe5W" name="" type="uObC58hPo02ai" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uxGY0deqShuSF" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="usTC48tt9lcUM" name="" type="u7xVpU72itjoO" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uGh6TFBFzznNi" name="" type="uJg1To66U2yLo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uNmyoVwUTXMDb" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uRJkZIVlNqBJ8" name="" type="u7xVpU72itjoO" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u4nTLk0C5WkOO" name="" type="uxIdWYUj1tC89" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="u0flfhTWustUM" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uCa7re6vVEGdT" name="" type="uObC58hPo02ai" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="us7QbDcUitYdi" name="" type="uXIw9hpV4Laec" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uPn9DTm3O4C2C" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="unUPWkhkiuSqv" name="" type="usFiDnmfbJFfx" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="umXR5RGTZy9Bm" name="" type="uObC58hPo02ai" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uKCie6nj32jNj" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ul9s5PfHcwHi9" name="" type="uObC58hPo02ai" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uJGMUUu3aUdnD" name="" type="usFiDnmfbJFfx" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="ucUcuKZl9wulS" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u9hlMKrXk5IIg" name="" type="uXIw9hpV4Laec" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uUYM4WW4jdn8k" name="" type="uObC58hPo02ai" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uqmMELyDiHgbZ" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uRSTymCE2VAqd" name="" type="uXIw9hpV4Laec" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="upwscO1GgZUwK" name="" type="uyKfofPnOJBBz" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uhhqgJpi7OTNv" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uAhG7f7lOZDjw" name="" type="uZFrn4Xpu0xx2" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uMVzlQTUTpWaP" name="" type="uXIw9hpV4Laec" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="utMrJMUbU32wJ" name="coordinate_system"/>
<packagedElement xmi:type="uml:Class" xmi:id="u0B5HltcEv058" name="axis"/>
<packagedElement xmi:type="uml:Association" xmi:id="ub524vi7o2MQs" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uG3CflRilOpLF" name="" type="u0B5HltcEv058" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uvWqs7Gvj2623" name="" type="utMrJMUbU32wJ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uICv8VZ7ridbA" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u1qF7rQfnlpJY" name="" type="utMrJMUbU32wJ" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u4Q97lZKWq2lT" name="" type="u0B5HltcEv058" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uaj1PqppIwcJM" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="upl40aCxoShlE" name="" type="utMrJMUbU32wJ" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uDFrgIldp3PvY" name="" type="u0B5HltcEv058" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="uBBUUxy1ciMcJ" name="vertical_datum"/>
<packagedElement xmi:type="uml:Class" xmi:id="uyjoPy6DRbPA4" name="vertical_datum_ensemble_member"/>
<packagedElement xmi:type="uml:Class" xmi:id="uGyT73jCULmlG" name="geodetic_crs"/>
<packagedElement xmi:type="uml:Association" xmi:id="uzgX0FJyw7lFO" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uL9l3B5uNr8x7" name="" type="uGyT73jCULmlG" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u21uRcpRMJXas" name="" type="uXIw9hpV4Laec" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uDA52qncCXvlM" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uWZJXd5PxK0v9" name="" type="uGyT73jCULmlG" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uvOEO2TnPi5Sf" name="" type="utMrJMUbU32wJ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uqmjTn3jgUi3v" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u3os39y38Ok0x" name="" type="uGyT73jCULmlG" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uqLzmqQeXfOeD" name="" type="u7xVpU72itjoO" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="uaNvEyeKUaDUQ" name="vertical_crs"/>
<packagedElement xmi:type="uml:Class" xmi:id="uF1TLmuLJtlVj" name="unit_of_measure"/>
<packagedElement xmi:type="uml:Association" xmi:id="uHGGZSuHhrnIU" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uj4370zCys8pO" name="" type="u0B5HltcEv058" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uU41D2bzT8NWS" name="" type="uF1TLmuLJtlVj" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="u25L1YUK3aNvZ" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uewTRFLTUoCDX" name="" type="uBBUUxy1ciMcJ" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ux5bkjkvacrsX" name="" type="uaNvEyeKUaDUQ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="ukSvQYmStkMCb" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u1TUDRfuF5nf4" name="" type="uBBUUxy1ciMcJ" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uYuFkkxVGtvVm" name="" type="uaNvEyeKUaDUQ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="u0vCAwaM6wOIT" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="upf6QJ4elmkVN" name="" type="uaNvEyeKUaDUQ" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uCD4usquL7e3R" name="" type="uBBUUxy1ciMcJ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uFYTHrYnhGxji" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uCtxpIJqEUdlI" name="" type="uaNvEyeKUaDUQ" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uoVylRS0TwDSD" name="" type="utMrJMUbU32wJ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uSVHHvwBxQSrq" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ubdep3WXQC0tf" name="" type="uaNvEyeKUaDUQ" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uXj3ZkhJ4jpDh" name="" type="u7xVpU72itjoO" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="u8NpszsCtPwog" name="conversion"/>
<packagedElement xmi:type="uml:Class" xmi:id="u6Mx5ikYdLO6g" name="projected_crs"/>
<packagedElement xmi:type="uml:Association" xmi:id="uf2iKfQ1gbEHG" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uu49xwJ8zo4B7" name="" type="u6Mx5ikYdLO6g" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ud17hibkUBpBY" name="" type="uGyT73jCULmlG" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="ujhNRvn4TLezM" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="umXAyVN6hB28J" name="" type="u6Mx5ikYdLO6g" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uxvOHxqWG1prq" name="" type="u8NpszsCtPwog" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uKY6ijA9G37v4" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uQZm5sCJjahvT" name="" type="u6Mx5ikYdLO6g" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uuXFCYoz4xFFw" name="" type="utMrJMUbU32wJ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="ul2lN2OKAIDYf" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uemGlZVVj4z7e" name="" type="u6Mx5ikYdLO6g" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ussKvy1UDMruJ" name="" type="u7xVpU72itjoO" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="u5BghmDXUkrxB" name="CRS" isAbstract="true" stereotype="interface"/>
<packagedElement xmi:type="uml:Interface" xmi:id="umFTWBZY3sT1t" name="horizontal_crs" isAbstract="true" stereotype="interface"/>
<packagedElement xmi:type="uml:Association" xmi:id="uxlafigrj7dPB" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uZev0Oqtg0P9I" name="" type="uGyT73jCULmlG" aggregation="none" isNavigable="false" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uuEtFcVNefM4a" name="" type="umFTWBZY3sT1t" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uOGESIiV1lUWR" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uvMDc1BneKqzU" name="" type="u6Mx5ikYdLO6g" aggregation="none" isNavigable="false" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uVuB81gENCakM" name="" type="umFTWBZY3sT1t" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="uyyIBNbwTXz8Y" name="compound_crs"/>
<packagedElement xmi:type="uml:Association" xmi:id="uVmMIfTWfhhtz" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ufWb8BVBiApKZ" name="" type="uyyIBNbwTXz8Y" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uirBkX3LK38PS" name="" type="umFTWBZY3sT1t" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uLcwRFeyrXoYI" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u4ac4Rbyy6T1c" name="" type="uyyIBNbwTXz8Y" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u8LvbhzYcD0t0" name="" type="uaNvEyeKUaDUQ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="uxsXx7eblI25W" name="helmert_transformation"/>
<packagedElement xmi:type="uml:Class" xmi:id="uRgOG0gxyXHen" name="grid_transformation"/>
<packagedElement xmi:type="uml:Class" xmi:id="ueG4mAO9OIIjR" name="grid_alternatives"/>
<packagedElement xmi:type="uml:Class" xmi:id="uKZXCWxhPhOED" name="other_transformation"/>
<packagedElement xmi:type="uml:Class" xmi:id="uS8pYe6W1TbbV" name="concatenated_operation"/>
<packagedElement xmi:type="uml:Class" xmi:id="utLTCBJh0isMw" name="concatenated_operation_step"/>
<packagedElement xmi:type="uml:Class" xmi:id="uthCBXfzNVdWl" name="geoid_model"/>
<packagedElement xmi:type="uml:Class" xmi:id="u1P4Ek5lBEvCq" name="alias_name"/>
<packagedElement xmi:type="uml:Class" xmi:id="uBbOK5nnocONP" name="supersession"/>
<packagedElement xmi:type="uml:Class" xmi:id="uECCtbU6r1Dl2" name="deprecation"/>
<packagedElement xmi:type="uml:Interface" xmi:id="uvKHM8bb9hdJo" name="coordinate_operation_view" isAbstract="true" stereotype="interface"/>
<packagedElement xmi:type="uml:Association" xmi:id="uDLBTtfmmpy0I" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u58BWrcYoyDzA" name="" type="u8NpszsCtPwog" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uJsm3ogOZZZqs" name="" type="u7xVpU72itjoO" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uqeoRajY1FPQy" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uTv44pAdrI0ky" name="" type="uyyIBNbwTXz8Y" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u7ltOXnMiCU4P" name="" type="u7xVpU72itjoO" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uDQy82RrAbccG" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uAZj0Bxj10Ver" name="" type="u5BghmDXUkrxB" aggregation="composite" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uOFDVFgYPPXdv" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uuiecxJhCPEvO" name="target_crs">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uKrykRrmsOJcf" name="target_crs" type="uvKHM8bb9hdJo" aggregation="composite" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uOnbDosY1YM4S" name="" type="u5BghmDXUkrxB" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uHaQTAVxi5e4O" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uXEl4xBNl1sUi" name="target_crs" type="uvKHM8bb9hdJo" aggregation="composite" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="urxH3Z5eiAva2" name="" type="u5BghmDXUkrxB" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uUCcxG5D8Rkrs" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uXdJx3yR9vn4v" name="source_crs" type="uvKHM8bb9hdJo" aggregation="composite" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uQ50yb32weyb7" name="" type="u5BghmDXUkrxB" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uR78sm66CrD8b" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u95kbTTjQ8XgJ" name="target_crs" type="uvKHM8bb9hdJo" aggregation="composite" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uc8W2plMCS3sr" name="" type="u5BghmDXUkrxB" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uihRS82NbmZEs" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uSurihb4JiVsr" name="target_crs" type="uvKHM8bb9hdJo" aggregation="composite" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uN7484LtfWKo7" name="" type="u5BghmDXUkrxB" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="ucfurEKNx9d1o" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uxJQwax33ycVo" name="" type="uRgOG0gxyXHen" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uAb8OGLn3zv1v" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uAAQFL3kNJRPy" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uxylhmjFul2Wb" name="" type="uRgOG0gxyXHen" aggregation="none" isNavigable="false" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uQC46ajWmwrJB" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uXwScx6KWydSm" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uFsqqoIYw3nm8" name="" type="uxsXx7eblI25W" aggregation="none" isNavigable="false" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uQZfLqrTiaHQy" name="" type="uxsXx7eblI25W" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uZQKUjkh1Kd80" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uvfM9sFpkRe8D" name="" type="uxsXx7eblI25W" aggregation="none" isNavigable="false" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uPzY3jhCCUbYp" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uM8GLBwvBTyof" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u3eAG9tJsAFpW" name="" type="uKZXCWxhPhOED" aggregation="none" isNavigable="false" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uojCvTXm08l6q" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uC9cOTQW4qHhH" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uXGJTJ0sMyqfe" name="" type="uS8pYe6W1TbbV" aggregation="none" isNavigable="false" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uSmK5eDuTwJoc" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="urp6VgZbsPpuf" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u4azzucGtnnZ3" name="" type="uS8pYe6W1TbbV" aggregation="composite" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uwHTXL4yteAeZ" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="upU79bBdZeqNt" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ux4Gd38ZgsI6Z" name="operation" type="utLTCBJh0isMw" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u3mWQPFThYIU4" name="" type="uS8pYe6W1TbbV" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="ukLdcpun6whGn" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uiaaS2VZw0zI8" name="steps" type="utLTCBJh0isMw" multiplicity="2..*" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uWpHoYwL4vJZm" name="" type="uvKHM8bb9hdJo" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="ukeMqqqHuDxV8" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="ulhOABCj0wB46" name="member" type="uZFrn4Xpu0xx2" multiplicity="1..*" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u6e7k7W7XgDxy" name="" type="uXIw9hpV4Laec" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="u7hSFXvDh1F4A" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uoUL9BM6nJ8ca" name="member" type="uyjoPy6DRbPA4" multiplicity="1..*" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="usBc4YO7v8ws3" name="" type="uBBUUxy1ciMcJ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="uvTttS4A9izaK" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="u7VX1ZIV8yiLS" name="ensemble" type="uZFrn4Xpu0xx2" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uzsNkuWxBT34b" name="" type="uXIw9hpV4Laec" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="upU7nuwAKothA" name="">
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="uNmaAHkBLQnpD" name="ensemble" type="uyjoPy6DRbPA4" aggregation="aggregate" isNavigable="true" changeability="changeable"/>
<ownedEnd xmi:type="uml:AssociationEnd" xmi:id="umCrLhPuRqKWg" name="" type="uBBUUxy1ciMcJ" aggregation="none" isNavigable="true" changeability="changeable"/>
</packagedElement>
<xmi:Extension extender="umbrello">
<diagrams resolution="96">
<diagram xmi.id="uhRWDcb50cJGi" name="CRS" type="1" documentation="" backgroundcolor="#ffffff" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" griddotcolor="#d3d3d3" linecolor="#990000" linewidth="0" textcolor="#000000" usefillcolor="1" showattribassocs="1" showatts="1" showattsig="1" showops="1" showopsig="1" showpackage="1" showpubliconly="0" showscope="1" showstereotype="2" localid="-1" showgrid="0" snapgrid="0" snapcsgrid="0" snapx="25" snapy="25" zoom="115" canvasheight="800" canvaswidth="1100" isopen="1">
<widgets>
<classwidget xmi.id="uJg1To66U2yLo" localid="um3Woizf9tJfa" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="675" y="121" width="50" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uxIdWYUj1tC89" localid="uDtGrAaNA4U2E" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="754" y="120" width="54" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uyKfofPnOJBBz" localid="unOwcPMA87WHO" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="385" y="192" width="116" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="u1P4Ek5lBEvCq" localid="uxJZQo6P2x7xO" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="73" y="259" width="85" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uObC58hPo02ai" localid="ujoBH6gtV9Wvq" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="273" y="191" width="68" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uBbOK5nnocONP" localid="u1sGx2RBu2Do3" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="73" y="201" width="99" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="u7xVpU72itjoO" localid="uLboalyAJhqf6" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="720" y="190" width="51" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="usFiDnmfbJFfx" localid="uKlBLV0UElMUg" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="253" y="105" width="106" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uXIw9hpV4Laec" localid="u1saeYruHtZ1T" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="248" y="289" width="119" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uZFrn4Xpu0xx2" localid="uVSndXk8FBg1M" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="0" x="23" y="452" width="251" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uF1TLmuLJtlVj" localid="uVqjtAY461nOT" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="541" y="43" width="121" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="utMrJMUbU32wJ" localid="uWIzhT61I6HHL" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="535" y="197" width="138" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<interfacewidget xmi.id="umFTWBZY3sT1t" localid="umDcz2kF8o1sO" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="431" y="367.13" width="105" height="35" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="0" showattsigs="601" drawascircle="0"/>
<classwidget xmi.id="u8NpszsCtPwog" localid="uIy0iKynNyv01" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="593" y="411" width="84" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uyjoPy6DRbPA4" localid="uFfif7LcmqYAU" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="805" y="456" width="244" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uGyT73jCULmlG" localid="uRPKt5kxhV0ik" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="258" y="399" width="95" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="u6Mx5ikYdLO6g" localid="uzuca1OOB9I3O" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="436" y="506" width="101" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="u0B5HltcEv058" localid="u9JQOokGIuBwn" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="583" y="119" width="38" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uBBUUxy1ciMcJ" localid="uufK51OlynST7" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="781" y="295" width="111" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uaNvEyeKUaDUQ" localid="u0QM38nSYHuMl" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="715" y="500" width="88" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uyyIBNbwTXz8Y" localid="uzBuX2RUFnAkw" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="599" y="600" width="107" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uECCtbU6r1Dl2" localid="ufo3O2iJ3R37l" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="73" y="149" width="92" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
</widgets>
<messages/>
<associations>
<assocwidget xmi.id="ucUcuKZl9wulS" localid="uG5A8dXr4ptuQ" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uXIw9hpV4Laec" widgetbid="uObC58hPo02ai" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="307.429" starty="289"/>
<endpoint endx="307.071" endy="219"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uOGESIiV1lUWR" localid="uItkUlCNCgmId" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="512" widgetaid="u6Mx5ikYdLO6g" widgetbid="umFTWBZY3sT1t" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="486.19" starty="506"/>
<endpoint endx="483.888" endy="402.13"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uKCie6nj32jNj" localid="uz76hz3D3NMgU" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uObC58hPo02ai" widgetbid="usFiDnmfbJFfx" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="306.837" starty="191"/>
<endpoint endx="306.163" endy="133"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uxGY0deqShuSF" localid="uH0EYRqn2Lwpy" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u7xVpU72itjoO" widgetbid="uJg1To66U2yLo" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="736.268" starty="190"/>
<endpoint endx="709.232" endy="149"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ujhNRvn4TLezM" localid="uBdE0IxTGsntz" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u6Mx5ikYdLO6g" widgetbid="u8NpszsCtPwog" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="508.384" starty="506"/>
<endpoint endx="613.116" endy="439"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uvTttS4A9izaK" localid="uB8eqDI9r8Tvh" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uZFrn4Xpu0xx2" widgetbid="uXIw9hpV4Laec" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="uJTT6faChkdCx" localid="uK5qiY2RLA0AF" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="188.994" y="432" width="77" height="18" isinstance="0" showstereotype="2" text="ensemble" pretext="+" posttext="" role="709"/>
<linepath layout="Polyline">
<startpoint startx="168.593" starty="452"/>
<endpoint endx="297.032" endy="317"/>
<point x="226" y="412"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uNmyoVwUTXMDb" localid="uqraqvRr5X6Ph" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u7xVpU72itjoO" widgetbid="uxIdWYUj1tC89" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="752.6" starty="190"/>
<endpoint endx="773.9" endy="148"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ukeMqqqHuDxV8" localid="uD4BmT3DPdj8U" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uZFrn4Xpu0xx2" widgetbid="uXIw9hpV4Laec" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="u7Xpl1pp3dZRT" localid="uIjc6x7qDuUXQ" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="116.006" y="418.079" width="29" height="18" isinstance="0" showstereotype="2" text="1..*" pretext="" posttext="" role="701"/>
<floatingtext xmi.id="uiGd8EdVUaF4k" localid="unk24DNnkZ09O" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="73.7037" y="432.5" width="69" height="18" isinstance="0" showstereotype="2" text="member" pretext="+" posttext="" role="709"/>
<linepath layout="Polyline">
<startpoint startx="148.762" starty="452"/>
<endpoint endx="280.934" endy="317"/>
<point x="150" y="386"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uzgX0FJyw7lFO" localid="uhtr9AACb1I94" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uGyT73jCULmlG" widgetbid="uXIw9hpV4Laec" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="305.755" starty="399"/>
<endpoint endx="307.245" endy="317"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uHGGZSuHhrnIU" localid="uPc04hGlrrM6r" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u0B5HltcEv058" widgetbid="uF1TLmuLJtlVj" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="601.908" starty="119"/>
<endpoint endx="601.592" endy="71"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uxlafigrj7dPB" localid="ujMoBFYWTMM5E" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="512" widgetaid="uGyT73jCULmlG" widgetbid="umFTWBZY3sT1t" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="431" starty="392.998"/>
<endpoint endx="353" endy="405.429"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uqmMELyDiHgbZ" localid="uWKIHcQd7U9bq" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uXIw9hpV4Laec" widgetbid="uyKfofPnOJBBz" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="327.057" starty="289"/>
<endpoint endx="423.443" endy="220"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ul2lN2OKAIDYf" localid="uOfgy3I312rcW" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u6Mx5ikYdLO6g" widgetbid="u7xVpU72itjoO" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="497.975" starty="506"/>
<endpoint endx="734.025" endy="218"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uKY6ijA9G37v4" localid="uuR1rFpcd9GPz" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u6Mx5ikYdLO6g" widgetbid="utMrJMUbU32wJ" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="491.824" starty="506"/>
<endpoint endx="598.676" endy="225"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uLcwRFeyrXoYI" localid="uMhwVTs0yws9w" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uyyIBNbwTXz8Y" widgetbid="uaNvEyeKUaDUQ" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="667.41" starty="600"/>
<endpoint endx="744.09" endy="528"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uVmMIfTWfhhtz" localid="ueA80KQgI0i5L" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uyyIBNbwTXz8Y" widgetbid="umFTWBZY3sT1t" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="642.185" starty="600"/>
<endpoint endx="496.394" endy="402.13"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uFYTHrYnhGxji" localid="uzv82lgr6HcYe" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uaNvEyeKUaDUQ" widgetbid="utMrJMUbU32wJ" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="751.838" starty="500"/>
<endpoint endx="611.162" endy="225"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uSVHHvwBxQSrq" localid="upFaNi2SnbldZ" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uaNvEyeKUaDUQ" widgetbid="u7xVpU72itjoO" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="758.39" starty="500"/>
<endpoint endx="746.11" endy="218"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uDA52qncCXvlM" localid="u2o8RW3IOKF04" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uGyT73jCULmlG" widgetbid="utMrJMUbU32wJ" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="326.188" starty="399"/>
<endpoint endx="583.312" endy="225"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="u0vCAwaM6wOIT" localid="u2MzIfZDtTgIq" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uaNvEyeKUaDUQ" widgetbid="uBBUUxy1ciMcJ" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="764.293" starty="500"/>
<endpoint endx="831.207" endy="323"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uf2iKfQ1gbEHG" localid="u8b6sCt7LB9du" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u6Mx5ikYdLO6g" widgetbid="uGyT73jCULmlG" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="462.818" starty="506"/>
<endpoint endx="329.182" endy="427"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="u7hSFXvDh1F4A" localid="uYYh924ri6t6G" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uyjoPy6DRbPA4" widgetbid="uBBUUxy1ciMcJ" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="uVxuH9MAs4KAa" localid="uwakwbIl2CPo0" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="850.137" y="420.391" width="29" height="18" isinstance="0" showstereotype="2" text="1..*" pretext="" posttext="" role="701"/>
<floatingtext xmi.id="uRouwIogXnsLU" localid="uGaZVOInAaFqc" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="810.174" y="437.739" width="69" height="18" isinstance="0" showstereotype="2" text="member" pretext="+" posttext="" role="709"/>
<linepath layout="Polyline">
<startpoint startx="913.099" starty="456"/>
<endpoint endx="841.221" endy="323"/>
<point x="872.174" y="414.783"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uaj1PqppIwcJM" localid="ujZle0tkmbWn3" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="utMrJMUbU32wJ" widgetbid="u0B5HltcEv058" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="603.641" starty="197"/>
<endpoint endx="602.359" endy="147"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uqmjTn3jgUi3v" localid="u77m7M873mSKV" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uGyT73jCULmlG" widgetbid="u7xVpU72itjoO" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="334.974" starty="399"/>
<endpoint endx="720" endy="216.113"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uDLBTtfmmpy0I" localid="uBB2vq7eUTBz1" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="u8NpszsCtPwog" widgetbid="u7xVpU72itjoO" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="642" starty="411"/>
<endpoint endx="738.5" endy="218"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uqeoRajY1FPQy" localid="uWVpetcVmRbfw" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uyyIBNbwTXz8Y" widgetbid="u7xVpU72itjoO" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="655.676" starty="600"/>
<endpoint endx="742.324" endy="218"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="upU7nuwAKothA" localid="umX2zL5BOZfIT" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="uyjoPy6DRbPA4" widgetbid="uBBUUxy1ciMcJ" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="uXrql08EjHItm" localid="us5vetosNrtkL" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="932.739" y="435.13" width="77" height="18" isinstance="0" showstereotype="2" text="ensemble" pretext="+" posttext="" role="709"/>
<linepath layout="Polyline">
<startpoint startx="926.317" starty="456"/>
<endpoint endx="848.032" endy="323"/>
<point x="924.348" y="415.652"/>
</linepath>
</assocwidget>
</associations>
</diagram>
<diagram xmi.id="uLa8bk62duhDT" name="Transformations" type="1" documentation="" backgroundcolor="#ffffff" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" griddotcolor="#d3d3d3" linecolor="#990000" linewidth="0" textcolor="#000000" usefillcolor="1" showattribassocs="1" showatts="1" showattsig="1" showops="1" showopsig="1" showpackage="1" showpubliconly="0" showscope="1" showstereotype="2" localid="-1" showgrid="0" snapgrid="0" snapcsgrid="0" snapx="25" snapy="25" zoom="100" canvasheight="813" canvaswidth="1086" isopen="1">
<widgets>
<interfacewidget xmi.id="u5BghmDXUkrxB" localid="u0iOMQc48A8ui" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="354" y="70" width="87" height="35" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="0" showscope="1" showattributes="0" showattsigs="601" drawascircle="0"/>
<classwidget xmi.id="utLTCBJh0isMw" localid="u1Yi2Azrfm068" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="663" y="370" width="210" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uRgOG0gxyXHen" localid="u6PnghQcoxIEn" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="22" y="288" width="146" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uxsXx7eblI25W" localid="uqhYrC8OA4YoG" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="188" y="285" width="171" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uS8pYe6W1TbbV" localid="ui21ynkFBrL8e" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="678" y="285" width="174" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="uKZXCWxhPhOED" localid="uqEW5xNn1H9K2" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="377" y="285" width="155" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<classwidget xmi.id="ueG4mAO9OIIjR" localid="us14okeSxbdQS" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="36" y="369" width="125" height="28" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="1" showattsigs="601"/>
<interfacewidget xmi.id="uvKHM8bb9hdJo" localid="uyx5AQn5q5U5h" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="0" usesdiagramusefillcolor="0" fillcolor="#ffffc0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="307.905" y="199.293" width="193" height="35" isinstance="0" showstereotype="2" showoperations="1" showpubliconly="0" showopsigs="601" showpackage="1" showscope="1" showattributes="0" showattsigs="601" drawascircle="0"/>
</widgets>
<messages/>
<associations>
<assocwidget xmi.id="upU79bBdZeqNt" localid="uP6qpMRa4zD1m" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="utLTCBJh0isMw" widgetbid="uS8pYe6W1TbbV" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="ubSf4vR8y9mWu" localid="uo3ahNRjUBHG0" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="774.506" y="348" width="76" height="18" isinstance="0" showstereotype="2" text="operation" pretext="+" posttext="" role="709"/>
<linepath layout="Direct">
<startpoint startx="767.506" starty="370"/>
<endpoint endx="765.494" endy="313"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uM8GLBwvBTyof" localid="uNnd7XdPZJomh" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="512" widgetaid="uKZXCWxhPhOED" widgetbid="uvKHM8bb9hdJo" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="445.969" starty="285"/>
<endpoint endx="415.069" endy="234.293"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uAAQFL3kNJRPy" localid="uDr9tQwCW3LIW" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="512" widgetaid="uRgOG0gxyXHen" widgetbid="uvKHM8bb9hdJo" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="145.837" starty="288"/>
<endpoint endx="340.859" endy="234.293"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uZQKUjkh1Kd80" localid="uK89JkfWajCgs" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="512" widgetaid="uxsXx7eblI25W" widgetbid="uvKHM8bb9hdJo" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="295.793" starty="285"/>
<endpoint endx="376.538" endy="234.293"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uC9cOTQW4qHhH" localid="uNs9cOeSNg9yI" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="512" widgetaid="uS8pYe6W1TbbV" widgetbid="uvKHM8bb9hdJo" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<linepath layout="Direct">
<startpoint startx="703.59" starty="285"/>
<endpoint endx="481.167" endy="234.293"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="ukLdcpun6whGn" localid="uVCUJOqTsKcl0" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="501" widgetaid="utLTCBJh0isMw" widgetbid="uvKHM8bb9hdJo" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="uR6DqpJGcZiA4" localid="uBpmlFtAKyKcp" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="713.694" y="343.552" width="29" height="18" isinstance="0" showstereotype="2" text="2..*" pretext="" posttext="" role="701"/>
<floatingtext xmi.id="uICoecWqBxBu3" localid="ukpHrPZQ09jnB" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="657.75" y="350.853" width="50" height="18" isinstance="0" showstereotype="2" text="steps" pretext="+" posttext="" role="709"/>
<linepath layout="Direct">
<startpoint startx="737.557" starty="370"/>
<endpoint endx="442.459" endy="234.293"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uihRS82NbmZEs" localid="uxmC5Iq6uXfmO" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="510" widgetaid="uvKHM8bb9hdJo" widgetbid="u5BghmDXUkrxB" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="uYJzY8EsweHrf" localid="uHm3PIFZRlTZW" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="422.991" y="160.293" width="78" height="18" isinstance="0" showstereotype="2" text="target_crs" pretext="+" posttext="" role="709"/>
<linepath layout="Polyline">
<startpoint startx="409.99" starty="199.293"/>
<endpoint endx="406.325" endy="105"/>
<point x="427" y="146"/>
</linepath>
</assocwidget>
<assocwidget xmi.id="uUCcxG5D8Rkrs" localid="uSDOWqI77RXZG" textcolor="#000000" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" seqnum="" type="510" widgetaid="uvKHM8bb9hdJo" widgetbid="u5BghmDXUkrxB" indexa="0" totalcounta="0" indexb="0" totalcountb="0">
<floatingtext xmi.id="udCeDALUprRei" localid="u6SMTgNQSz54I" textcolor="none" linecolor="#990000" linewidth="0" usefillcolor="1" usesdiagramfillcolor="1" usesdiagramusefillcolor="1" fillcolor="none" font="Sans Serif,9,-1,5,50,0,0,0,0,0" autoresize="1" x="300.009" y="155" width="82" height="18" isinstance="0" showstereotype="2" text="source_crs" pretext="+" posttext="" role="709"/>
<linepath layout="Polyline">
<startpoint startx="396.461" starty="199.293"/>
<endpoint endx="388.505" endy="105"/>
<point x="370" y="141"/>
</linepath>
</assocwidget>
</associations>
</diagram>
</diagrams>
</xmi:Extension>
</packagedElement>
<packagedElement xmi:type="uml:Model" xmi:id="Use_Case_View" name="Use Case View"/>
<packagedElement xmi:type="uml:Model" xmi:id="Component_View" name="Component View"/>
<packagedElement xmi:type="uml:Model" xmi:id="Deployment_View" name="Deployment View"/>
<packagedElement xmi:type="uml:Model" xmi:id="Entity_Relationship_Model" name="Entity Relationship Model"/>
</uml:Model>
<xmi:Extension extender="umbrello">
<docsettings viewid="uhRWDcb50cJGi" documentation="" uniqueid="uwakwbIl2CPo0"/>
<listview>
<listitem id="Views" type="800" open="1">
<listitem id="Entity_Relationship_Model" type="836" open="1"/>
<listitem id="Use_Case_View" type="802" open="1"/>
<listitem id="Component_View" type="821" open="1"/>
<listitem id="Deployment_View" type="827" open="1"/>
<listitem id="Logical_View" type="801" open="1">
<listitem id="u1P4Ek5lBEvCq" type="813" open="1"/>
<listitem id="u0B5HltcEv058" type="813" open="1"/>
<listitem id="usFiDnmfbJFfx" type="813" open="1"/>
<listitem id="uyyIBNbwTXz8Y" type="813" open="1"/>
<listitem id="uS8pYe6W1TbbV" type="813" open="1"/>
<listitem id="utLTCBJh0isMw" type="813" open="1"/>
<listitem id="u8NpszsCtPwog" type="813" open="1"/>
<listitem id="uvKHM8bb9hdJo" type="817" open="1"/>
<listitem id="utMrJMUbU32wJ" type="813" open="1"/>
<listitem id="u5BghmDXUkrxB" type="817" open="1"/>
<listitem id="uhRWDcb50cJGi" type="807" label="CRS" open="0"/>
<listitem id="uECCtbU6r1Dl2" type="813" open="1"/>
<listitem id="uObC58hPo02ai" type="813" open="1"/>
<listitem id="uxIdWYUj1tC89" type="813" open="1"/>
<listitem id="uGyT73jCULmlG" type="813" open="1"/>
<listitem id="uXIw9hpV4Laec" type="813" open="1"/>
<listitem id="uZFrn4Xpu0xx2" type="813" open="1"/>
<listitem id="uthCBXfzNVdWl" type="813" open="1"/>
<listitem id="ueG4mAO9OIIjR" type="813" open="1"/>
<listitem id="uRgOG0gxyXHen" type="813" open="1"/>
<listitem id="uxsXx7eblI25W" type="813" open="1"/>
<listitem id="umFTWBZY3sT1t" type="817" open="1"/>
<listitem id="uKZXCWxhPhOED" type="813" open="1"/>
<listitem id="uyKfofPnOJBBz" type="813" open="1"/>
<listitem id="u6Mx5ikYdLO6g" type="813" open="1"/>
<listitem id="uJg1To66U2yLo" type="813" open="1"/>
<listitem id="uBbOK5nnocONP" type="813" open="1"/>
<listitem id="uLa8bk62duhDT" type="807" label="Transformations" open="0"/>
<listitem id="Datatypes" type="830" open="0">
<listitem id="uM3vdo8djgFgC" type="829" open="0"/>
<listitem id="uiXGLFrfkCoBN" type="829" open="0"/>
<listitem id="ucOVt2J1fTMkF" type="829" open="0"/>
<listitem id="uGU1cu1WWxGTK" type="829" open="0"/>
<listitem id="u0pTHqeM9ZjOn" type="829" open="0"/>
<listitem id="u4xSDe1bTIp4y" type="829" open="0"/>
<listitem id="unKRfzLu0XGvb" type="829" open="0"/>
<listitem id="uLpP90F2P3CjD" type="829" open="0"/>
<listitem id="uHILGaUoMVqSP" type="829" open="0"/>
<listitem id="uQJ6caew3c0pr" type="829" open="0"/>
<listitem id="utJAws36TUGWD" type="829" open="0"/>
<listitem id="u95deU2ow68b1" type="829" open="0"/>
<listitem id="uMQGXdDcGxXwm" type="829" open="0"/>
<listitem id="ujAtUquSJ4ymf" type="829" open="0"/>
<listitem id="uxDmw01nt3l8h" type="829" open="0"/>
</listitem>
<listitem id="uF1TLmuLJtlVj" type="813" open="1"/>
<listitem id="u7xVpU72itjoO" type="813" open="1"/>
<listitem id="uaNvEyeKUaDUQ" type="813" open="1"/>
<listitem id="uBBUUxy1ciMcJ" type="813" open="1"/>
<listitem id="uyjoPy6DRbPA4" type="813" open="1"/>
</listitem>
</listitem>
</listview>
<codegeneration>
<codegenerator language="C++"/>
</codegeneration>
</xmi:Extension>
</xmi:XMI>
+5497 -13893
View File
File diff suppressed because it is too large Load Diff
-3703
View File
File diff suppressed because it is too large Load Diff
+1037 -2278
View File
File diff suppressed because it is too large Load Diff
+581 -1270
View File
File diff suppressed because it is too large Load Diff
@@ -1,20 +0,0 @@
--- 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);
INSERT INTO "geodetic_datum_ensemble_member" VALUES('EPSG','6326','EPSG','1309',7);
+158 -319
View File
@@ -7,321 +7,43 @@ INSERT INTO grid_alternatives(original_grid_name,
package_name,
url, direct_download, open_license, directory)
VALUES
-- 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),
('AT_GIS_GRID_2021_09_28.gsb','at_bev_AT_GIS_GRID_2021_09_28.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/at_bev_AT_GIS_GRID_2021_09_28.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),
-- 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),
('hBG18.dat', 'be_ign_hBG18.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/be_ign_hBG18.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
('CGG2013ai08.byn','ca_nrc_CGG2013ai08.tif','CGG2013ai08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013ai08.tif',1,1,NULL),
('CGG2013an83.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), -- deprecated name. dubious mapping !!!
('HT2_1997.byn','ca_nrc_HT2_2010v70.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_HT2_2010v70.tif',1,1,NULL), -- dubious mapping !!!
('HT2_2010v70.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),
('HT2_2010v70_CGG2013a.byn','ca_nrc_HT2_2010v70_CGG2013a.tif',NULL,'GTiff','vgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_HT2_2010v70_CGG2013a.tif',1,1,NULL),
-- 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),
-- 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),
('NAD83v6VG.gvb','ca_nrc_NAD83v6VG.tif',NULL,'GTiff','velocity_grid',0,NULL,'https://cdn.proj.org/ca_nrc_NAD83v6VG.tif',1,1,NULL),
('NAD83v70VG.gvb','ca_nrc_NAD83v70VG.tif',NULL,'GTiff','velocity_grid',0,NULL,'https://cdn.proj.org/ca_nrc_NAD83v70VG.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_hvbg - Hessische Verwaltung für Bodenmanagement und Geoinformation
('HeTa2010.gsb','de_hvbg_hessen_HeTA2010.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_hvbg_hessen_HeTA2010.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),
-- dk_sdfi - Danish Agency for Data Supply and Infrastructure
-- Denmark mainland
('gs_2022.gsb','dk_sdfi_gs_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_gs_2022.tif',1,1,NULL),
('gsb_2022.gsb','dk_sdfi_gsb_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_gsb_2022.tif',1,1,NULL),
('kk_2022.gsb','dk_sdfi_kk_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_kk_2022.tif',1,1,NULL),
('os_2022.gsb','dk_sdfi_os_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_os_2022.tif',1,1,NULL),
('s34j_2022.gsb','dk_sdfi_s34j_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_s34j_2022.tif',1,1,NULL),
('s34s_2022.gsb','dk_sdfi_s34s_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_s34s_2022.tif',1,1,NULL),
('s45b_2022.gsb','dk_sdfi_s45b_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_s45b_2022.tif',1,1,NULL),
-- 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.mnt','fr_ign_RAF18.tif','RAF18.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF18.tif',1,1,NULL),
('RAF18b.mnt','fr_ign_RAF18b.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF18b.tif',1,1,NULL),
('RAF20.tac','fr_ign_RAF20.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF20.tif',1,1,NULL),
-- The following is a bit an abusive mapping. The ggf97a.txt is the one pointed for the "RGF93 v1 to NGF-IGN69 height" transformation
-- but we have never ingested that grid. So we point to RAF18.mnt instead...
-- If we didn't do this, we wouldn't get a grid at all, since RAF09 and RAF18 are now only available for RGF93 v2
('ggf97a.txt','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),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_CGVD2013RGSPM06.tif','fr_ign_CGVD2013RGSPM06.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_CGVD2013RGSPM06.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf02-Maiao.tif','fr_ign_ggpf02-Maiao.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf02-Maiao.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf02-Tupai.tif','fr_ign_ggpf02-Tupai.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf02-Tupai.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf05-HivaOa.tif','fr_ign_ggpf05-HivaOa.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf05-HivaOa.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf05-Nuku.tif','fr_ign_ggpf05-Nuku.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf05-Nuku.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Gambier.tif','fr_ign_ggpf08-Gambier.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Gambier.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Hao.tif','fr_ign_ggpf08-Hao.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Hao.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Mataiva.tif','fr_ign_ggpf08-Mataiva.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Mataiva.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Raivavae.tif','fr_ign_ggpf08-Raivavae.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Raivavae.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Reao.tif','fr_ign_ggpf08-Reao.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Reao.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Rurutu.tif','fr_ign_ggpf08-Rurutu.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Rurutu.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Tikehau.tif','fr_ign_ggpf08-Tikehau.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Tikehau.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf08-Tubuai.tif','fr_ign_ggpf08-Tubuai.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf08-Tubuai.tif',1,1,NULL),
-- is_lmi - National Land Survey of Iceland
('Icegeoid_ISN2004.gri','is_lmi_Icegeoid_ISN2004.tif','Icegeoid_ISN2004.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2004.tif',1,1,NULL),
('Icegeoid_ISN93.gri','is_lmi_Icegeoid_ISN93.tif','Icegeoid_ISN93.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN93.tif',1,1,NULL),
('Icegeoid_ISN2016.gri','is_lmi_Icegeoid_ISN2016.tif','Icegeoid_ISN2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2016.tif',1,1,NULL),
('ISN93_ISN2016.gsb','is_lmi_ISN93_ISN2016.tif','ISN93_ISN2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/is_lmi_ISN93_ISN2016.tif',1,1,NULL),
('ISN2004_ISN2016.gsb','is_lmi_ISN2004_ISN2016.tif','ISN2004_ISN2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/is_lmi_ISN2004_ISN2016.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-is_lmi_ISN_vel_beta.tif','is_lmi_ISN_vel_beta.tif',NULL,'GTiff','velocity_grid',0,NULL,'https://cdn.proj.org/is_lmi_ISN_vel_beta.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),
-- mx_inegi - Instituto Nacional de Estadística, Geografía e Informática (INEGI) Mexico
('GGM10.txt','mx_inegi_ggm10.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/mx_inegi_ggm10.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),
('RANC15.tac','nc_dittt_RANC15.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nc_dittt_RANC15.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),
('gr3dncl08.tac','nc_dittt_gr3dncI08.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/nc_dittt_gr3dncI08.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.bin','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.bin','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),
('ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin','no_kv_CD_above_Ell_ETRS89_v2021a.tif',NULL,'GTiff','vgridshift',0,NULL,'https://cdn.proj.org/no_kv_CD_above_Ell_ETRS89_v2021a.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),
('arcgp-2006-sk.bin','no_kv_arcgp-2006-sk.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/no_kv_arcgp-2006-sk.tif',1,1,NULL),
-- nz_linz - New Zealand
('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_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),
('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),
-- pl_gugik - Główny Urząd Geodezji i Kartografii
('gugik-geoid2011-PL-EVRF2007-NH.txt','pl_gugik_geoid2011-PL-EVRF2007-NH.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/pl_gugik_geoid2011-PL-EVRF2007-NH.tif',1,1,NULL),
('gugik-geoid2011-PL-KRON86-NH.txt','pl_gugik_geoid2011-PL-KRON86-NH.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/pl_gugik_geoid2011-PL-KRON86-NH.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),
-- si_gurs - Slovenia
('https://isgeoid.polimi.it/Geoid/Europe/Slovenia/public/Slovenia_2016_SLO_VRP2016_Koper_hybrQ_20221122.isg','si_gurs_SLO-VRP2016-Koper.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/si_gurs_SLO-VRP2016-Koper.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),
-- 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),
-- 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
('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),
-- 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),
-- US GEOID99 height models. Not mapped: Alaska: g1999a01.gtx to g1999a04.gtx. Hawaii: g1999h01.gtx, Puerto Rico: g1999p01.gtx
('NOT-YET-IN-GRID-TRANSFORMATION-g1999a01.bin','us_noaa_g1999a01.tif','g1999a01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999a01.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g1999a02.bin','us_noaa_g1999a02.tif','g1999a02.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999a02.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g1999a03.bin','us_noaa_g1999a03.tif','g1999a03.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999a03.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g1999a04.bin','us_noaa_g1999a04.tif','g1999a04.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999a04.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g1999p01.bin','us_noaa_g1999p01.tif','g1999p01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999p01.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g1999h01.bin','us_noaa_g1999h01.tif','g1999h01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999h01.tif',1,1,NULL),
('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),
('g1999u03.bin','us_noaa_g1999u03.tif','g1999u03.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u03.tif',1,1,NULL),
@@ -331,12 +53,7 @@ VALUES
('g1999u07.bin','us_noaa_g1999u07.tif','g1999u07.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u07.tif',1,1,NULL),
('g1999u08.bin','us_noaa_g1999u08.tif','g1999u08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u08.tif',1,1,NULL),
-- US GEOID03 height models. Not mapped: Alaska: g2003a01.gtx to g2003a04.gtx. Hawaii: g2003h01.gtx. Puerto Rico: g2003p01.gtx
('NOT-YET-IN-GRID-TRANSFORMATION-g2003a01.bin','us_noaa_g2003a01.tif','g2003a01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2003a01.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g2003a02.bin','us_noaa_g2003a02.tif','g2003a02.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2003a02.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g2003a03.bin','us_noaa_g2003a03.tif','g2003a03.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2003a03.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g2003a04.bin','us_noaa_g2003a04.tif','g2003a04.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2003a04.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g2003p01.bin','us_noaa_g2003p01.tif','g2003p01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2003p01.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-g2003h01.bin','us_noaa_g2003h01.tif','g2003h01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2003h01.tif',1,1,NULL),('geoid03_conus.bin','us_noaa_geoid03_conus.tif','geoid03_conus.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_geoid03_conus.tif',1,1,NULL),
('geoid03_conus.bin','us_noaa_geoid03_conus.tif','geoid03_conus.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_geoid03_conus.tif',1,1,NULL),
-- US GEOID06 height models
('geoid06_ak.bin','us_noaa_geoid06_ak.tif','geoid06_ak.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_geoid06_ak.tif',1,1,NULL),
-- US GEOID09 height models.Not mapped: Hawaii: g2009h01.gtx
@@ -345,8 +62,8 @@ VALUES
('g2009g01.bin','us_noaa_g2009g01.tif','g2009g01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2009g01.tif',1,1,NULL),
('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),
('NOT-YET-IN-GRID-TRANSFORMATION-g2009h01.bin','us_noaa_g2009h01.tif','g2009h01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2009h01.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
@@ -357,20 +74,142 @@ VALUES
('g2012bg0.bin','us_noaa_g2012bg0.tif','g2012bg0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bg0.tif',1,1,NULL),
-- American Samoa
('g2012bs0.bin','us_noaa_g2012bs0.tif','g2012bs0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bs0.tif',1,1,NULL),
-- Hawaii
('NOT-YET-IN-GRID-TRANSFORMATION-g2012bh0.bin','us_noaa_g2012bh0.tif','g2012bh0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bh0.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),
('NOT-YET-IN-GRID-TRANSFORMATION-us_noaa_flhpgn.tif','us_noaa_flhpgn.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/us_noaa_flhpgn.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-us_noaa_mdhpgn.tif','us_noaa_mdhpgn.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/us_noaa_mdhpgn.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-us_noaa_tnhpgn.tif','us_noaa_tnhpgn.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/us_noaa_tnhpgn.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-us_noaa_wihpgn.tif','us_noaa_wihpgn.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/us_noaa_wihpgn.tif',1,1,NULL),
('NOT-YET-IN-GRID-TRANSFORMATION-us_noaa_wohpgn.tif','us_noaa_wohpgn.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/us_noaa_wohpgn.tif',1,1,NULL),
-- za_cdngi - Chief Directorate: National Geospatial Information (CD:NGI) South Africa
('SAGEOID2010.dat','za_cdngi_sageoid2010.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/za_cdngi_sageoid2010.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),
-- 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),
('portugal/DLX_ETRS89_geo','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),
('portugal/D73_ETRS89_geo','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 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),
-- 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)
;
+1 -435
View File
@@ -1,4 +1,4 @@
--- This file has been generated by scripts/build_grid_alternatives_generated_noaa.py. DO NOT EDIT !
--- This file has been generated by scripts/build_grid_alternatives_generated.py. DO NOT EDIT !
-- NADCON (NAD27 -> NAD83) entries
@@ -900,437 +900,3 @@ INSERT INTO grid_alternatives(original_grid_name,
0,
NULL,
'https://cdn.proj.org/us_noaa_wyhpgn.tif', 1, 1, NULL);
-- NADCON5 entries
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.as62.nad83_1993.as.lat.trn.20160901.b',
'us_noaa_nadcon5_as62_nad83_1993_as.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_as62_nad83_1993_as.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.gu63.nad83_1993.guamcnmi.lat.trn.20160901.b',
'us_noaa_nadcon5_gu63_nad83_1993_guamcnmi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_gu63_nad83_1993_guamcnmi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad27.nad83_1986.alaska.lat.trn.20160901.b',
'us_noaa_nadcon5_nad27_nad83_1986_alaska.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad27_nad83_1986_alaska.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad27.nad83_1986.conus.lat.trn.20160901.b',
'us_noaa_nadcon5_nad27_nad83_1986_conus.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad27_nad83_1986_conus.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1986.nad83_1992.alaska.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1986_nad83_1992_alaska.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1986_nad83_1992_alaska.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1986.nad83_1993.hawaii.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1986_nad83_1993_hawaii.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1986_nad83_1993_hawaii.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1986.nad83_1993.prvi.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1986_nad83_1993_prvi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1986_nad83_1993_prvi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1986.nad83_harn.conus.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1986_nad83_harn_conus.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1986_nad83_harn_conus.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1992.nad83_2007.alaska.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1992_nad83_2007_alaska.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1992_nad83_2007_alaska.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1993.nad83_1997.prvi.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1993_nad83_1997_prvi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1993_nad83_1997_prvi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1993.nad83_2002.as.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1993_nad83_2002_as.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1993_nad83_2002_as.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1993.nad83_2002.guamcnmi.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1993_nad83_2002_guamcnmi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1993_nad83_2002_guamcnmi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1993.nad83_pa11.hawaii.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1993_nad83_pa11_hawaii.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1993_nad83_pa11_hawaii.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_1997.nad83_2002.prvi.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_1997_nad83_2002_prvi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_1997_nad83_2002_prvi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_2002.nad83_2007.prvi.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_2002_nad83_2007_prvi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_2002_nad83_2007_prvi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_2002.nad83_ma11.guamcnmi.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_2002_nad83_ma11_guamcnmi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_2002_nad83_ma11_guamcnmi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_2002.nad83_pa11.as.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_2002_nad83_pa11_as.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_2002_nad83_pa11_as.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_2007.nad83_2011.alaska.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_2007_nad83_2011_alaska.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_2007_nad83_2011_alaska.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_2007.nad83_2011.conus.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_2007_nad83_2011_conus.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_2007_nad83_2011_conus.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_2007.nad83_2011.prvi.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_2007_nad83_2011_prvi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_2007_nad83_2011_prvi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_fbn.nad83_2007.conus.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_fbn_nad83_2007_conus.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_fbn_nad83_2007_conus.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.nad83_harn.nad83_fbn.conus.lat.trn.20160901.b',
'us_noaa_nadcon5_nad83_harn_nad83_fbn_conus.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_nad83_harn_nad83_fbn_conus.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.ohd.nad83_1986.hawaii.lat.trn.20160901.b',
'us_noaa_nadcon5_ohd_nad83_1986_hawaii.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_ohd_nad83_1986_hawaii.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.pr40.nad83_1986.prvi.lat.trn.20160901.b',
'us_noaa_nadcon5_pr40_nad83_1986_prvi.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_pr40_nad83_1986_prvi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.sg1952.nad83_1986.stgeorge.lat.trn.20160901.b',
'us_noaa_nadcon5_sg1952_nad83_1986_stgeorge.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_sg1952_nad83_1986_stgeorge.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.sl1952.nad83_1986.stlawrence.lat.trn.20160901.b',
'us_noaa_nadcon5_sl1952_nad83_1986_stlawrence.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_sl1952_nad83_1986_stlawrence.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nadcon5.sp1952.nad83_1986.stpaul.lat.trn.20160901.b',
'us_noaa_nadcon5_sp1952_nad83_1986_stpaul.tif',
NULL,
'GTiff',
'gridshift',
0,
NULL,
'https://cdn.proj.org/us_noaa_nadcon5_sp1952_nad83_1986_stpaul.tif', 1, 1, NULL);
File diff suppressed because it is too large Load Diff
+27 -114
View File
@@ -4,170 +4,83 @@
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
);
-- Japan
-- Iceland
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_6667_TO_EPSG_6695','JDG2011 to JGD2011 height',
NULL,
'PROJ','EPSG_5323_TO_EPSG_8089','ISN2004 to ISH2004 height',
NULL,NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','6667', -- source CRS (JDG2011)
'EPSG','6695', -- target CRS (JDG2011 (vertical) height)
'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','jp_gsi_gsigeo2011.tif',
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2004.gtx',
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,
'PROJ','EPSG_4945_TO_EPSG_8089','ISN93 to ISH2004 height',
NULL,NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89)
'EPSG','5729', -- target CRS (LHN95 height)
'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','chgeo2004_ETRS.agr',
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN93.gtx',
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,
'PROJ','EPSG_8085_TO_EPSG_8089','ISN2016 to ISH2004 height',
NULL,NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','4937', -- source CRS (ETRS89)
'EPSG','5728', -- target CRS (LN02 height)
'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','chgeo2004_htrans_ETRS.agr',
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2016.gtx',
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
);
-- Mexico
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_6364_TO_EPSG_5703','Mexico ITRF2008 to NAVD88 height',
NULL,
'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)',
'EPSG','6364', -- source CRS (Mexico ITRF2008)
'EPSG','5703', -- target CRS (NAVD88 height)
NULL,
'EPSG','8666','Geoid (height correction) model file','GGM10.txt',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES(
'PROJ',
'EPSG_6364_TO_EPSG_5703_USAGE',
'grid_transformation',
'PROJ',
'EPSG_6364_TO_EPSG_5703',
'EPSG','3278', -- area of use: Mexico - onshore
'EPSG','1024' -- unknown
);
File diff suppressed because it is too large Load Diff
-5074
View File
File diff suppressed because it is too large Load Diff
+3103 -4271
View File
File diff suppressed because it is too large Load Diff
+2 -21
View File
@@ -1,21 +1,2 @@
-- 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', 2);
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.088');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-05-13');
-- 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.14');
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v9.8.9');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2020-04-07');
+165
View File
@@ -0,0 +1,165 @@
--- 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;
@@ -1,361 +0,0 @@
--- This file has been generated by scripts/build_nadcon5_concatenated_operations.py. DO NOT EDIT !
-- Concatenated accuracy is sqrt(sum of squared accuracies) (confirmed by NGS to be a valid way)
INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS','NAD27 to NAD83(HARN) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4152',0.16,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_HARN_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS','NAD27 to NAD83(FBN) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','8860',0.17,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',3,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_FBN_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS','NAD27 to NAD83(NSRS2007) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4759',0.17,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',3,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',4,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS','NAD27 to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','6318',0.18,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',3,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',4,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',5,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_2011_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS','NAD83 to NAD83(FBN) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','8860',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS',1,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS',2,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_FBN_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS','NAD83 to NAD83(NSRS2007) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','4759',0.09,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',3,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS','NAD83 to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6318',0.1,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',1,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',2,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',3,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',4,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_2011_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS','NAD83(HARN) to NAD83(NSRS2007) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','4759',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS','NAD83(HARN) to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6318',0.09,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',1,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',2,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',3,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS','NAD83(FBN) to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','8860','EPSG','6318',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS',1,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS',2,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD83_FBN_TO_NAD83_2011_CONUS',
'EPSG','4516', -- extent: CONUS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA','NAD27 to NAD83(HARN) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4152',0.52,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA',1,'EPSG','8549'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA',2,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m
INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_HARN_ALASKA',
'EPSG','1330', -- extent: Alaska
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA','NAD27 to NAD83(NSRS2007) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4759',0.52,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',1,'EPSG','8549'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',2,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',3,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',
'EPSG','1330', -- extent: Alaska
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA','NAD27 to NAD83(2011) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','6318',0.53,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',1,'EPSG','8549'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',2,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',3,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',4,'EPSG','8552'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_2011_ALASKA',
'EPSG','1330', -- extent: Alaska
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA','NAD83 to NAD83(NSRS2007) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','4759',0.16,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA',1,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA',2,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA',
'EPSG','1330', -- extent: Alaska
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA','NAD83 to NAD83(2011) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6318',0.17,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',1,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',2,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',3,'EPSG','8552'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_2011_ALASKA',
'EPSG','1330', -- extent: Alaska
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA','NAD83(HARN) to NAD83(2011) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6318',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA',1,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA',2,'EPSG','8552'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA',
'EPSG','1330', -- extent: Alaska
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII','Old Hawaiian to NAD83(HARN) (NADCON5, Hawaii)','Transformation based on concatenation of NADCON5 transformations','EPSG','4135','EPSG','4152',0.21,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII',1,'EPSG','8561'); -- Old Hawaiian to NAD83 (EPSG:8561), 0.2 m
INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII',2,'EPSG','8660'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m
INSERT INTO usage VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII_USAGE','concatenated_operation','PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII',
'EPSG','1334', -- extent: Hawaii
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII','Old Hawaiian to NAD83(PA11) (NADCON5, Hawaii)','Transformation based on concatenation of NADCON5 transformations','EPSG','4135','EPSG','6322',0.21,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',1,'EPSG','8561'); -- Old Hawaiian to NAD83 (EPSG:8561), 0.2 m
INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',2,'EPSG','8660'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',3,'EPSG','8661'); -- NAD83(HARN) to NAD83(PA11) (EPSG:8661), 0.05 m
INSERT INTO usage VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII_USAGE','concatenated_operation','PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',
'EPSG','1334', -- extent: Hawaii
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII','NAD83 to NAD83(PA11) (NADCON5, Hawaii)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6322',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII',1,'EPSG','8660'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII',2,'EPSG','8661'); -- NAD83(HARN) to NAD83(PA11) (EPSG:8661), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_PA11_HAWAII',
'EPSG','1334', -- extent: Hawaii
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI','Puerto Rico to NAD83(HARN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','4152',0.21,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI','Puerto Rico to NAD83(HARN Corrected) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','8545',0.22,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI','Puerto Rico to NAD83(FBN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','8860',0.22,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',4,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI','Puerto Rico to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','4759',0.23,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',4,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',5,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI','Puerto Rico to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','6318',0.23,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',4,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',5,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',6,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m
INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI','NAD83 to NAD83(HARN Corrected) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','8545',0.16,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI','NAD83 to NAD83(FBN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','8860',0.17,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',3,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_FBN_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI','NAD83 to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','4759',0.17,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',3,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',4,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI','NAD83 to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6318',0.18,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',3,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',4,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',5,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_2011_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI','NAD83(HARN) to NAD83(FBN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','8860',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI',1,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI',2,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI','NAD83(HARN) to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','4759',0.09,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',1,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',3,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI','NAD83(HARN) to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6318',0.1,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',1,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',2,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',3,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',4,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI','NAD83(HARN Corrected) to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','8545','EPSG','4759',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI','NAD83(HARN Corrected) to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','8545','EPSG','6318',0.09,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',1,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',2,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',3,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI','NAD83(FBN) to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','8860','EPSG','6318',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI',1,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI',2,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_FBN_TO_NAD83_2011_PRVI',
'EPSG','3634', -- extent: PRVI
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS','American Samoa 1962 to NAD83(FBN) (NADCON5, AS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4169','EPSG','8860',5.0,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS',1,'EPSG','8662'); -- American Samoa 1962 to NAD83(HARN) (EPSG:8662), 5.0 m
INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS',2,'EPSG','8863'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m
INSERT INTO usage VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS_USAGE','concatenated_operation','PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS',
'EPSG','3110', -- extent: AS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS','American Samoa 1962 to NAD83(PA11) (NADCON5, AS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4169','EPSG','6322',5.0,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',1,'EPSG','8662'); -- American Samoa 1962 to NAD83(HARN) (EPSG:8662), 5.0 m
INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',2,'EPSG','8863'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',3,'EPSG','8864'); -- NAD83(FBN) to NAD83(PA11) (EPSG:8864), 0.05 m
INSERT INTO usage VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS_USAGE','concatenated_operation','PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',
'EPSG','3110', -- extent: AS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS','NAD83(HARN) to NAD83(PA11) (NADCON5, AS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6322',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS',1,'EPSG','8863'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS',2,'EPSG','8864'); -- NAD83(FBN) to NAD83(PA11) (EPSG:8864), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_PA11_AS',
'EPSG','3110', -- extent: AS
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM','Guam 1963 to NAD83(FBN) (NADCON5, GUAM)','Transformation based on concatenation of NADCON5 transformations','EPSG','4675','EPSG','8860',5.0,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM',1,'EPSG','8665'); -- Guam 1963 to NAD83(HARN) (EPSG:8665), 5.0 m
INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM',2,'EPSG','8865'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m
INSERT INTO usage VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM_USAGE','concatenated_operation','PROJ','GUAM_1963_TO_NAD83_FBN_GUAM',
'EPSG','4525', -- extent: GUAM
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM','Guam 1963 to NAD83(MA11) (NADCON5, GUAM)','Transformation based on concatenation of NADCON5 transformations','EPSG','4675','EPSG','6325',5.0,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',1,'EPSG','8665'); -- Guam 1963 to NAD83(HARN) (EPSG:8665), 5.0 m
INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',2,'EPSG','8865'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',3,'EPSG','8866'); -- NAD83(FBN) to NAD83(MA11) (EPSG:8866), 0.05 m
INSERT INTO usage VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM_USAGE','concatenated_operation','PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',
'EPSG','4525', -- extent: GUAM
'EPSG','1027' -- scope: Geodesy
);
INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM','NAD83(HARN) to NAD83(MA11) (NADCON5, GUAM)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6325',0.07,NULL,0);
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM',1,'EPSG','8865'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m
INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM',2,'EPSG','8866'); -- NAD83(FBN) to NAD83(MA11) (EPSG:8866), 0.05 m
INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM',
'EPSG','4525', -- extent: GUAM
'EPSG','1027' -- scope: Geodesy
);
-2341
View File
File diff suppressed because it is too large Load Diff

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