Compare commits

..
658 Commits
Author SHA1 Message Date
Howard Butler 26cc185997 use correct line continuation 2020-03-02 15:35:12 -06:00
Howard Butler 453f86ddcb typoland 2020-03-02 15:30:29 -06:00
Howard Butler 25d62f5015 be explicit with SQLITE for conda/osx 2020-03-02 15:24:39 -06:00
Howard Butler 21a8103558 add osx builder 2020-03-02 15:10:06 -06:00
Howard Butler c961dc61de or curl 2020-03-02 14:57:15 -06:00
Howard Butler 3f17ef53cf libtiff is not a declared dependency of PROJ7 in conda-forge 2020-03-02 14:53:31 -06:00
Howard Butler 4f45cae9fc add azp windows builder based on conda-forge and 2017 2020-03-02 14:48:16 -06:00
Howard Butler 4aec3a7dee more installs 2020-03-02 14:36:39 -06:00
Howard Butler daeea3bddc yml typo 2020-03-02 14:31:02 -06:00
Howard Butler ec76707f7c install cmake/gcc/etc 2020-03-02 14:28:16 -06:00
Howard Butler 45d1cffccf specify CXX and CC 2020-03-02 14:16:26 -06:00
Howard Butler 63b8ec535b remove variables 2020-03-02 14:12:44 -06:00
Howard Butler aa647811b7 yml formatting 2020-03-02 14:11:02 -06:00
Howard Butler f95de975aa minimal azp config 2020-03-02 14:07:11 -06:00
Even Rouault 404c73a22e Fix bad copy&replace pattern on HEALPix and rHEALPix projection names. Affects output of 'proj -l' 2020-03-02 18:56:09 +01:00
Kristian Evers 0bcf2b5aaa Update github_version in sphinx config 2020-03-01 11:48:37 +01:00
Kristian Evers 79abba9fa9 Bump version numbers in preparation for 7.1.0 2020-03-01 11:47:40 +01:00
Kristian Evers ccbfd15798 Update docs in preparation for 7.0.0 release 2020-03-01 11:23:13 +01:00
Even Rouault 10a8d5c984 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-02-29 13:24:58 +01:00
Even Rouault 1f3a571d32 Avoid crash when running against SQLite3 binary built with -DSQLITE_OMIT_AUTOINIT (fixes #1932) (#1997) 2020-02-28 17:41:45 +01:00
Even Rouault e81f938f7c Formatting fix 2020-02-28 16:05:56 +01:00
Even Rouault fb87c671f1 Fix warnings of latest cppcheck master 2020-02-27 23:35:36 +01:00
Chatziargyriou Eleftheria f3561e5749 Doc: Add missing projection property tables (#1992) 2020-02-27 19:28:17 +01:00
Even Rouault a9bc6e5fb0 Make tests independent of proj-datumgrid
Fixes #1984

- Copy BETA2007.gsb, MD, alaska, conus, ntf_r93.gsb, ntv1_can.dat grids
  from proj-datumgrid to data/tests.
- Replace a couple uses of nzgd2kgrid0005.gsb in tests by ntf_r93.gsb
- Add downsampled/subsetted versions of egm96_15.gtx as tests/egm96_15_downsampled.gtx
  and ntv2_0.gsb as tests/ntv2_0_downsampled.gsb
  This results in a few changes in expected results
- Simpify travis/install.sh due to less configurations to test

This results in a hopefully acceptable increase of the proj-X.Y.Z.tar.gz
from 2.9 to 5.3 MB
2020-02-27 13:19:13 +01:00
Even Rouault 8d665f20a7 proj_create_crs_to_crs(): avoid potential reprojection failures when reprojecting area of use to source and target CRS
Was found with https://github.com/OSGeo/PROJ/pull/1989
when using cs2cs EPSG:4937 EPSG:31258+5778
- We do not need to do vertical transformation in that context. This failed here
  because the Austrian grids have nodata value outside of the shape of Austria, so
  the edges of the grids are mostly nodata values.
- And we should avoid grid-based transformations too.
2020-02-27 12:19:34 +01:00
Even Rouault dbf5f363ae Merge pull request #1989 from rouault/register_austrian_height_grids
Database: register 4 height Austrian grids from https://github.com/OSGeo/PROJ-data/pull/13 + handle 'Vertical Offset by Grid Interpolation (BEV AT)' method
2020-02-27 12:19:19 +01:00
Even Rouault 3a38f50618 Merge pull request #1987 from nyalldawson/flat_polar_quartic
Support conversion of Flat_Polar_Quartic projection method
2020-02-27 12:19:01 +01:00
Even Rouault 250e4a222b Database: register 4 height Austrian grids from https://github.com/OSGeo/PROJ-data/pull/13 + handle 'Vertical Offset by Grid Interpolation (BEV AT)' method 2020-02-26 16:23:39 +01:00
Even Rouault 1f8541d6f4 Database: update to EPSG v9.8.7 2020-02-26 14:04:09 +01:00
Nyall Dawson 6ed13a5f8e Support conversion of Flat_Polar_Quartic projection method 2020-02-26 19:03:51 +10:00
Even Rouault 414ae2699c Merge pull request #1983 from rouault/fix_1982
createOperations(): be robust to a GeographicCRS having a wrong ID attached to it (fixes #1982)
2020-02-25 16:27:10 +01:00
Even Rouault 5c79670110 createOperations(): be robust to a GeographicCRS having a wrong ID attached to it (fixes #1982) 2020-02-25 15:32:28 +01:00
Even Rouault 1ce2cc80a4 CompoundCRS::create(): reject combinations of components not allowed by ISO 19111 2020-02-25 00:19:19 +01:00
Even Rouault 254bead44a createOperations(): keep height/z value in Helmert transform between 3D CRS
This is the consequence of a private email thread between me, Joel Haasdyk and
Roger Lott. I initially raised that the GDA2020 technical manual advertized the
Helmert transformation between GDA94 to GDA2020 to be a 3D one, with example of
a test point where ellipsoidal heights where modified. It appears this was intended.

The corresponding record in EPSG uses the EPSG:9607 "Coordinate Frame rotation (geog2D domain)"
method between the 2D geographic CRS of GDA94 and GDA2020. From the email exchange,
it appears that there's a lot of legacy explaining that Helmert transformations
are registered only between 2D CRS, which doesn't mean that when applied to the
corresponding 3D CRS, the change in ellipsoidal height should be discarded. Related
to that, the EPSG database, while it has methods flagged "(geog3D domain)" never uses them.

So... this changeset slightly ammends PROJ behaviour to ignore the "(geog2D domain)" flag,
but only consider the dimensionality of the source & target CRS. However, for a EPSG
transformation, those are always 2D CRS, hence introduce the use3DHelmert_ hack when
we know that ultimately the 'real' source & target CRS are 3D.

I wouldn't be surprised if in more complex pipeline the above logic would be lacking.
But it fixes at least simple transformations.
2020-02-24 20:37:49 +01:00
Even Rouault fe9e276d93 pj_hgrid_apply(): change error code when no grid match to PJD_ERR_GRID_AREA (refs #1973) 2020-02-24 12:59:13 +01:00
Nyall Dawson 004116f53a Fix mapping of Vertical_Near_Side_Perspective (fixes #1965) 2020-02-24 12:43:00 +01:00
Even Rouault 25f8c03774 Expose proj_context_is_network_enabled() in C API 2020-02-24 10:32:24 +01:00
Even Rouault 57595327b2 Merge pull request #1968 from wonder-sk/slovakia-jtsk-ntv2-master
Add alternative grid for JTSK - JTSK03 transform (EPSG:8364)
2020-02-24 08:34:14 +01:00
Martin Dobias 845f700335 Add alternative grid for JTSK - JTSK03 transform (EPSG:8364)
The definition of EPSG:8364 uses NADCON method for horizontal grid (.las/.los files)
but this format is not supported by PROJ.

UGKK (Slovak Geodetic and Cartographic Institute) provides NADCON .las/.los files here:
https://www.geoportal.sk/files/gz/slovakia_jtsk03_to_jtsk.zip

Additionally UGKK also provides the same grid file in NTv2 format:
https://www.geoportal.sk/files/gz/slovakia_jtsk03_to_jtsk_ntv2.zip

So let's add the NTv2 file the grid_alternatives table so that PROJ can automatically pick it up...
2020-02-23 21:46:47 +01:00
Mike Taves 7b873e8353 Merge pull request #1962 from mwtoews/shared
CMake: rename BUILD_LIBPROJ_SHARED to BUILD_SHARED_LIBS
2020-02-22 13:35:36 +13:00
Even Rouault f57a390398 Doc: advertize lat_0 for proj=nsper 2020-02-21 13:33:36 +01:00
Nyall Dawson 6aedfb204a Add support for creating coordinates operations using Compact Miller,
Times and Vertical Near Side Perspective projections
2020-02-21 11:26:55 +01:00
Nyall Dawson 0bc2ae258d Add support for creating coordinates operations using Natural Earth/Natural Earth 2 projection 2020-02-21 11:26:55 +01:00
Nyall Dawson dbe6dcf247 Add support for creating coordinates operations using ESRI:53079 (patterson) CRS 2020-02-21 11:26:55 +01:00
Even Rouault ee0ba2d2e6 test_network.cpp: fix test failures on big endian archs (fixes #1958) 2020-02-21 11:23:43 +01:00
Mike Taves 3eac8d5694 Switch build configuration logic from DISABLE_TIFF to ENABLE_TIFF
* Autotools interface should be the same, but different ./configure --help
* For CMake, the option should be -DENABLE_TIFF=NO (default is YES)
* Use TIFF_ENABLED and CURL_ENABLED variables, based on option and outcome
* Reword some messages and add hints
* Move -DTIFF_ENABLED and -DCURL_ENABLED from global add_definitions()
  to target_compile_definitions(), which is recommended practice
* Minor spelling and style consistency around SQLITE_VERSION check
2020-02-21 11:23:15 +01:00
Mike Taves 2336ac77b5 CMake: rename BUILD_LIBPROJ_SHARED to BUILD_SHARED_LIBS
* Deprecate BUILD_LIBPROJ_SHARED, but still use it as an alias for now
* Rename BUILD_LIBPROJ_SHARED_DEFAULT to BUILD_SHARED_LIBS_DEFAULT
* Keep previous defaults (UNIX as shared and Windows as static)
* Remove PROJ_LIBRARY_TYPE, since add_library() uses BUILD_SHARED_LIBS
2020-02-21 22:43:30 +13:00
Even Rouault 86530f3146 Fix wrong byte-swapping for NTv2 grids affecting master after RFC4 work (fixes #1938)
And add testing of both little-endian and big-endian NTv2 files
2020-02-20 09:57:45 +01:00
Mike Taves deb3ccf5bb Add/update description for pkg-config and CMake
Ignore WARNING:  'proj.pc.in' seems to ignore the --datarootdir setting
2020-02-20 09:57:08 +01:00
Mike Taves b72d25a32d CMake: rename ENABLE_LTO to ENABLE_IPO
* Deprecate ENABLE_LTO, but still use it as an alias for now
* Plan to remove ENABLE_LTO by PROJ 8.0
* Use CMake 3.9 logic to check feature and set property
2020-02-20 09:48:16 +01:00
Kristian Evers b80a7cd2e8 appveyor: Use sqlite tool from vcpkg
This follows the install guide for Windows using vcpkg.
2020-02-20 09:46:27 +01:00
Even Rouault d7a16efe71 validateParameters(): fix false-positive warning on Equidistant Cylindrical
We required the 'Latitude of natural origin' parameter to be present,
but it is only a GDAL/PROJ specific thing, not a EPSG one.
2020-02-19 18:13:02 +01:00
Even Rouault 71e6438ba2 DatabaseContext::lookForGridInfo(): use also old_proj_grid_name for lookups (fixes #1942) 2020-02-19 14:27:19 +01:00
Even Rouault 9022252da3 test: enhance testing of proj_grid_get_info_from_database 2020-02-18 20:17:52 +01:00
Jeroen Ooms 409f8b0e5d Fix static linking (due to typo in pc) 2020-02-18 16:22:08 +01:00
Even Rouault 11c50c0427 Merge pull request #1934 from sebastic/read_grid_from_user_writable_directory
Don't assume $HOME to be writable.
2020-02-18 13:18:24 +01:00
Bas Couwenberg eea42eaae6 Don't assume $HOME to be writable.
The read_grid_from_user_writable_directory test fails otherwise.

Fixes: #1933
2020-02-18 08:11:02 +01:00
Kristian Evers 8896b2a26c Remove man3 Makefile from configure.ac 2020-02-17 21:17:56 +01:00
Kristian Evers fba4148dd4 Update CMake setup with new projsync man file and removed man3 files 2020-02-17 21:15:06 +01:00
Kristian Evers 4fe8a81ca9 Update man-pages from Sphinx-docs 2020-02-17 21:03:16 +01:00
Kristian Evers 6f60d8e168 Update NEWS for 7.0.0 release 2020-02-17 21:03:07 +01:00
Kristian Evers 689dca11da Update ABI version numbers for 7.0.0 release 2020-02-17 21:02:57 +01:00
Kristian Evers c4878eac38 Make sure that projsync man file is packaged correctly 2020-02-17 21:02:48 +01:00
Kristian Evers 2d98931a88 Remove man3 files
Closes #1258
2020-02-17 21:02:41 +01:00
Even Rouault e4c9c26ee7 Doc: update with 6.3.1 release [skip appveyor] 2020-02-13 16:29:00 +01:00
Even Rouault 02e6715dd5 NEWS: update with 6.3.1 [ci skip] 2020-02-13 16:28:50 +01:00
Kristian Evers 89175e2ec1 Merge pull request #1931 from calumr/patch-1
Don't print version when using PROJ4 from cmake
2020-02-13 11:37:16 +01:00
Calum Robinson fea2ff9cda Don't print version when using PROJ4 from cmake
This will declutter cmake output for PROJ4 users
2020-02-13 09:30:59 +00:00
Kristian Evers 949171a6e1 Merge pull request #1923 from mwtoews/cmake-output
CMake: simplify message functions
2020-02-12 19:47:29 +01:00
Kristian Evers f9bf35c0ae Merge pull request #1928 from sebastic/make-readme
Create README from README.md when calling `make`.
2020-02-12 14:51:17 +01:00
Bas Couwenberg 43a91ce0a8 Create README from README.md when calling make.
The README file was only generated when calling `make README`.

Closes: #1927
2020-02-12 12:53:46 +01:00
Even Rouault 595aafef26 Merge pull request #1921 from rouault/pj_get_relative_share_proj
Use relative directory to locate PROJ resource files.
2020-02-11 18:50:53 +01:00
Even Rouault 29583196df Use relative directory to locate PROJ resource files.
Fixes #1490

This is an extension of the Window-specific logic added recently to
Unix builds. This reuses parts of proposed past commit
https://github.com/OSGeo/PROJ/pull/1517/commits/82a07e51c6e24ddb936d131ababe29f1ac36ef14
(credits to @abellgithub)
2020-02-11 15:48:05 +01:00
Kristian Evers a10b5edfad Merge pull request #1920 from rouault/travis_i386
Travis: change linux_gcc7 / x86_64 config to linux_gcc8 / i386
2020-02-11 15:26:32 +01:00
Mike Taves 5179435614 CMake: simplify message functions
* Remove colormsg(); just use message()
* Rename boost_report_value() with print_variable()
2020-02-11 11:09:00 +13:00
Even Rouault 3767adabe2 PROJStringParser::Private::buildProjectedCRS(): avoid (harmless) division by zero in super odd case with corrupted PROJ string. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20624 2020-02-10 16:19:53 +01:00
Even Rouault 188dcf2cb9 HOWTO-RELEASE: update to add a check for version numbers [ci skip] 2020-02-10 11:38:11 +01:00
Even Rouault 3c1ab5e738 HOWTO-RELEASE: fix a few typos [ci skip] 2020-02-10 11:34:16 +01:00
Even Rouault d1d6bc3bbf README.md: add badges for Cirrus & Docker
[ci skip]
2020-02-09 18:18:42 +01:00
Even Rouault 8c9ed021c7 Dockerfile: make it non-git dependent, so that it can work in branches, and Docker Hub builds 2020-02-09 17:29:20 +01:00
Even Rouault 40ca9b0a74 Dockerfile: fix build with tiff&curl dependencies, and use CDN TIFF files 2020-02-09 16:59:02 +01:00
Even Rouault 1c3678b636 read_vgrid_value(): avoid assertion on huge latitude. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20592. master only 2020-02-09 03:47:13 +01:00
Charles Karney 06d0a4c835 Add comments to vandg.cpp to tie implementation to Snyder (1987). 2020-02-08 14:33:06 -05:00
Even Rouault 888e1b1553 Travis: do only builds that test with all grids on -O2 builds that are slower to build 2020-02-08 16:34:52 +01:00
Even Rouault 5bb1920a5b Travis: update linux_gcc7 to linux_gcc8 2020-02-08 15:40:06 +01:00
Even Rouault 2d07a8dc0d Travis: modify linux_gcc7 to run i386 2020-02-08 15:36:30 +01:00
Even Rouault bec20afdfa travis/install.sh: fix wrong setting of CXXFLAGS 2020-02-08 15:36:18 +01:00
Even Rouault dfa29f9f85 Travis: restrict symbol comparison to x86_64 builds 2020-02-08 15:34:28 +01:00
Kristian Evers ead6a66d98 Merge pull request #1917 from rouault/fix_test_issues_on_i386
Fix test issues on i386
2020-02-08 10:17:18 +01:00
Even Rouault b6f442db6c Merge pull request #1918 from rouault/update_travis_csa
Travis: update CLang Static Analyzer to CLang 9
2020-02-07 21:10:42 +01:00
Kristian Evers ab68913e5b Merge pull request #1912 from kbevers/fix-1906
cart: Avoid discontinuity at poles in the inverse case (partial fix to #1906)
2020-02-07 11:53:37 +01:00
Even Rouault 7001c21828 Fix numerical precision issues in vandg and robin
Refs #1906
Fix remaining issues of https://github.com/OSGeo/PROJ/issues/1906#issuecomment-583168348
as found with gcc 8.2.0 -m32 -O2
2020-02-07 11:08:43 +01:00
Even Rouault 19bfb4987a Fix test issues on i386
Fix a few issues of #1906 found when running the test suite
on Ubuntu 16.04 with gcc 5.5 -m32. When applied on top of
the fix of #1912, make check succeeds
2020-02-07 00:21:25 +01:00
Even Rouault c8f8a5a6c5 Fix cppcheck warnings and make it work with latest cppcheck 1.90 2020-02-06 23:33:38 +01:00
Even Rouault 9e1420309c Travis: update CLang Static Analyzer to CLang 9
Enable optional checkers
Fix two false positives
2020-02-06 23:33:15 +01:00
Kristian Evers 55112033a4 cart: Avoid discontinuity at poles in the inverse case
This should avoid issues with numerical stability as uncovered in
https://github.com/OSGeo/PROJ/issues/1906.

Practically speaking this change isn't going to affect real life
scenarios since the position of the center of the Earth is rarely
expressed in geodetic coordinates.
2020-02-06 17:53:11 +01:00
Even Rouault bd6148db5f geodetictiffgrids.rst: fix links
[skip appveyor]
2020-02-06 15:47:38 +01:00
Even Rouault c2f4d1d172 Merge pull request #1915 from rouault/fix_1911
Fix identification of ESRI-style datum names starting with D_ but without alias
2020-02-06 13:44:13 +01:00
Even Rouault e9b5f63945 Merge pull request #1914 from rouault/fix_1913
Fix performance issue, affecting projinfo EPSG:7842
2020-02-06 13:43:59 +01:00
Even Rouault 72925acb84 Fix identification of ESRI-style datum names starting with D_ but without alias
Fixes #1911
2020-02-05 19:59:00 +01:00
Even Rouault aa2545bebd Fix performance issue, affecting projinfo EPSG:7842
Fixes #1913

AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates() issued
a complex SQL query that pushes the SQLite3 query plan optimizer to its limits.
Was working reasonably with sqlite 3.11, but not with later versions.
So put less constraints in the main query and do post-processing checks and
auxiliary requests to avoid such issues.

For some unknown reason, this slightly slows down a bit execution time of the
whole test_cpp_api binary (~ 10%), but couldn't come with something better,
despite trying many variations of the main SQL query. It seems that in the
general case the non-filter LEFT JOIN on the supersession table helped,
except on this EPSG:7842 case.
2020-02-05 18:54:04 +01:00
Kristian Evers c077e5b8b1 Add projsync to README 2020-02-05 07:50:23 +01:00
Charles Karney 1067766790 Merge pull request #1910 from cffk/cmake-proj
Make PROJ the CMake project name addressing first stage of #1885

Let's go with this!  It's conceivable that there's some wrinkle I haven't thought about.  So let's expose the changes to a wider community.
2020-02-04 19:15:57 -05:00
Even Rouault afda50628d Merge pull request #1903 from rouault/add_proj_download
Add projsync utility
2020-02-04 23:34:17 +01:00
Even Rouault 87318283ee Add projsync utility
Fixes #1750
2020-02-04 21:43:42 +01:00
Charles Karney c74781ea27 Make PROJ the CMake project name
Allow both find_package(PROJ) and find_package(PROJ4).  More details
are in cmake/CMakeLists.txt.
2020-02-04 14:20:28 -05:00
Kristian Evers c3e7876325 Merge pull request #1905 from russkel/patch-1
tests: force use of bash for proj_add_test_script_sh
2020-02-04 14:49:15 +01:00
Kristian Evers 712b873dc8 Merge pull request #1907 from mwtoews/cmake
Increase CMake minimum version from 3.5 to 3.9
2020-02-04 07:25:22 +01:00
Mike Taves 19b680c461 Increase CMake minimum version from 3.5 to 3.9
* Also remove a few if()-blocks to support older CMake versions
2020-02-04 14:14:03 +13:00
Even Rouault 6aadc40eac Merge pull request #1902 from rouault/fix_asan_issue_sqlite3_vfs
Fix ASAN issue with SQLite3VFS class (fixes #1901)
2020-02-02 23:46:05 +01:00
Even Rouault 42035701c0 proj_download_file(): relax test for the situation where a file < 1 MB is updated to be slightly larger
CloudFront could return a Range: bytes=0-X/Y with X < Y and X being the previous file size and Y the new one
2020-02-02 18:22:23 +01:00
Even Rouault 31e85df267 build_url(): remove no longer needed hack 2020-02-02 14:21:11 +01:00
Even Rouault 81a83f1142 test/fuzzers/build.sh: statically link sqlite3 for i386 builds 2020-02-01 12:11:09 +01:00
Even Rouault ee06c659f3 Fix ASAN issue with SQLite3VFS class (fixes #1901) 2020-01-31 11:21:43 +01:00
Even Rouault a1b1c4312e Database: add a custom concatenated_operation for NTF (Paris) to RGF93, using the non-deprecated EPSG:9327 for the geocentric translation 2020-01-30 14:14:12 +01:00
Kristian Evers 91c40b654b Merge pull request #1897 from rouault/map_geocentric_translation_method
Add EPSG records for 'Geocentric translation by Grid Interpolation (IGN)' (gr3df97a.txt) and map them to new +proj=xyzgridshift
2020-01-30 11:08:49 +01:00
Kristian Evers 3ab34eb940 Merge pull request #1898 from rouault/delete_null
Remove 'null' grid file as it is now a special hardcoded case in grid code
2020-01-30 11:08:20 +01:00
Even Rouault ec2faad6d6 Remove 'null' grid file as it is now a special hardcoded case in grid code 2020-01-29 18:06:58 +01:00
Even Rouault cebb314e14 test/fuzzers/build.sh: build with static libtiff [ci skip] 2020-01-29 17:26:07 +01:00
Kristian Evers e35cf5d63c Merge pull request #1896 from rouault/add_set_operation
Add +proj=set operation to set component(s) of a coordinate to a fixed value
2020-01-29 17:13:00 +01:00
Even Rouault 6f6c53c855 Add EPSG records for 'Geocentric translation by Grid Interpolation (IGN)' (gr3df97a.txt) and map them to new +proj=xyzgridshift 2020-01-29 16:28:07 +01:00
Even Rouault 9f6ab28f1d Make it possible to use grids from the CDN by their 'old name' even if not in the EPSG/grid_transformation table 2020-01-29 14:44:04 +01:00
Even Rouault d9ad20a959 scripts/grid_checks.py: update for change of PROJ-data repository name, and look for .tif extension 2020-01-29 14:40:10 +01:00
Even Rouault bf6b1a889b Merge pull request #1891 from rouault/rfc5
Implement RFC5: Adopt GeoTIFF-based grids for grids delivered with PROJ
2020-01-29 12:51:49 +01:00
Even Rouault 4b7ec1a182 Add +proj=set operation to set component(s) of a coordinate to a fixed value
Fixes #1846
2020-01-28 21:46:47 +01:00
Even Rouault 74a10a8de0 Add RFC5 text: Adopt GeoTIFF-based grids for grids delivered with PROJ (#1868) 2020-01-28 15:07:09 +01:00
Even Rouault 0bb5cc0ace Merge pull request #1893 from asinghvi17/patch-2
Mention the Julia package Proj4.jl
2020-01-28 12:04:18 +01:00
Even Rouault f2efd1d73c Merge pull request #1892 from rouault/add_projinfo_searchpaths
projinfo: add --searchpaths switch
2020-01-28 12:03:20 +01:00
Even Rouault 15814256e2 projinfo: add --remote-data switch 2020-01-27 20:38:40 +01:00
Anshul Singhvi 148842cea0 Mention the Julia package Proj4.jl
in `docs/src/development/bindings.rst`
2020-01-27 14:18:13 -05:00
Even Rouault ea6245ea32 projinfo: add --searchpaths switch 2020-01-27 18:45:07 +01:00
Even Rouault a4c5cc1e42 Doc: advertize FOSS4G 2020
Text copied from GDAL doc.
2020-01-26 21:37:20 +01:00
Kristian Evers da4ee62a71 Merge pull request #1887 from jmckenna/irc
add #proj IRC channel notifications
2020-01-26 21:36:32 +01:00
Kristian Evers 66013a0202 Merge pull request #1886 from rouault/cppcheck_1_90_happyness
Few improvements to make cppcheck 1.90 happier
2020-01-26 21:36:19 +01:00
Even Rouault 0f22959cb2 Fix ossfuzz builds [ci skip] 2020-01-26 19:39:51 +01:00
Jeff McKenna aeb1779827 add PROJ channel notifications 2020-01-26 11:40:00 -04:00
Even Rouault 9cdebf7ecf configure.ac: rename switch to disable tiff dependency to more neutral --disable-tiff 2020-01-26 13:49:06 +01:00
Even Rouault 9ae1176325 Conversion::_exportToPROJString(): use const ref as rightly suggest by cppcheck 2020-01-26 00:34:55 +01:00
Even Rouault d5a59ac2f3 Make JSONParser::buildObjectDomain() static 2020-01-26 00:34:52 +01:00
Even Rouault fa1ba24a0d buildProjectionStandard(): make it obvious to cppcheck that null-ptr dereference cannot happen 2020-01-26 00:34:30 +01:00
Even Rouault 70ffd8c58b string_to_paralist(): simplify so that it is obvious to cppcheck that null-ptr dereference cannot happen 2020-01-26 00:33:55 +01:00
Even Rouault 43b9748844 configure.ac: remove -Wmissing-prototypes for C++ files at is is for C files only 2020-01-25 23:52:00 +01:00
Kristian Evers f02d83434b Merge pull request #1884 from rouault/cea_k_0
Fix ingestion of +proj=cea with +k_0
2020-01-25 20:50:01 +01:00
Even Rouault d3e133b23f Merge pull request #1882 from rouault/fix_grid_antimeridian
Grid correction: fix handling grids spanning antimeridian (fixes #1859)
2020-01-25 19:51:36 +01:00
Charles Karney a6c6d1de6b Merge pull request #1883 from cffk/cmake-namespace-update
Remove legacy CMake target name "proj" addressing #802
2020-01-25 12:57:11 -05:00
Even Rouault f201a86386 Fix ingestion of +proj=cea with +k_0
Fixes #1881

Digging into the implementation of proj=cea, it appears that
k_0 and lat_ts are intended to be exclusive ways of specifying the
same concept. EPSG only models the variant using lat_s.
So if k_0 is found and lat_ts is absent, compute the equivalent
value of lat_ts from k_0.

Note: k_0 should normally be in the [0,1] range. In case creative users
would use something outside, we raise an exception, even if the cea
implementation could potentially deal with any k_0 value. Hopefully
this is a (reasonable) limitation that will address nominal use cases.
2020-01-25 16:31:00 +01:00
Charles Karney 4efa44d46f Remove legacy CMake target name "proj" addressing #802 2020-01-25 10:03:46 -05:00
Even Rouault b113d0825c Init file reading: use FileManager::open_resource_file() instead of deprecated proj_api I/O 2020-01-25 12:49:23 +01:00
Even Rouault 5358921291 Grid correction: fix handling grids spanning antimeridian (fixes #1859) 2020-01-25 11:20:20 +01:00
Even Rouault 680d1eb93b Implement RFC 5 2020-01-25 02:23:18 +01:00
Even Rouault 1039889c42 Merge pull request #1880 from rouault/createObjectsFromName_use_alias_as_fallback
createObjectsFromName(): use alias as fallback only
2020-01-24 18:28:27 +01:00
Even Rouault e5fae5239f Merge pull request #1879 from sebastic/rdnap
Add nlgeo2018.gtx & rdtrans2018.gsb to grid_alternatives.
2020-01-24 17:49:53 +01:00
Even Rouault 9db95ecde7 createObjectsFromName(): use alias as fallback only
Fixes a regression of 6.3.0 found when creating with GDAL a TIFF with
a Geographic3D CRS. As TIFF must also encode the Geographic2D CRS,
the code of the Geographic2D CRS is searched from the name of the
Geographic3D CRS. When doing createObjectsFromName(
"ETRS89", {AuthorityFactory::ObjectType::GEOGRAPHIC_2D_CRS}, false, 1),
the result returned was not EPSG:4258 as expected, but EPSG:4173 IRENET95
which is registered as an alias of ETRS89. So sort results such
that non-alias results are returned first.
2020-01-24 14:52:46 +01:00
Bas Couwenberg 223572d0a8 Add nlgeo2018.gtx & rdtrans2018.gsb to grid_alternatives.
* EPSG:9282 uses rdtrans2018.gsb
 * EPSG:9283 uses nlgeo2018.gtx
2020-01-24 14:01:19 +01:00
Even Rouault 15ed565101 grid_checks.py: update with additional column in filelist.csv [ci skip] 2020-01-24 13:49:16 +01:00
Kristian Evers 6507e962e0 Update .cirrus.yml (#1878)
Update .cirrus.yml
2020-01-24 12:12:32 +01:00
lbartoletti c20c27424e Update .cirrus.yml
- Use latest FreeBSD 12 version
- remove useless pkg (wget -> native fetch ; unzip -> tar)
- "speed up" with 4 cpus
2020-01-24 09:28:56 +01:00
Mike Taves e16a24ab39 Merge pull request #1870 from mwtoews/build-testing
CMake: replace PROJ_TESTS with CTest's BUILD_TESTING option
2020-01-24 20:56:29 +13:00
Mike Taves 43dc8c5752 CMake: replace PROJ_TESTS with CTest's BUILD_TESTING option
* CTest automatically creates a BUILD_TESTING option (default is ON)
* Also allow PROJ_TESTS to be used, but show deprecation message;
  and add note to remove this option by PROJ 8.0
* Only build geodtest when tests are enabled
* Add documentation to configure a build using -DBUILD_TESTING=OFF
2020-01-24 20:26:53 +13:00
Kristian Evers df4f78a8c1 Merge pull request #1873 from rouault/fix_wrong_use_of_derivingConversion
Fix wrong use of derivingConversionRef() that caused GDAL bug
2020-01-23 20:30:53 +01:00
Even Rouault 1ca02b5659 Merge pull request #1869 from rouault/update_to_epsg_9_8_6
Database: update to EPSG v9.8.6
2020-01-23 19:04:31 +01:00
Even Rouault b6db297c5a Fix wrong use of derivingConversionRef() that caused GDAL bug
Hopefully final cut at solving the same class of bug that the one
that affected QGIS in December.

This time, this hit GDAL in the situation of
https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051500.html
The bug fix for that particular issue is in
PROJStringParser::createFromPROJString()

But grepping more in the code base, I could find other potential smelly
situations (might not be issues, but better be safe than sorry),
so let's fix them too.

Bottom line is:
derivingConversionRef() should *only* be used for consultation, and
never to create a new ProjectedCRS()
2020-01-23 18:31:32 +01:00
Even Rouault 00dd98457a Database: add a geoid_like value for proj_method column of grid_alternatives, fix related entries and simplify/robustify logic to deal with EPSG 'Geographic3D to GravityRelatedHeight' methods 2020-01-23 13:08:23 +01:00
Kristian Evers ef20438a3a docs: add note about autogen.sh to install guide 2020-01-23 10:49:13 +01:00
Even Rouault ffcd6253bb Database: update to EPSG v9.8.6
Fixes #1867
2020-01-22 22:31:44 +01:00
Even Rouault db31b6dfa9 Merge RFC4 (#1865)
This commit is the result of the squashing of rfc4_dev branch in a single
commit. It implements mostly RFC 4 related work.

* Grid handling:
  - remove obsolete and presumably unfinished implementation of grid catalog functionality
  - all grid functionality is in grids.cpp/.hpp
  - vertical and horizontal grid shift: rework to no longer load whole grid into memory
  - remove hgrids and vgrids member from PJ structure, and store them in hgridshift/vgridshift/deformation structures
  - build systems: add optional libtiff dependency. Must be explicitly disabled if not desired
  - add support for horizontal and vertical grids in GeoTIFF, if libtiff is available
  - add GenericShiftGridSet and GenericShiftGrid classes, relying on TIFF grids, that can be used for generic purpose grid-based adjustment
  - add a +proj=xyzgridshift method to perform geocentric translation by grid. Used for French NTF to RGF93 transformation using gr3df97a.tif grid
  - deformation: add support for +grids= for GeoTIFF grids
  - horizontal grid shift: fix failures on points slightly outside a subgrid (fixes #209)

* File management:
  - add a filemanager.cpp/.hpp to deal with file related work
  - test for legacy proj_api.h fileapi
  - proj.h: add proj_context_set_fileapi() and proj_context_set_sqlite3_vfs_name() (fixes #866)
  - add capability to read resource files from the user writable directory

* Network access:
  - build systems: add optional curl dependency
  - add a curl-based default implementation for network related functionality
  - proj.h: add C API to control network functionality, and optionaly provide network callbacks
  - add data/proj.ini with default settings
  - add a SQLite3 local cache of downloaded chunks
  - add proj_is_download_needed() and proj_download_file()

* Use Win32 Unicode APIs and expect all strings to be UTF-8 (fixes #1765)
  For backward compatibility, if PROJ_LIB content is found to be not UTF-8 or
  pointing to a non existing directory, then an attempt at interpretating it
  in the ANSI page encoding is done.
  proj_context_set_search_paths() now assumes strings to be in UTF-8, and
  functions returning paths will also return values in UTF-8.
2020-01-22 18:31:26 +01:00
Even Rouault 1ad703a58c Merge pull request #1864 from rouault/fix_appveyor_64bit
appveyor.yml: tune PATH order to fix error when running 'proj' on x64 builds
2020-01-22 15:02:57 +01:00
Even Rouault 8a4d459dfe appveyor.yml: tune PATH order to fix error when running 'proj' on x64 builds 2020-01-22 00:36:56 +01:00
Even Rouault cbf2eebf1b Merge pull request #1863 from rouault/fix_projcrs_identify_same_name_no_axis_but_different_unit
ProjectedCRS::identify(): fix wrong identification of some ESRI WKT linked to units
2020-01-21 22:51:57 +01:00
Kristian Evers 709717899c Merge pull request #1862 from kbevers/update-faq
Add explanation of the PROJ.4 -> PROJ shift to FAQ
2020-01-21 20:24:52 +01:00
Even Rouault 6cc83a2c80 ProjectedCRS::identify(): fix wrong identification of some ESRI WKT linked to units
Fixes bug reported in https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051481.html
2020-01-21 18:20:38 +01:00
Kristian Evers b13a34f3e0 Add explanation of the PROJ.4 -> PROJ shift to FAQ
closes #1511
2020-01-21 13:03:22 +01:00
Even Rouault 1f649f8a99 Merge pull request #1849 from rouault/doc_add_win_build_tutorial
Doc: add in install.rst tutorials to build on Windows
2020-01-16 21:31:08 +01:00
Kristian Evers 0c646aa914 Update year in CITATION (#1854)
Update year in CITATION
2020-01-16 16:52:44 +01:00
Kristian Evers d3a1aa6200 Update year in CITATION 2020-01-16 16:51:20 +01:00
Even Rouault 6733048be4 Doc: add in install.rst tutorials to build on Windows
Fixes #1776

Content based on https://github.com/OSGeo/PROJ/wiki/Building-with-VS-and-vcpkg
which should be retired to avoid duplication of information

README.md is also modified to point to install.rst
2020-01-15 22:42:38 +01:00
Kristian Evers d76e6202d2 Reintroduce backport bot, now using a dedicated PROJ bot (#1848)
Reintroduce backport bot, now using a dedicated PROJ bot
2020-01-15 14:42:10 +01:00
Kristian Evers 6630991e9a Reintroduce backport bot, now using a dedicated PROJ bot 2020-01-15 13:12:39 +01:00
Kristian Evers 34ff658696 doc: Fix error in previous commit (duplicate link targets) 2020-01-14 12:47:40 +01:00
Kristian Evers dae3c4b3b3 Doc: Update index of development section
Adds links to git repositories and adjusts deprecation warnings to
reflect that PROJ 6 has been released.
2020-01-14 11:00:33 +01:00
Kristian Evers e9605e41c8 Merge pull request #1844 from kbevers/remove-ld-option
Remove -ld option from proj and cs2cs
2020-01-14 07:25:00 +01:00
Kristian Evers 0e70861997 Merge pull request #1843 from rouault/fix_ossfuzz_20072
unitconvert with mjd time format: avoid potential integer overflow
2020-01-13 22:13:16 +01:00
Kristian Evers a955947c1f Remove -ld option from proj and cs2cs
It promotes use of deprecated paramters +datum and +towgs84 which we
don't want to encourage.

Closes #1308
2020-01-13 22:04:01 +01:00
Even Rouault 3f3af95e0a unitconvert with mjd time format: avoid potential integer overflow
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20072
2020-01-13 18:09:38 +01:00
Even Rouault 542359e993 test/fuzzers/standard_fuzzer.cpp: remove dependency to proj_internal.h 2020-01-13 18:08:49 +01:00
Kristian Evers 97bb56f10e Merge pull request #1832 from snowman2/templates
added issue & pull request templates
2020-01-11 13:23:51 +01:00
Kristian Evers 0630ff4abd Merge pull request #1840 from anbj/fix-missing-word
Fix missing word in cct.rst and cct.1
2020-01-11 13:08:06 +01:00
andreas 0fde103a3e Fix missing word in cct.rst and cct.1 2020-01-11 12:48:27 +01:00
Even Rouault 1b7df035f9 Merge pull request #1838 from rouault/limit_datum_name_massaging_wkt1
WKT1_GDAL export: limit datum name massaging to names matching EPSG (fixes #1835)
2020-01-11 12:01:59 +01:00
Even Rouault 921541789c Merge pull request #1836 from rouault/fix_projcrs3D_with_non_metre_z_unit
createOperations(): fix dealing with projected 3D CRS whose Z units != metre
2020-01-11 11:59:04 +01:00
Even Rouault e2ee15eb8a Merge pull request #1837 from rouault/fix_exception_identify_compoundcrs_of_boundcrs
CompoundCRS::identify(): avoid exception when horiz/vertical part is a BoundCRS
2020-01-11 11:56:27 +01:00
Even Rouault d2674e0445 WKT1_GDAL export: limit datum name massaging to names matching EPSG (fixes #1835) 2020-01-11 00:36:10 +01:00
Even Rouault 30205fef7c CompoundCRS::identify(): avoid exception when horiz/vertical part is a BoundCRS
The exception only affects C++ users. It was caught by the C layer.
2020-01-10 19:04:32 +01:00
Even Rouault 863d118c6d createOperations(): fix dealing with projected 3D CRS whose Z units != metre 2020-01-10 18:31:31 +01:00
Even Rouault 39ffdcadbd Add RFC 4 text: Remote access to grids and GeoTIFF grids (#1747) 2020-01-10 17:57:20 +01:00
snowman2 a4938a9919 add notes about PR header title 2020-01-10 07:51:14 -06:00
snowman2 948c0842a4 removed question 2020-01-10 07:48:57 -06:00
Alan D. SnowandKristian Evers ec14e9b3cb Update .github/ISSUE_TEMPLATE/bug_report.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:47:47 -06:00
Alan D. SnowandKristian Evers 595675b1e6 Update .github/ISSUE_TEMPLATE/bug_report.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:46:51 -06:00
Alan D. SnowandKristian Evers c525487249 Update .github/ISSUE_TEMPLATE/bug_report.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:46:43 -06:00
Alan D. SnowandKristian Evers 208117b0c7 Update .github/ISSUE_TEMPLATE/feature_request.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:46:37 -06:00
Kristian Evers 8884ad5638 Merge pull request #1834 from rouault/improve_doxygen_identify
Doc of CRS::identify(): make it clear that this is a best-effort attempt only
2020-01-10 10:59:26 +01:00
Even Rouault acb2bd68bc Doc of CRS::identify(): make it clear that this is a best-effort attempt only 2020-01-10 00:34:36 +01:00
Kristian Evers 0961c1951c Fix link for CoC-badge in readme file 2020-01-09 09:19:06 +01:00
snowman2 34a12d8e0d added issue & pull request templates 2020-01-08 19:52:22 -06:00
Kristian Evers 2d76bcffdc Merge pull request #1827 from rouault/improve_createObjectsFromName
Improvements regarding name aliases (refs #1823)
2020-01-08 19:42:22 +01:00
Even Rouault 6cd3a80bf5 Merge pull request #1831 from rouault/projinfo_no
projinfo: use No. abbreviation instead of UTF-8 character (fixes #1828)
2020-01-07 22:03:35 +01:00
Even Rouault 18ba7b3dfc projinfo: use No. abbreviation instead of UTF-8 character (fixes #1828) 2020-01-07 21:38:05 +01:00
Kristian Evers a76be01b5b Merge pull request #1830 from kbevers/stalebot
Add stale-bot config for GitHub
2020-01-07 18:47:59 +01:00
Kristian Evers 6edf8bf8f8 Add stale-bot config for GitHub
This should make managing issues a bit easier. All inactive issues will
be closed automatically after 60+7 days. Closing can be avoided by
adding labels from the "exemptLabels" list. Before an issue is closed a
friendly reminder is posted in the issue.
2020-01-07 16:23:30 +01:00
Kristian Evers e55bb1933c Remove deprecated JNI bindings (#1825)
Remove deprecated JNI bindings
2020-01-07 16:14:23 +01:00
Even Rouault 6426bcbd36 projinfo: support -k datum 2020-01-07 15:32:47 +01:00
Even Rouault 206a45de20 Database: insert PROJ.4 +datum values in alias_name table under PROJ authority 2020-01-07 12:27:19 +01:00
Even Rouault 3078c6b90f Database: fill alias_name with EPSG aliases for CRS 2020-01-07 12:17:14 +01:00
Even Rouault 699b92250a createObjectsFromName(): make it look up in the alias_name table too (fixes #1823) 2020-01-07 12:17:13 +01:00
Kristian Evers 679987ee35 Make sure tests pass if extra grids are present (#1822)
Make sure tests pass if extra grids are present
2020-01-07 12:11:15 +01:00
Kristian Evers ff15ab6c2d Remove deprecated JNI bindings
Closes #1757
2020-01-07 08:22:16 +01:00
Kristian Evers 529eb50f5d Merge pull request #1824 from rouault/doc_add_feedback_for_proj6_adoption
Doc: add a 'Feedback from downstream projects' for PROJ6 migration
2020-01-06 16:20:27 +01:00
Even Rouault ba4766e6dd Doc: add a 'Feedback from downstream projects' for PROJ6 migration 2020-01-06 15:04:42 +01:00
Even Rouault cff5dd526e Make sure tests pass if extra grids are present
Should fix the issue reported in https://lists.osgeo.org/pipermail/proj/2020-January/009188.html
Some extra north-american grids present in data/ can affect the results of
some tests, so create a data/for_tests/ subdirectory in which we copy only
select grids.
2020-01-05 23:50:38 +01:00
Even Rouault 5be02bf6d1 operations_computation.rst: update with latest 6.3 adjustments 2020-01-02 15:30:19 +01:00
Even Rouault ac3d7e16d1 Adjust formatting 2020-01-02 13:30:05 +01:00
Even Rouault 1f8073ac6c Merge pull request #1820 from snowman2/cs_projjson
fix exporting CoordinateSystem to PROJ JSON with ID
2020-01-02 13:28:57 +01:00
snowman2 ea31199355 fix exporting CoordinateSystem to PROJ JSON with ID 2020-01-01 22:46:48 -06:00
Kristian Evers 2da4b6f502 Update path to src/release.cpp 2020-01-01 22:03:56 +01:00
Kristian Evers fd377df0d1 Bump version numbers in preparation for 7.0.0 release 2020-01-01 22:02:54 +01:00
Kristian Evers a1e8314d97 Update github version in Sphinx config 2020-01-01 21:48:36 +01:00
Kristian Evers 837b6ab9c0 switch to 6.3 branch for website generation 2020-01-01 21:44:57 +01:00
Kristian Evers 546c98fe1d Merge remote-tracking branch 'osgeo/master' 2020-01-01 21:40:44 +01:00
Kristian Evers d4a76fdbcf Update website for 6.3.0 release 2020-01-01 21:40:28 +01:00
Even Rouault 3a31adce93 Merge pull request #1815 from rouault/unbreak_travis_builds
Travis: fix OSX builds
2019-12-29 00:30:16 +01:00
Even Rouault 7663050786 Travis: fix OSX builds 2019-12-28 23:30:46 +01:00
Even Rouault b1bb0e619f Database: add mapping for TOR27CSv1.GSB 2019-12-28 23:14:53 +01:00
Even Rouault 906f47e250 Database: add mapping for gg10_smv2.mnt and gg10_sbv2.mnt French grids 2019-12-28 22:47:02 +01:00
Kristian Evers 3e49a80b81 Amend NEWS with new SQLite version requirement (3.11) 2019-12-28 13:18:03 +01:00
Kristian Evers ddad3f61f1 Update CITATION for 2020 2019-12-28 12:00:35 +01:00
Kristian Evers f0b971e463 Update release notes for 6.3.0 2019-12-28 12:00:00 +01:00
Kristian Evers f5177c6dea Update NEWS for 6.2.1 2019-12-28 11:27:50 +01:00
Kristian Evers 6853c91d46 Update man-pages from Sphinx-docs 2019-12-28 11:22:17 +01:00
Kristian Evers ae3cd5df4d Update ABI numbers for 6.3.0 release 2019-12-28 11:15:50 +01:00
joe-mann b5cb57b598 Add link to Go bindings (#1807) 2019-12-26 20:21:28 +01:00
Even Rouault 6c0b5d9ec4 Merge pull request #1812 from rouault/tune_canadian_ntv1_ntv2
Database: tune accuracy of Canadian NTv1 file w.r.t NTv2
2019-12-26 12:05:17 +01:00
Even Rouault d71a6ce909 cct: make it honour PROJ_DEBUG if -v/-vv/-vvv are not specified 2019-12-25 22:35:28 +01:00
Even Rouault 37da5e2431 cct: revise end-of-line handling in logging, and always output debug and trace messages to stderr 2019-12-25 22:31:50 +01:00
Even Rouault 70ea9ae5ec Doc: resource_files.rst: s/dictionaries/directories 2019-12-25 18:49:51 +01:00
Kristian Evers e4f952c40e Merge pull request #1810 from rouault/projinfo_wkt1_gdal_no_longer_boundcrs
projinfo: no longer call createBoundCRSToWGS84IfPossible() for WKT1:GDAL
2019-12-25 17:50:48 +01:00
Even Rouault b8f8a708c2 Database: tune accuracy of Canadian NTv1 file w.r.t NTv2
As on import of EPSG, we remove the supersession of Canadian NTv1 file w.r.t NTv2
(because the default behaviour of PROJ is to ignore superseded operations). However
the NTv1 operation is advertized with an accuracy of 1m, whereas NTv2 is advertized
with 1.5m. Consequently on areas where both files are valid, and if both files are
available, NTv1 would be selected. So as a workaround, worsen the NTv1 accuracy to
2m so that NTv2 is used in priority.
2019-12-25 16:23:31 +01:00
Even Rouault d11804fb79 Doc: differences.rst: add note about WKT1:GDAL no longer implicitly calling --boundcrs-to-wgs84 2019-12-25 15:58:41 +01:00
Kristian Evers 1003bf3abd Merge pull request #1811 from rouault/modify_verbosity
Modify verbosity level of some debug/trace messages
2019-12-25 15:31:00 +01:00
Even Rouault 90875d7616 Modify verbosity level of some debug/trace messages
- unitconvert, ell_set and helmert were using debug level, which is
  too verbose. Using trace instead
- proj_trans() was using trace to indicate the operation it selects.
  Changing it to debug
2019-12-25 10:45:20 +01:00
Even Rouault 46e28887e1 projinfo: no longer call createBoundCRSToWGS84IfPossible() for WKT1:GDAL
To align with GDAL 3.0.3 behaviour, no longer automatically try to create
a boundCRS to WGS84 when exporting to WKT1:GDAL. The user has to
explicitly specify --boundcrs-to-wgs84 if he wishes this behaviour.
2019-12-25 10:11:01 +01:00
Even Rouault 41aa90d57e Merge pull request #1809 from rouault/add_retry_logic_to_proj_trans
proj_trans: add retry logic to select other transformation if the best one fails.
2019-12-24 14:31:54 +01:00
Even Rouault 73a65df742 proj_trans: add retry logic to select other transformation if the best one fails.
Relates to https://github.com/OSGeo/PROJ/issues/1808
2019-12-24 12:59:15 +01:00
Even Rouault 366ab091c7 test: add explict tests for New Zealand vertical <--> geog3D and vertical <--> vertical transformations 2019-12-23 19:12:22 +01:00
Even Rouault e503454b65 proj_db_table_defs.sql: rewrite some trigger checks as normal table CONSTRAINT CHECK 2019-12-21 12:09:35 +01:00
Even Rouault 325ebcafd3 Database: add consistency checks of transformation area of use w.r.t source/target CRS one 2019-12-21 11:36:20 +01:00
Even Rouault 5b1346e95c Database: add/fix consistency checks 2019-12-21 02:41:28 +01:00
Even Rouault e7ef9b626e Database: fix registration of Icegeoid_xxx.gtx files, and add corresponding entries in grid_alternatives.sql 2019-12-21 02:13:07 +01:00
Even Rouault 9051b19987 Database: add name mappings for na27na83.gsb and cq77na83.gsb; also fix the mapping between CGQ77-98.gsb and CQ77SCRS.GSB 2019-12-20 15:14:20 +01:00
Even Rouault 5c179b3349 grid_check.py: fixes 2019-12-20 11:54:01 +01:00
Even Rouault 5f36c9ebde test: transformation_NZLVD_to_PROJ_string: attach database context to get filename substitution 2019-12-20 10:40:44 +01:00
Chris Crook 6c40887e4d Adding New Zealand grid alternative names 2019-12-20 14:04:48 +13:00
Even Rouault 444bc1f661 Merge pull request #1770 from ccrook/nzlvd_support
Adding support for NZLVD vertical height transformation
2019-12-19 23:14:07 +01:00
Chris Crook 1433adcc67 Adding support for NZLVD vertical height transformation 2019-12-20 10:23:44 +13:00
Even Rouault 13dd313795 Database: register MAY76V20.gsb 2019-12-18 19:25:50 +01:00
Even Rouault baf9c46795 Database: register Canadian geoid models added per https://github.com/OSGeo/proj-datumgrid/pull/91 (#1796) 2019-12-17 16:58:47 +01:00
Even Rouault 216492df43 Database: register SeTa2016.gsb for DHDN to ETRS89 in Saarland (refs https://github.com/OSGeo/proj-datumgrid/pull/89) (#1791) 2019-12-17 16:54:16 +01:00
Even Rouault 7de0f0931c Merge pull request #1789 from rouault/register_100800401_gsb
Database: register 100800401.gsb for Catalonia ED50 -> ETRS89
2019-12-17 16:52:22 +01:00
Even Rouault 9db6e144ae Merge pull request #1803 from rouault/improve_identification_with_datum_name_aliases
identify(): take into datum name aliases (fixes #1800)
2019-12-17 16:52:08 +01:00
Even Rouault 75a3299803 travis/osx/before_install.sh: do not install md5sha1sum from brew 2019-12-16 22:13:32 +01:00
Even Rouault da7ffcd528 Merge pull request #1802 from rouault/improve_boundcrs_identify
BoundCRS::identify(): improvements to discard CRS that aren't relevant (fixes #1801)
2019-12-16 21:11:58 +01:00
Even Rouault bd9ecbacf5 identify(): take into datum name aliases (fixes #1800) 2019-12-16 17:50:39 +01:00
Kristian Evers b183705980 Merge pull request #1775 from rouault/grid_alternatives_use_precision_package_versions
grid_alernatives.sql: point to specific revisions of the proj-datumgrid-XXXX packages
2019-12-16 16:24:00 +01:00
Kristian Evers 533ca5d12b Merge pull request #1786 from rouault/fake_EPSG_102100
Make EPSG:102100 resolve to ESRI:102100 (fixes #1730)
2019-12-16 16:23:20 +01:00
Kristian Evers 59c1f1993b Merge pull request #1763 from dalia2/update-grid-alternatives.sql-for-Icealnd
Update grid_alternatives.sql for Icelandic grids
2019-12-16 16:22:25 +01:00
Even Rouault a68c146d7f BoundCRS::identify(): improvements to discard CRS that aren't relevant (fixes #1801)
Fix for
```
projinfo --identify "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +towgs84=198,881,317,0,0,0,0 +units=m +no_defs +type=crs"
```

to only return BoundCRS of EPSG:3148: 70 %

Previously it also returned EPSG:23948 and EPSG:24048 whose projected CRS-only
parts where likely matches, but those 2 CRSs don't have a +towgs84=198,881,317,0,0,0,0,
so discard them.
2019-12-16 13:27:40 +01:00
Kristian Evers e5526bca37 Merge pull request #1783 from rouault/restore_ob_tran_to_meter_compat_with_pj_transform
ob_tran: restore traditional handling of +to_meter with pj_transform() and proj utility (fixes #1782)
2019-12-15 20:50:15 +01:00
Kristian Evers 6125d3b5a4 Merge pull request #1797 from rouault/fix_hgrid_inv_switch_between_ntv2_subgrids
Horizontal grid shift: fix issue on iterative inverse computation when switching between (sub)grids (fixes #1663)
2019-12-14 18:46:37 +01:00
Even Rouault 6a4f9cc673 Horizontal grid shift: fix issue on iterative inverse computation when switching between (sub)grids (fixes #1663)
Given in.txt with
53.999759140 5.144478208 252.6995

Before the fix,
cct  -t 0 -d 4 +proj=pipeline +step +proj=axisswap +order=2,1,3,4 +step +proj=hgridshift +inv +grids=rdtrans2018.gsb +step +proj=vgridshift +grids=naptrans2018.gtx +step +proj=sterea +lat_0=52.156160556 +lon_0=5.387638889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel in.txt

returned:
  139079.8814    668306.0302      212.1724        0.0000

It now returns:
  139079.8850    668306.0458      212.1724        0.0000

which meets with the 1mm accuracy the expected result of test point
```
30010049    53.999759140    5.144478208     252.6995        139079.8850     668306.0460     212.1723
```
2019-12-14 15:40:17 +01:00
Even Rouault 0f7a93138f Database: add mappings to AUSGeoid98.gtx in grid_alternatives 2019-12-14 02:20:09 +01:00
Nyall Dawson ccaebae3cb Add proj_coordoperation_create_inverse to C API (#1795) 2019-12-14 01:15:05 +01:00
Even Rouault c9d6d364a8 Fix compilation breakage of previous commit with some compilers 2019-12-13 11:15:03 +01:00
Even Rouault a2b2663d2a normalizeForVisualization(): address EPSG:32661 "WGS 84 / UPS North (N,E)" and EPSG:32761 "WGS 84 / UPS South (N,E)"
Fixes https://github.com/qgis/QGIS/issues/33077
2019-12-13 11:04:04 +01:00
Even Rouault 2fd6f7fc0b PROJStringFormatter: make startInversion/stopInversion properly deal with omit_fwd/omit_inv 2019-12-13 01:29:42 +01:00
Even Rouault c86bd69147 WKTParser: fix assertion that can trigger on corrupted input. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19367 2019-12-13 00:38:18 +01:00
dalia2 1efec9523d Merge branch 'master' into update-grid-alternatives.sql-for-Icealnd 2019-12-12 14:25:40 +00:00
Even Rouault 5b4e60f4f9 Merge pull request #1773 from orudge/msvc-no-static-exports
Build: Only export symbols if building DLL
2019-12-11 23:08:50 +01:00
Even Rouault 28d61f5ee6 Merge pull request #1788 from rouault/tune_too_agressive_result_removal_indian_1975_to_4326
createOperations(): make filtering out of 'uninteresting' operations less aggressive (refs #1787)
2019-12-11 22:28:40 +01:00
Even Rouault 3a035e99f7 Make EPSG:102100 resolve to ESRI:102100 (fixes #1730) 2019-12-11 22:09:05 +01:00
Even Rouault 864e933916 Database: register 100800401.gsb for Catalonia ED50 -> ETRS89
Refs https://github.com/OSGeo/proj-datumgrid/pull/88
2019-12-11 12:42:13 +01:00
Even Rouault 0b5fb1239f createOperations(): make filtering out of 'uninteresting' operations less aggressive (refs #1787)
'EPSG:1304, Indian 1975 to WGS 84 (2), 5.0 m, Thailand - onshore and Gulf of Thailand'
was removed because considered useless w.r.t first result
'EPSG:1812, Indian 1975 to WGS 84 (4), 3.0 m, Thailand - onshore'

However the name of the area of use is not completely the same, so might be worth
keeping it.
2019-12-11 11:46:34 +01:00
Kristian Evers d1f432ea6e Merge pull request #1785 from rouault/update_to_ignf_3_1_0
Database: update to IGNF v3.1.0
2019-12-11 08:35:05 +01:00
Even Rouault 38de84f38b Database: update to IGNF v3.1.0 2019-12-10 23:51:03 +01:00
Even Rouault 2c3a7c8bcc ob_tran: restore traditional handling of +to_meter with pj_transform() and proj utility (fixes #1782)
Fixes side-effect of https://github.com/OSGeo/PROJ/issues/1525 that went in 6.1.1

The correction is horribly hacky. Sorry...
2019-12-10 15:25:02 +01:00
Mike Taves 29474bd7fd DOC: correction to doi field; remove uri, which is identical to doi for Snyder1992 2019-12-10 09:52:12 +13:00
Kristian Evers 9b3a80ada0 isea docs: Rewrite intro and reference to reflect actual projection
Previous version was describing oea by mistake. It is also a projection
by Snyder and the isea docs was based on the paper on the oea
projection. This commit fixes that.
2019-12-09 11:46:53 +01:00
Kristian Evers 9b66a948fe Merge pull request #1780 from rouault/fix_1779
CRS identification: use case insensitive comparison for authority name (fixes #1779)
2019-12-09 11:11:38 +01:00
Even Rouault 5cc1095970 CRS identification: use case insensitive comparison for authority name (fixes #1779) 2019-12-09 09:08:13 +01:00
Kristian Evers 9750c04474 Add intro and table to isea doc page 2019-12-07 19:48:04 +01:00
Even Rouault b6f0153e5a test228.cpp: update to use OSTN15_NTv2_OSGBtoETRS.gsb 2019-12-06 16:06:23 +01:00
Even Rouault 71ae00a050 grid_alernatives.sql: point to specific revisions of the proj-datumgrid-XXXX packages
Due to potential future shift to GTiff format, we don't want users of PROJ 6.3
being pointed to grids they won't be able to use.
So point to
- proj-datumgrid-1.8: already existing, unlikely to change before 6.3
- proj-datumgrid-north-america-1.3: to be released
- proj-datumgrid-europe-1.5: to be released
- proj-datumgrid-oceania-1.1: to be released
- proj-datumgrid-world-1.0: already existing, unlikely to change before 6.3
2019-12-06 15:25:22 +01:00
Kristian Evers 6144a898db Merge pull request #1764 from rouault/updates_in_resource_files
Doc: resource_files.rst updates
2019-12-06 15:03:18 +01:00
Even Rouault 443ce39d09 Update ntv2_out.dist and conditions to run it 2019-12-05 21:25:53 +01:00
Even Rouault 98b32527ee Merge pull request #1756 from rouault/document_create_operations
Doc: add a operations_computation.rst describe the magic behind createOperations()
2019-12-05 16:13:48 +01:00
Even Rouault 700cf8fe9a Merge pull request #1774 from mloskot/ml/add-gitattributes-with-lf-in-unix-shell-scripts
Add .gitattributes to normalize line endings of Unix scripts to LF
2019-12-05 14:37:26 +01:00
Even Rouault 97bbfe32aa import from PROJ string CRS: better deal with strings that look like Google Mercator projection, but with subtlely different parameters (fixes https://github.com/OSGeo/gdal/issues/2087) 2019-12-05 13:32:16 +01:00
Even Rouault f3a9e54c09 proj_grid_info(): fix crash when passing a file that exists but is not a grid 2019-12-04 21:49:17 +01:00
Mateusz Łoskot 2fb89ccaca Add .gitattributes
Normalize line endings of Unix shell scripts to LF.
2019-12-04 18:45:25 +01:00
Even Rouault 1f5816721f Merge pull request #1772 from rouault/do_not_install_proj_json_streaming_writer_hpp
autoconf/cmake: do not install proj_json_streaming_writer.hpp header
2019-12-04 18:44:41 +01:00
Owen Rudge 8ae7e0d2b6 Build: Only export symbols if building DLL 2019-12-04 16:34:11 +00:00
Even Rouault dcb04027a4 autoconf/cmake: do not install proj_json_streaming_writer.hpp header 2019-12-04 15:47:39 +01:00
Even Rouault fa7633ef97 operations_computation.rst: try to clarify sorting logic [skip appveyor] 2019-12-04 15:20:59 +01:00
Even Rouault 730477ecfe grid_checks.py: add a --check-filelist option to verify consistency of proj-datumgrid new filelist.csv file 2019-12-04 14:58:30 +01:00
Even Rouault 0aebf6f9b8 Merge pull request #1769 from rouault/register_NTv2_SN
Database: register NTv2_SN.gsb
2019-12-03 22:00:00 +01:00
Even Rouault 076c25f750 Database: register NTv2_SN.gsb added per https://github.com/OSGeo/proj-datumgrid/pull/73 2019-12-03 21:03:13 +01:00
Even Rouault 9f9792d26c Merge pull request #1768 from rouault/register_AT_GIS_GRID
Database: register AT_GIS_GRID.gsb
2019-12-03 20:55:23 +01:00
Even Rouault 9c191940d2 Database: register AT_GIS_GRID.gsb added per https://github.com/OSGeo/proj-datumgrid/pull/72 2019-12-03 19:59:36 +01:00
Even Rouault cb4e77d58f Merge pull request #1761 from rouault/register_ausgeoid
Database: register AUSGeoid09 and AUSGeoid2020
2019-12-03 17:52:57 +01:00
Even Rouault 1d2b1884b0 coordinateoperation.cpp: add nullptr checks to please CLang Static Analyzer that suddenly warns about them for unknown reason... 2019-12-03 14:27:35 +01:00
Even Rouault 5a7ff4380e Database: register AUSGeoid09 and AUSGeoid2020
Related to https://github.com/OSGeo/proj-datumgrid/pull/66

Tune operation search so that it can work with Geog2D <--> VertCS for commandline
niceness
2019-12-03 14:27:35 +01:00
Even Rouault a0de56228b Merge pull request #1759 from rouault/BWTA2017
Database: register the BWTA2017.gsb grid (DHDN->ETRS89 for Baden-Wurtemberg)
2019-12-03 14:18:35 +01:00
Even Rouault dc55b17d0c Database: register the BWTA2017.gsb grid (DHDN->ETRS89 for Baden-Wurtemberg)
Relates to https://github.com/OSGeo/proj-datumgrid/pull/65 ,
https://github.com/OSGeo/proj-datumgrid/issues/22

As EPSG has no entry for it, we create a grid_transformation, as well as a
dedicated area of use based on the extent of the grid, under the PROJ authority.
With the hope to be able to remove it once EPSG has an entry...
2019-12-02 15:57:40 +01:00
dalia2 e9d6a0b299 Update grid_transformation_custom.sql 2019-12-02 14:47:57 +00:00
Even Rouault b92408d146 Doc: resource_files.rst: remove mentions of no longer existing esri, epsg and IGNF init-files 2019-12-01 19:00:53 +01:00
Even Rouault f27288ddfa Doc: resource_files.rst: document recent Win32 specific addition (https://github.com/OSGeo/PROJ/pull/1755) regarding how resource files are looked for 2019-12-01 19:00:53 +01:00
Even Rouault c645218219 Doc: resource_files.rst: document where resource files are looked for (without recent Win32 specific addition) 2019-12-01 19:00:53 +01:00
Joaquim c3aa3fe4e9 Enhance PROJ resource file lookup on Windows for bin\..\share\proj (#1755)
This PR is Windows only. It adds the directory ``.....\bin\..\share\proj``, where ``....\bin`` is the directory hosting ``proj.dll``, to the list of places where ``proj.db`` is searched. In addition to what happens at build time, this PR ads also the ability to do that at run-time. This means that a structure like

....\bin\proj.exe, proj.dll, ...
....\share\proj\proj.db, ...

will still find proj.db without needing to set the PROJ_LIB environment variable
2019-12-01 17:08:03 +01:00
dalia2andEven Rouault 10baba9fa4 Update data/sql/grid_alternatives.sql
Co-Authored-By: Even Rouault <even.rouault@spatialys.com>
2019-12-01 15:54:05 +00:00
dalia2andEven Rouault a6ff106dbc Update data/sql/grid_alternatives.sql
Co-Authored-By: Even Rouault <even.rouault@spatialys.com>
2019-12-01 15:52:46 +00:00
dalia2 2a9d99607c Update grid_alternatives.sql
Updated the grid_alternatives.sql
2019-12-01 15:41:21 +00:00
Kristian Evers 4d40332fa4 Merge pull request #1762 from rouault/database_esri_10_8_0
Database: update ESRI entries with ArcGIS Desktop version 10.8.0 database
2019-12-01 14:58:31 +01:00
Even Rouault 6c0531b28f Database: update ESRI entries with ArcGIS Desktop version 10.8.0 database 2019-12-01 00:36:46 +01:00
Even Rouault 43a6c1535c grid_checks.py: add is_superseded info in output 2019-12-01 00:30:35 +01:00
Jeff McKenna ebe67de5df [Docs] Minor changes regarding datumgrid pages (#1751) (#1760)
Update README, install.rst and resource_files.rst
2019-11-30 22:49:12 +01:00
Even Rouault 89bfd5d12e Merge pull request #1758 from rouault/resource_files_clarifications
Doc: clarifications regarding grid packages (fixes #1751)
2019-11-29 23:14:23 +01:00
Even Rouault 290902f658 Doc: clarifications regarding grid packages (fixes #1751)
- Content partly borrowed from @kbevers ' suggestions of
  https://github.com/OSGeo/PROJ/issues/1751#issuecomment-558976968

- Remove mention about Swiss grids. Included in the europe package

- Remove section about HARN / HPGN grids. Those have been included
  in the north-america package, and there is no longer any point in
  mentionning the particularities of how ancient ones had to be
  used with PROJ.4

- Remove section about obsolete proj_defs.dat
2019-11-29 22:16:51 +01:00
Even Rouault 5f749c70c7 operations_computation.rst: fixes 2019-11-29 21:16:27 +01:00
Even RouaultandKristian Evers c5d8c0862f Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:37:00 +01:00
Even RouaultandKristian Evers 94abd1f827 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:36:42 +01:00
Even RouaultandKristian Evers b05e6bd981 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:36:27 +01:00
Even RouaultandKristian Evers ba66e2d8d7 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:34:11 +01:00
Even RouaultandKristian Evers 6ebf6ceac2 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:33:57 +01:00
Even RouaultandKristian Evers 41faf3e833 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:33:44 +01:00
Even RouaultandKristian Evers c1d4aa87fd Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:33:29 +01:00
Even RouaultandKristian Evers b8c39e0195 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:33:18 +01:00
Even RouaultandKristian Evers 10e2dc2526 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:33:04 +01:00
Even RouaultandKristian Evers 39e5597d31 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:32:33 +01:00
Even RouaultandKristian Evers 204880c756 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:32:25 +01:00
Even RouaultandKristian Evers 67ceca3de4 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:32:06 +01:00
Even RouaultandKristian Evers 9efaf9e782 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 20:31:58 +01:00
Even Rouault 5d721da04c operations_computation.rst: just mention PROJ 6.3.0 2019-11-29 19:59:13 +01:00
Even RouaultandKristian Evers 21f85158ea Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:53:09 +01:00
Even RouaultandKristian Evers 31be9108ce Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:52:59 +01:00
Even RouaultandKristian Evers 109c35fc1f Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:50:44 +01:00
Even RouaultandKristian Evers d4f73cb40c Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:50:24 +01:00
Even RouaultandKristian Evers 54aa89325f Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:47:47 +01:00
Even RouaultandKristian Evers da05128711 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:47:35 +01:00
Even RouaultandKristian Evers 9da26adad1 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:46:38 +01:00
Even RouaultandKristian Evers 6abd9b3d93 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:45:44 +01:00
Even RouaultandKristian Evers 540504fcbf Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:45:33 +01:00
Even RouaultandKristian Evers 88edcdc30c Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:45:18 +01:00
Even RouaultandKristian Evers d20ee882d9 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:45:04 +01:00
Even RouaultandKristian Evers 77b4491e63 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:44:56 +01:00
Even RouaultandKristian Evers e348b97967 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:44:46 +01:00
Even RouaultandKristian Evers 2a36b2f5d4 Update docs/source/operations/operations_computation.rst
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2019-11-29 19:04:06 +01:00
Even Rouault c5b923510a Doc: add a operations_computation.rst describe the magic behind createOperations() 2019-11-28 22:00:08 +01:00
Even Rouault d12a3df364 scripts/fix_typos.sh: tunings [ci skip] 2019-11-28 21:59:28 +01:00
Even Rouault cef7a8a209 createOperations(): fix vertical to geographic when synthetizing an operation that involves a vertical axis reversal 2019-11-28 18:54:17 +01:00
Even Rouault b0983324c5 Attempt at fixing test failures due to 8a57406377 in the no-grid scenario 2019-11-28 15:31:36 +01:00
Kristian Evers cfbf125b47 Replace OSGeo Community logo with OSGeo Project logo
PROJ is now a proper OSGeo project, let's advertise it as such!
2019-11-28 14:57:05 +01:00
Even Rouault 8a57406377 createOperations(): if direct transformation is found in the database but not instantiable, allow using through intermediates. Should help in theory for Auckland 46 -> NZVD2016 the case but there are other issues 2019-11-28 14:01:18 +01:00
Even Rouault 2a5a2ea57e Merge pull request #1754 from Geomatys/master
EPSG codes for YEAR and SECOND are interchanged
2019-11-28 12:10:08 +01:00
Martin Desruisseaux a50ebaa524 EPSG codes for YEAR and SECOND are interchanged. EPSG registry report EPSG::1040 for second and EPSG::1029 for year. 2019-11-28 09:49:43 +01:00
Even Rouault bb9b925876 createOperations(): fix an exception in transformations between Projected3D CRS and Projected CRS 2019-11-26 23:17:07 +01:00
Even Rouault aeaf21ecae Merge pull request #1748 from rouault/improve_hgrid_vgrid_hgrid_inv_take2
Optimize pipelines involving horizontal shift grid, vertical shift grid, inverse horizontal shift grid (take 2)
2019-11-26 14:11:50 +01:00
Even Rouault 49c15bc4a0 Doc: pipeline: document +omit_fwd and +omit_inv 2019-11-25 20:17:50 +01:00
Kristian Evers f764bd8a97 Merge pull request #1745 from rouault/optimize_compound_to_geog
createOperations(): optimize compoundCRS to geogCRS, when the geogCRS of the compoundCRS is the same as the target geogCRS
2019-11-25 20:01:05 +01:00
Kristian Evers 992bb0b93a Merge pull request #1742 from rouault/script_grid_checks
Add scripts/grid_checks.py
2019-11-25 20:00:32 +01:00
Kristian Evers 42e981be8e Merge pull request #1737 from rouault/proj_create_derived_geographic_crs
Add proj_create_derived_geographic_crs() and proj_create_conversion_pole_rotation_grib_convention() to address GRIB datasets using a pole rotation method
2019-11-25 20:00:19 +01:00
Kristian Evers cf8197bbbc Merge pull request #1749 from rouault/6_3_0_version_numbers
Change version numbers to 6.3.0
2019-11-25 19:59:27 +01:00
Even Rouault 3445967392 Doc: change 7.0 references to 6.3 2019-11-25 17:13:26 +01:00
Even Rouault 649e5ce3ed Change version numbers to 6.3.0 2019-11-25 17:10:52 +01:00
Even Rouault bfb30b5c9c Add scripts/grid_checks.py
Little script used lately to check consistency of the database
regarding the grid_transformation vs grid_alternatives tables.
And also check the content of the database vs proj-datumgrid
to identify gaps.
2019-11-25 16:22:47 +01:00
Even Rouault 3c616a0dc2 pipeline.cpp: use more explict variable names 2019-11-25 16:06:42 +01:00
Even Rouault d1945ecbaf PROJStringFormatter::toString(): optimize hgridshift, vgridshift, hgridshift inv constructs
Given an initial pipeline with

+step +proj=hgridshift +grids=foo
+step +proj=vgridshift +grids=bar
+step +inv +proj=hgridshift +grids=foo

Transform it as

+step +proj=push +v_1 +v_2
+step +proj=hgridshift +grids=foo +omit_inv
+step +proj=vgridshift +grids=bar
+step +inv +proj=hgridshift +grids=foo +omit_fwd
+step +proj=pop +v_1 +v_2

So as to avoid doing a double application of the hgridshift.
2019-11-25 15:12:33 +01:00
Even Rouault d81ffc6fa8 Pipeline: support +omit_fwd and +omit_inv keywords
Inspired from syntax of https://github.com/OSGeo/PROJ/pull/453/files
but 'rebased' on top of previous commit that cleans up the pipeline implementation

Different situations:
- +omit_fwd:
    the step when followed in the forward path will be omitted
    the step when followed in the reverse path will be executed
- +omit_fwd +inv:
    the step when followed in the forward path will be omitted
    the step when followed in the reverse path will be executed (with the inv method)
- +omit_inv:
    the step when followed in the forward path will be executed
    the step when followed in the reverse path will be omitted
- +omit_inv +inv:
    the step when followed in the forward path will be executed (with the inv method)
    the step when followed in the reverse path will be omitted

This will be used in the next commit to optimize constructs like

+step +proj=hgridshift +grids=foo
+step +proj=vgridshift +grids=bar
+step +inv +proj=hgridshift +grids=foo

Such steps are used for CRS to CRS transformations where applying the vertical grid
requires to do a transformation to an interpolating CRS. One can notice that
in the last step will just restore the horizontal coordinates before the first step, so
doing an inverse hgridshift is overkill.

So that could be optimized as:

+step +proj=push +v_1 +v_2
+step +proj=hgridshift +grids=foo +omit_inv
+step +proj=vgridshift +grids=bar
+step +inv +proj=hgridshift +grids=foo +omit_fwd
+step +proj=pop +v_1 +v_2

In the forward path, this will be equivalent to:
+step +proj=push +v_1 +v_2
+step +proj=hgridshift +grids=foo
+step +proj=vgridshift +grids=bar
+step +prop=pop +v_1 +v_2

And similarly in the reverse path, this will be quivalent to:
+step +proj=push +v_1 +v_2
+step +proj=hgridshift +grids=foo
+step +inv +proj=vgridshift +grids=bar
+step +proj=pop +v_1 +v_2
2019-11-25 15:07:25 +01:00
Even Rouault dbac9993cd Merge pull request #1739 from rouault/register_canadian_hshiftgrids
Database: register Canadian provincial horizontal shift grids
2019-11-25 13:52:10 +01:00
Even Rouault ac57cbc602 Merge pull request #1740 from rouault/missing_australian_grids
Database: reference GDA94_GDA2020_conformal_christmas_island.gsb and …
2019-11-25 13:52:02 +01:00
Even Rouault bc5148feb2 Merge pull request #1746 from rouault/fix_1736
normalizeForVisualization() and other methods applying on a ProjectedCRS: do not mess the derivingConversion object of the original object (fixes #1736)
2019-11-25 13:08:05 +01:00
Even Rouault 685a64466a normalizeForVisualization() and other methods applying on a ProjectedCRS: do not mess the derivingConversion object of the original object (fixes #1736)
normalizeForVisualization(), promoteTo3D(), demoteTo2D(), alterGeodeticCRS(),
alterCSLinearUnit() and alterParametersLinearUnit() all used the object
returned by derivingConversionRef() to create a new ProjectedCRS. While doing
so, this caused the derivingConversion of the original object to have its
targetCRS set to the object returned by normalizeForVisualization() and similar.
If that object died, then the weak pointer would be reset, and the original
ProjectedCRS() has now its derivingConversionRef()->targetCRS() nullptr

So bottom line is use derivingConversion() for anything that is not pure
reading !!!

This is confirmed to be the fix for the QGIS scenario in
https://github.com/qgis/QGIS/issues/30569#issuecomment-540060919

In QGIS use case, the issue arised when using a projected CRS with a non-GIS
friendly axis (that is where normalizeForVisualization() created a new projectedCRS)
2019-11-25 05:19:59 +01:00
Even Rouault fb73bc9bf7 createOperations(): optimize compoundCRS to geogCRS, when the geogCRS of the compoundCRS is the same as the target geogCRS 2019-11-25 01:20:38 +01:00
Even Rouault 875aba7c9d CoordinateOperationFactory::Private::setCRSs(): fix potential issue with overriding CRS on a InverseCoordinateOperation (could be related to #1736) 2019-11-25 00:13:10 +01:00
Even Rouault ddd8a1243a pipeline.cpp: hopefully make code more readable by using more C++ goodness. No functional change intended (except a likely minor correction/improvement in get_next_non_whatever_unit in the PJ_INV case where the iteration should start at step-1) 2019-11-24 19:34:17 +01:00
Even Rouault 0eb6ddc838 Database: add missing name mappings for a few French overseas vertical grids 2019-11-23 22:43:24 +01:00
Even Rouault c59ec5850d Database: reference GDA94_GDA2020_conformal_christmas_island.gsb and GDA94_GDA2020_conformal_christmas_island.gsb
Related to https://github.com/OSGeo/proj-datumgrid/pull/62
2019-11-23 20:42:40 +01:00
Even Rouault 6ae8db8780 Database: add missing mapping for 3 GEOID2009 grids that we have now in proj-datumgrid 2019-11-23 20:35:19 +01:00
Even Rouault d0f9ef3083 Database: register Canadian provincial horizontal shift grids
Counterpart of https://github.com/OSGeo/proj-datumgrid/pull/61
Fixes #202
2019-11-23 13:04:40 +01:00
Even Rouault 566a33ffbf travis/osx/before_install.sh: attempt to fix 'pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.' 2019-11-22 14:21:21 +01:00
Kristian Evers 431878d251 Merge pull request #1735 from rouault/doc_github_button
Doc: configure the 'Edit on GitHub' button
2019-11-22 11:38:45 +01:00
Even Rouault c11cc087b1 Add proj_create_derived_geographic_crs() and proj_create_conversion_pole_rotation_grib_convention() to address GRIB datasets using a pole rotation method 2019-11-22 02:40:38 +01:00
Even Rouault 0516d857b0 create_c_api_projections.py: fix for conversions without linear parameters [ci skip] 2019-11-22 00:01:10 +01:00
Even Rouault 8394cacb65 Fix typos in code comments 2019-11-21 21:16:33 +01:00
Even Rouault e2cb5b2150 projjson.rst: typo fix 2019-11-21 21:16:20 +01:00
Even Rouault f4cab59252 Doc: add a about_core.rst file to avoid duplication between index.rst and about.rst 2019-11-21 21:11:34 +01:00
Even Rouault ffb47d7dd2 Doc: configure the 'Edit on GitHub' button 2019-11-21 20:33:28 +01:00
Even Rouault 28f4f9f59e Doc: update status of RFC-2 [skip appveyor] 2019-11-19 15:27:27 +01:00
Even Rouault 2d7a2f73c5 Merge pull request #1734 from rouault/intermediate_crs_through_datum
createOperations(): chain operations whose middle CRSs are not identical but have the same datum
2019-11-19 15:20:00 +01:00
Even Rouault 43c5c8cad3 createOperations(): in some situations, consider when going from A to D intermediates B and C, such there's a A->B operation and C->D operation, and A and C are not exactly the same CRS but use the same geodetic datum 2019-11-19 03:01:03 +01:00
Even Rouault 10434b1f05 createFromCRSCodesWithIntermediates(): do not consider intermediate CRS whose datum has a publication date older than the source and target datums 2019-11-18 23:54:57 +01:00
Even Rouault 360657d16d createGeodeticDatum(): query and set publicationDate 2019-11-18 23:47:17 +01:00
Even Rouault df339795a8 Database: add a publication_date column to geodetic_datum and vertical_datum
Populated from realization_epoch column from EPSG
The 'publication_date' naming is from OGC Topic 2, and hasn't been yet adopted
by the EPSG dataset.
See http://docs.opengeospatial.org/as/18-005r4/18-005r4.html , Annex G, clause 11
and https://32zn56499nov99m251h4e9t8-wpengine.netdna-ssl.com/wp-content/uploads/2019/09/EPSG-relational-data-model-changes_2019-09-18.pdf
2019-11-18 22:41:24 +01:00
Even Rouault b063035618 data/ITRF2014: replace errouneous minus Unicode character by its ASCII version
Affected parameters of Plate Motion Models.
Spotted by Xavier Collilieux on https://lists.osgeo.org/pipermail/proj/2019-November/009011.html
2019-11-18 21:52:27 +01:00
Even Rouault 0d7e238dea createOperations(): fix so that GDA94 -> WGS 84 (G1762) still include a result through ITRF2008. Was broken in master by the addition of the 'WGS84 -> WGS 84 (Gxxx)' null operations in the PROJ authority 2019-11-18 21:11:27 +01:00
Even Rouault 2b9b65d0ff proj_trans(): tune selection of operation when there are several alternatives, to select the operation with best accuracy 2019-11-18 21:04:59 +01:00
Even Rouault ee71b34128 createOperations(): small perf improvement. Do not attempt going through an intermediate CRS if we found direct transformation(s) but had to eliminate them due to other criteria 2019-11-18 19:47:05 +01:00
Even Rouault 70aae0fe42 createOperations(): geocentric to geocentric operation synthetization: distinguish null transform from ballpark transform 2019-11-18 19:43:24 +01:00
Even Rouault 7553b219dc Merge pull request #1733 from rouault/remove_preferred_hub
createOperations(): remove the concept of geodetic_datum_preferred_hub
2019-11-18 16:38:00 +01:00
Even Rouault a8c1588d43 createOperations(): remove the concept of geodetic_datum_preferred_hub
This was introduced in 63857c92b2. Due to
the fix done in the previous commit, we can mostly revert the above commit.
We just keep the added tests and the custom WGS 84<-->WGS 84 (Gxxxx) null
transformations.
2019-11-17 20:13:28 +01:00
Even Rouault 940bb74476 findsOpsInRegistryWithIntermediate(): tune it to be able to research operations that belong to different authorities. Should make the concept of geodetic_datum_preferred_hub introduced some time ago obsolete 2019-11-17 20:03:29 +01:00
Even Rouault 650fb0fd91 typo fix in comment [ci skip] 2019-11-17 19:51:36 +01:00
Even Rouault 6d896cd929 typo fix in comment [ci skip] 2019-11-16 20:05:11 +01:00
Even Rouault 88875c1b19 proj_create_crs_to_crs(): fix autoselection logic of operation to compute correctly the geographic coordinates of the input coord when the CRS is not Greenwich based 2019-11-16 11:53:17 +01:00
Even Rouault fab6ae78ea Merge pull request #1732 from rouault/better_export_proj_create_vertical_crs_ex_to_projjson
import/export PROJJSON: support a interpolation_crs key to geoid_model
2019-11-14 17:38:59 +01:00
Even Rouault 2305dec438 import/export PROJJSON: support a interpolation_crs key to geoid_model for faithful serialization of the geoid_geog_crs parameter of proj_create_vertical_crs_ex() 2019-11-14 14:41:05 +01:00
Even Rouault 541ace2342 projjson.schema.json: add a interpolation_crs key to geoid_model 2019-11-14 14:25:54 +01:00
Even Rouault 448af96a81 Merge pull request #1731 from rouault/fix_createoperations_with_geoidgrids_and_non_metre_vunits
createOperations(): fix transformation computation from/to a CRS with +geoidgrids and +vunits != m
2019-11-14 12:36:41 +01:00
Even Rouault 2cfd4d6293 createOperations(): fix transformation computation from/to a CRS with +geoidgrids and +vunits != m 2019-11-14 02:42:23 +01:00
Even Rouault c42801be9b Code reformat 2019-11-14 01:38:04 +01:00
Even Rouault e151e92371 Merge pull request #1729 from glostis/minor-typo
Minor typo fix in docs faq.rst
2019-11-12 17:38:09 +01:00
Guillaume Lostis 1474a54feb Minor typo fix in docs faq.rst 2019-11-12 17:32:00 +01:00
Even Rouault 899b7ef5c8 Merge pull request #1726 from rouault/proj_assign_context_fix
Fix proj_assign_context()/pj_set_ctx() with pipelines and alternative coord operations
2019-11-12 14:41:40 +01:00
Even Rouault 9a23a23ef2 Fix proj_assign_context()/pj_set_ctx() with pipelines and alternative coord operations
Fixes https://github.com/OSGeo/gdal/issues/1989

pj_set_ctx() only changes the context to the main object. It should also
recurse down to the steps of the pipeline and the alternative coordinate
operations hold in alternativeCoordinateOperations

In the GDAL use case with multithreaded reprojection, and objects being transferred
between thread, this would cause a failed coordinate transformation to affect
an unrelated transformation of another thread...
2019-11-12 13:33:47 +01:00
Even Rouault ca2ab9ed24 Merge pull request #1725 from rouault/update_to_epsg_9_8_4
Database: update to EPSG v9.8.4
2019-11-12 12:33:19 +01:00
Even Rouault 87a34cbf12 Database: update to EPSG v9.8.4 2019-11-12 00:15:09 +01:00
Kristian Evers ffd50ca71f Merge pull request #1722 from rouault/document_identify_oddity
Doc: document oddity related to identification of CRS from ESRI WKT
2019-11-11 18:16:38 +01:00
Even Rouault 6780dea0b5 Doc: document oddity related to identification of CRS from ESRI WKT
Or more generally formulations that don't have an explicit axis order.
Refs https://github.com/pyproj4/pyproj/issues/475

projinfo 'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]'
returns EPSG:4326 with 100% confidence.
But its axis order is not the same as EPSG:4326.

I've pondered about this, like decreasing the confidence of the match,
but this would have downstream effects on GDAL (shapefiles with the
above content in a .prj would no longer be identified as EPSG:4326).
So for now, document that oddity.
2019-11-09 13:22:48 +01:00
Even Rouault 25c4f55f85 Merge pull request #1721 from rouault/require_sqlite_3_11
Build: require SQLite 3.11 (refs #1718)
2019-11-09 11:34:42 +01:00
Mike Taves b462f1b4d7 README.md: update AppVeyor badge to specify branch [ci skip] 2019-11-08 15:19:26 +13:00
Even Rouault 589f210478 Doc: document build requirements 2019-11-07 19:22:19 +01:00
Even Rouault d2a2b3e4e9 Build: require SQLite 3.11 (refs #1718)
PROJ can build and run against older version (3.7 for example), but it has
been found that performance is horrible. With 3.11 (Ubuntu 16.04), it is
fine, so sets this as the minimum version.
2019-11-07 13:48:09 +01:00
Kristian Evers 8dafb4505c Merge pull request #1719 from OSGeo/install_update_docker_fedora
updated docker URLs and added Fedora entry
2019-11-07 13:41:28 +01:00
Markus Neteler 3e4a6ab10b updated docker URLs and added Fedora entry 2019-11-07 10:51:32 +01:00
Kristian Evers c7a1791d46 Doc: fix formatting in usage/transformation.rst 2019-11-05 08:22:43 +01:00
Even Rouault 34dc695402 Merge pull request #1710 from rouault/geoid_model
Add support for GEOIDMODEL
2019-11-04 22:35:57 +01:00
Even Rouault 1bee3d54b0 Merge pull request #1712 from rouault/doc_usage_transformation_fixes
Doc: fixes in usage/transformation.rst
2019-11-04 21:54:27 +01:00
Even Rouault 67e987ed84 proj_create_vertical_crs(): enhance doc 2019-11-04 16:20:13 +01:00
Even Rouault 71b7f9869f Doc: projjson: mention v0.2 2019-11-04 15:03:16 +01:00
Even Rouault c975c6d13f Merge remote-tracking branch 'origin/master' into geoid_model 2019-11-04 14:58:24 +01:00
Even Rouault 163a8d5953 Doc: fixes in usage/transformation.rst
- Section about cs2cs no longer applies to PROJ 6. Ammended to underline
  that.
- Remove no longer relevant/unclear caveats.
2019-11-04 13:21:59 +01:00
Even Rouault 90c1166e31 Merge pull request #1688 from apacker1/gie
Fix errors running gie-based tests in Debug mode on Windows
2019-11-03 18:18:29 +01:00
Even Rouault b56c19d71b Merge pull request #1711 from rouault/fix_gdal_1972
createOperations(): in some circumstances we wrongly promoted a Helmert geog2D transformation to a geog3D
2019-11-03 16:20:18 +01:00
Even Rouault 5e5997a610 createOperations(): in some circumstances we wrongly promoted a Helmert geog2D transformation to a geog3D
Fixes for example EPSG:4979 to EPSG:2189, as raised in
https://github.com/OSGeo/gdal/issues/1972#issuecomment-548814354
2019-11-03 15:33:55 +01:00
Even Rouault cff22050fa Import from WKT of VERT_CS: remove outdated EXTENSION.PROJ4_GRIDS for NAVD88 2019-11-03 11:38:39 +01:00
Even Rouault ff69c7e453 Import from WKT: add tweaks for Lidar WKT1 VERT_CS that embeds geoid model in CRS name 2019-11-03 11:38:39 +01:00
Even Rouault 0923704ba3 Database: add mapping between EPSG geoid and PROJ grid names for GEOID99, 03, 06, 09 and 18. Related to https://github.com/OSGeo/proj-datumgrid/pull/60 that add those grids in proj-datumgrid-north-america 2019-11-02 23:38:41 +01:00
Even Rouault 5ce02144c3 Merge pull request #1709 from rouault/improve_extent_filtering
Better filtering based on extent and performance improvements
2019-11-02 23:10:44 +01:00
Even Rouault 7492e65bfe Add a geoid_model name in database, use GEOIDMODEL for transformations, add a proj_create_vertical_crs_ex() 2019-11-02 22:28:54 +01:00
Even Rouault 31fd3de9c2 WKT and PROJJSON: add import/export of geoid model of VertCRS 2019-11-02 15:43:42 +01:00
Even Rouault 3b25b5011f Add schemas/v0.2/projjson.schema.json 2019-11-02 15:10:13 +01:00
Even Rouault d9064c3de6 Add tracing framework, and improve createOperations() performance 2019-11-02 14:54:20 +01:00
Kristian Evers c64d3fcb3a Merge remote-tracking branch 'osgeo/master' 2019-11-01 19:58:56 +01:00
Kristian Evers 1e960f99c7 Update website with 6.2.1 release 2019-11-01 19:58:26 +01:00
Even Rouault 8a31e8778b Merge pull request #1703 from rouault/improve_transformation_with_alternative_vertical_unit_and_direction
Improve transformations with alternative vertical unit and direction
2019-10-31 16:16:01 +01:00
Even Rouault bb3da7f1e4 Merge pull request #1701 from rouault/doc_projjson
Document PROJJSON
2019-10-31 13:37:48 +01:00
Even Rouault 00608cc1c8 createOperations(): try to recover extent of CRS from the database when they are missing, especially for compound CRS. Helps having shorter/more relevant results 2019-10-30 23:44:22 +01:00
Even Rouault 67657e7e74 Merge pull request #1702 from rouault/fix_1700
createFromWkt(): be tolerant to missing scale_factor parameter (fixes #1700)
2019-10-30 23:02:08 +01:00
Even Rouault 3655cfa7e9 createOperations() filtering: code changes regarding extent handling. No functional changes 2019-10-30 22:10:52 +01:00
Even Rouault 81e06f42c7 Add a test to check we can use a VerticalCRS from its name only without the EPSG code 2019-10-30 18:20:17 +01:00
Even Rouault 9095cf6fa3 createFromWkt(): be tolerant to missing scale_factor parameter (fixes #1700)
This is invalid WKT, but GDAL 2.4 used to accept it and make a reasonable
use of it...

Currently we default it to 0 which is non sensical. Better use 1 as GDAL 2.4
did, and emit a warning.

Other fix: proj_create_from_wkt() was documented to operate by default in
non-strict validation mode, but it was actually in strict mode. So do as
documented.
2019-10-30 17:49:39 +01:00
Even Rouault 1920c5cee7 Doc: add a redirects extension, and make a projjson.html redirect at the top to its current location 2019-10-30 17:41:10 +01:00
Even Rouault 6ce8ef3038 Document PROJJSON
More could probably be written, but at least this can serve as a
landing/reference page for other documents/specifications to point to.
2019-10-30 16:22:17 +01:00
Even Rouault 05a7bcfa56 Rework importing of Vertical unit change from EPSG db, add support for Height Depth Reversal and use it in createOperations() 2019-10-30 11:28:43 +01:00
Even Rouault fc769bbd9a news.rst: fix hyperlink 2019-10-29 23:34:59 +01:00
Even Rouault ffc865a41a Vertical transformations: improve situations similar to transforming from 'NAVD88 (ftUS)' to X, where we now consider the available transformations from 'NAVD88' to X that might exist in the database 2019-10-29 22:20:24 +01:00
Even Rouault 35135a0728 Merge pull request #1698 from rouault/wip
createOperations(): split gigantic method into many smaller ones. No functional change expected
2019-10-29 17:12:36 +01:00
Even Rouault eed030d96b createOperations(): split gigantic method into many smaller ones. No functional change expected 2019-10-29 16:07:03 +01:00
Even Rouault 805b187edd Little tweaks in implicit 2D/3D geog conversions in compoundCRS to geogCRS transformations 2019-10-29 11:48:17 +01:00
Even Rouault 2366a528aa createOperations(): avoid infinite recursion in a super weird case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18587 2019-10-28 15:12:20 +01:00
Even Rouault 9526fb84a7 Reformat 2019-10-28 15:04:51 +01:00
Even Rouault d9b9afe2b9 Merge pull request #1697 from rouault/cppcheck_fixes
Fixes/workaround to be able to use cppcheck from Ubuntu 16.04 (fixes #1648)
2019-10-28 10:41:39 +01:00
Even Rouault 7026fa2241 travis/linux_gcc/before_install.sh: use cppcheck from distribution 2019-10-28 09:03:59 +01:00
Even Rouault 4330f9fa43 Various fixes/workarounds to make cppcheck 1.72 (Ubuntu 16.04) and HEAD/1.90dev happy (fixes #1648) 2019-10-28 09:03:10 +01:00
Even Rouault e2d5b13f34 Merge pull request #1696 from rouault/modify_concatenated_operation_structure
Database: add an auxiliary concatenated_operation_step table to allow arbitrary number of steps (fixes #1632)
2019-10-27 20:59:29 +01:00
Even Rouault 46c6ddf84d Database: add an auxiliary concatenated_operation_step table to allow arbitrary number of steps (fixes #1632)
EPSG:9103 (NAD27 to ITRF2014 (1)) is now handled.

Note:EPSG:9104 (NAD27 to ITRF2014 (2)) is not currently, since it uses
for step EPSG:8861 (NAD83(HARN) to NAD83(FBN) (1))
an unsupported transformation method (NADCON5 (3D), EPSG:1075).
2019-10-27 19:16:04 +01:00
Kristian Evers e7dff6e3a9 Merge pull request #1681 from kbevers/CoC
Add code of conduct
2019-10-26 15:36:07 +02:00
Kristian Evers c7610f8364 Add code of conduct 2019-10-25 17:03:34 +02:00
Even Rouault 07c463ebf7 Merge pull request #1691 from rouault/fix_1690_krovak_axis_order_esri
importFromWkt(): fix axis orientation for non-standard ESRI WKT (fixes #1690)
2019-10-25 14:36:28 +02:00
Even Rouault a7ba806908 importFromWkt(): fix axis orientation for non-standard ESRI WKT (fixes #1690) 2019-10-25 11:04:16 +02:00
Even Rouault e14651b831 Fix indentation 2019-10-25 10:54:36 +02:00
Even Rouault 63c6bf169a Merge pull request #1689 from rouault/generalize_proj_crs_create_bound_vertical_crs_to_WGS84
Generalize generalize_proj_crs_create_bound_vertical_crs_to_WGS84()
2019-10-25 10:30:17 +02:00
Even Rouault b8f00d8433 Generalize generalize_proj_crs_create_bound_vertical_crs_to_WGS84()
In recent commits, we added a generalize_proj_crs_create_bound_vertical_crs_to_WGS84()
function, but there are situations where more accurate results can be obtained, if
instead of specifying WGS84 as the hub CRS, the user can specify the exact hub CRS.
For example the GEOID2018 grid is against NAD83(2011).
So replace this function with proj_crs_create_bound_vertical_crs()
2019-10-24 18:54:18 +02:00
Even Rouault 8d4a054601 Merge pull request #1686 from ffontaine/master
proj.pc.in: add SQLITE3_LIBS to Libs.Private
2019-10-23 21:50:50 +02:00
Asa Packer 0016d47f22 Fix errors running gie-based tests in Debug mode on Windows 2019-10-23 12:33:40 -07:00
Even Rouault b82dbf2726 Fix test tolerance to run on powerpc architecture 2019-10-22 14:10:39 +02:00
Fabrice Fontaine 0181fd5fa0 proj.pc.in: add SQLITE3_LIBS to Libs.Private
Add @SQLITE3_LIBS@ to Libs.Private so applications linking statically
with proj (such as libgeotiff) will know that they have to link with
-lsqlite3

Fixes:
 - http://autobuild.buildroot.org/results/737db533c16f285a02118ab048e8427d3e35803d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-10-20 11:17:13 +02:00
Even Rouault caa512b5b1 createFromPROJString(): do not loop forever on malformed string. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17923. master only 2019-10-19 22:59:55 +02:00
Even Rouault 20b8604f3f Merge pull request #1683 from rouault/fix_double_vertical_unit_conversion
createOperations(): fix double vertical unit conversion from CompoundCRS to other CRS when the horizontal part of the projected CRS uses non-metre unit
2019-10-18 23:25:47 +02:00
yonarw 00666ee835 Fix segfaults in case of out-of-memory situations (fixes #1678) (#1679) 2019-10-18 22:34:29 +02:00
Even Rouault 0af6db3af5 createOperations(): fix double vertical unit conversion from CompoundCRS to other CRS when the horizontal part of the projected CRS uses non-metre unit
Fix issue reported on https://lists.osgeo.org/pipermail/proj/2019-October/008939.html
2019-10-18 21:55:22 +02:00
Even Rouault f9ba18a4d0 Merge pull request #1682 from Geomatys/master
Fix two sentences that seem to be copy-and-paste forgotten.
2019-10-18 00:43:54 +02:00
Martin Desruisseaux 4356d7884a Fix two sentences that seem to be copy-and-paste forgotten. 2019-10-18 00:26:32 +02:00
Kristian Evers 45a4ab60d9 Use dedicated logo for website (#1675)
Use dedicated logo for website
2019-10-16 15:04:32 +02:00
Kristian Evers 2f8384b771 Use dedicated logo for website
Fixes #1670
2019-10-16 14:02:33 +02:00
Even Rouault 5fbcf98c9a Merge pull request #1673 from rouault/update_epsg_9_8_3
Database: update to EPSG v9.8.3
2019-10-16 12:27:12 +02:00
Kristian Evers e2abe08de3 Merge pull request #1674 from kbevers/improve-doxygen-script
doxygen build script: don't output to /tmp
2019-10-16 06:29:19 +02:00
Even Rouault 885f0b59ea grid_alternatives.sql: link EPSG grid names to PROJ ones for the the 2 'RGSPM06 to Danger 1950 height' grids 2019-10-15 22:29:21 +02:00
Kristian Evers a43ae6ed27 doxygen build script: don't output to /tmp
The doxygen log-files was previously put in /tmp. This is usually fine
on UNIX-type systems but when building the docs on Windows with Cygwin/MSYS2
tools the script can fail since that path is guaranteed to exist. This
commit makes sure that the doxygen script outputs its files in a path
relative to the current working directory.
2019-10-15 21:54:47 +02:00
Even Rouault 0c487cda1e Database: update to EPSG v9.8.3
Note: a hack has been added into customizations.sql to cancel deprecatation
of USA geoid2012 grids by geoid2018 grids, as the later are not yet available
in proj-datumgrid-northamerica (https://github.com/OSGeo/proj-datumgrid/issues/55)
2019-10-15 21:05:36 +02:00
Even Rouault d4245b06db formatting change 2019-10-15 21:03:47 +02:00
Even Rouault 225435e908 include/proj/util.hpp: avoid warnings with older gcc 2019-10-15 09:28:59 +02:00
Even Rouault 368b96f05d Merge pull request #1669 from Geomatys/master
Remove sentence saying that coordinate system might by null
2019-10-13 16:08:53 +02:00
Martin Desruisseaux 1e065fb165 Remove the sentence in documentation saying that CRS::coordinateSystem() may return null.
It is true for datum(), but does not apply to coordinateSystem().
2019-10-13 16:00:46 +02:00
Even Rouault 3804eac112 Merge pull request #1653 from rouault/doc_ob_tran
ob_tran doc: fix/clarify semantics of o_lat_p/o_lon_p
2019-10-13 12:58:53 +02:00
Kristian Evers 2d25faba62 Merge pull request #1664 from ffontaine/master
proj.pc.in: add Libs.Private
2019-10-12 09:05:33 +02:00
Kristian Evers 3cae496c25 Merge pull request #1665 from rouault/fix_custom_compound_crs_with_NAD83_2011_and_geoidgrid_to_WGS84_G1762
proj_create_crs_to_crs(): remove elimination of Ballpark operations that caused transformation failures in some cases
2019-10-12 09:01:36 +02:00
Even Rouault 25e1f6ee78 createOperations(): allow transforming from a compoundCRS of a bound verticalCRS to a 2D CRS 2019-10-12 00:15:16 +02:00
Even Rouault c5fa51fb63 proj_create_crs_to_crs(): remove elimination of Ballpark operations that caused transformation failures in some cases 2019-10-12 00:04:23 +02:00
Fabrice Fontaine bdee73f3e0 proj.pc.in: add Libs.Private
Add -lstdc++ to Libs.Private to allow packages such as libgeotiff to
retrieve this dependency when linking statically with proj

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-10-09 18:49:09 +02:00
Kristian Evers a6dccb3b8f Add logo to website (#1659)
Add logo to website
2019-10-07 13:45:35 +02:00
Kristian Evers c4a6e07a3c Add logo to website 2019-10-07 13:44:13 +02:00
Kristian Evers 46263cfa55 Add PROJ log
Courtesy of Sylvain Beorchia. The logo is put under the CC-0 license.
2019-10-07 13:42:49 +02:00
Kristian Evers 91d4105199 Doc: Update conda install procedure
The PROJ Conda package is now simply called "proj". Also mention that the grid packages can be installed with Conda.
2019-10-04 13:50:44 +02:00
Even Rouault 2bac8760df Merge pull request #1656 from rouault/demote_to_2D
Add a proj_crs_demote_to_2D(). Useful if forced to export a 3D CRS to a best approximate as WKT1 that doesn't support it
2019-10-04 11:45:43 +02:00
Even Rouault 7bfef6a9c9 Merge pull request #1655 from rouault/aeqd_obliq_sphere
aeqd: for spherical forward path, go to higher precision ellipsoidal case when the point coordinates are super close to the origin (fixes #1654)
2019-10-04 11:45:32 +02:00
Even Rouault ae779eaa82 Add a proj_crs_demote_to_2D(). Useful if forced to export a 3D CRS to a best approximate as WKT1 that doesn't support it 2019-10-04 01:13:43 +02:00
Even Rouault 109f75c74e proj_normalize_for_visualization(): make it work with CRS objects 2019-10-04 00:22:40 +02:00
Even Rouault 9b561406e1 aeqd: for spherical forward path, go to higher precision ellipsoidal case when the point coordinates are super close to the origin (fixes #1654) 2019-10-03 20:49:26 +02:00
Even Rouault c45855b38f DerivedGeographicCRS: allow exporting +proj=ob_tran +o_proj=longlat to PROJ string 2019-10-03 15:10:57 +02:00
Even Rouault 5620ad90e4 ob_tran.cpp: add comment to link maths with Snyder's formulas 2019-10-03 14:05:44 +02:00
Even Rouault 5cd917f6c6 ob_tran doc: fix/clarify semantics of o_lat_p/o_lon_p
This is a super confusing topic, but from experiments, and in particular with
the example of Fairgrieve projection, o_lat_p and o_lon_p are the coordinates
of the North pole of the unrotated geographic CRS expressed in the rotated
geographic CRS.
This is different from defining a 'new pole', which would be the coordinates
of the rotated North pole expressed in the unrotated CRS.
2019-10-03 13:58:19 +02:00
Even Rouault 1a0bb3c0f1 Merge pull request #1651 from jakob/patch-1
Only call pkg-config in configure when necessary
2019-10-03 11:33:09 +02:00
Jakob Egger f47eb7a018 Only call pkg-config in configure when necessary
Only call pkg-config in the configure script when the variables $SQLITE3_CFLAGS and $SQLITE3_LIBS are not set.

This allows building PROJ when pkg-config is not available.
2019-10-03 09:28:57 +02:00
Even Rouault dca893f02a Merge pull request #1650 from rouault/map_nsper_to_vertical_perspective
Add API and WKT mapping for 'nsper' to EPSG Vertical Perspective method
2019-10-02 22:19:41 +02:00
Even Rouault f32255aa11 Add API and WKT mapping for 'nsper' to EPSG Vertical Persepective method
Relates to https://github.com/OSGeo/gdal/issues/1856
2019-10-02 20:34:08 +02:00
Even Rouault a167035343 nsper: add a comment to relate it to EPSG Vertical Perspective 2019-10-02 18:36:14 +02:00
Even Rouault 8040ef90f1 Reformat file 2019-10-02 16:14:37 +02:00
Charles Karney b563f1515c Merge pull request #1649 from cffk/geod-1.50-fix
Fix some Cppcheck complaints in geodesic routines
2019-10-01 23:15:42 -04:00
Charles Karney cdd2a72f64 Fix some Cppcheck complaints in geodesic routines 2019-10-01 18:17:03 -04:00
Simon Schneegans 50a182148d Add rotation support to the HEALPix projection (#1638) 2019-10-01 14:05:59 +02:00
Even Rouault 8909e85e67 Merge pull request #1642 from rouault/improve_compound_to_geog
Improve vertical transformation support
2019-09-30 12:02:15 +02:00
Even Rouault 12aeb6fd21 Merge pull request #1645 from rouault/improve_proj_string_parsing
PROJ string CRS ingester: recognize more unit-less parameters, and general handling of +key=string_value parameters
2019-09-30 12:02:01 +02:00
Even Rouault 7f27b8d38c AuthorityFactory::getDescriptionText(): return CRS object in priority 2019-09-30 12:00:47 +02:00
Even Rouault 2132d4bbd0 PROJ string CRS ingester: recognize more unit-less parameters, and general handling of +key=string_value parameters 2019-09-28 12:48:17 +02:00
Even Rouault 34403c875e test/gie/builtins.gie: remove unused parameters 2019-09-28 11:28:23 +02:00
Even Rouault 862f04e7d9 Improve vertical transformation support
When we had a transformation between a compoundCRS and a target geographicCRS,
we did not take into account that in the vertical->other_geog_CRS transformation
we used, the other_geog_CRS was an implicit interpolation CRS. Thus before
doing vertical adjustment, we must go to this interpolation CRS.
The workflow is thus:
source CRS -> interpolation CRS + vertical adjustment + interplation CRS -> target CRS
2019-09-26 14:18:21 +02:00
Even Rouault c1efe4ae32 Merge pull request #1641 from rouault/fix_proj_create_crs_to_crs_if_only_ballpark_transf
proj_create_crs_to_crs(): fix when there are only transformations with ballpark steps
2019-09-26 13:19:22 +02:00
Even Rouault 24405e6007 proj_create_crs_to_crs(): fix when there are only transformations with ballpark steps
Currently we would discard all operations, resulting in a PJ object with
zero candidates. Better use those operations if nothing better is available.

Was seen on transforming from ETRS89 / UTM zone 31N + EGM96 height to WGS 84 (G1762).
The horizontal transformation from ETRS89 to WGS 84 (G1762) is a ballpark one.
2019-09-26 12:23:56 +02:00
Kristian Evers 6da6b21d6d Merge pull request #1640 from rouault/detect_CS_use
travis/install.sh: add a way of detecting problematic use of CS identifier for Solaris compat
2019-09-26 07:18:16 +02:00
Even Rouault bf2c2b26c6 travis/install.sh: add a way of detecting problematic use of CS identifier for Solaris compat 2019-09-25 20:44:13 +02:00
Even Rouault 6ed53b7a8c Merge pull request #1637 from rouault/fix_solaris_build
io.cpp: fix build on Solaris
2019-09-25 20:38:26 +02:00
Even Rouault 03e5d0b6fa isea: avoid shadowing warning on 'quad' on Solaris
Patch proj-6.2.0-isea.gpatch by Eric Dechaux
2019-09-25 15:56:17 +02:00
Even Rouault d0941d05cb hatano/mbtfpp: do not use CS to fix Solaris build issue
Patches proj-6.2.0-hanato.gpatch and proj-6.2.0-mbtfpp.gpatch from Eric Dechaux
2019-09-25 15:55:33 +02:00
Mike Taves b21f2b98b4 Merge pull request #1634 from mwtoews/ci
Upgrade Travis CI distribution
2019-09-25 21:34:45 +12:00
Mike Taves 4013aeaaf7 Upgrade testing from trusty to xenial, and also:
* From openjdk-7 via apt to openjdk-11 via Travis CI xenial's $JAVA_HOME
* From mingw 4.8 -> 5.3, as supported by xenial
* clang+llvm for csa kept at version 6.0.0, but for ubuntu-16.04
* Furthermore xenial implicitly has many upgrades, specifically:
  - gcc 4.8.4 -> 5.4.0
  - clang 4.0.0 -> 5.0.0
  - cmake 3.9.2 -> 3.12.4
  - python 3.4.3 -> 3.5.2
* cppcheck version kept at 1.61 (for trusty) due to many
  false positives with version 1.72 (for xenial)
* Community code contribution documentation simplified to remove
  version of cppcheck, as this may outdated with updates to scripts
2019-09-25 20:50:07 +12:00
Mike Taves 14828d9695 Rearrange Travis CI scripts to be more modular
* Split global before_install for apt and pip
* Use -qq option for apt-get, which implies -y
* Use list of targets with apt-get rather than one-per-line
* Use local variables for mingw32/install.sh
* Show version info for cppcheck, pip and python
* Simplify clang+llvm-6 path
2019-09-25 11:16:27 +12:00
Even Rouault ecea0e3c59 io.cpp: fix build on Solaris
Rename CS template argument, to avoid conflict with macro in Solaris system headers.

Similar to 2f8bd93486
2019-09-24 15:35:01 +02:00
Kristian Evers da2163996e Database: update to EPSG 9.8.2 (#1633)
Database: update to EPSG 9.8.2
2019-09-24 09:27:49 +02:00
Even Rouault 0f4f7870d8 createOperations() sorting: sort operations that cannot be exported as PROJ pipelines at end 2019-09-24 00:41:28 +02:00
Even Rouault 841673c8a3 Database: update to EPSG 9.8.2
With limitation of https://github.com/OSGeo/PROJ/issues/1632 regarding
concatenated operations with more than 3 steps.
2019-09-23 15:03:56 +02:00
Even Rouault a71fce63c2 Merge pull request #1631 from rouault/fix_1623
Document the autopromotion to 3D when mix of 2D/3D CRS in createOperations(), and test it (fixes #1623)
2019-09-23 14:27:50 +02:00
Even Rouault da802e250b Document the autopromotion to 3D when mix of 2D/3D CRS in createOperations(), and test it (fixes #1623) 2019-09-23 13:26:02 +02:00
Kristian Evers 91d3d51a5a Merge pull request #1630 from snowman2/promote
promote proj_assign_context to proj.h from proj_experimental.h
2019-09-23 09:29:25 +02:00
snowman2 e414ddcc8f promote proj_assign_context to proj.h from proj_experimental.h 2019-09-22 19:53:48 -05:00
Charles Karney fcfde94401 Merge pull request #1629 from cffk/geod-1.50
Update to version 1.50 of the geodesic library.
2019-09-22 17:42:48 -04:00
Charles Karney a2efc211eb Update to version 1.50 of the geodesic library.
* Allow arbitrarily complex polygons in geod_polygon_*.  In the case
  of self-intersecting polygons the area is accumulated
  "algebraically", e.g., the areas of the 2 loops in a figure-8
  polygon will partially cancel.
* Simplify code by using C99 functions remainder and remquo.
* More test coverage.

Fixes to associated files:

* src/pipeline.cpp invoke geod_init with f = es / (1 + sqrt(1 - es))
  instead of (the less accurate) f = 1 - sqrt(1 - es)
* src/apps/geod_set.cpp remove "#undef f" (a dangling relic?).
2019-09-22 16:46:34 -04:00
Charles Karney d1bf223813 Merge pull request #1626 from cffk/vs-version-check
Improve Visual Studio compatibility check in CMake.
2019-09-22 12:03:19 -04:00
Charles Karney c753607ea4 Merge branch 'master' into vs-version-check
Incorportate fix to travis/linux_gcc/before_install.sh
2019-09-22 08:02:27 -04:00
Even Rouault 1cef32f18e Merge pull request #1627 from rouault/fix_linux_gcc_config_wrt_sphinxontrib_bibtex
Travis linux_gcc: force sphinxcontrib-bibtex version to avoid issue with installing sphinx >= 2.0
2019-09-22 14:00:25 +02:00
Even Rouault 6b5a1b676e Travis linux_gcc: force sphinxcontrib-bibtex version to avoid issue with installing sphinx >= 2.0 2019-09-22 13:29:58 +02:00
Charles Karney 0ea4259000 Revert travis change -- it didn't work. 2019-09-22 06:31:47 -04:00
Charles Karney 7cd48dcd28 Manually install sphinxcontrib-bibtex for travis/linux_gcc to resolve travis error 2019-09-21 17:19:17 -04:00
Charles Karney 39d25a7650 Back out of previous commit mistakenly pushed to master 2019-09-21 17:17:59 -04:00
Charles Karney afee1b7a50 Manually install sphinxcontrib-bibtex for travis/linux_gcc to resolve travis error 2019-09-21 17:16:21 -04:00
Charles Karney ddadb683bd Improve Visual Studio compatibility check in CMake.
Make the setting of major toolset version variables parallel that for
cross-compilation.  Add comments so it's easier for the next person
looking at this code to figure what's going on.  Note: no need to unset
variables at the end of the version check file (the file is read in a
nested scope).
2019-09-21 08:43:57 -04:00
Kristian Evers cd505feb34 Merge pull request #1625 from hobu/cmake-proj_lib-tests
set PROJ_LIB on test targets for CMake
2019-09-20 08:43:40 +02:00
Charles Karney af2da10565 Merge pull request #1624 from cffk/c99-upgrade
Require C99 compiler see #1621
2019-09-19 19:55:33 -04:00
Howard Butler 29ddc39d24 address PR comments 2019-09-19 15:00:46 -05:00
Howard Butler 6be540696c set PROJ_LIB on test targets for CMake 2019-09-19 13:32:38 -05:00
Charles Karney 1c2f375033 Require C99 compiler see #1621
cmake and autoconf now stipulate C99
change c89 to c99 in travis jobs
remove HAVE_C99_MATH checks

(unrelated) relax Visual Studio compatibility check in
cmake/project-config-version.cmake.in (VS 2019 can use a VS 2015 library
but not vice versa).
2019-09-19 09:25:09 -04:00
Charles Karney 8948068dea Merge pull request #1618 from cffk/c99-math-update
Remove unneeded C99 compatibility functions from math.cpp and proj_math.h
I'll do the clean up of the -std=c89 flags etc. as a separate pull request.
2019-09-19 08:30:21 -04:00
Charles Karney 21c6d9cccd Manually delete pj_isnan in scripts/reference_exported_symbols.txt.
Evidently the order of entries matters and the order might depend the
platform used to create libproj.so
2019-09-18 16:46:03 -04:00
Charles Karney aa215ceeaa Delete proj_math.h. Replace includes by <math.h>; we'll see if anyone
needs <limits.h>.  Update scripts/reference_exported_symbols.txt and
src/proj_symbol_rename.h.
2019-09-18 16:29:35 -04:00
Charles Karney 646da7bf38 math.cpp removed since its isnan isn't used. Keep proj_math.h (which
just includes math.h and limits.h) since it's included in a score of
places.
2019-09-18 14:25:15 -04:00
Charles Karney 329e7a9be6 Get rid of dead code. The end result of this chain of commits is to
eliminate most of math.cpp.  All that is left is the handling of
isnan (and I've this because math.cpp notes that gie.c uses pj_isnan).
geodesic.c now handles supplying C99 math functions internally and this
can go away once C99 support is mandated.
2019-09-18 13:27:06 -04:00
Even Rouault 72203ca68e Merge pull request #1620 from rouault/ossfuzz_17190_and_others
Assorted set of fixes for boring oss-fuzz related errors (mostly divisions by zero in odd situations)
2019-09-18 16:57:19 +02:00
Charles Karney 9f41f427d0 Let geodesic.c use its own versions of C99 math functions if necessary. 2019-09-18 07:16:30 -04:00
Charles Karney 93d0f53db7 Try removing C99 math functions from math.cpp (but leave isnan). 2019-09-18 07:08:55 -04:00
Even Rouault bc53524cfb ell_set.cpp: avoid division by zero in R_lat_a case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16130 2019-09-17 21:48:46 +02:00
Even Rouault 8e76c61082 helmert: validate scale parameter to avoid later division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16106 2019-09-17 21:41:15 +02:00
Even Rouault 216cf0c26c aea_e_inverse(): avoid calling asin() with invalid argument which results in NaN being propagated. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15336 2019-09-17 21:34:46 +02:00
Even Rouault a49d5a5dad pj_Convert_Geocentric_To_Geodetic(): avoid division by zero on weird input coordinates and ellipsoid values. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15148& 2019-09-17 21:10:56 +02:00
Even Rouault 15a85172b7 isea: avoid undefined behaviour on left shift of negative value. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15009 2019-09-17 21:08:41 +02:00
Even Rouault 3a68912a6b pj_Convert_Geocentric_To_Geodetic(): avoid division by zero on weird input coordinates and ellipsoid values. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14766 2019-09-17 21:01:04 +02:00
Even Rouault 78a8f6547b standard_fuzzer.cpp: tweak to be able to compile it against libproj.so 2019-09-17 21:00:24 +02:00
Even Rouault 81cb851116 geos: avoid division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14666 2019-09-17 20:45:06 +02:00
Even Rouault 91d23e65ac eqdc: avoid potential division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17190 2019-09-17 19:53:13 +02:00
Charles Karney c080801637 Fix floating-point number into integer warning in math.cpp 2019-09-17 11:50:45 -04:00
Charles Karney b154e42c91 Fix typo in geodesic.c 2019-09-17 11:19:23 -04:00
Charles Karney 5fe21c3e2b Add atanh, copysign, cbrt, remainder, remquo to math.cpp.
The supported C99 math functions provided by math.cpp are thus

   hypot
   log1p
   asinh
   atanh
   copysign
   cbrt
   remainder
   remquo
   round
   lround

Make compiler checks in CMakeLists.txt and configure.ac consistent with
this set.

Make geodesic.c use the math.cpp defined (instead of the internally
defined) versions of

   hypot
   atanh
   copysign
   cbrt

This is keyed off the presence of the PROJ_LIB macro.  I had at one
time

    https://github.com/OSGeo/PROJ/pull/1425

suggested supplying an additional macro PROJ_COMPILATION when compiling
geodesic.c.  However, PROJ_LIB seems to fill the bill OK.

The *next* version of geodesic.c (due out in a few weeks) will also use

   remainder
   remquo

All of this is only of concern for C compilers without C99 support.  So
this may become an historical footnote at some point.
2019-09-17 10:29:53 -04:00
Kristian Evers d2f661fc99 Update link to Austrian grid files. Fixes #1546 2019-09-17 11:19:51 +02:00
Kristian Evers 8a92356e97 Merge pull request #1582 from rschmunk/patch-1
Debug Bertin1953
2019-09-16 17:00:19 +02:00
Kristian Evers 03276de30c Update doc image for bertin1953 2019-09-16 10:13:55 +02:00
Kristian Evers 3c0a5f0c14 Merge pull request #1614 from rouault/fixes_related_to_1597
Fixes related to #1597
2019-09-15 16:28:36 +02:00
Even Rouault 16ce294aa5 testdatumfile: fix axis order issue in test 2019-09-15 14:03:15 +02:00
Even Rouault dcc0acb221 Merge pull request #1611 from rouault/fix1563
cs2cs: autopromote CRS to 3D when there's a mix of 2D and 3D (fixes #1563)
2019-09-15 13:43:35 +02:00
Even Rouault 6832bab5bf Doc: add a section to document backward incompatibilies regarding the support of +init=epsg:XXXX syntax (relates to #1597) 2019-09-15 13:39:37 +02:00
Even Rouault 3d082689d4 DatabaseContext::lookForGridInfo(): avoid setting PROJ context errno. Fixes issue with test/gigs/5208.gie with previous commit when ntf_r93.gsb grid is not available 2019-09-15 13:20:43 +02:00
Even Rouault a377a0e1ac createFromPROJString(): ignore +no_defs when instanciating a '+init=epsg:xxxx +no_defs' string (related to #1597) 2019-09-15 13:20:43 +02:00
Even Rouault 0673f88a96 Ingestion of +proj=somerc +type=crs: avoid adding twice alpha, gamma, lon_0 (related to #1597) 2019-09-15 13:20:43 +02:00
Kristian Evers 6dcbdb941c Merge pull request #1608 from rouault/improve_transforms_fromto_wgs84_gXXXX_realizations
Improvements in transformations from/to WGS 84 (Gxxxx) realizations and vertical <--> geog transormations
2019-09-15 13:08:13 +02:00
Even Rouault e6442e8282 Merge pull request #1610 from rouault/fix1601
Fix support for +proj=ob_tran +o_proj=lonlat/latlong/latlon (only +o_proj=longlat worked) (fixes #1601)
2019-09-13 11:47:21 +02:00
Even Rouault 6da584d413 cs2cs: autopromote CRS to 3D when there's a mix of 2D and 3D (fixes #1563) 2019-09-13 02:58:35 +02:00
Even Rouault e1fabf92fc Fix support for +proj=ob_tran +o_proj=lonlat/latlong/latlon (only +o_proj=longlat worked) (fixes #1601) 2019-09-13 02:28:24 +02:00
Even Rouault a731681f0e Merge pull request #1603 from dg0yt/migration
Improve migration code examples
2019-09-13 00:25:15 +02:00
Even Rouault e6eae43cf2 createOperations(): when tranforming from a compoundCRS whose vertical component is a BoundCRS, do not apply the horizontal transformation twice 2019-09-12 22:57:25 +02:00
Even Rouault eed28e5183 createOperations(): use more candidates when transforming between a geographic and vertical CRS
For example when transforming from NAD83+NAVD88 height to WGS84, there
is no transformation between NAVD88 height to WGS84. In that case,
use all potential transformations from NAVD88 height to another geographic CRS
for the vertical part.
2019-09-12 22:57:25 +02:00
Kai Pastor 888b253356 Improve migration code examples 2019-09-12 21:15:53 +02:00
Even Rouault 63857c92b2 Coordinate transformation: improve transformations from/to WGS84 (Gxxxx)
Currently very few transformations from/to WGS84 (Gxxxx) are registered
in the EPSG database, and there isn't even transformations between WGS84 EPSG:4326
and those ones. Consequently transformations to those realizations often
ended up as no-operation, whereas going through WGS84 EPSG:4326 will bring
more meaningful results. So register those EPSG:4326<-->WGS 84 (Gxxx)
null transformations, and when having WGS 84 (Gxxx) as source/target,
consider EPSG:4326 as an intermediate.
This change has no effect on the existing direct transformations
from/to WGS 84 (Gxxx).
2019-09-12 15:59:23 +02:00
Even Rouault 890c94a730 createOperations(): make sure sorting function is transitive (a < b and b < c --> a < c), to get consistent results 2019-09-12 15:59:23 +02:00
Even Rouault ad0c57436c C API: add proj_crs_create_bound_vertical_crs_to_WGS84() 2019-09-12 15:59:23 +02:00
Even Rouault 1d1c7443fd Merge pull request #1605 from rouault/followup_promote_to_3D_with_CT_vertcrs_to_2D_geog
createOperations(): make it work when transforming between CompoundCRS and Geog3D when the DB has only VertCS to Geog2D
2019-09-12 15:58:48 +02:00
Even Rouault 2dd68f9926 createOperations(): make it work when transforming between CompoundCRS and Geog3D when the DB has only VertCS to Geog2D
This is needed to fix cases that would not work if using the promoteTo3D()/--3d
functionnality just added per a6e1d72890
In some cases, the EPSG database only contains a Geographic 2D CRS (like NAD83),
without a 3D version. Consequently vertical transformations between that
Geographic CRS and a Vertical CRS are only available with a 2D CRS code
(kind of a bug in modelization by the way...). So when promoting the
Geographic 2D CRS to a 3D one, we suddenly cannot find the available
transformations any more. So in such situation, try to fallback to the
2D CRS to restore the capability to find the available transformations.
2019-09-12 15:57:54 +02:00
Even Rouault 9350d9ee2e Merge pull request #1604 from rouault/fix_proj_trans_generic_unknown_time
proj_trans_generic(): properly set coordinate time to HUGE_VAL when no value is passed to the function
2019-09-12 15:53:22 +02:00
Even Rouault 1e0f573f4b Merge pull request #1602 from rouault/fix_fallback_to_proj4_with_towgs84
createOperations(): fix conversion from/to PROJ.4 CRS strings with non-ISO-cosher options and towgs84/nadgrids
2019-09-12 15:53:00 +02:00
Even Rouault ed679900c6 proj_trans_generic(): properly set coordinate time to HUGE_VAL when no value is passed to the function 2019-09-12 12:30:26 +02:00
Even Rouault e22dbb571e createOperations(): fix conversion from/to PROJ.4 CRS strings with non-ISO-cosher options and towgs84/nadgrids
This actually fixes a regression introduced in PROJ 6.2.0
per 78302efb70
that made a conversion like EPSG:4326 to "+proj=something +towgs84/+nadgrids +over +type=crs"
apply the towgs84/nadgrids operation twice.
2019-09-11 19:25:35 +02:00
Even Rouault bd39128c3e Merge pull request #1596 from rouault/promote_to_3d
API: add CRS::promoteTo3D(), proj_crs_promote_to_3D() and proj_crs_create_projected_3D_crs_from_2D() (fixes #1587)
2019-09-11 10:46:38 +02:00
Even Rouault a6e1d72890 API: add CRS::promoteTo3D(), proj_crs_promote_to_3D() and proj_crs_create_projected_3D_crs_from_2D() (fixes #1587)
Also add a --3d switch to projinfo
2019-09-11 10:46:12 +02:00
Kristian Evers 13c715af55 Merge pull request #1598 from dg0yt/migration
Make migration code examples compile
2019-09-11 09:55:06 +02:00
Kai Pastor 235f778333 Make migration code examples compile 2019-09-11 08:57:34 +02:00
Kristian Evers 3f555257af Fix gie test after applying fix to bertin1953 2019-09-10 09:23:03 +02:00
Even Rouault a1518badde Add copyright and license header 2019-09-09 23:11:38 +02:00
Even Rouault bc91ace975 Add copyrigth & license header to include/proj/internal/include_nlohmann_json.hpp and include/proj/internal/esri_projection_mappings.hpp 2019-09-09 20:53:11 +02:00
Kristian Evers 051a983319 Merge pull request #1585 from rouault/replace_2018_by_2019
Use in API and utilities WKT2_2019 instead of WKT2_2018 (fixes #1578)
2019-09-08 16:22:15 +02:00
Even Rouault 024f637312 Use in API and utilities WKT2_2019 instead of WKT2_2018 (fixes #1518)
- C API: PJ_GUESSED_WKT2_2019 is added, PJ_GUESSED_WKT2_2018 aliased to it
- C API: PJ_WKT2_2019[_SIMPLIFIED] is added, PJ_WKT2_2018[_SIMPLIFIED] alias to it
- C++ API: similarly for WKTFormatter::Convention::WKT2_2019[_SIMPLIFIED]
Those above changes should be fully backward API and ABI compatible.

projinfo changes:
- accept WKT2_2019 as value for -o switch. WKT2_2018 is still accepted (undocumented)
- output now uses 'WKT2_2019 string:', so might break scripts that would rely on that.

Other internal code references to WKT2_2018 changes to WKT2_2019, included
in tests.
2019-09-08 11:11:03 +02:00
Even Rouault 73ccf7e1ba Merge pull request #1589 from rouault/fix_1574
PROJStringParser::createFromPROJString(): avoid potential infinite recursion (fixes #1574)
2019-09-06 11:29:07 +02:00
Even Rouault b7ed294cff Merge pull request #1590 from snowman2/sanitize
BUG: add SANITIZE_CTX for coordoperation is_instantiable and has_ballpark_transformation
2019-09-06 11:28:16 +02:00
Kristian Evers daeac1afd8 Merge pull request #1588 from urschrei/patch-1
Add link to Rust bindings
2019-09-06 10:03:01 +02:00
snowman2 38178fda29 BUG: add SANITIZE_CTX for coordoperation is_instantiable and has_ballpark_transformation 2019-09-05 20:37:49 -05:00
Even Rouault 9c38babea4 PROJStringParser::createFromPROJString(): avoid potential infinite recursion (fixes #1574)
The exact circumstances are a bit difficult to explain, but they involve
using a non-default context, enabling proj_context_use_proj4_init_rules() on it,
using proj_create(ctxt, "+init=epsg:XXXX +type=crs"), whereas PROJ_LIB is
defined to a directory that has a 'epsg' file in it.
2019-09-05 18:01:42 +02:00
Stephan Hügel 240d3b5f12 Add link to Rust bindings 2019-09-05 16:42:07 +01:00
Kristian Evers 06578ae686 Merge pull request #1581 from jef-n/win-no-abi-lib
stick with proj.lib on windows
2019-09-05 13:27:44 +02:00
Even Rouault 1c2a58b2ad Merge pull request #1584 from rouault/add_proj_create_ellipsoidal_3D_cs
C API: add proj_create_ellipsoidal_3D_cs()
2019-09-05 13:00:12 +02:00
Even Rouault ab1fb55900 Merge pull request #1583 from rouault/constify_proj_create_crs_to_crs_from_pj
proj_create_crs_to_crs_from_pj(): make the PJ* arguments const PJ*
2019-09-05 12:59:59 +02:00
Even Rouault d7d8f4500b proj_create_crs_to_crs_from_pj(): make the PJ* arguments const PJ*
This will make the life of C++ users using the C API slightly easier.
There's no ABI or API backward compatibility issue in doing that change as
constness of arguments is not retained in the C ABI, and any non-const
object passed as argument is implicitly converted as a const object if
that is what is mentionned in the argument list.
2019-09-04 15:17:51 +02:00
Even Rouault 403e57545f C API: add proj_create_ellipsoidal_3D_cs() 2019-09-04 14:33:39 +02:00
Even Rouault faf7ec2d7f proj_experimental.h: fix wrong comment forPJ_ELLIPSOIDAL_CS_2D_TYPE enum 2019-09-04 14:10:28 +02:00
R. Schmunk f4f35ab886 Debug Bertin1953
Northern hemisphere "warp" implemented incorrectly. See #1579
2019-09-03 15:56:03 -04:00
Juergen E. Fischer 6b99e02f04 stick with proj.lib on windows 2019-09-03 20:10:29 +02:00
Kristian Evers b52285e915 Merge pull request #1570 from rouault/update_link_to_wkt2_2019
Doc: add link to final WKT2:2019 document
2019-09-02 11:30:22 +03:00
Pedro Venancio 8417e703bf Update grid_alternatives.sql (#1571)
grid_alternatives.sql: Add DLX_ETRS89_geo.gsb and D73_ETRS89_geo.gsb grids in grid_alternatives (added in proj-datumgrid-europe package per https://github.com/OSGeo/proj-datumgrid/pull/54)
2019-09-01 14:35:51 +03:00
Kristian Evers 57ec0c2a86 Merge pull request #1573 from dg0yt/dg0yt-potsdam
Fix spelling of Potsdam datum
2019-09-01 14:14:51 +03:00
Kristian Evers f082596783 Update download links in the docs 2019-09-01 11:21:16 +02:00
Kristian Evers 7dcd6702c6 Add release notes for 6.2.0 to website 2019-09-01 09:38:18 +02:00
Kristian Evers 6f7920d3cf Make sure that website is build from the 6.2 branch 2019-09-01 09:32:19 +02:00
Kristian Evers dbfe811f18 Update version numbers in preparation for 7.0.0 2019-09-01 09:31:36 +02:00
Kai Pastor 875d00fabc Fix spelling of potsdam datum 2019-08-30 07:02:54 +02:00
Even Rouault 9e4aac0f20 Doc: add link to final WKT2:2019 document 2019-08-27 23:45:56 +03:00
516 changed files with 45965 additions and 14695 deletions
+4
View File
@@ -0,0 +1,4 @@
jobs:
- template: ./scripts/azp/linux.yml
- template: ./scripts/azp/win.yml
- template: ./scripts/azp/osx.yml
@@ -3,23 +3,21 @@
task:
name: FreeBSD
freebsd_instance:
cpu: 4
matrix:
image: freebsd-12-0-release-amd64
image: freebsd-12-1-release-amd64
# image: freebsd-11-2-release-amd64
# image: freebsd-10-4-release-amd64
env:
CIRRUS_CLONE_DEPTH: 1
MAKE_FLAGS: -j 2
MAKE_FLAGS: -j 4
cache:
folder: $HOME/.ccache
pkginstall_script:
- pkg install -y autoconf automake libtool pkgconf sqlite3 wget unzip ccache gmake
download_grid_script:
- wget https://download.osgeo.org/proj/proj-datumgrid-1.8.zip
- (cd data && unzip -o ../proj-datumgrid-1.8.zip)
- pkg install -y autoconf automake libtool pkgconf sqlite3 tiff ccache gmake
configure_script:
- ./autogen.sh
- CC="ccache cc" CXX="ccache c++" ./configure --disable-static
+2
View File
@@ -0,0 +1,2 @@
.git
build
+8
View File
@@ -0,0 +1,8 @@
#
# Configure line ending normalisation for this repository.
#
* text=auto
*.ac text eol=lf
*.am text eol=lf
*.m4 text eol=lf
*.sh text eol=lf
+31
View File
@@ -0,0 +1,31 @@
---
name: Bug report
about: Create a report to help us improve
labels: bug
---
<!-- Please search existing issues to avoid creating duplicates. -->
#### Example of problem
Demonstrate the problem you have found, either by using PROJ tools like `cs2cs`, `cct` or `projinfo` **or** add a code snippet that highlights the problem using the PROJ C/C++ API.
A "Minimal, Complete and Verifiable Example" will make it much easier for maintainers to help you:
http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports
```c
# Your code here
```
#### Problem description
[this should explain **why** the current behavior is a problem and why the expected output is a better solution.]
#### Expected Output
#### Environment Information
- PROJ version (`proj`)
- Operation System Information
#### Installation method
- conda, apt-get, from source, etc...
@@ -0,0 +1,7 @@
---
name: Feature request
about: Suggest an idea for this project
labels: feature request
---
<!-- Describe the feature you'd like. -->
+6
View File
@@ -0,0 +1,6 @@
<!-- Feel free to remove check-list items aren't relevant to your change -->
- [ ] Closes #xxxx
- [ ] Tests added
- [ ] Added clear title that can be used to generate release notes
- [ ] Fully documented, including updating `docs/source/*.rst` for new API
+18
View File
@@ -0,0 +1,18 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- bug
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
+20
View File
@@ -0,0 +1,20 @@
name: Backport
on:
pull_request:
types:
- closed
- labeled
jobs:
backport:
runs-on: ubuntu-18.04
name: Backport
steps:
- name: Backport Bot
if: contains( join(github.event.pull_request.labels.*.name), 'backport')
uses: Gaurav0/backport@v1.0.24
with:
bot_username: PROJ-BOT
bot_token: c1c49a5799d0a3a3885db8a4792880cbe509c1d6
bot_token_key: b01bdebf64595ed77207019258316df1b05ff6ac
github_token: ${{ secrets.GITHUB_TOKEN }}
-2
View File
@@ -98,8 +98,6 @@ install_manifest.txt
tmp_breathe
/docs/.doxygen_up_to_date
/docs/build
/docs/plot/images
/latex
# m4
m4/libtool.m4
-50
View File
@@ -1,50 +0,0 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
build:
os: "ubuntu-22.04"
tools:
python: "mambaforge-4.10"
jobs:
post_checkout:
# Cancel building pull requests when there aren't changed in the docs directory or YAML file.
# You can add any other files or directories that you'd like here as well,
# like your docs requirements file, or other files that will change your docs build.
#
# If there are no changes (git diff exits with 0) we force the command to return with 183.
# This is a special exit code on Read the Docs that will cancel the build immediately.
- |
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/6.2 -- 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
- ./docs/rtd/plot.sh
post_build:
- ./docs/rtd/post_build.sh
apt_packages:
- cmake
- ninja-build
- g++
- sqlite3
- libsqlite3-dev
formats:
- pdf
- epub
conda:
environment: docs/environment.yml
sphinx:
configuration: docs/source/conf.py
fail_on_warning: true
+23 -17
View File
@@ -1,4 +1,4 @@
# This is the config file for building proj.4 and running its test suite
# This is the config file for building proj and running its test suite
# with Travis-ci.org
language: cpp
@@ -15,9 +15,8 @@ matrix:
include:
- os: linux
dist: trusty
dist: xenial
compiler: gcc
sudo: required
services:
- docker
env:
@@ -25,27 +24,35 @@ matrix:
- DETAILS="linux, gcc"
- os: linux
dist: trusty
dist: xenial
compiler: gcc
sudo: required
services:
- docker
env:
- BUILD_NAME=linux_gcc7
- DETAILS="linux, gcc7"
- CC=gcc-7
- CXX=g++-7
- CXXFLAGS='-g -D_GLIBCXX_ASSERTIONS'
- BUILD_NAME=linux_gcc8
- DETAILS="linux, gcc8, i386"
- ARCH=i386
- CC=gcc-8
- CXX=g++-8
- CXXFLAGS='-g -O2 -m32 -D_GLIBCXX_ASSERTIONS'
- CFLAGS='-g -O2 -m32'
- TIFF_CFLAGS=-I/usr/include/i386-linux-gnu
- TIFF_LIBS="-L/usr/lib/i386-linux-gnu -ltiff"
- SQLITE3_CFLAGS=-I/usr/include/i386-linux-gnu
- SQLITE3_LIBS="-L/usr/lib/i386-linux-gnu -lsqlite3"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages: ['g++-7','make','autoconf','automake']
packages:
- g++-8-multilib
- make
- autoconf
- automake
- os: linux
dist: trusty
dist: xenial
compiler: clang
sudo: required
services:
- docker
env:
@@ -58,17 +65,15 @@ matrix:
- DETAILS="osx"
- os: linux
dist: trusty
dist: xenial
compiler: gcc
sudo: required
env:
- BUILD_NAME=mingw32
- DETAILS="mingw32"
- os: linux
compiler: gcc
dist: trusty
sudo: required
dist: xenial
env:
- BUILD_NAME=csa
- DETAILS="CLang Static Analyzer"
@@ -93,4 +98,5 @@ notifications:
irc:
channels:
- "irc.freenode.org#gdal"
- "irc.freenode.org#proj"
use_notice: true
+2 -2
View File
@@ -1,6 +1,6 @@
To cite PROJ in publications use:
PROJ contributors (2019). PROJ coordinate transformation software
PROJ contributors (2020). PROJ coordinate transformation software
library. Open Source Geospatial Foundation. URL https://proj.org/.
A BibTeX entry for LaTeX users is
@@ -11,6 +11,6 @@ A BibTeX entry for LaTeX users is
title = {{PROJ} coordinate transformation software library},
author = {{PROJ contributors}},
organization = {Open Source Geospatial Foundation},
year = {2019},
year = {2020},
url = {https://proj.org/},
}
+85 -43
View File
@@ -9,15 +9,15 @@
################################################################################
# General settings
################################################################################
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
# For historic reasons, the CMake PROJECT-NAME is PROJ4
project(PROJ4 LANGUAGES C CXX)
set(PROJECT_INTERN_NAME PROJ)
project(PROJ
DESCRIPTION "PROJ coordinate transformation software library"
LANGUAGES C CXX
)
if(NOT CMAKE_VERSION VERSION_LESS 3.1)
cmake_policy(SET CMP0054 NEW)
endif()
# Only interpret if() arguments as variables or keywords when unquoted
cmake_policy(SET CMP0054 NEW)
# Set C++ version
# Make CMAKE_CXX_STANDARD available as cache option overridable by user
@@ -28,6 +28,15 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
message(STATUS "Requiring C++${CMAKE_CXX_STANDARD} - done")
# Set C99 version
# Make CMAKE_C_STANDARD available as cache option overridable by user
set(CMAKE_C_STANDARD 99
CACHE STRING "C standard version to use (default is 99)")
message(STATUS "Requiring C${CMAKE_C_STANDARD}")
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
message(STATUS "Requiring C${CMAKE_C_STANDARD} - done")
# Set global -fvisibility=hidden
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
@@ -52,7 +61,6 @@ elseif("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
set(PROJ_C_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
-Wmissing-prototypes
-Wfloat-conversion
-Wc99-extensions
-Wc11-extensions
)
set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
@@ -75,6 +83,7 @@ elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
set(PROJ_CXX_WARN_FLAGS -Wall)
endif()
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}"
@@ -84,20 +93,19 @@ set(PROJ_CXX_WARN_FLAGS "${PROJ_CXX_WARN_FLAGS}"
# PROJ CMake modules
################################################################################
# Path to additional CMake modules
set(CMAKE_MODULE_PATH ${PROJ4_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(CMAKE_MODULE_PATH ${PROJ_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
include(ProjUtilities)
message(STATUS "")
colormsg(_HIBLUE_ "Configuring PROJ:")
message(STATUS "Configuring PROJ:")
################################################################################
#PROJ version information
################################################################################
include(ProjVersion)
proj_version(MAJOR 6 MINOR 2 PATCH 1)
set(PROJ_API_VERSION "17")
set(PROJ_BUILD_VERSION "17.1.2")
proj_version(MAJOR 7 MINOR 1 PATCH 0)
set(PROJ_API_VERSION "19")
set(PROJ_BUILD_VERSION "19.0.0")
################################################################################
# Build features and variants
@@ -119,6 +127,48 @@ if(NOT SQLITE3_FOUND)
message(SEND_ERROR "sqlite3 dependency not found!")
endif()
# Would build and run with older versions, but with horrible performance
# See https://github.com/OSGeo/PROJ/issues/1718
if("${SQLITE3_VERSION}" VERSION_LESS "3.11")
message(SEND_ERROR "sqlite3 >= 3.11 required!")
endif()
################################################################################
# Check for libtiff
################################################################################
option(ENABLE_TIFF "Enable TIFF support to read some grids" ON)
mark_as_advanced(ENABLE_TIFF)
set(TIFF_ENABLED FALSE)
if(ENABLE_TIFF)
find_package(TIFF REQUIRED)
if(TIFF_FOUND)
set(TIFF_ENABLED TRUE)
else()
message(SEND_ERROR
"libtiff dependency not found! Use ENABLE_TIFF=OFF to force it off")
endif()
else()
message(WARNING
"TIFF support is not enabled and will result in the inability to read "
"some grids")
endif()
################################################################################
# Check for curl
################################################################################
option(ENABLE_CURL "Enable Curl support" ON)
set(CURL_ENABLED FALSE)
if(ENABLE_CURL)
find_package(CURL REQUIRED)
if(CURL_FOUND)
set(CURL_ENABLED TRUE)
else()
message(SEND_ERROR "curl dependency not found!")
endif()
endif()
################################################################################
# threading configuration
################################################################################
@@ -134,23 +184,6 @@ else()
set(CMAKE_REQUIRED_LIBRARIES m)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} -Werror -Wall")
endif()
# Check whether the C99 math function: hypot, atanh, etc. are available.
check_c_source_compiles("
#include <math.h>
int main() {
int q;
return (int)(
hypot(3.0, 4.0) + atanh(0.8) + cbrt(8.0) +
remquo(100.0, 90.0, &q) +
remainder(100.0, 90.0) + copysign(1.0, -0.0) +
log1p(0.1) + asinh(0.1)) + isnan(0.0);
}
" C99_MATH)
if(C99_MATH)
add_definitions(-DHAVE_C99_MATH=1)
else()
add_definitions(-DHAVE_C99_MATH=0)
endif()
if(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT)
set(CMAKE_REQUIRED_LIBRARIES
@@ -181,17 +214,10 @@ if(MSVC OR CMAKE_CONFIGURATION_TYPES)
set(CMAKE_DEBUG_POSTFIX _d)
endif()
option(PROJ_TESTS "Enable build of collection of PROJ tests" ON)
boost_report_value(PROJ_TESTS)
if(PROJ_TESTS)
enable_testing()
endif()
include(ProjTest)
# Put the libraries and binaries that get built into directories at the
# top of the build tree rather than in hard-to-find leaf
# directories. This simplifies manual testing and the use of the build
# tree rather than installed Boost libraries.
# tree rather than installed PROJ libraries.
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
@@ -212,19 +238,35 @@ set(DOCDIR "${DEFAULT_DOCDIR}"
set(INCLUDEDIR "${DEFAULT_INCLUDEDIR}"
CACHE PATH "The directory to install includes into.")
set(CMAKECONFIGDIR "${DEFAULT_CMAKEDIR}"
CACHE PATH "The directory to install cmake config files into.")
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()
message(STATUS "Testing disabled")
endif()
################################################################################
# Build configured components
################################################################################
include_directories(${PROJ4_SOURCE_DIR}/src)
include_directories(${PROJ_SOURCE_DIR}/src)
message(STATUS "")
add_subdirectory(data)
add_subdirectory(include)
add_subdirectory(src)
add_subdirectory(man)
add_subdirectory(cmake)
if(PROJ_TESTS)
if(BUILD_TESTING)
add_subdirectory(test)
endif()
+14 -14
View File
@@ -5,21 +5,22 @@ FROM ubuntu:18.04 as builder
MAINTAINER Howard Butler <howard@hobu.co>
ARG PROJ_VERSION=master
ARG DESTDIR="/build"
# Setup build env
RUN apt-get update -y \
&& apt-get install -y --fix-missing --no-install-recommends \
software-properties-common build-essential ca-certificates \
git make cmake wget unzip libtool automake \
zlib1g-dev libsqlite3-dev pkg-config sqlite3
make cmake wget unzip libtool automake \
zlib1g-dev libsqlite3-dev pkg-config sqlite3 libcurl4-gnutls-dev \
libtiff5-dev
RUN git clone https://github.com/OSGeo/PROJ.git \
&& cd PROJ \
COPY . /PROJ
RUN cd /PROJ \
&& ./autogen.sh \
&& ./configure --prefix=/usr \
&& make \
&& make -j$(nproc) \
&& make install
@@ -31,18 +32,17 @@ RUN date
RUN apt-get update; \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
libsqlite3-0 \
curl unzip
libsqlite3-0 libtiff5 libcurl4 libcurl3-gnutls \
wget ca-certificates
# Put this first as this is rarely changing
RUN \
mkdir -p /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-1.8.zip && unzip -j -u -o proj-datumgrid-1.8.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-europe-1.2.zip && unzip -j -u -o proj-datumgrid-europe-1.2.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-oceania-1.0.zip && unzip -j -u -o proj-datumgrid-oceania-1.0.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-world-1.0.zip && unzip -j -u -o proj-datumgrid-world-1.0.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-north-america-1.2.zip && unzip -j -u -o proj-datumgrid-north-america-1.2.zip -d /usr/share/proj; \
rm *.zip
wget --no-verbose --mirror https://cdn.proj.org/; \
rm -f cdn.proj.org/*.js; \
rm -f cdn.proj.org/*.css; \
mv cdn.proj.org/* /usr/share/proj/; \
rmdir cdn.proj.org
COPY --from=builder /build/usr/share/proj/ /usr/share/proj/
COPY --from=builder /build/usr/include/ /usr/include/
+1 -1
View File
@@ -772,7 +772,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = src/iso19111 include/proj src/proj.h src/proj_experimental.h src/general_doc.dox
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
+10 -10
View File
@@ -30,6 +30,9 @@ list. The PROJ PSC guidelines describes the rules for passing a motion.
1.1 Update ABI version numbers:
-------------------------------------------------------------------------------
In case of a un-planned maintenance release, make sure that version numbers are
propertly updated: see 3.1
Determine the ABI version number. It consists of "current:revision:age". Follow
the steps below to determine the next ABI version number:
@@ -48,7 +51,7 @@ the steps below to determine the next ABI version number:
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
- `CMakeLists.txt`: Update PROJ_BUILD_VERSION (cur:rev:age) and
PROJ_API_VERSION (current)
*Commit the changes to master.*
@@ -57,14 +60,11 @@ Update the following files with the new ABI version number:
1.2 Update man pages
-------------------------------------------------------------------------------
Man pages are (mostly) automatically generated from the Sphinx docs. The pages
in man/man3/ was manually updated in 1.1. Here we update the pages in
man/man1/. Follow these steps:
Man pages are (mostly) automatically generated from the Sphinx docs. Follow
these steps:
- Update version number and date in `man/man3/pj_init.3` and
`man/man3/geodesic.3`
- Temporarily update version in `docs/source/conf.py`
- run `script/update_man.sh`
- run `scripts/update_man.sh`
- Revert version number in `docs/source/conf.py`
The `update_man.sh` script builds the man pages and commits the update man pages
@@ -228,9 +228,9 @@ version numbers in the files.
- src/proj.h: Update PROJ_VERSION_MAJOR, PROJ_VERSION_MINOR and
PROJ_VERSION_PATCH.
- src/proj_api.h: Update PJ_VERSION.
- src/pj_release.c: Update date to the scheduled release date.
- CMakelists.txt: Update proj_version()
- doc/source/conf.py: Update version number
- src/release.cpp: Update date to the scheduled release date.
- CMakeLists.txt: Update proj_version()
- docs/source/conf.py: Update version number
*Commit changes. Either to master or maintenance branch depending on the nature
+1 -1
View File
@@ -59,7 +59,7 @@ 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=c89 CFLAGS=-O2 LIBS=-lposix ./configure
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
+3 -2
View File
@@ -1,5 +1,5 @@
SUBDIRS = include src man data jniwrap cmake
DIST_SUBDIRS = include src man data jniwrap cmake test
SUBDIRS = include src man data cmake
DIST_SUBDIRS = include src man data cmake test
EXTRA_DIST = CMakeLists.txt CITATION README.md
@@ -12,6 +12,7 @@ ACLOCAL_AMFLAGS = -I m4
check-local:
cd test; $(MAKE) check
all-local: README
README: README.md
fgrep -v "[![" $< > $@
+282
View File
@@ -1,3 +1,285 @@
7.0.0 Release Notes
-------------------
The major feature in PROJ 7 is significantly improved handling of gridded
models. This was implemented in RFC4 (https://proj.org/community/rfc/rfc-4.html).
The main features of the RFC4 work is that PROJ now implements a new grid format,
Geodetic TIFF grids, for exchaning gridded transformation models. In addition
to the new grid format, PROJ can now also access grids online using a data
store in the cloud.
The grids that was previously available via the proj-datumgrid packages are now
available in two places:
1. As a single combined data archive including all available resource files
2. From the cloud via https://cdn.proj.org
In Addition, provided with PROJ is a utility called projsync that can be used
download grids from the data store in the cloud.
The use of the new grid format and the data from the cloud requires that
PROJ is build against libtiff and libcurl. Both are optional dependencies
to PROJ but it is highly encouraged that the software is build against both.
ATTENTION: PROJ 7 will be last major release version that includes the proj_api.h
header. The functionality in proj_api.h is deprecated and only supported in
maintenance mode. It is inferior to the functionality provided by functions
in the proj.h header and all projects still relying on proj_api.h are encouraged
to migrate to the new API in proj.h. See https://proj.org/development/migration.html
for more info on how to migrate from the old to the new API.
Updates
-------
o Added new file access API to proj.h #866
o Updated the name of the most recent version of the WKT2 standard from
WKT2_2018 to WKT2_2019 to reflect the proper name of the standard (#1585)
o Improvements in transformations from/to WGS 84 (Gxxxx) realizations and
vertical <--> geog transormations #1608
o Update to version 1.50 of the geodesic library (#1629)
o Promote proj_assign_context to proj.h from proj_experimental.h (#1630)
o Add rotation support to the HEALPix projection (#1638)
o Add c function proj_crs_create_bound_vertical_crs() (#1689)
o Use Win32 Unicode APIs and expect all strings to be UTF-8 (#1765)
o Improved name aliases lookup (#1827)
o CMake: Employ better use of CTest with the BUILD_TESTING option (#1870)
o Grid correction: fix handling grids spanning antimeridian (#1882)
o Remove legacy CMake target name "proj" #1883
o projinfo: add --searchpaths switch (#1892)
o Add +proj=set operation to set component(s) of a coordinate to a fixed
value (#1896)
o Add EPSG records for 'Geocentric translation by Grid Interpolation (IGN)'
(gr3df97a.txt) and map them to new +proj=xyzgridshift (#1897)
o Remove 'null' grid file as it is now a special hardcoded case in grid
code (#1898)
o Add projsync utility (#1903)
o Make PROJ the CMake project name #1910
o Use relative directory to locate PROJ resource files (#1921)
Bug fixes
---------
o Horizontal grid shift: fix failures on points slightly outside a
subgrid (#209)
o Fix ASAN issue with SQLite3VFS class (#1902)
o tests: force use of bash for proj_add_test_script_sh (#1905)
Breaking changes
----------------
o Reject NTV2 files where GS_TYPE != SECONDS #1294
o On Windows the name of the library is now fixed to ``proj.lib`` instead
of encoding the version number in the library name (#1581)
o Require C99 compiler (#1624)
o Remove deprecated JNI bindings (#1825)
o Remove -ld option from proj and cs2cs (#1844)
o Increase CMake minimum version from 3.5 to 3.9 (#1907)
THANKS TO
---------
Jeff McKenna
Calum Robinson
Anshul Singhvi
Bas Couwenberg
Mike Taves
Alan D. Snow
Charles Karney
Kristian Evers
Even Rouault
6.3.1 Release Notes
-------------------
Updates
-------
o Update the EPSG database to version 9.8.6
o Database: add mapping for gg10_smv2.mnt and gg10_sbv2.mnt French grids
o Database: add mapping for TOR27CSv1.GSB
Bug fixes
---------
o Fix wrong use of derivingConversionRef() that caused issues with use of
+init=epsg:XXXX by GDAL (affecting R spatial libraries) or in MapServer
o fix exporting CoordinateSystem to PROJ JSON with ID
o projinfo: use No. abbreviation instead of UTF-8 character (#1828)
o CompoundCRS::identify(): avoid exception when horiz/vertical part is a
BoundCRS
o createOperations(): fix dealing with projected 3D CRS whose Z units != metre
o WKT1_GDAL export: limit datum name massaging to names matching EPSG (#1835)
o unitconvert with mjd time format: avoid potential integer overflow
(ossfuzz 20072)
o ProjectedCRS::identify(): fix wrong identification of some ESRI WKT linked
to units
o Database: add a geoid_like value for proj_method column of grid_alternatives,
fix related entries and simplify/robustify logic to deal with EPSG
'Geographic3D to GravityRelatedHeight' methods
o Fix ingestion of +proj=cea with +k_0 (#1881)
o Fix performance issue, affecting PROJ.4 string generation of EPSG:7842
(#1913)
o Fix identification of ESRI-style datum names starting with D_ but without
alias (#1911)
o cart: Avoid discontinuity at poles in the inverse case (#1906)
o Various updates to make regression test suite pass with gcc on i386 (#1906)
THANKS TO
---------
Alan D. Snow
GitHub user @russkel
Gerrit Holl
Anshul Singhvi
Raven Kopelman
Kristian Evers
Even Rouault
6.3.0 Release Notes
-------------------
Updates
-------
o Database: tune accuracy of Canadian NTv1 file w.r.t NTv2 (#1812)
o Modify verbosity level of some debug/trace messages (#1811)
o projinfo: no longer call createBoundCRSToWGS84IfPossible() for WKT1:GDAL
(#1810)
o proj_trans: add retry logic to select other transformation if the best one
fails. (#1809)
o BoundCRS::identify(): improvements to discard CRS that aren't relevant
(#1802)
o Database: update to IGNF v3.1.0 (#1785)
o Build: Only export symbols if building DLL (#1773)
o Database: update ESRI entries with ArcGIS Desktop version 10.8.0 database
(#1762)
o createOperations(): chain operations whose middle CRSs are not identical but
have the same datum (#1734)
o import/export PROJJSON: support a interpolation_crs key to geoid_model
(#1732)
o Database: update to EPSG v9.8.4 (#1725)
o Build: require SQLite 3.11 (#1721)
o Add support for GEOIDMODEL (#1710)
o Better filtering based on extent and performance improvements (#1709)
Bug fixes
---------
o Horizontal grid shift: fix issue on iterative inverse computation when
switching between (sub)grids (#1797)
o createOperations(): make filtering out of 'uninteresting' operations less
aggressive (#1788)
o Make EPSG:102100 resolve to ESRI:102100 (#1786)
o ob_tran: restore traditional handling of +to_meter with pj_transform() and
proj utility (#1783)
o CRS identification: use case insensitive comparison for authority name
(#1780)
o normalizeForVisualization() and other methods applying on a ProjectedCRS: do
not mess the derivingConversion object of the original object (#1746)
o createOperations(): fix transformation computation from/to a CRS with
+geoidgrids and +vunits != m (#1731)
o Fix proj_assign_context()/pj_set_ctx() with pipelines and alternative coord
operations (#1726)
o Database: add an auxiliary concatenated_operation_step table to allow
arbitrary number of steps (#1696)
o Fix errors running gie-based tests in Debug mode on Windows (#1688)
THANKS TO
---------
Pedro Venancio
Owen Rudge
Nyall Dawson
Mateusz Łoskot
Markus Neteler
Juergen E. Fischer
Joaquim Luis
Jeff McKenna
Jakob Egger
Guillaume Lostis
GitHub user @yonarw
Asa Packer
Joe Mann
Stephan Hügel
Simon Schneegans
R. Schmunk
Alan D. Snow
Chris Crook
Howard Butler
Fabrice Fontaine
Kai Pastor
Martin Desruisseaux
Dalia Prizginiene
Mike Taves
Charles Karney
Kristian Evers
Even Rouault
6.2.1 Release Notes
-------------------
+15 -78
View File
@@ -1,11 +1,13 @@
# PROJ
[![Travis Status](https://travis-ci.com/OSGeo/PROJ.svg?branch=6.2)](https://travis-ci.com/OSGeo/PROJ)
[![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/OSGeo/PROJ?branch=6.2&svg=true)](https://ci.appveyor.com/project/OSGeo/PROJ?branch=6.2)
[![Coveralls Status](https://coveralls.io/repos/github/OSGeo/PROJ/badge.svg?branch=6.2)](https://coveralls.io/github/OSGeo/PROJ?branch=6.2)
[![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)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
PROJ is a generic coordinate transformation software, that transforms
coordinates from one coordinate reference system (CRS) to another.
@@ -23,89 +25,24 @@ See the NEWS file for changes between versions.
The following command line utilities are included in the PROJ package:
- `proj`: for cartographic projection of geodetic coordinates
- `proj`: for cartographic projection of geodetic coordinates.
- `cs2cs`: for transformation from one CRS to another CRS.
- `geod`: for geodesic (great circle) computations.
- `cct`: for generic Coordinate Conversions and Transformations.
- `gie`: the Geospatial Integrity Investigation Environment.
- `projinfo`: for geodetic object and coordinate operation queries
- `projinfo`: for geodetic object and coordinate operation queries.
- `projsync`: for synchronizing PROJ datum and transformation support data.
> More information on the utilities can be found on the [PROJ website](https://proj.org/apps).
## Installation
### Build dependencies
PROJ requires C and C++11 compilers.
It also requires SQLite3 (headers, library and executable). The minimum
version of SQLite3 required is 3.11
Consult the [Installation](https://proj.org/install.html) page of the official
documentation.
For builds on the master branch, [install.rst](https://github.com/OSGeo/PROJ/blob/master/docs/source/install.rst)
might be more up-to-date.
### Building with CMake
cd proj
mkdir build
cd build
cmake ..
cmake --build .
On Windows, one may need to specify generator:
cmake -G "Visual Studio 15 2017" ..
If the SQLite3 dependency is installed in a custom location, specify the
paths to the include directory and the library:
cmake -DSQLITE3_INCLUDE_DIR=/opt/SQLite/include -DSQLITE3_LIBRARY=/opt/SQLite/lib/libsqlite3.so ..
Tests are run with
ctest
The test suite requires that the proj-datumgrid package is installed
in `PROJ_LIB`.
### Building on Unix/Linux
FSF's configuration procedure is used to ease installation of the
PROJ system.
The default destination path prefix for installed files is `/usr/local`.
Results from the installation script will be placed into subdirectories
`bin`, `include`, `lib`, `man/man1` and `man/man3`.
If this default path prefix is proper, then execute:
./configure
See the note below if you are building PROJ directly from the git repository.
If another path prefix is required, then execute:
./configure --prefix=/my/path
In either case, the directory of the prefix path must exist and be
writable by the installer.
After executing configure, execute:
make
make install
The install target will create, if necessary, all required sub-directories.
Tests are run with
make check
The test suite requires that the proj-datumgrid package is installed
in `PROJ_LIB`.
#### Building from the git repository
If you are building from the git repository you have to first run
./autogen.sh
which will generate a configure script that can be used as described above.
### Distribution files and format
## Distribution files and format
Sources are distributed in one or more files. The principle elements
of the system are stored in a compressed tar file named `proj-x.y.z.tar.gz` where
@@ -135,6 +72,6 @@ where PROJ will find them after installation. The default location of
be changed to a different directory. On Windows you have to define
`PROJ_LIB` yourself.
### Citing PROJ in publications
## Citing PROJ in publications
See [CITATION](CITATION)
@@ -26,37 +26,30 @@ build_script:
- bootstrap-vcpkg.bat
- set PATH=%CD%;%PATH%
- cd ..
- vcpkg install sqlite3:"%platform%"-windows
- set SQLITE3_BIN=%APPVEYOR_BUILD_FOLDER%\sqlite3\bin
- mkdir %SQLITE3_BIN%
- copy c:\projects\proj\vcpkg\installed\"%platform%"-windows\bin\sqlite3.dll %SQLITE3_BIN%
- ps: |
appveyor DownloadFile https://sqlite.org/2018/sqlite-tools-win32-x86-3250100.zip
7z x sqlite-tools-win32-x86-3250100.zip
- copy "%APPVEYOR_BUILD_FOLDER%"\sqlite-tools-win32-x86-3250100\sqlite3.exe %SQLITE3_BIN%
- set PATH=%PATH%;%SQLITE3_BIN%
- vcpkg install sqlite3[core,tool]:"%platform%"-windows
- vcpkg install tiff:"%platform%"-windows
- vcpkg install curl:"%platform%"-windows
- if "%platform%" == "x64" SET VS_FULL=%VS_VERSION% Win64
- if "%platform%" == "x64" SET BUILD_LIBPROJ_SHARED=ON
- if "%platform%" == "x64" SET BUILD_SHARED_LIBS=ON
- if "%platform%" == "x86" SET VS_FULL=%VS_VERSION%
- if "%platform%" == "x86" SET BUILD_LIBPROJ_SHARED=OFF
- if "%platform%" == "x86" SET BUILD_SHARED_LIBS=OFF
- echo "%VS_FULL%"
#
- set PROJ_BUILD=%APPVEYOR_BUILD_FOLDER%\build
- mkdir %PROJ_BUILD%
- cd %PROJ_BUILD%
- set PROJ_DIR=%APPVEYOR_BUILD_FOLDER%\proj_dir
- cmake -G "%VS_FULL%" .. -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBPROJ_SHARED="%BUILD_LIBPROJ_SHARED%" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=C:/projects/proj/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%"
- cmake -G "%VS_FULL%" .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=C:/projects/proj/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%"
- cmake --build . --config Release --target install
- copy c:\projects\proj\vcpkg\installed\"%platform%"-windows\bin\*.dll %PROJ_DIR%\bin
- dir %PROJ_DIR%\bin
test_script:
- echo test_script
- set PROJ_LIB=%PROJ_DIR%\share\proj
- cd %PROJ_LIB%
- curl -O https://download.osgeo.org/proj/proj-datumgrid-1.8.zip
- 7z e -aoa -y proj-datumgrid-1.8.zip
- cd %PROJ_BUILD%
- ctest -V -C Release
- set PATH=%PATH%;%PROJ_DIR%\bin
- set PATH=%PROJ_DIR%\bin;%PATH%
- proj
deploy: off
+126 -32
View File
@@ -1,34 +1,128 @@
# proj-config.cmake for the install tree. It's installed in
# ${INSTALL_CMAKE_DIR} and @PROJECT_ROOT_DIR@ is the relative
# path to the root from there. (Note that the whole install tree can
# be relocated.)
file(RELATIVE_PATH PROJECT_ROOT_DIR
${CMAKE_INSTALL_PREFIX}/${CMAKECONFIGDIR} ${CMAKE_INSTALL_PREFIX})
# The old CMake PROJECT-NAME was PROJ4.
set (PROJECT_LEGACY_NAME PROJ4)
string (TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
string (TOLOWER "${PROJECT_LEGACY_NAME}" PROJECT_LEGACY_LOWER)
if(CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING_STR "ON")
else()
set(CMAKE_CROSSCOMPILING_STR "OFF")
endif()
# Starting with version 7.0, we install config-style find package
# files so that PROJ can be found with both
#
# find_package(PROJ)
# find_package(PROJ4)
#
# Here are the details... The command
#
# find_package(PROJ)
#
# if successful, will define variables
#
# PROJ_FOUND
# PROJ_VERSION
# PROJ_LIBRARIES = PROJ::proj
# PROJ_INCLUDE_DIRS
# etc
#
# and will define targets
#
# PROJ::proj
# PROJ4::proj
#
# Similarly
#
# find_package(PROJ4)
#
# if successful, will define variables
#
# PROJ4_FOUND
# PROJ4_VERSION
# PROJ4_LIBRARIES = PROJ4::proj
# PROJ4_INCLUDE_DIRS
# etc
#
# and will define targets
#
# PROJ::proj
# PROJ4::proj
#
# Note that targets PROJ::proj and PROJ4::proj are provided in both
# cases. However, no attempt is made to define both sets of variables
# with the two find_package options. Doing so would just lead to user
# confusion.
#
# Because pre-7.0 versions of PROJ do not support find_package (PROJ)
# and do not define a target PROJ::proj
#
# find_package(PROJ4)
#
# (instead of PROJ) should be used in any development scenarios which
# might involve (even indirectly) pre-7.0 versions of PROJ.
#
# At some future dates, find_package (PROJ4) will
#
# define PROJ4_LIBRARIES = PROJ::proj
# give WARNING message suggesting migration to find_package(PROJ)
# be disallowed via the version checking code
#
# 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
#
# cmake/CMakeLists.txt (this file)
# cmake/project-config.cmake.in
# cmake/project-config-version.cmake.in
# Variables needed by ${PROJECT_NAME_LOWER}-config-version.cmake
if (MSVC)
# For checking the compatibility of MSVC_TOOLSET_VERSION; see
# https://docs.microsoft.com/en-us/cpp/porting/overview-of-potential-upgrade-issues-visual-cpp
# Assume major version number is obtained by dropping the last decimal
# digit.
math (EXPR MSVC_TOOLSET_MAJOR "${MSVC_TOOLSET_VERSION}/10")
else ()
set (MSVC_TOOLSET_VERSION 0)
set (MSVC_TOOLSET_MAJOR 0)
endif ()
if (CMAKE_CROSSCOMPILING)
# Ensure that all "true" (resp. "false") settings are represented by
# the same string.
set (CMAKE_CROSSCOMPILING_STR "ON")
else ()
set (CMAKE_CROSSCOMPILING_STR "OFF")
endif ()
foreach (PROJECT_VARIANT_NAME ${PROJECT_NAME} ${PROJECT_LEGACY_NAME})
string (TOLOWER "${PROJECT_VARIANT_NAME}" 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
# be relocated.)
file (RELATIVE_PATH PROJECT_ROOT_DIR
${CMAKE_INSTALL_PREFIX}/${CMAKECONFIGSUBDIR} ${CMAKE_INSTALL_PREFIX})
configure_file (project-config.cmake.in
project-${PROJECT_VARIANT_LOWER}-config.cmake @ONLY)
configure_file (project-config-version.cmake.in
project-${PROJECT_VARIANT_LOWER}-version.cmake @ONLY)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-${PROJECT_VARIANT_LOWER}-config.cmake"
DESTINATION "${CMAKECONFIGSUBDIR}"
RENAME "${PROJECT_VARIANT_LOWER}-config.cmake")
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-${PROJECT_VARIANT_LOWER}-version.cmake"
DESTINATION "${CMAKECONFIGSUBDIR}"
RENAME "${PROJECT_VARIANT_LOWER}-config-version.cmake")
# Make information about the cmake targets (the library and the tools)
# available.
install(EXPORT targets
NAMESPACE ${PROJECT_NAME}::
FILE ${PROJECT_NAME_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGSUBDIR}")
install(EXPORT targets
NAMESPACE ${PROJECT_LEGACY_NAME}::
FILE ${PROJECT_LEGACY_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGSUBDIR}")
endforeach ()
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
configure_file(project-config.cmake.in project-config.cmake @ONLY)
configure_file(project-config-version.cmake.in
project-config-version.cmake @ONLY)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-config.cmake"
DESTINATION "${CMAKECONFIGDIR}"
RENAME "${PROJECT_NAME_LOWER}-config.cmake")
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-config-version.cmake"
DESTINATION "${CMAKECONFIGDIR}"
RENAME "${PROJECT_NAME_LOWER}-config-version.cmake")
# Make information about the cmake targets (the library and the tools)
# available.
install(EXPORT targets
FILE ${PROJECT_NAME_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGDIR}")
install(EXPORT targets
NAMESPACE ${PROJECT_NAME}::
FILE ${PROJECT_NAME_LOWER}-namespace-targets.cmake
DESTINATION "${CMAKECONFIGDIR}")
+13
View File
@@ -10,6 +10,7 @@
# and following variables are set:
# SQLITE3_INCLUDE_DIR
# SQLITE3_LIBRARY
# SQLITE3_VERSION
# find_path and find_library normally search standard locations
@@ -53,9 +54,21 @@ if(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY)
set(SQLITE3_FOUND TRUE)
endif()
# Extract version information from the header file
if(SQLITE3_INCLUDE_DIR)
file(STRINGS ${SQLITE3_INCLUDE_DIR}/sqlite3.h _ver_line
REGEX "^#define SQLITE_VERSION *\"[0-9]+\\.[0-9]+\\.[0-9]+\""
LIMIT_COUNT 1)
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+"
SQLITE3_VERSION "${_ver_line}")
unset(_ver_line)
endif()
if(SQLITE3_FOUND)
if(NOT SQLITE3_FIND_QUIETLY)
message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARY}")
message(STATUS "Sqlite3 version: ${SQLITE3_VERSION}")
endif()
else()
+7 -6
View File
@@ -14,7 +14,6 @@ include(CheckFunctionExists)
# check needed include file
check_include_files(dlfcn.h HAVE_DLFCN_H)
check_include_files(inttypes.h HAVE_INTTYPES_H)
check_include_files(jni.h HAVE_JNI_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)
@@ -26,17 +25,19 @@ 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)
# check libm need on unix
check_library_exists(m ceil "" HAVE_LIBM)
if(NOT WIN32)
check_library_exists(dl dladdr "" HAVE_LIBDL)
# check libm need on unix
check_library_exists(m ceil "" HAVE_LIBM)
endif()
set(PACKAGE "proj")
set(PACKAGE_BUGREPORT "https://github.com/OSGeo/PROJ/issues")
set(PACKAGE_NAME "PROJ")
set(PACKAGE_STRING "PROJ ${${PROJECT_INTERN_NAME}_VERSION}")
set(PACKAGE_STRING "PROJ ${${PROJECT_NAME}_VERSION}")
set(PACKAGE_TARNAME "proj")
set(PACKAGE_URL "https://proj.org")
set(PACKAGE_VERSION "${${PROJECT_INTERN_NAME}_VERSION}")
set(PACKAGE_VERSION "${${PROJECT_NAME}_VERSION}")
# check if a second proj_config.h exists (created by ./configure)
# as this is within CMake's C_INCLUDES / CXX_INCLUDES
+3 -3
View File
@@ -30,7 +30,7 @@ if(UNIX)
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/${PROJECT_NAME_LOWER})
set(DEFAULT_CMAKE_SUBDIR ${CMAKE_INSTALL_LIBDIR}/cmake)
else()
# Common locations for Unix and Mac OS X
set(DEFAULT_BIN_SUBDIR bin)
@@ -39,7 +39,7 @@ else()
set(DEFAULT_DOC_SUBDIR doc/proj)
set(DEFAULT_INCLUDE_SUBDIR include)
set(DEFAULT_DOC_SUBDIR share/doc/proj)
set(DEFAULT_CMAKE_SUBDIR lib/cmake/${PROJECT_NAME_LOWER})
set(DEFAULT_CMAKE_SUBDIR lib/cmake)
endif()
# Locations are changeable by user to customize layout of PROJ installation
@@ -55,7 +55,7 @@ set(PROJ_DATA_SUBDIR ${DEFAULT_DATA_SUBDIR} CACHE STRING
set(PROJ_DOC_SUBDIR ${DEFAULT_DOC_SUBDIR} CACHE STRING
"Subdirectory where doc will be installed")
set(PROJ_CMAKE_SUBDIR ${DEFAULT_CMAKE_SUBDIR} CACHE STRING
"Subdirectory where cmake proj-config file will be installed")
"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(
+3 -3
View File
@@ -23,7 +23,7 @@ if(APPLE)
"if set to ON, build a library framework and application bundle, \
otherwise install classical UNIX bin/lib" OFF)
set(DEFAULT_BINDIR ${BUNDLEDIR})
boost_report_value(BUNDLEDIR)
boost_report_value(PROJ_INSTALL_NAME_DIR)
boost_report_value(FRAMEWORKDIR)
print_variable(BUNDLEDIR)
print_variable(PROJ_INSTALL_NAME_DIR)
print_variable(FRAMEWORKDIR)
endif()
+13 -22
View File
@@ -2,31 +2,21 @@
# add test with sh script
#
function(proj_test_set_properties TESTNAME)
set_tests_properties( ${TESTNAME}
PROPERTIES ENVIRONMENT "PROJ_IGNORE_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
endfunction()
function(proj_add_test_script_sh SH_NAME BIN_USE)
if(UNIX)
get_filename_component(testname ${SH_NAME} NAME_WE)
set(TEST_OK 1)
if(ARGV2)
set(TEST_OK 0)
set(GRID_FULLNAME ${PROJECT_SOURCE_DIR}/data/${ARGV2})
if(EXISTS ${GRID_FULLNAME})
set(TEST_OK 1)
endif()
endif()
if(CMAKE_VERSION VERSION_LESS 2.8.4)
set(TEST_OK 0)
message(STATUS "test with bash script need a cmake version >= 2.8.4")
endif()
if(${TEST_OK})
add_test(NAME "${testname}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/data
COMMAND ${PROJECT_SOURCE_DIR}/test/cli/${SH_NAME}
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${${BIN_USE}}
)
endif()
add_test(NAME "${testname}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/data
COMMAND bash ${PROJECT_SOURCE_DIR}/test/cli/${SH_NAME}
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${${BIN_USE}}
)
proj_test_set_properties(${testname})
endif()
endfunction()
@@ -34,12 +24,13 @@ endfunction()
function(proj_add_gie_test TESTNAME TESTCASE)
set(GIE_BIN "gie")
set(GIE_BIN $<TARGET_FILE_NAME:gie>)
set(TESTFILE ${CMAKE_SOURCE_DIR}/test/${TESTCASE})
add_test(NAME ${TESTNAME}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${GIE_BIN}
${TESTFILE}
)
proj_test_set_properties(${TESTNAME})
endfunction()
+14 -67
View File
@@ -13,83 +13,30 @@
################################################################################
# Macros in this module:
#
# print_variable
# proj_target_output_name:
#
################################################################################
#
# A big shout out to the cmake gurus @ compiz
#
function(colormsg)
string(ASCII 27 _escape)
set(WHITE "29")
set(GRAY "30")
set(RED "31")
set(GREEN "32")
set(YELLOW "33")
set(BLUE "34")
set(MAG "35")
set(CYAN "36")
foreach(color WHITE GRAY RED GREEN YELLOW BLUE MAG CYAN)
set(HI${color} "1\;${${color}}")
set(LO${color} "2\;${${color}}")
set(_${color}_ "4\;${${color}}")
set(_HI${color}_ "1\;4\;${${color}}")
set(_LO${color}_ "2\;4\;${${color}}")
endforeach()
set(str "")
set(coloron FALSE)
foreach(arg ${ARGV})
if(NOT ${${arg}} STREQUAL "")
if(CMAKE_COLOR_MAKEFILE)
set(str "${str}${_escape}[${${arg}}m")
set(coloron TRUE)
endif()
else()
set(str "${str}${arg}")
if(coloron)
set(str "${str}${_escape}[0m")
set(coloron FALSE)
endif()
set(str "${str} ")
endif()
endforeach()
message(STATUS ${str})
endfunction()
# colormsg("Colors:"
# WHITE "white" GRAY "gray" GREEN "green"
# RED "red" YELLOW "yellow" BLUE "blue" MAG "mag" CYAN "cyan"
# _WHITE_ "white" _GRAY_ "gray" _GREEN_ "green"
# _RED_ "red" _YELLOW_ "yellow" _BLUE_ "blue" _MAG_ "mag" _CYAN_ "cyan"
# _HIWHITE_ "white" _HIGRAY_ "gray" _HIGREEN_ "green"
# _HIRED_ "red" _HIYELLOW_ "yellow" _HIBLUE_ "blue" _HIMAG_ "mag"
# _HICYAN_ "cyan" HIWHITE "white" HIGRAY "gray" HIGREEN "green"
# HIRED "red" HIYELLOW "yellow" HIBLUE "blue" HIMAG "mag" HICYAN "cyan"
# "right?")
#
# pretty-prints the value of a variable so that the
# equals signs align
#
function(boost_report_value NAME)
function(print_variable NAME)
string(LENGTH "${NAME}" varlen)
# LOG
#message(STATUS "boost_report_value: NAME=${NAME} (${varlen})")
#message(STATUS "boost_report_value: \${NAME}=${${NAME}}")
math(EXPR padding_len 40-${varlen})
string(SUBSTRING " "
0 ${padding_len} varpadding)
colormsg("${NAME}${varpadding} = ${${NAME}}")
math(EXPR padding_len 30-${varlen})
if(${padding_len} GREATER 0)
string(SUBSTRING " "
0 ${padding_len} varpadding)
endif()
message(STATUS "${NAME}${varpadding} = ${${NAME}}")
endfunction()
#
# Generates output name for given target depending on platform and version.
# For instance, on Windows, libraries get ABI version suffix proj_X_Y.{dll|lib}.
# For instance, on Windows, dynamic link libraries get ABI version suffix
# proj_X_Y.dll.
#
function(proj_target_output_name TARGET_NAME OUTPUT_NAME)
@@ -97,17 +44,17 @@ function(proj_target_output_name TARGET_NAME OUTPUT_NAME)
message(SEND_ERROR "Error, the variable TARGET_NAME is not defined!")
endif()
if(NOT DEFINED ${PROJECT_INTERN_NAME}_VERSION)
if(NOT DEFINED ${PROJECT_NAME}_VERSION)
message(SEND_ERROR
"Error, the variable ${${PROJECT_INTERN_NAME}_VERSION} is not defined!")
"Error, the variable ${${PROJECT_NAME}_VERSION} is not defined!")
endif()
# On Windows, ABI version is specified using binary file name suffix.
# On Unix, suffix is empty and SOVERSION is used instead.
if(WIN32)
string(LENGTH "${${PROJECT_INTERN_NAME}_ABI_VERSION}" abilen)
string(LENGTH "${${PROJECT_NAME}_ABI_VERSION}" abilen)
if(abilen GREATER 0)
set(SUFFIX "_${${PROJECT_INTERN_NAME}_ABI_VERSION}")
set(SUFFIX "_${${PROJECT_NAME}_ABI_VERSION}")
endif()
endif()
+12 -13
View File
@@ -27,27 +27,26 @@ macro(proj_version)
${ARGN})
# Set version components
set(${PROJECT_INTERN_NAME}_VERSION_MAJOR ${THIS_VERSION_MAJOR})
set(${PROJECT_INTERN_NAME}_VERSION_MINOR ${THIS_VERSION_MINOR})
set(${PROJECT_INTERN_NAME}_VERSION_PATCH ${THIS_VERSION_PATCH})
set(${PROJECT_NAME}_VERSION_MAJOR ${THIS_VERSION_MAJOR})
set(${PROJECT_NAME}_VERSION_MINOR ${THIS_VERSION_MINOR})
set(${PROJECT_NAME}_VERSION_PATCH ${THIS_VERSION_PATCH})
# Set VERSION string
set(${PROJECT_INTERN_NAME}_VERSION
"${${PROJECT_INTERN_NAME}_VERSION_MAJOR}.\
${${PROJECT_INTERN_NAME}_VERSION_MINOR}.\
${${PROJECT_INTERN_NAME}_VERSION_PATCH}")
set(${PROJECT_NAME}_VERSION
"${${PROJECT_NAME}_VERSION_MAJOR}.\
${${PROJECT_NAME}_VERSION_MINOR}.\
${${PROJECT_NAME}_VERSION_PATCH}")
# Set ABI version string used to name binary output
# On Windows, ABI version is specified using binary file name suffix.
if(WIN32)
set(${PROJECT_INTERN_NAME}_ABI_VERSION
"${${PROJECT_INTERN_NAME}_VERSION_MAJOR}_\
${${PROJECT_INTERN_NAME}_VERSION_MINOR}")
set(${PROJECT_NAME}_ABI_VERSION
"${${PROJECT_NAME}_VERSION_MAJOR}_\
${${PROJECT_NAME}_VERSION_MINOR}")
endif()
message(STATUS "")
boost_report_value(${PROJECT_INTERN_NAME}_VERSION)
print_variable(${PROJECT_NAME}_VERSION)
if(WIN32)
boost_report_value(${PROJECT_INTERN_NAME}_ABI_VERSION)
print_variable(${PROJECT_NAME}_ABI_VERSION)
endif()
endmacro()
+2 -5
View File
@@ -4,8 +4,8 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
/* Define to 1 if you have the <jni.h> header file. */
#cmakedefine HAVE_JNI_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
@@ -40,9 +40,6 @@
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
/* Enabled for Java/JNI Support */
#cmakedefine JNI_ENABLED 1
/* Name of package */
#cmakedefine PACKAGE "${PACKAGE}"
+20 -7
View File
@@ -1,22 +1,33 @@
# Version checking for @PROJECT_NAME@
# Version checking for @PROJECT_VARIANT_NAME@
set (PACKAGE_VERSION "@PROJ_VERSION@")
set (PACKAGE_VERSION_MAJOR "@PROJ_VERSION_MAJOR@")
set (PACKAGE_VERSION_MINOR "@PROJ_VERSION_MINOR@")
set (PACKAGE_VERSION_PATCH "@PROJ_VERSION_PATCH@")
# These variable definitions parallel those in @PROJECT_NAME@'s
# cmake/CMakeLists.txt.
if (MSVC)
# For checking the compatibility of MSVC_TOOLSET_VERSION; see
# https://docs.microsoft.com/en-us/cpp/porting/overview-of-potential-upgrade-issues-visual-cpp
# Assume major version number is obtained by dropping the last decimal
# digit.
math (EXPR MSVC_TOOLSET_MAJOR "${MSVC_TOOLSET_VERSION}/10")
endif ()
if (CMAKE_CROSSCOMPILING)
# Ensure that all "true" (resp. "false") settings are represented by
# the same string.
set (CMAKE_CROSSCOMPILING_STR "ON")
else ()
set (CMAKE_CROSSCOMPILING_STR "OFF")
endif ()
if (NOT PACKAGE_FIND_NAME STREQUAL "@PROJECT_NAME@")
if (NOT PACKAGE_FIND_NAME STREQUAL "@PROJECT_VARIANT_NAME@")
# Check package name (in particular, because of the way cmake finds
# package config files, the capitalization could easily be "wrong").
# This is necessary to ensure that the automatically generated
# variables, e.g., <package>_FOUND, are consistently spelled.
set (REASON "package = @PROJECT_NAME@, NOT ${PACKAGE_FIND_NAME}")
set (REASON "package = @PROJECT_VARIANT_NAME@, NOT ${PACKAGE_FIND_NAME}")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (NOT (APPLE OR (NOT DEFINED CMAKE_SIZEOF_VOID_P) OR
CMAKE_SIZEOF_VOID_P EQUAL @CMAKE_SIZEOF_VOID_P@))
@@ -24,9 +35,13 @@ elseif (NOT (APPLE OR (NOT DEFINED CMAKE_SIZEOF_VOID_P) OR
# since a multi-architecture library is built for that platform).
set (REASON "sizeof(*void) = @CMAKE_SIZEOF_VOID_P@")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (MSVC AND NOT MSVC_VERSION STREQUAL "@MSVC_VERSION@")
elseif (MSVC AND NOT (
# toolset version must be at least as great as @PROJECT_NAME@'s
MSVC_TOOLSET_VERSION GREATER_EQUAL @MSVC_TOOLSET_VERSION@
# and major versions must match
AND MSVC_TOOLSET_MAJOR EQUAL @MSVC_TOOLSET_MAJOR@ ))
# Reject if there's a mismatch in MSVC compiler versions
set (REASON "_MSC_VER = @MSVC_VERSION@")
set (REASON "MSVC_TOOLSET_VERSION = @MSVC_TOOLSET_VERSION@")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (NOT CMAKE_CROSSCOMPILING_STR STREQUAL "@CMAKE_CROSSCOMPILING_STR@")
# Reject if there's a mismatch in ${CMAKE_CROSSCOMPILING}
@@ -52,5 +67,3 @@ endif ()
if (PACKAGE_VERSION_UNSUITABLE)
set (PACKAGE_VERSION "${PACKAGE_VERSION} (${REASON})")
endif ()
unset(CMAKE_CROSSCOMPILING_STR)
+16 -18
View File
@@ -1,32 +1,30 @@
# Configure @PROJECT_NAME@
#
# Set
# @PROJECT_NAME@_FOUND = 1
# @PROJECT_NAME@_INCLUDE_DIRS = /usr/local/include
# @PROJECT_NAME@_LIBRARIES = proj
# @PROJECT_NAME@_LIBRARY_DIRS = /usr/local/lib
# @PROJECT_NAME@_BINARY_DIRS = /usr/local/bin
# @PROJECT_NAME@_VERSION = 4.9.1 (for example)
message (STATUS "Reading ${CMAKE_CURRENT_LIST_FILE}")
# @PROJECT_NAME@_VERSION is set by version file
message (STATUS
"@PROJECT_NAME@ configuration, version ${@PROJECT_NAME@_VERSION}")
# @PROJECT_VARIANT_NAME@_FOUND = 1
# @PROJECT_VARIANT_NAME@_INCLUDE_DIRS = /usr/local/include
# @PROJECT_VARIANT_NAME@_LIBRARIES = @PROJECT_VARIANT_NAME@::proj
# @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)
# 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)
set (@PROJECT_NAME@_INCLUDE_DIRS "${_ROOT}/@INCLUDEDIR@")
set (@PROJECT_NAME@_LIBRARY_DIRS "${_ROOT}/@LIBDIR@")
set (@PROJECT_NAME@_BINARY_DIRS "${_ROOT}/@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_NAME@_LIBRARIES @PROJECT_NAME@::proj)
set (@PROJECT_VARIANT_NAME@_LIBRARIES @PROJECT_VARIANT_NAME@::proj)
# Read in the exported definition of the library
include ("${_DIR}/@PROJECT_NAME_LOWER@-targets.cmake")
include ("${_DIR}/@PROJECT_NAME_LOWER@-namespace-targets.cmake")
include ("${_DIR}/@PROJECT_LEGACY_LOWER@-targets.cmake")
unset (_ROOT)
unset (_DIR)
# For backward compatibility with old releases of libgeotiff
set (@PROJECT_NAME@_INCLUDE_DIR ${@PROJECT_NAME@_INCLUDE_DIRS})
if ("@PROJECT_VARIANT_NAME@" STREQUAL "PROJ4")
# For backward compatibility with old releases of libgeotiff
set (@PROJECT_VARIANT_NAME@_INCLUDE_DIR
${@PROJECT_VARIANT_NAME@_INCLUDE_DIRS})
endif ()
+94 -88
View File
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT([PROJ], [6.2.1],
AC_INIT([PROJ], [7.1.0],
[https://github.com/OSGeo/PROJ/issues], proj, [https://proj.org])
AC_CONFIG_MACRO_DIR([m4])
AC_LANG(C)
@@ -12,6 +12,7 @@ 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
@@ -19,6 +20,8 @@ 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)
@@ -82,25 +85,10 @@ AX_CHECK_COMPILE_FLAG([-Wfloat-conversion], [C_WFLAGS="$C_WFLAGS -Wfloat-convers
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 gnu89 is a reasonable target to get MSVC compatibility.
dnl but only apply it with gcc, since clang will throw a lot of warnings
SAVED_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $ERROR_ON_UNKNOWN_OPTIONS -std=gnu89"
AC_MSG_CHECKING([if -std=gnu89 can be enabled])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[#if defined(__clang__) || !defined(__GNUC__)
#error "not gcc"
#endif]])],
[C_WFLAGS="$C_WFLAGS -std=gnu89"]
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])
CFLAGS=$SAVED_CFLAGS
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-prototypes], [CXX_WFLAGS="$CXX_WFLAGS -Wmissing-prototypes"],,[$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])
@@ -182,6 +170,15 @@ AC_SUBST(NO_ZERO_AS_NULL_POINTER_CONSTANT_FLAG,$NO_ZERO_AS_NULL_POINTER_CONSTANT
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/ /"`
@@ -197,80 +194,12 @@ 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])
dnl Check for C99 math functions
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wall -Werror"
AC_MSG_CHECKING([for C99 math functions])
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[#include <math.h>],
[int q;
return (int)(hypot(3.0, 4.0) + atanh(0.8) + cbrt(8.0) +
remquo(100.0, 90.0, &q) +
remainder(100.0, 90.0) + copysign(1.0, -0.0) +
log1p(0.1) + asinh(0.1)) +
isnan(0.0);])],
[AC_MSG_RESULT([yes]);C99_MATH="-DHAVE_C99_MATH=1"],
[AC_MSG_RESULT([no]);C99_MATH="-DHAVE_C99_MATH=0"])
CFLAGS="$save_CFLAGS $C99_MATH"
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])
dnl ---------------------------------------------------------------------------
dnl Check for JNI support.
dnl ---------------------------------------------------------------------------
JNI_INCLUDE=
export JNI_INCLUDE
AC_ARG_WITH(jni,
[AS_HELP_STRING([--with-jni=dir],
[Include Java/JNI support, add optional include dir])
],,)
if test "$with_jni" = "yes" ; then
AC_DEFINE(JNI_ENABLED,1,[Enabled for Java/JNI Support])
AC_MSG_CHECKING(whether to enable Java/JNI support)
AC_MSG_RESULT([enabled])
elif test "$with_jni" != "no" -a "$with_jni" != "" ; then
AC_MSG_CHECKING(whether to enable Java/JNI support)
if test \! -r "$with_jni/jni.h" ; then
AC_MSG_ERROR(Did not find $with_jni/jni.h)
fi
AC_DEFINE(JNI_ENABLED,1,[Enabled for Java/JNI Support])
AC_MSG_RESULT([enabled])
JNI_INCLUDE="-I$with_jni"
elif test "$with_jni" = "" ; then
AC_CHECK_HEADERS(jni.h)
AC_MSG_CHECKING(whether to enable Java/JNI support)
if test "$ac_cv_header_jni_h" = "no" ; then
AC_MSG_RESULT([disabled])
else
AC_MSG_RESULT([enabled])
AC_DEFINE(JNI_ENABLED,1,[Enabled for Java/JNI Support])
fi
else
AC_MSG_CHECKING(whether to enable Java/JNI support)
AC_MSG_RESULT([disabled])
fi
AC_SUBST(JNI_INCLUDE,$JNI_INCLUDE)
AC_CHECK_LIB(dl,dladdr,,,)
dnl ---------------------------------------------------------------------------
dnl Provide a mechanism to disable real mutex support (if lacking win32 or
@@ -308,7 +237,11 @@ dnl Check for sqlite3 library and binary
dnl ---------------------------------------------------------------------------
if test "x$SQLITE3_CFLAGS$SQLITE3_LIBS" = "x" ; then
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.7])
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)
@@ -318,6 +251,77 @@ 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 ---------------------------------------------------------------------------
@@ -345,8 +349,7 @@ 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 man/man3/Makefile data/Makefile
jniwrap/Makefile jniwrap/org.osgeo.proj/Makefile jniwrap/org.osgeo.proj/org/Makefile jniwrap/org.osgeo.proj/org/proj4/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
@@ -357,4 +360,7 @@ fi
AC_CONFIG_FILES([proj.pc])
dnl Ignore WARNING: 'proj.pc.in' seems to ignore the --datarootdir setting
AC_DEFUN([AC_DATAROOTDIR_CHECKED])
AC_OUTPUT
+43 -2
View File
@@ -2,8 +2,11 @@
# files containing dictionary of useful projection
#
set(CONFIG_FILES
proj.ini
)
set(PROJ_DICTIONARY
null
world
other.extra
nad27
@@ -44,6 +47,7 @@ add_custom_command(
OUTPUT ${PROJ_DB}
COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJ_DB}
COMMAND ${EXE_SQLITE3} -init ${ALL_SQL_IN} ${PROJ_DB} .quit
COMMAND ${CMAKE_COMMAND} -E copy ${PROJ_DB} ${CMAKE_CURRENT_BINARY_DIR}/for_tests
# note: we didn't port yet the foreign_key_check done in Makefile.am
DEPENDS generate_all_sql_in ${ALL_SQL_IN}
COMMENT "Generating proj.db"
@@ -53,15 +57,52 @@ add_custom_command(
add_custom_target(generate_proj_db ALL DEPENDS ${PROJ_DB})
if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
foreach(FILE ${PROJ_DICTIONARY} ${GRIDSHIFT_FILES})
foreach(FILE ${CONFIG_FILES} ${PROJ_DICTIONARY} ${GRIDSHIFT_FILES})
configure_file(${FILE} ${FILE} COPYONLY)
endforeach()
endif()
# Copy select resource files in a for_tests subdirectory so that we are not
# influenced by the presence of other grids
# Note: this is done at configure/cmake time, not build time.
# So if you install new grids in the source data/ subdirectory, run cmake again
set(DATA_FOR_TESTS
GL27
nad27
nad83
ITRF2000)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/for_tests)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/for_tests/tests)
foreach(FILE ${DATA_FOR_TESTS} ${CONFIG_FILES})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${CMAKE_CURRENT_BINARY_DIR}/for_tests/${FILE} COPYONLY)
endforeach()
file(GLOB DATA_TESTS tests/*)
foreach(FILE ${DATA_TESTS})
get_filename_component(FILENAME ${FILE} NAME)
configure_file(${FILE} ${CMAKE_CURRENT_BINARY_DIR}/for_tests/tests/${FILENAME} COPYONLY)
endforeach()
set(DATA_FOR_TESTS_FROM_TESTS_SUBDIR
alaska
BETA2007.gsb
conus
MD
ntf_r93.gsb
ntv1_can.dat)
foreach(FILE ${DATA_FOR_TESTS_FROM_TESTS_SUBDIR})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/${FILE} ${CMAKE_CURRENT_BINARY_DIR}/for_tests/${FILE} COPYONLY)
endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/egm96_15_downsampled.gtx ${CMAKE_CURRENT_BINARY_DIR}/for_tests/egm96_15.gtx COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/ntv2_0_downsampled.gsb ${CMAKE_CURRENT_BINARY_DIR}/for_tests/ntv2_0.gsb COPYONLY)
#
#install
#
set(ALL_DATA_FILE
${CONFIG_FILES}
${PROJ_DICTIONARY}
${GRIDSHIFT_FILES}
${PROJ_DB}
+102 -7
View File
@@ -1,7 +1,7 @@
DATAPATH = $(top_srcdir)/data
pkgdata_DATA = GL27 nad.lst nad27 nad83 world other.extra \
CH null \
pkgdata_DATA = proj.ini GL27 nad.lst nad27 nad83 world other.extra \
CH \
ITRF2000 ITRF2008 ITRF2014 proj.db \
projjson.schema.json
@@ -27,29 +27,83 @@ SQL_ORDERED_LIST = sql/begin.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.sql \
sql/grid_alternatives_generated_noaa.sql \
sql/customizations.sql \
sql/commit.sql
EXTRA_DIST = GL27 nad.lst nad27 nad83 \
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 null \
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)/null \
$(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 \
@@ -95,12 +149,53 @@ proj.db: $(DATAPATH)/sql/*.sql
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
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
BIN
View File
Binary file not shown.
+16
View File
@@ -0,0 +1,16 @@
[general]
; Lines starting by ; are commented lines.
;
; Network capabilities disabled by default.
; Can be overriden with the PROJ_NETWORK=ON environment variable.
; network = on
; Can be overriden with the PROJ_NETWORK_ENDPOINT environment variable.
cdn_endpoint = https://cdn.proj.org
cache_enabled = on
cache_size_MB = 300
cache_ttl_sec = 86400
+11 -1
View File
@@ -1,5 +1,5 @@
{
"$id": "https://proj.org/schemas/v0.1/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",
"$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",
@@ -932,6 +932,16 @@
},
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" },
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
"geoid_model": {
"type": "object",
"properties": {
"name": { "type": "string" },
"interpolation_crs": { "$ref": "#/definitions/crs" },
"id": { "$ref": "#/definitions/id" }
},
"required" : [ "name" ],
"additionalProperties": false
},
"$schema" : {},
"scope": {},
"area": {},
+6838 -1
View File
File diff suppressed because it is too large Load Diff
+51 -39
View File
@@ -35,7 +35,7 @@ INSERT INTO "area" VALUES('EPSG','1055','Brunei','Brunei Darussalam - onshore an
INSERT INTO "area" VALUES('EPSG','1056','Bulgaria','Bulgaria - onshore and offshore.',41.24,44.23,22.36,31.35,0);
INSERT INTO "area" VALUES('EPSG','1057','Burkina Faso','Burkina Faso.',9.39,15.09,-5.53,2.4,0);
INSERT INTO "area" VALUES('EPSG','1058','Burundi','Burundi.',-4.45,-2.3,28.98,30.86,0);
INSERT INTO "area" VALUES('EPSG','1059','Cambodia','Cambodia - onshore and offshore.',8.78,14.71,101.33,107.64,0);
INSERT INTO "area" VALUES('EPSG','1059','Cambodia','Cambodia - onshore and offshore.',8.78,14.73,101.33,107.64,0);
INSERT INTO "area" VALUES('EPSG','1060','Cameroon','Cameroon - onshore and offshore.',1.65,13.09,8.32,16.21,0);
INSERT INTO "area" VALUES('EPSG','1061','Canada','Canada - onshore and offshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon.',40.04,86.46,-141.01,-47.74,0);
INSERT INTO "area" VALUES('EPSG','1062','Cape Verde','Cape Verde - onshore and offshore. Includes Boa Vista, Brava, Fogo, Maio, Sal, Santo Antao, Sao Nicolau, Sao Tiago, Sao Vicente.',11.47,20.54,-28.85,-19.53,0);
@@ -114,7 +114,7 @@ INSERT INTO "area" VALUES('EPSG','1134','Korea, Democratic People''s Republic of
INSERT INTO "area" VALUES('EPSG','1135','Korea, Republic of (South Korea)','Republic of Korea (South Korea) - onshore and offshore.',28.6,40.27,122.71,134.28,0);
INSERT INTO "area" VALUES('EPSG','1136','Kuwait','Kuwait - onshore and offshore.',28.53,30.09,46.54,49.53,0);
INSERT INTO "area" VALUES('EPSG','1137','Kyrgyzstan','Kyrgyzstan.',39.19,43.22,69.24,80.29,0);
INSERT INTO "area" VALUES('EPSG','1138','Laos','Laos.',13.92,22.5,100.09,107.7,0);
INSERT INTO "area" VALUES('EPSG','1138','Laos','Laos.',13.92,22.5,100.09,107.64,0);
INSERT INTO "area" VALUES('EPSG','1139','Latvia','Latvia - onshore and offshore.',55.67,58.09,19.06,28.24,0);
INSERT INTO "area" VALUES('EPSG','1140','Lebanon','Lebanon - onshore and offshore.',33.06,34.84,33.75,36.63,0);
INSERT INTO "area" VALUES('EPSG','1141','Lesotho','Lesotho.',-30.66,-28.57,27.01,29.46,0);
@@ -228,7 +228,7 @@ INSERT INTO "area" VALUES('EPSG','1248','Uzbekistan','Uzbekistan.',37.18,45.58,5
INSERT INTO "area" VALUES('EPSG','1249','Vanuatu','Vanuatu - onshore and offshore.',-21.65,-12.27,163.16,173.59,0);
INSERT INTO "area" VALUES('EPSG','1250','Holy See (Vatican City State)','Holy See (Vatican City State).',41.9,41.91,12.44,12.46,0);
INSERT INTO "area" VALUES('EPSG','1251','Venezuela','Venezuela - onshore and offshore.',0.64,16.75,-73.38,-58.95,0);
INSERT INTO "area" VALUES('EPSG','1252','Vietnam','Vietnam - onshore and offshore.',5.67,23.33,102.14,112.55,0);
INSERT INTO "area" VALUES('EPSG','1252','Vietnam','Vietnam - onshore and offshore.',5.67,23.4,102.14,112.55,0);
INSERT INTO "area" VALUES('EPSG','1253','Virgin Islands, British','British Virgin Islands - onshore and offshore - Anegada, Jost Van Dyke, Tortola, and Virgin Gorda.',17.96,22.09,-65.85,-63.29,0);
INSERT INTO "area" VALUES('EPSG','1254','Virgin Islands, US','US Virgin Islands - onshore and offshore - St Croix, St John, and St Thomas.',16.22,21.83,-66.05,-63.88,0);
INSERT INTO "area" VALUES('EPSG','1255','Wallis and Futuna','Wallis and Futuna - onshore and offshore - Uvea, Futuna, and Alofi.',-15.94,-9.84,179.49,-174.27,0);
@@ -261,14 +261,14 @@ INSERT INTO "area" VALUES('EPSG','1281','Australia - mainland','Australia - Aust
INSERT INTO "area" VALUES('EPSG','1282','Australia - Tasmania','Australia - Tasmania including islands - onshore.',-43.7,-39.52,143.77,148.55,0);
INSERT INTO "area" VALUES('EPSG','1283','Canada - Maritime Provinces','Canada - New Brunswick; Nova Scotia; Prince Edward Island.',43.41,48.07,-69.05,-59.73,0);
INSERT INTO "area" VALUES('EPSG','1284','Europe - FSU, Czechoslovakia - onshore','Armenia; Azerbaijan; Belarus; Czechia; Estonia - onshore; Georgia - onshore; Kazakhstan; Kyrgyzstan; Latvia - onshore; Lithuania - onshore; Moldova; Russian Federation - onshore; Slovakia; Tajikistan; Turkmenistan; Ukraine - onshore; Uzbekistan.',35.14,77.79,12.09,-169.57,0);
INSERT INTO "area" VALUES('EPSG','1285','Indonesia - Java and Bali onshore','Indonesia - onshore Java and Bali.',-8.91,-5.83,105.06,115.77,0);
INSERT INTO "area" VALUES('EPSG','1285','Indonesia - Bali, Java and western Sumatra onshore','Indonesia - onshore - Bali, Java and western Sumatra.',-8.91,5.97,95.16,115.77,0);
INSERT INTO "area" VALUES('EPSG','1286','Europe - Liechtenstein and Switzerland','Liechtenstein; Switzerland.',45.82,47.81,5.96,10.49,0);
INSERT INTO "area" VALUES('EPSG','1287','Indonesia - Banga & Belitung Islands','Indonesia - Banga and Belitung Islands.',-3.3,-1.44,105.07,108.35,0);
INSERT INTO "area" VALUES('EPSG','1288','Angola - Angola proper','Angola - Angola proper - onshore and offshore.',-18.02,-5.82,8.2,24.09,0);
INSERT INTO "area" VALUES('EPSG','1289','Canada - CGVD28','Canada - onshore - Alberta; British Columbia; Manitoba south of 57°N; New Brunswick; Northwest Territories south west of a line between 60°N, 110°W and the coast at 132°W; Nova Scotia; Ontario south of 52°N; Prince Edward Island; Quebec - mainland west of 66°W and south of 55°N; Saskatchewan south of 55°N; Yukon.',41.67,69.8,-141.01,-59.73,0);
INSERT INTO "area" VALUES('EPSG','1290','Africa - Botswana, Eswatini, Lesotho and South Africa','Botswana; Eswatini (Swaziland); Lesotho; South Africa - mainland.',-34.88,-17.78,16.45,32.95,0);
INSERT INTO "area" VALUES('EPSG','1291','Asia - FSU - Caspian Sea','Azerbaijan - offshore; Kazakhstan - offshore; Russian Federation - Caspian Sea; Turkmenistan - offshore.',37.35,46.97,46.95,53.93,0);
INSERT INTO "area" VALUES('EPSG','1292','Argentina - Neuquen province','Argentina - Neuquen province.',-41.1,-36.14,-71.96,-68.01,0);
INSERT INTO "area" VALUES('EPSG','1292','Argentina - Neuquen basin','Argentina – Mendoza and Neuquen provinces - Neuquen basin.',-40.17,-34.26,-71.19,-66.52,0);
INSERT INTO "area" VALUES('EPSG','1293','Brazil - Corrego Alegre 1970-1972','Brazil - onshore - west of 54°W and south of 18°S; also south of 15°S between 54°W and 42°W; also east of 42°W.',-33.78,-2.68,-58.16,-34.74,0);
INSERT INTO "area" VALUES('EPSG','1294','Portugal - mainland - onshore','Portugal - mainland - onshore.',36.95,42.16,-9.56,-6.19,0);
INSERT INTO "area" VALUES('EPSG','1295','Germany - DHDN','Germany - onshore - Baden-Wurtemberg, Bayern, Hessen, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Schleswig-Holstein. Also former DDR states of Sachsen and Thuringen by transformation.',47.27,55.06,5.87,15.03,1);
@@ -278,8 +278,8 @@ INSERT INTO "area" VALUES('EPSG','1298','Europe - ETRS89','Europe - onshore and
INSERT INTO "area" VALUES('EPSG','1299','Europe - EVRF2000','Europe - onshore - Andorra; Austria; Belgium; Bosnia and Herzegovina; Croatia; Czechia; Denmark; Estonia; Finland; France - mainland; Germany; Gibraltar; Hungary; Italy - mainland and Sicily; Latvia; Liechtenstein; Lithuania; Luxembourg; Netherlands; Norway; Poland; Portugal - mainland; Romania; San Marino; Slovakia; Slovenia; Spain - mainland; Sweden; Switzerland; United Kingdom (UK) - Great Britain mainland; Vatican City State.',35.95,71.21,-9.56,31.59,0);
INSERT INTO "area" VALUES('EPSG','1300','Iran - FD58','Iran - Arwaz area and onshore Gulf coast west of 54°E, Lavan Island, offshore Balal field and South Pars blocks 2 and 3.',26.21,33.22,47.13,53.61,0);
INSERT INTO "area" VALUES('EPSG','1301','Portugal - Azores C - onshore','Portugal - central Azores onshore - Faial, Graciosa, Pico, Sao Jorge, Terceira.',38.32,39.14,-28.9,-26.97,0);
INSERT INTO "area" VALUES('EPSG','1302','Asia - Cambodia and Vietnam - mainland','Cambodia - mainland onshore; Vietnam - mainland onshore.',8.5,23.33,102.14,109.52,0);
INSERT INTO "area" VALUES('EPSG','1303','South America - Tierra del Fuego','Argentina and Chile - Tierra del Fuego, onshore.',-55.96,-51.99,-74.83,-63.73,0);
INSERT INTO "area" VALUES('EPSG','1302','Asia - Cambodia and Vietnam - mainland','Cambodia - mainland onshore; Vietnam - mainland onshore.',8.33,23.4,102.14,109.53,0);
INSERT INTO "area" VALUES('EPSG','1303','South America - Tierra del Fuego','Chile - Tierra del Fuego, onshore; Argentina - Tierra del Fuego, onshore and offshore Atlantic west of 66°W.',-55.96,-51.65,-74.83,-63.73,0);
INSERT INTO "area" VALUES('EPSG','1304','Asia - Myanmar and Thailand onshore','Myanmar (Burma) - onshore; Thailand - onshore.',5.63,28.55,92.2,105.64,0);
INSERT INTO "area" VALUES('EPSG','1305','Europe - Ireland (Republic and Ulster) - onshore','Ireland - onshore. United Kingdom (UK) - Northern Ireland (Ulster) - onshore.',51.39,55.43,-10.56,-5.34,0);
INSERT INTO "area" VALUES('EPSG','1306','Europe - Czechoslovakia','Czechia; Slovakia.',47.73,51.06,12.09,22.56,0);
@@ -428,8 +428,8 @@ INSERT INTO "area" VALUES('EPSG','1448','Canada - 72°W to 66°W, south of 62°N
INSERT INTO "area" VALUES('EPSG','1449','Canada - 66°W to 60°W, south of 60°N','Canada south of 60°N and between 66°W and 60°W - New Brunswick (NB), Labrador, Nova Scotia (NS), Prince Edward Island (PEI), Quebec.',43.2,60.0,-66.0,-60.0,1);
INSERT INTO "area" VALUES('EPSG','1450','Cote d''Ivoire (Ivory Coast) - east of 6°W','Côte d''Ivoire (Ivory Coast) east of 6°W.',4.92,10.46,-6.0,-2.48,0);
INSERT INTO "area" VALUES('EPSG','1451','Cote d''Ivoire (Ivory Coast) - west of 6°W','Côte d''Ivoire (Ivory Coast) west of 6°W.',4.29,10.74,-8.61,-6.0,0);
INSERT INTO "area" VALUES('EPSG','1452','Vietnam - west of 108°E onshore','Vietnam - onshore west of 108°E.',8.5,23.33,102.14,108.0,0);
INSERT INTO "area" VALUES('EPSG','1453','Vietnam - east of 108°E onshore','Vietnam - onshore east of 108°E.',10.42,21.56,108.0,109.52,0);
INSERT INTO "area" VALUES('EPSG','1452','Vietnam - west of 108°E onshore','Vietnam - onshore west of 108°E.',8.33,23.4,102.14,108.0,0);
INSERT INTO "area" VALUES('EPSG','1453','Vietnam - east of 108°E onshore','Vietnam - onshore east of 108°E.',10.43,21.56,108.0,109.53,0);
INSERT INTO "area" VALUES('EPSG','1454','Namibia - Walvis Bay','Namibia - Walvis Bay.',-23.15,-22.68,14.35,14.6,0);
INSERT INTO "area" VALUES('EPSG','1455','South Africa - west of 18°E','South Africa - onshore west of 18°E.',-33.1,-28.03,16.45,18.0,0);
INSERT INTO "area" VALUES('EPSG','1456','South Africa - 18°E to 20°E','South Africa - onshore between 18°E and 20°E.',-34.88,-28.38,17.99,20.0,0);
@@ -459,8 +459,8 @@ INSERT INTO "area" VALUES('EPSG','1479','Libya - west of 12°E onshore','Libya -
INSERT INTO "area" VALUES('EPSG','1480','Libya - 12°E to 18°E onshore','Libya - onshore between 12°E and 18°E.',22.51,33.06,12.0,18.01,0);
INSERT INTO "area" VALUES('EPSG','1481','Libya - 18°E to 24°E onshore','Libya - onshore between 18°E and 24°E.',19.5,33.0,17.99,24.0,0);
INSERT INTO "area" VALUES('EPSG','1482','Libya - west of 15°E onshore','Libya - onshore west of 15°E.',22.61,33.23,9.31,15.0,0);
INSERT INTO "area" VALUES('EPSG','1483','Argentina - Neuquen province east of 70.5°W','Argentina - Neuquen province east of 70°30''W.',-40.54,-36.14,-70.51,-68.01,0);
INSERT INTO "area" VALUES('EPSG','1484','Argentina - Comodoro Rivadavia - west of 67.5°W','Argentina - Comodoro Rivadavia area west of 67°30''W.',-46.7,-45.19,-69.5,-67.5,0);
INSERT INTO "area" VALUES('EPSG','1483','Argentina - Mendoza and Neuquen 70.5°W to 67.5°W','Argentina – Mendoza and Neuquen provinces between 70°30''W and 67°30''W - Neuquen and Cuyo basins.',-43.41,-31.91,-70.51,-67.49,0);
INSERT INTO "area" VALUES('EPSG','1484','Argentina - 42.5°S to 50.3°S and 70.5°W to 67.5°W','Argentina - Chibut province between 70°30''W and 67°30''W and south of approximately 42°30''S and Santa Cruz province between 70°30''W and 67°30''W and north of approximately 50°20''S.',-50.34,-42.49,-70.5,-67.49,0);
INSERT INTO "area" VALUES('EPSG','1485','Argentina - Tierra del Fuego onshore west of 67.5°W','Argentina - Tierra del Fuego onshore west of 67°30''W.',-54.9,-52.59,-68.64,-67.5,0);
INSERT INTO "area" VALUES('EPSG','1486','Argentina - Tierra del Fuego offshore','Argentina - Tierra del Fuego offshore Atlantic.',-54.93,-51.36,-68.62,-61.49,0);
INSERT INTO "area" VALUES('EPSG','1487','Cuba - onshore north of 21°30''N','Cuba - onshore north of 21°30''N but also including all of Isla de la Juventud.',21.38,23.25,-85.01,-76.91,0);
@@ -470,7 +470,7 @@ INSERT INTO "area" VALUES('EPSG','1490','Yemen - 42°E to 48°E','Yemen - betwee
INSERT INTO "area" VALUES('EPSG','1491','Yemen - 48°E to 54°E','Yemen - between 48°E and 54°E, onshore and offshore.',9.45,19.0,48.0,54.0,0);
INSERT INTO "area" VALUES('EPSG','1492','Yemen - South Yemen - mainland west of 48°E','Yemen - South Yemen onshore mainland west of 48°E.',12.54,17.44,43.37,48.0,0);
INSERT INTO "area" VALUES('EPSG','1493','Yemen - South Yemen - mainland east of 48°E','Yemen - South Yemen onshore mainland east of 48°E.',13.94,19.0,48.0,53.14,0);
INSERT INTO "area" VALUES('EPSG','1494','Vietnam - onshore Vung Tau area','Vietnam - onshore Vung Tau area.',9.02,11.03,105.49,107.59,0);
INSERT INTO "area" VALUES('EPSG','1494','Vietnam - onshore Vung Tau area','Vietnam - onshore Vung Tau area.',9.03,11.04,105.49,107.58,0);
INSERT INTO "area" VALUES('EPSG','1495','Vietnam - offshore Cuu Long basin','Vietnam - offshore - Cuu Long basin and northwestern part of Nam Con Son basin.',7.99,11.15,106.54,110.0,0);
INSERT INTO "area" VALUES('EPSG','1496','Korea, Republic of (South Korea) - east of 128°E onshore','Republic of Korea (South Korea) - onshore east of 128°E.',34.49,38.64,128.0,129.65,0);
INSERT INTO "area" VALUES('EPSG','1497','Korea, Republic of (South Korea) - 126°E to 128°E onshore','Republic of Korea (South Korea) - onshore between 126°E and 128°E.',33.14,38.33,126.0,128.0,0);
@@ -514,11 +514,11 @@ INSERT INTO "area" VALUES('EPSG','1534','Canada - Nova Scotia - east of 63°W','
INSERT INTO "area" VALUES('EPSG','1535','Canada - Nova Scotia - west of 63°W','Canada - Nova Scotia - west of 63°W.',43.41,46.02,-66.28,-63.0,0);
INSERT INTO "area" VALUES('EPSG','1536','Finland - 19.5°E to 22.5°E onshore','Finland - onshore between 19°30''E and 22°30''E.',59.76,69.33,19.5,22.5,0);
INSERT INTO "area" VALUES('EPSG','1537','Finland - 22.5°E to 25.5°E onshore','Finland - onshore between 22°30''E and 25°30''E.',59.75,68.9,22.5,25.5,0);
INSERT INTO "area" VALUES('EPSG','1538','Finland - 25.5°E to 28.5°E onshore. Also all country.','Finland - onshore between 25°30''E and 28°30''E for Basic Coordinate System and all onshore Finland for Uniform Coordinate System.',59.75,70.09,19.24,31.59,0);
INSERT INTO "area" VALUES('EPSG','1538','Finland - 25.5°E to 28.5°E onshore.','Finland - onshore between 25°30''E and 28°30''E for Basic Coordinate System and all onshore Finland for Uniform Coordinate System.',60.18,70.09,25.5,28.51,0);
INSERT INTO "area" VALUES('EPSG','1539','Finland - 28.5°E to 31.5°E','Finland - between 28°30''E and 31°30''E.',60.94,69.81,28.5,31.5,0);
INSERT INTO "area" VALUES('EPSG','1540','Mozambique - onshore west of 36°E','Mozambique - onshore west of 36°E.',-26.87,-11.41,30.21,36.0,0);
INSERT INTO "area" VALUES('EPSG','1541','Mozambique - onshore east of 36°E','Mozambique - onshore east of 36°E.',-18.98,-10.42,35.99,40.9,0);
INSERT INTO "area" VALUES('EPSG','1542','Asia - Cambodia and Vietnam - west of 108°E','Cambodia; Vietnam west of 108°E.',8.5,23.33,102.14,108.0,0);
INSERT INTO "area" VALUES('EPSG','1542','Asia - Cambodia and Vietnam - west of 108°E','Cambodia; Vietnam west of 108°E.',8.33,23.4,102.14,108.0,0);
INSERT INTO "area" VALUES('EPSG','1543','Austria - Styria','Austria - Styria.',46.64,47.84,13.58,16.17,0);
INSERT INTO "area" VALUES('EPSG','1544','Oman - onshore west of 54°E','Oman - onshore west of 54°E.',16.59,19.67,51.99,54.0,0);
INSERT INTO "area" VALUES('EPSG','1545','Oman - onshore east of 54°E','Oman - onshore east of 54°E. Includes Musandam and the Kuria Muria (Al Hallaniyah) islands.',16.89,26.58,54.0,59.91,0);
@@ -611,7 +611,7 @@ INSERT INTO "area" VALUES('EPSG','1631','Europe - 18°W to 12°W and ED50 by cou
INSERT INTO "area" VALUES('EPSG','1632','Europe - 12°W to 6°W and ED50 by country','Europe - between 12°W and 6°W - Faroe Islands - onshore; Spain - mainland onshore; Ireland offshore.',36.13,62.41,-12.0,-6.0,0);
INSERT INTO "area" VALUES('EPSG','1633','Europe - 6°W to 0°W and ED50 by country','Europe - between 6°W and 0°W - Channel Islands (Jersey, Guernsey); France offshore; Gibraltar; Ireland offshore; Norway including Svalbard - offshore; Spain - onshore; United Kingdom - UKCS offshore.',35.26,80.53,-6.0,0.0,0);
INSERT INTO "area" VALUES('EPSG','1634','Europe - 0°E to 6°E and ED50 by country','Europe - between 0°E and 6°E - Andorra; Denmark (North Sea); Germany offshore; Netherlands offshore; Norway including Svalbard - onshore and offshore; Spain - onshore (mainland and Balearic Islands); United Kingdom (UKCS) offshore.',38.56,82.41,0.0,6.01,0);
INSERT INTO "area" VALUES('EPSG','1635','Europe - 6°E to 12°E and ED50 by country','Europe - between 6°E and 12°E - Denmark - onshore and offshore; France - offshore; Germany offshore; Italy - onshore and offshore; Netherlands offshore; Norway including Svalbard - onshore and offshore.',36.53,83.92,5.99,12.0,0);
INSERT INTO "area" VALUES('EPSG','1635','Europe - 6°E to 12°E and ED50 by country','Europe - between 6°E and 12°E - Denmark - onshore and offshore; France - offshore; Germany offshore; Italy - onshore and offshore; Netherlands offshore; Norway including Svalbard - onshore and offshore.',36.53,83.92,5.99,12.01,0);
INSERT INTO "area" VALUES('EPSG','1636','Europe - 12°E to 18°E and ED50 by country','Europe - between 12°E and 18°E onshore and offshore - Denmark (including Bornholm); Italy including San Marino and Vatican City State; Malta; Norway including Svalbard.',34.49,84.0,12.0,18.0,0);
INSERT INTO "area" VALUES('EPSG','1637','Europe - 18°E to 24°E and ED50 by country','Europe - between 18°E and 24°E - Greece - offshore; Italy - onshore and offshore; Norway including Svalbard - onshore and offshore.',33.59,84.0,18.0,24.0,0);
INSERT INTO "area" VALUES('EPSG','1638','Europe - 24°E to 30°E and ED50 by country','Europe - between 24°E and 30°E - Greece - offshore; Norway including Svalbard - onshore and offshore; Turkey - onshore and offshore. Egypt - Western Desert.',25.71,84.01,24.0,30.0,0);
@@ -709,7 +709,7 @@ INSERT INTO "area" VALUES('EPSG','1729','Algeria - 31°30''N to 34°39''N','Alge
INSERT INTO "area" VALUES('EPSG','1730','North America - NAVD88','North America: Canada - Alberta; British Columbia (BC); Manitoba; New Brunswick (NB); Newfoundland and Labrador; Northwest Territories (NWT); Nova Scotia (NS); Nunavut; Ontario; Prince Edward Island (PEI); Quebec; Saskatchewan; Yukon. United States (USA) - Alabama; Alaska; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming.',25.0,58.0,-168.0,-52.0,1);
INSERT INTO "area" VALUES('EPSG','1731','France - mainland north of 48.15°N','France mainland onshore north of 53.5 grads North (48°09''N).',48.14,51.14,-4.87,8.23,0);
INSERT INTO "area" VALUES('EPSG','1732','France - mainland 45.45°N to 48.15°N','France mainland onshore between 50.5 grads and 53.5 grads North (45°27''N to 48°09''N).',45.44,48.15,-4.8,7.63,0);
INSERT INTO "area" VALUES('EPSG','1733','France - mainland south of 45.45°N','France - mainland onshore south of 50.5 grads North (45°27''N).',42.33,45.45,-1.79,7.71,0);
INSERT INTO "area" VALUES('EPSG','1733','France - mainland south of 45.45°N','France - mainland onshore south of 50.5 grads North (45°27''N).',42.33,45.46,-1.79,7.71,0);
INSERT INTO "area" VALUES('EPSG','1734','France - mainland 45.45°N to 48.15°N. Also all mainland.','France mainland onshore between 50.5 grads and 53.5 grads North (45°27''N to 48°09''N). Also used over all onshore mainland France.',42.33,51.14,-4.87,8.23,0);
INSERT INTO "area" VALUES('EPSG','1735','Algeria - west of 6°W','Algeria - west of 6°W (of Greenwich).',25.73,29.85,-8.67,-6.0,0);
INSERT INTO "area" VALUES('EPSG','1736','Algeria - 6°W to 0°W onshore','Algeria - onshore between 6°W and 0°W (of Greenwich).',21.82,35.96,-6.0,0.0,0);
@@ -1301,7 +1301,7 @@ INSERT INTO "area" VALUES('EPSG','2321','Angola - offshore blocks 1 and 16','Ang
INSERT INTO "area" VALUES('EPSG','2322','Angola - offshore blocks 3 7 15 and 17','Angola - offshore blocks 3, 7,15 and 17.',-10.09,-6.03,10.83,13.39,0);
INSERT INTO "area" VALUES('EPSG','2323','Angola - offshore blocks 1 16 and 18','Angola - offshore blocks 1, 16 and 18.',-8.34,-6.03,11.08,12.75,0);
INSERT INTO "area" VALUES('EPSG','2324','Angola - offshore blocks 2 3 17-18 and 31-33','Angola - offshore blocks 2, 3, 17, 18, 31, 32 and 33.',-8.59,-6.01,10.41,12.84,0);
INSERT INTO "area" VALUES('EPSG','2325','Argentina - Neuquen province Chos Malal area','Argentina - Neuquen province - Chos Malal area.',-37.5,-36.14,-70.5,-70.03,0);
INSERT INTO "area" VALUES('EPSG','2325','Argentina - Neuquen province Auca Mahuida area','Argentina - Neuquen province - Auca Mahuida area.',-38.75,-37.5,-69.5,-68.25,0);
INSERT INTO "area" VALUES('EPSG','2326','Germany - West Germany all states','Germany - states of former West Germany onshore - Baden-Wurtemberg, Bayern, Bremen, Hamburg, Hessen, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Schleswig-Holstein.',47.27,55.09,5.87,13.84,0);
INSERT INTO "area" VALUES('EPSG','2327','Syria - Al Whaleed area','Syria - Al Whaleed area',35.33,35.9,39.15,40.41,0);
INSERT INTO "area" VALUES('EPSG','2328','Syria - Shaddadeh area','Syria - Shaddadeh area (36°N, 41°E)',35.79,36.5,40.5,41.39,0);
@@ -1335,8 +1335,8 @@ INSERT INTO "area" VALUES('EPSG','2355','Falkland Islands - East Falkland Island
INSERT INTO "area" VALUES('EPSG','2356','Ecuador - Galapagos onshore','Ecuador - Baltra; Galapagos - onshore.',-1.41,0.18,-91.72,-89.19,0);
INSERT INTO "area" VALUES('EPSG','2357','Argentina - Tierra del Fuego onshore','Argentina - Tierra del Fuego onshore.',-55.11,-52.59,-68.64,-63.73,0);
INSERT INTO "area" VALUES('EPSG','2358','Thailand - Bongkot field','Thailand - Bongkot field.',6.74,8.16,102.16,103.05,0);
INSERT INTO "area" VALUES('EPSG','2359','Vietnam - 14°N to 18°N onshore','Vietnam - onshore between 14°N and 18°N.',14.0,18.0,105.61,109.32,0);
INSERT INTO "area" VALUES('EPSG','2360','Vietnam - Con Son Island','Vietnam - Con Son Island.',8.58,8.83,106.49,106.79,0);
INSERT INTO "area" VALUES('EPSG','2359','Vietnam - 14°N to 18°N onshore','Vietnam - onshore between 14°N and 18°N.',14.0,18.01,105.61,109.36,0);
INSERT INTO "area" VALUES('EPSG','2360','Vietnam - Con Son Island','Vietnam - Con Son Island.',8.57,8.83,106.48,106.8,0);
INSERT INTO "area" VALUES('EPSG','2361','Myanmar (Burma) - Moattama area','Myanmar (Burma) - Moattama area.',9.48,17.87,93.94,99.66,0);
INSERT INTO "area" VALUES('EPSG','2362','Iran - Kangan district','Iran - Kangan district.',27.3,28.2,51.8,53.01,0);
INSERT INTO "area" VALUES('EPSG','2363','Venezuela - east','Venezuela - east - Delta Amacuro; Anzoategui; Bolivar; Monagas; Sucre states.',3.56,10.8,-67.49,-59.8,0);
@@ -1508,8 +1508,8 @@ INSERT INTO "area" VALUES('EPSG','2528','USA - Texas - SPCS83 - S','United State
INSERT INTO "area" VALUES('EPSG','2529','USA - Louisiana - SPCS83 - S','United States (USA) - Louisiana - counties of Acadia; Allen; Ascension; Assumption; Beauregard; Calcasieu; Cameron; East Baton Rouge; East Feliciana; Evangeline; Iberia; Iberville; Jefferson; Jefferson Davis; Lafayette; LaFourche; Livingston; Orleans; Plaquemines; Pointe Coupee; St Bernard; St Charles; St Helena; St James; St John the Baptist; St Landry; St Martin; St Mary; St Tammany; Tangipahoa; Terrebonne; Vermilion; Washington; West Baton Rouge; West Feliciana.',28.85,31.07,-93.94,-88.75,0);
INSERT INTO "area" VALUES('EPSG','2530','UK - Northern Ireland - onshore','United Kingdom (UK) - Northern Ireland (Ulster) - onshore.',53.96,55.36,-8.18,-5.34,0);
INSERT INTO "area" VALUES('EPSG','2531','Denmark - onshore Jutland and Funen','Denmark - Jutland and Funen - onshore.',54.67,57.8,8.0,11.29,0);
INSERT INTO "area" VALUES('EPSG','2532','Denmark - onshore Zealand and Lolland','Denmark - Zealand and Lolland (onshore).',54.51,56.18,10.79,12.69,0);
INSERT INTO "area" VALUES('EPSG','2533','Denmark - onshore Bornholm','Denmark - Bornholm onshore.',54.94,55.36,14.59,15.24,0);
INSERT INTO "area" VALUES('EPSG','2532','Denmark - onshore Zealand and Lolland','Denmark - Zealand and Lolland (onshore).',54.51,56.79,10.79,12.69,0);
INSERT INTO "area" VALUES('EPSG','2533','Denmark - onshore Bornholm','Denmark - Bornholm (including Ertholmene) onshore.',54.94,55.38,14.59,15.25,0);
INSERT INTO "area" VALUES('EPSG','2534','World - N hemisphere - 3-degree CM 027°E','Between 25°30''E and 28°30''E, northern hemisphere.',0.0,84.0,25.5,28.5,0);
INSERT INTO "area" VALUES('EPSG','2535','World - N hemisphere - 3-degree CM 030°E','Between 28°30''E and 31°30''E, northern hemisphere.',0.0,84.0,28.5,31.5,0);
INSERT INTO "area" VALUES('EPSG','2536','World - N hemisphere - 3-degree CM 033°E','Between 31°30''E and 34°30''E, northern hemisphere.',0.0,84.0,31.5,34.5,0);
@@ -1697,8 +1697,8 @@ INSERT INTO "area" VALUES('EPSG','2717','China - 91.5°E to 94.5°E','China - be
INSERT INTO "area" VALUES('EPSG','2718','China - 94.5°E to 97.5°E','China - between 94°30''E and 97°30''E.',28.23,44.5,94.5,97.51,0);
INSERT INTO "area" VALUES('EPSG','2719','China - 97.5°E to 100.5°E','China - between 97°30''E and 100°30''E.',21.43,42.76,97.5,100.5,0);
INSERT INTO "area" VALUES('EPSG','2720','China - 100.5°E to 103.5°E','China - between 100°30''E and 103°30''E.',21.13,42.69,100.5,103.5,0);
INSERT INTO "area" VALUES('EPSG','2721','China - 103.5°E to 106.5°E','China - between 103°30''E and 106°30''E.',22.5,42.21,103.5,106.5,0);
INSERT INTO "area" VALUES('EPSG','2722','China - 106.5°E to 109.5°E onshore','China - onshore between 106°30''E and 109°30''E.',18.19,42.47,106.5,109.5,0);
INSERT INTO "area" VALUES('EPSG','2721','China - 103.5°E to 106.5°E','China - between 103°30''E and 106°30''E.',22.5,42.21,103.5,106.51,0);
INSERT INTO "area" VALUES('EPSG','2722','China - 106.5°E to 109.5°E onshore','China - onshore between 106°30''E and 109°30''E.',18.19,42.47,106.5,109.51,0);
INSERT INTO "area" VALUES('EPSG','2723','China - 109.5°E to 112.5°E onshore','China - onshore between 109°30''E and 112°30''E.',18.11,45.11,109.5,112.5,0);
INSERT INTO "area" VALUES('EPSG','2724','China - 112.5°E to 115.5°E onshore','China - onshore between 112°30''E and 115°30''E.',21.52,45.45,112.5,115.5,0);
INSERT INTO "area" VALUES('EPSG','2725','China - 115.5°E to 118.5°E onshore','China - onshore between 115°30''E and 118°30''E.',22.6,49.88,115.5,118.5,0);
@@ -2201,7 +2201,7 @@ INSERT INTO "area" VALUES('EPSG','3221','Bermuda - onshore','Bermuda - onshore.'
INSERT INTO "area" VALUES('EPSG','3222','Bouvet Island - onshore','Bouvet Island - onshore.',-54.52,-54.33,3.29,3.54,0);
INSERT INTO "area" VALUES('EPSG','3223','Brazil - onshore','Brazil - onshore.',-33.78,5.28,-74.01,-34.74,0);
INSERT INTO "area" VALUES('EPSG','3224','Bulgaria - onshore','Bulgaria - onshore.',41.24,44.23,22.36,28.68,0);
INSERT INTO "area" VALUES('EPSG','3225','Cambodia - onshore','Cambodia - onshore.',10.39,14.71,102.34,107.64,0);
INSERT INTO "area" VALUES('EPSG','3225','Cambodia - onshore','Cambodia - onshore.',10.39,14.73,102.34,107.64,0);
INSERT INTO "area" VALUES('EPSG','3226','Cameroon - onshore','Cameroon - onshore.',1.65,13.09,8.45,16.21,0);
INSERT INTO "area" VALUES('EPSG','3227','Chile - onshore north of 45°S','Chile - onshore north of 45°S.',-45.0,-17.5,-75.22,-67.0,0);
INSERT INTO "area" VALUES('EPSG','3228','China - onshore','China - onshore.',18.11,53.56,73.62,134.77,0);
@@ -2213,7 +2213,7 @@ INSERT INTO "area" VALUES('EPSG','3233','Cote d''Ivoire (Ivory Coast) - onshore'
INSERT INTO "area" VALUES('EPSG','3234','Croatia - onshore','Croatia - onshore.',42.34,46.54,13.43,19.43,0);
INSERT INTO "area" VALUES('EPSG','3235','Cuba - onshore','Cuba - onshore.',19.77,23.25,-85.01,-74.07,0);
INSERT INTO "area" VALUES('EPSG','3236','Cyprus - onshore','Cyprus - onshore.',34.59,35.74,32.2,34.65,0);
INSERT INTO "area" VALUES('EPSG','3237','Denmark - onshore','Denmark - onshore.',54.51,57.8,8.0,15.24,0);
INSERT INTO "area" VALUES('EPSG','3237','Denmark - onshore','Denmark - onshore.',54.51,57.8,8.0,15.25,0);
INSERT INTO "area" VALUES('EPSG','3238','Djibouti - onshore','Djibouti - onshore.',10.94,12.72,41.75,43.48,0);
INSERT INTO "area" VALUES('EPSG','3239','Dominica - onshore','Dominica - onshore.',15.14,15.69,-61.55,-61.2,0);
INSERT INTO "area" VALUES('EPSG','3240','Dominican Republic - onshore','Dominican Republic - onshore.',17.55,19.99,-72.01,-68.27,0);
@@ -2304,7 +2304,7 @@ INSERT INTO "area" VALUES('EPSG','3324','Ukraine - onshore','Ukraine - onshore.'
INSERT INTO "area" VALUES('EPSG','3325','UAE - onshore','United Arab Emirates (UAE) - onshore. Abu Dhabi, Dubai, Sharjah, Umm al Qaywayn, Al Fujairah, Ras al Khaymah.',22.63,26.1,51.56,56.44,0);
INSERT INTO "area" VALUES('EPSG','3326','Uruguay - onshore','Uruguay - onshore.',-35.0,-30.09,-58.49,-53.09,0);
INSERT INTO "area" VALUES('EPSG','3327','Venezuela - onshore','Venezuela - onshore.',0.64,12.25,-73.38,-59.8,0);
INSERT INTO "area" VALUES('EPSG','3328','Vietnam - onshore','Vietnam - onshore.',8.5,23.33,102.14,109.52,0);
INSERT INTO "area" VALUES('EPSG','3328','Vietnam - onshore','Vietnam - onshore.',8.33,23.4,102.14,109.53,0);
INSERT INTO "area" VALUES('EPSG','3329','Virgin Islands, British - onshore','British Virgin Islands - onshore - Anegada, Jost Van Dyke, Tortola, and Virgin Gorda.',18.28,18.78,-64.88,-64.25,0);
INSERT INTO "area" VALUES('EPSG','3330','Virgin Islands, US - onshore','US Virgin Islands - onshore - St Croix, St John, and St Thomas.',17.62,18.44,-65.09,-64.51,0);
INSERT INTO "area" VALUES('EPSG','3331','Western Sahara - onshore','Western Sahara - onshore.',20.71,27.67,-17.16,-8.66,0);
@@ -2448,7 +2448,7 @@ INSERT INTO "area" VALUES('EPSG','3468','North America - Great Lakes basin and S
INSERT INTO "area" VALUES('EPSG','3469','China - offshore - Yellow Sea','China - offshore - Huang Hai (Yellow Sea).',31.23,37.4,119.23,125.06,0);
INSERT INTO "area" VALUES('EPSG','3470','China - offshore - Pearl River basin','China - offshore South China Sea - Pearl River basin.',18.31,22.89,110.13,116.76,0);
INSERT INTO "area" VALUES('EPSG','3471','Denmark - onshore west of 12°E','Denmark - onshore west of 12°E - Zealand, Jutland, Fuen and Lolland.',54.51,57.8,8.0,12.0,0);
INSERT INTO "area" VALUES('EPSG','3472','Denmark - onshore east of 12°E','Denmark - onshore east of 12°E - Zealand and Falster, Bornholm.',54.51,56.18,12.0,15.24,0);
INSERT INTO "area" VALUES('EPSG','3472','Denmark - onshore east of 12°E','Denmark - onshore east of 12°E - Zealand and Falster, Bornholm.',54.51,56.18,12.0,15.25,0);
INSERT INTO "area" VALUES('EPSG','3473','World - south of 40°S','Southern hemisphere - south of 40°S including Antarctica.',-90.0,-40.0,-180.0,180.0,1);
INSERT INTO "area" VALUES('EPSG','3474','World - south of 0°N','Southern hemisphere.',-90.0,0.0,-180.0,180.0,0);
INSERT INTO "area" VALUES('EPSG','3475','World - north of 0°N','Northern hemisphere.',0.0,90.0,-180.0,180.0,0);
@@ -2522,8 +2522,8 @@ INSERT INTO "area" VALUES('EPSG','3542','Canada - Alberta - 115.5°W to 112.5°W
INSERT INTO "area" VALUES('EPSG','3543','Canada - Alberta - east of 112.5°W','Canada - Alberta - east of 112°30''W.',48.99,60.0,-112.5,-109.98,0);
INSERT INTO "area" VALUES('EPSG','3544','World - 85°S to 85°N','World between 85.06°S and 85.06°N.',-85.06,85.06,-180.0,180.0,0);
INSERT INTO "area" VALUES('EPSG','3545','France - mainland south of 43°N and Corsica','France onshore - mainland south of 43°N and Corsica.',41.31,43.07,-1.06,9.63,0);
INSERT INTO "area" VALUES('EPSG','3546','France - mainland south of 44°N','France - mainland onshore south of 44°N.',42.33,44.0,-1.79,7.65,0);
INSERT INTO "area" VALUES('EPSG','3547','France - mainland - 43°N to 45°N','France - mainland onshore between 43°N and 45°N.',43.0,45.0,-1.79,7.71,0);
INSERT INTO "area" VALUES('EPSG','3546','France - mainland south of 44°N','France - mainland onshore south of 44°N.',42.33,44.01,-1.79,7.65,0);
INSERT INTO "area" VALUES('EPSG','3547','France - mainland - 43°N to 45°N','France - mainland onshore between 43°N and 45°N.',42.92,45.0,-1.79,7.71,0);
INSERT INTO "area" VALUES('EPSG','3548','France - mainland - 44°N to 46°N','France - mainland onshore between 44°N and 46°N.',44.0,46.0,-1.46,7.71,0);
INSERT INTO "area" VALUES('EPSG','3549','France - mainland - 45°N to 47°N','France - mainland onshore between 45°N and 47°N.',45.0,47.0,-2.21,7.16,0);
INSERT INTO "area" VALUES('EPSG','3550','France - mainland - 46°N to 48°N','France - mainland onshore between 46°N and 48°N.',46.0,48.0,-4.77,7.63,0);
@@ -2642,7 +2642,7 @@ INSERT INTO "area" VALUES('EPSG','3662','Norway - onshore - 20ºE to 21ºE','Nor
INSERT INTO "area" VALUES('EPSG','3663','Norway - onshore - 21ºE to 22ºE','Norway - onshore - between 21ºE and 22ºE.',69.03,70.71,21.0,22.0,0);
INSERT INTO "area" VALUES('EPSG','3664','USA - CONUS and Alaska - onshore','United States (USA) - CONUS and Alaska - onshore - Alabama; Alaska mainland; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming.',24.41,71.4,-168.26,-66.91,0);
INSERT INTO "area" VALUES('EPSG','3665','Norway - onshore - 22ºE to 23ºE','Norway - onshore - between 22ºE and 23ºE.',68.69,70.81,22.0,23.0,0);
INSERT INTO "area" VALUES('EPSG','3666','Indonesia - Java and Java Sea','Indonesia - Java and Bali onshore, offshore southern Java Sea, Madura Strait and western Bali Sea.',-8.91,-4.07,105.06,117.01,0);
INSERT INTO "area" VALUES('EPSG','3666','Indonesia - Java, Java Sea and western Sumatra','Indonesia - Bali, Java and western Sumatra onshore, offshore southern Java Sea, Madura Strait and western Bali Sea.',-8.91,5.97,95.16,117.01,0);
INSERT INTO "area" VALUES('EPSG','3667','Norway - onshore - 23ºE to 24ºE','Norway - onshore - between 23ºE and 24ºE.',68.62,71.08,23.0,24.0,0);
INSERT INTO "area" VALUES('EPSG','3668','Norway - onshore - 24ºE to 25ºE','Norway - onshore - between 24ºE and 25ºE.',68.58,71.16,24.0,25.0,0);
INSERT INTO "area" VALUES('EPSG','3669','Norway - onshore - 25ºE to 26ºE','Norway - onshore - between 25ºE and 26ºE.',68.59,71.21,25.0,26.0,0);
@@ -2746,7 +2746,7 @@ INSERT INTO "area" VALUES('EPSG','3766','French Guiana - coastal area east of 54
INSERT INTO "area" VALUES('EPSG','3767','Ireland - onshore','Ireland - onshore.',51.39,55.43,-10.56,-5.93,0);
INSERT INTO "area" VALUES('EPSG','3768','New Zealand - North Island - Moturiki vcrs','New Zealand - North Island - Moturiki vertical CRS area.',-40.59,-37.52,174.57,177.26,0);
INSERT INTO "area" VALUES('EPSG','3769','New Zealand - North Island - Taranaki vcrs','New Zealand - North Island - Taranaki vertical CRS area.',-39.92,-38.41,173.68,174.95,0);
INSERT INTO "area" VALUES('EPSG','3770','Vietnam - DBSCL 02 and 03','Vietnam - Mekong delta blocks DBSCL 02 and 03.',9.34,11.03,104.25,107.11,0);
INSERT INTO "area" VALUES('EPSG','3770','Vietnam - DBSCL 02 and 03','Vietnam - Mekong delta blocks DBSCL 02 and 03.',9.35,11.04,104.24,107.11,0);
INSERT INTO "area" VALUES('EPSG','3771','New Zealand - North Island - Gisborne vcrs','New Zealand - North Island - Gisborne vertical CRS area.',-39.04,-37.49,176.41,178.63,0);
INSERT INTO "area" VALUES('EPSG','3772','New Zealand - North Island - Hawkes Bay mc Napier vcrs','New Zealand - North Island - Hawkes Bay meridional circuit and Napier vertical crs area.',-40.57,-38.87,175.8,178.07,0);
INSERT INTO "area" VALUES('EPSG','3773','New Zealand - North Island - Wellington vcrs','New Zealand - North Island - Wellington vertical CRS area.',-41.67,-40.12,174.52,176.56,0);
@@ -2983,7 +2983,7 @@ INSERT INTO "area" VALUES('EPSG','4003','Germany - East Germany - east of 13.5°
INSERT INTO "area" VALUES('EPSG','4004','Australia - Northern Territory mainland','Australia - Northern Territory mainland onshore.',-26.01,-10.92,128.99,138.0,0);
INSERT INTO "area" VALUES('EPSG','4005','Indonesia - Kalimantan W - coastal','Indonesia - west Kalimantan - onshore coastal area.',0.06,2.13,108.79,109.78,0);
INSERT INTO "area" VALUES('EPSG','4006','Yemen - west of 42°E','Yemen - west of 42°E, onshore and offshore.',14.73,16.36,41.08,42.0,0);
INSERT INTO "area" VALUES('EPSG','4007','Asia - Cambodia and Vietnam - onshore & Cuu Long basin','Cambodia - onshore; Vietnam - onshore and offshore Cuu Long basin.',7.99,23.33,102.14,110.0,0);
INSERT INTO "area" VALUES('EPSG','4007','Asia - Cambodia and Vietnam - onshore & Cuu Long basin','Cambodia - onshore; Vietnam - onshore and offshore Cuu Long basin.',7.99,23.4,102.14,110.0,0);
INSERT INTO "area" VALUES('EPSG','4008','Oman - mainland east of 54°E','Oman - mainland onshore east of 54°E.',16.89,26.42,54.0,59.91,0);
INSERT INTO "area" VALUES('EPSG','4009','Oman - mainland','Oman - mainland onshore.',16.59,26.42,51.99,59.91,0);
INSERT INTO "area" VALUES('EPSG','4010','Solomon Islands','Solomon Islands - onshore and offshore.',-16.13,-4.14,154.58,173.58,0);
@@ -2991,7 +2991,7 @@ INSERT INTO "area" VALUES('EPSG','4011','Tuvalu - onshore','Tuvalu - onshore.',-
INSERT INTO "area" VALUES('EPSG','4012','Congo DR (Zaire) - Bas Congo east of 15°E','The Democratic Republic of the Congo (Zaire) - Bas Congo east of 15°E.',-5.87,-4.42,14.99,16.28,0);
INSERT INTO "area" VALUES('EPSG','4013','Papua New Guinea - PFTB','Papua New Guinea - Papuan fold and thrust belt.',-8.28,-5.59,142.24,144.75,0);
INSERT INTO "area" VALUES('EPSG','4014','Australia - Western Australia mainland','Australia - Western Australia mainland.',-35.19,-13.67,112.85,129.01,0);
INSERT INTO "area" VALUES('EPSG','4015','Vietnam - mainland','Vietnam - mainland onshore.',8.5,23.33,102.14,109.52,0);
INSERT INTO "area" VALUES('EPSG','4015','Vietnam - mainland','Vietnam - mainland onshore.',8.33,23.4,102.14,109.53,0);
INSERT INTO "area" VALUES('EPSG','4016','South America - onshore north of 45°S','South America - onshore north of 45°S excluding Amazonia.',-45.0,12.52,-81.41,-34.74,0);
INSERT INTO "area" VALUES('EPSG','4017','Australia - SE Australia (ACT NSW)','Australia - Australian Capital Territory and New South Wales onshore.',-37.53,-28.15,140.99,153.69,0);
INSERT INTO "area" VALUES('EPSG','4018','Congo DR (Zaire) - south and 29°E to 31°E','The Democratic Republic of the Congo (Zaire) - south of a line through Bandundu, Seke and Pweto and east of 29°E.',-13.46,-12.15,29.0,29.81,0);
@@ -3169,7 +3169,7 @@ INSERT INTO "area" VALUES('EPSG','4189','Cocos (Keeling) Islands - west of 96°E
INSERT INTO "area" VALUES('EPSG','4190','Cocos (Keeling) Islands - east of 96°E','Cocos (Keeling) Islands - onshore and offshore east of 96°E.',-15.56,-8.47,96.0,100.34,0);
INSERT INTO "area" VALUES('EPSG','4191','Australasia - Australia and Christmas Island - west of 108°E','Australia - offshore west of 108°E. Christmas Island - onshore and offshore west of 108°E.',-34.68,-8.87,102.14,108.01,0);
INSERT INTO "area" VALUES('EPSG','4192','USA - Oregon - Bend-Klamath Falls','United States (USA) - Oregon - Bend-Klamath Falls area.',41.88,43.89,-122.45,-120.77,0);
INSERT INTO "area" VALUES('EPSG','4193','Vietnam - west of 103°30''E onshore','Vietnam - onshore west of 103°30''E.',9.23,22.8,102.14,103.51,0);
INSERT INTO "area" VALUES('EPSG','4193','Vietnam - west of 103°30''E onshore','Vietnam - onshore west of 103°30''E.',9.2,22.82,102.14,103.51,0);
INSERT INTO "area" VALUES('EPSG','4194','Japan onshore excluding northern main province','Japan - onshore, excluding northern prefectures of ''main province'' (see remarks).',20.37,45.54,122.83,154.05,0);
INSERT INTO "area" VALUES('EPSG','4195','USA - Oregon - Bend-Redmond-Prineville','United States (USA) - Oregon - Bend-Redmond-Prineville area.',43.76,44.98,-121.88,-119.79,0);
INSERT INTO "area" VALUES('EPSG','4196','Australia and Macquarie - 156°E to 162°E','Australia including Lord Howe Island and Macquarie Islands - onshore and offshore between 156°E and 162°E.',-60.56,-14.08,156.0,162.01,0);
@@ -3181,7 +3181,7 @@ INSERT INTO "area" VALUES('EPSG','4201','USA - Oregon - Gresham-Warm Springs','U
INSERT INTO "area" VALUES('EPSG','4202','USA - Oregon - Columbia River West','United States (USA) - Oregon - Columbia River area west of approximately 121°30''W.',45.17,46.56,-124.33,-121.47,0);
INSERT INTO "area" VALUES('EPSG','4203','USA - Oregon - Cottage Grove-Canyonville','United States (USA) - Oregon - Cottage Grove-Canyonville area.',42.82,43.88,-123.96,-122.4,0);
INSERT INTO "area" VALUES('EPSG','4204','USA - Oregon - Dufur-Madras','United States (USA) - Oregon - Dufur-Madras area.',44.63,45.55,-121.95,-120.46,0);
INSERT INTO "area" VALUES('EPSG','4205','[enter here applicable extent]','[enter here applicable extent]',89.99,90.0,179.99,180.0,0);
INSERT INTO "area" VALUES('EPSG','4205','enter here applicable extent','enter here applicable extent',89.99,90.0,179.99,180.0,0);
INSERT INTO "area" VALUES('EPSG','4206','USA - Oregon - La Grande','United States (USA) - Oregon - La Grande area.',45.13,45.8,-118.17,-117.14,0);
INSERT INTO "area" VALUES('EPSG','4207','USA - Oregon - Ontario','United States (USA) - Oregon - Ontario area.',43.41,44.65,-117.9,-116.7,0);
INSERT INTO "area" VALUES('EPSG','4208','USA - Oregon - Oregon Coast','United States (USA) - Oregon - coastal area.',41.89,46.4,-124.84,-123.35,0);
@@ -3191,9 +3191,9 @@ INSERT INTO "area" VALUES('EPSG','4211','USA - Oregon - Portland','United States
INSERT INTO "area" VALUES('EPSG','4212','USA - Oregon - Salem','United States (USA) - Oregon - Salem area.',44.32,45.3,-123.73,-121.89,0);
INSERT INTO "area" VALUES('EPSG','4213','USA - Oregon - Sweet Home-Sisters','United States (USA) - Oregon - Sweet Home-Santiam Pass-Sisters area.',44.1,44.66,-122.51,-121.69,0);
INSERT INTO "area" VALUES('EPSG','4214','Papua New Guinea - mainland onshore','Papua New Guinea - mainland onshore.',-10.76,-2.53,140.85,150.96,0);
INSERT INTO "area" VALUES('EPSG','4215','Vietnam - 103.5°E to 106.5°E onshore','Vietnam - between 103°30''E and 106°30''E, onshore.',8.5,23.33,103.5,106.51,0);
INSERT INTO "area" VALUES('EPSG','4215','Vietnam - 103.5°E to 106.5°E onshore','Vietnam - between 103°30''E and 106°30''E, onshore.',8.33,23.4,103.5,106.51,0);
INSERT INTO "area" VALUES('EPSG','4216','Papua New Guinea - North Fly','Papua New Guinea - North Fly area (between 5°04''S and 6°36''S and west of 141°32''E).',-6.6,-5.05,140.89,141.54,0);
INSERT INTO "area" VALUES('EPSG','4217','Vietnam - east of 106.5°E onshore','Vietnam - onshore east of 106°30''E.',8.58,22.94,106.5,109.52,0);
INSERT INTO "area" VALUES('EPSG','4217','Vietnam - east of 106.5°E onshore','Vietnam - onshore east of 106°30''E.',8.57,22.95,106.5,109.53,0);
INSERT INTO "area" VALUES('EPSG','4218','Vietnam - Quang Ninh; Da Nang, Quang Nam; Ba Ria-Vung Tau, Dong Nai, Lam Dong','Vietnam - Quang Ninh province; Da Nang municipality and Quang Nam province; Ba Ria-Vung Tau, Dong Nai and Lam Dong provinces.',8.57,21.67,106.43,108.76,0);
INSERT INTO "area" VALUES('EPSG','4219','USA - Iowa - Mason City','United States (USA) - Iowa - counties of Cerro Gordo; Chickasaw; Floyd; Hancock; Howard; Mitchell; Winnebago; Winneshiek; Worth.',42.9,43.51,-93.98,-91.6,0);
INSERT INTO "area" VALUES('EPSG','4220','Equatorial Guinea - Bioko','Equatorial Guinea - Bioko onshore.',3.14,3.82,8.37,9.02,0);
@@ -3496,10 +3496,10 @@ INSERT INTO "area" VALUES('EPSG','4516','USA - CONUS and GoM','United States (US
INSERT INTO "area" VALUES('EPSG','4517','Canada - NAD27','Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast.',40.04,83.17,-141.01,-47.74,0);
INSERT INTO "area" VALUES('EPSG','4518','Pacific - Guam and NMI east of 144°E','Guam and Northern Mariana Islands; onshore and offshore east of 144°E.',11.05,23.9,144.0,149.55,0);
INSERT INTO "area" VALUES('EPSG','4519','Algeria - 32°N to 34°39''N','Algeria - 35.6 grads to 38.5 grads North (32°N to 34°39''N).',31.99,34.66,-2.95,9.09,0);
INSERT INTO "area" VALUES('EPSG','4520','World centred on 90°W','World centred on the Americas.',-90.0,90.0,-180.0,180.0,0);
INSERT INTO "area" VALUES('EPSG','4520','World centred on 90°W','World centred on the Americas.',-90.0,90.0,90.01,89.99,0);
INSERT INTO "area" VALUES('EPSG','4521','Northern Mariana Islands - onshore','Northern Mariana Islands - onshore.',14.06,20.61,144.83,146.12,0);
INSERT INTO "area" VALUES('EPSG','4522','Finland - mainland south of 66°N','Finland - onshore mainland south of approximately 66°N.',59.75,66.73,20.95,31.59,0);
INSERT INTO "area" VALUES('EPSG','4523','World centred on 150°E','World centred on Asia-Pacific.',-90.0,90.0,-180.0,180.0,0);
INSERT INTO "area" VALUES('EPSG','4523','World centred on 150°E','World centred on Asia-Pacific.',-90.0,90.0,-29.99,-30.01,0);
INSERT INTO "area" VALUES('EPSG','4524','Saudi Arabia - west of 36°E','Saudi Arabia - onshore and offshore - west of 36°E.',24.92,29.38,34.44,36.01,0);
INSERT INTO "area" VALUES('EPSG','4525','Pacific - Guam and NMI - onshore','Guam - onshore. Northern Mariana Islands - onshore.',13.18,20.61,144.58,146.12,0);
INSERT INTO "area" VALUES('EPSG','4526','Saudi Arabia - 36°E to 42°E','Saudi Arabia - onshore and offshore - between 36°E and 42°E.',16.29,32.16,36.0,42.0,0);
@@ -3536,6 +3536,18 @@ INSERT INTO "area" VALUES('EPSG','4557','Vietnam - Kon Tum','Vietnam - Kon Tum p
INSERT INTO "area" VALUES('EPSG','4558','Vietnam - Quang Ngai','Vietnam - Quang Ngai province.',14.53,15.49,108.23,109.2,0);
INSERT INTO "area" VALUES('EPSG','4559','Vietnam - Binh Dinh, Khanh Hoa, Ninh Thuan','Vietnam - Binh Dinh, Khanh Hoa and Ninh Thuan provinces.',11.25,14.71,108.55,109.53,0);
INSERT INTO "area" VALUES('EPSG','4560','Vietnam - Binh Thuan, Dak Lak, Dak Nong, Gia Lai, Phu Yen','Vietnam - Binh Thuan, Dak Lak, Dak Nong, Gia Lai and Phu Yen provinces.',10.43,14.61,107.2,109.52,0);
INSERT INTO "area" VALUES('EPSG','4561','Argentina - Mendoza - Cuyo basin','Argentina - Mendoza province - Cuyo basin.',-36.37,-31.96,-69.4,-66.42,0);
INSERT INTO "area" VALUES('EPSG','4562','Argentina - Mendoza and Neuquen','Argentina - Mendoza province, Neuquen province, western La Pampa province and western Rio Negro province.',-43.41,-31.91,-72.14,-65.86,0);
INSERT INTO "area" VALUES('EPSG','4563','Argentina - 42.5°S to 50.3°S','Argentina - Chibut province south of approximately 42°30''S and Santa Cruz province north of approximately 50°20''S.',-50.34,-42.49,-73.59,-65.47,0);
INSERT INTO "area" VALUES('EPSG','4564','Argentina - 42.5°S to 50.3°S and west of 70.5°W','Argentina - Chibut province west of 70°30''W and south of approximately 44°55''S and Santa Cruz province west of 70°30''W and north of approximately 50°20''S.',-50.34,-44.94,-73.59,-70.5,0);
INSERT INTO "area" VALUES('EPSG','4565','Argentina - 42.5°S to 50.3°S and east of 67.5°W','Argentina - Chibut province east of 67°30''W and south of approximately 43°35''S and Santa Cruz province east of 67°30''W and north of approximately 49°23''S.',-49.05,-43.58,-67.5,-65.47,0);
INSERT INTO "area" VALUES('EPSG','4566','Europe - offshore North Sea - Germany and Netherlands east of 5°E','Germany - offshore North Sea. Netherlands - offshore east of 5E.',53.49,55.92,3.34,8.88,0);
INSERT INTO "area" VALUES('EPSG','4567','South Africa - mainland - onshore and offshore','South Africa - mainland - onshore and offshore.',-38.17,-22.13,13.33,36.54,0);
INSERT INTO "area" VALUES('EPSG','4568','South Africa - Prince Edward islands - onshore and offshore','South Africa - Marion Island and Prince Edward Island - onshore and offshore.',-50.32,-43.26,32.71,42.85,0);
INSERT INTO "area" VALUES('EPSG','4569','Argentina - south Santa Cruz','Argentina - Santa Cruz province south of approximately 50°20''S.',-52.43,-50.33,-73.28,-68.3,0);
INSERT INTO "area" VALUES('EPSG','4570','Argentina - south Santa Cruz west of 70.5°W','Argentina - Santa Cruz province south of approximately 50°20''S and west of 70°30''W.',-52.0,-50.33,-73.28,-70.5,0);
INSERT INTO "area" VALUES('EPSG','4571','Argentina - south Santa Cruz east of 70.5°W','Argentina - Santa Cruz province south of approximately 50°20''S and east of 70°30''W.',-52.43,-50.33,-70.5,-68.3,0);
INSERT INTO "area" VALUES('EPSG','4572','Argentina - 44°S to 47.5°S','Argentina - Chubut province south of approximately 44°S and Santa Cruz province north of approximately 47°30''S - Golfo San Jorge basin onshore and offshore.',-47.5,-43.99,-72.36,-63.24,0);
INSERT INTO "area" VALUES('EPSG','4573','Argentina - onshore','Argentina - onshore.',-55.11,-21.78,-73.59,-53.65,0);
INSERT INTO "area" VALUES('EPSG','4575','Denmark - onshore Jutland, Funen, Zealand and Lolland','Denmark - onshore Jutland, Funen, Zealand and Lolland.',54.51,57.8,8.0,12.69,0);
INSERT INTO "area" VALUES('EPSG','4580','Germany - Baden-Wurttemberg','Germany - Baden-Wurttemberg.',47.54,49.8,7.51,10.5,0);
+5 -5
View File
@@ -18,9 +18,9 @@ INSERT INTO "axis" VALUES('EPSG','1102','Westing','X','west','EPSG','1031',2,'EP
INSERT INTO "axis" VALUES('EPSG','1110','Plant East','x','east','EPSG','1032',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1111','Plant North','y','north','EPSG','1032',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1112','Gravity-related height','z','up','EPSG','1032',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1428','Bin grid I','I','J-axis plus 90°','EPSG','1033',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1428','Bin grid I','I','J-axis plus 90 degrees','EPSG','1033',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1429','Bin grid J','J','See associated operation','EPSG','1033',2,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1431','Bin grid I','I','J-axis minus 90°','EPSG','1034',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1431','Bin grid I','I','J-axis minus 90 degrees','EPSG','1034',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1432','Bin grid J','J','See associated operation','EPSG','1034',2,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1466','Easting','X','South along 180°E','EPSG','1035',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1467','Northing','Y','South along 90°W','EPSG','1035',2,'EPSG','9001');
@@ -255,9 +255,9 @@ 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','Geocentre > equator/0°E','EPSG','6500',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','116','Geocentric Y','Y','Geocentre > equator/90°E','EPSG','6500',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','117','Geocentric Z','Z','Geocentre > north pole','EPSG','6500',3,'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');
+108
View File
@@ -29,6 +29,114 @@ FOR EACH ROW BEGIN
WHERE (SELECT 1 FROM object_view LIMIT 1) = 0;
SELECT RAISE(ABORT, 'corrupt definition of authority_list')
WHERE (SELECT 1 FROM authority_list LIMIT 1) = 0;
-- 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, 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');
-- check coordinate_operation_view "foreign keys"
SELECT RAISE(ABORT, 'One coordinate_operation has a broken source_crs link')
WHERE EXISTS (SELECT * FROM coordinate_operation_view cov WHERE
cov.source_crs_auth_name || cov.source_crs_code NOT IN
(SELECT auth_name || code FROM crs_view));
SELECT RAISE(ABORT, 'One coordinate_operation has a broken target_crs link')
WHERE EXISTS (SELECT * FROM coordinate_operation_view cov WHERE
cov.target_crs_auth_name || cov.target_crs_code NOT IN
(SELECT auth_name || code FROM crs_view));
-- check that grids with NTv2 method are properly registered
SELECT RAISE(ABORT, 'One grid_transformation with NTv2 has not its source_crs in geodetic_crs table with type = ''geographic 2D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_name = 'NTv2' AND
g.source_crs_auth_name || g.source_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 2D'));
SELECT RAISE(ABORT, 'One grid_transformation with NTv2 has not its target_crs in geodetic_crs table with type = ''geographic 2D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_name = 'NTv2' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 2D'));
-- check that grids with HEIGHT_TO_GEOGRAPHIC3D method are properly registered
SELECT RAISE(ABORT, 'One grid_transformation with HEIGHT_TO_GEOGRAPHIC3D has not its source_crs in vertical_crs table')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_code = 'HEIGHT_TO_GEOGRAPHIC3D' 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 HEIGHT_TO_GEOGRAPHIC3D has not its target_crs in geodetic_crs table with type = ''geographic 3D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_code = 'HEIGHT_TO_GEOGRAPHIC3D' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 3D'));
-- check that grids with Geographic3D to GravityRelatedHeight method are properly registered
SELECT RAISE(ABORT, 'One grid_transformation with Geographic3D to GravityRelatedHeight has not its target_crs in vertical_crs table')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.deprecated = 0 AND
g.method_name LIKE 'Geographic3D to GravityRelatedHeight%' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM vertical_crs));
SELECT RAISE(ABORT, 'One grid_transformation with Geographic3D to GravityRelatedHeight has not its source_crs in geodetic_crs table with type = ''geographic 3D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.deprecated = 0 AND
g.method_name LIKE 'Geographic3D to GravityRelatedHeight%' AND
NOT (g.auth_name = 'EPSG' AND g.code IN (7648, 7649, 7650)) AND -- those are wrongly registered as they use a geocentric CRS. Reported to EPSG
g.source_crs_auth_name || g.source_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 3D'));
-- check that transformations intersect the area of use of their source/target CRS
-- EPSG, ESRI and IGNF have cases where this does not hold.
SELECT RAISE(ABORT, 'The area of use of at least one coordinate_operation does not intersect the one of its source CRS')
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, area va, area ca WHERE
v.deprecated = 0 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
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, area va, area ca WHERE
v.deprecated = 0 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
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')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID99');
SELECT RAISE(ABORT, 'missing GEOID03 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID03');
SELECT RAISE(ABORT, 'missing GEOID06 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID06');
SELECT RAISE(ABORT, 'missing GEOID09 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID09');
SELECT RAISE(ABORT, 'missing GEOID12A in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID12A');
SELECT RAISE(ABORT, 'missing GEOID12B in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID12B');
SELECT RAISE(ABORT, 'missing GEOID18 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID18');
-- check presence of au_ga_AUSGeoid98.tif
SELECT RAISE(ABORT, 'missing au_ga_AUSGeoid98.tif')
WHERE NOT EXISTS(SELECT 1 FROM grid_alternatives WHERE proj_grid_name = 'au_ga_AUSGeoid98.tif');
END;
INSERT INTO dummy DEFAULT VALUES;
DROP TRIGGER final_checks;
+212 -209
View File
@@ -1,211 +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)','','2m accuracy','EPSG','4805','EPSG','4326','EPSG','1037',NULL,'EPSG','3895','EPSG','1618',NULL,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,'EPSG','3913','EPSG','3962',NULL,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,'EPSG','1461','EPSG','1495',NULL,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,'EPSG','1672','EPSG','1311',NULL,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,'EPSG','5134','EPSG','5189',NULL,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,'EPSG','5134','EPSG','5191',NULL,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,'EPSG','1884','EPSG','4836',NULL,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,'EPSG','5238','EPSG','5227',NULL,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,'EPSG','1884','EPSG','5239',NULL,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,'EPSG','1756','EPSG','1988',NULL,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,'EPSG','6712','EPSG','6713',NULL,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,'EPSG','1241','EPSG','1496',NULL,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,'EPSG','1265','EPSG','6873',NULL,NULL,'OGP-Mdg',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','7811','NTF (Paris) to RGF93 (2)','Second step is an emulation using NTv2 method of geocentric Interpolation method described in tfm code 7810. 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,'EPSG','1763','EPSG','15958',NULL,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,'EPSG','7963','EPSG','7964',NULL,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,'EPSG','7963','EPSG','7966',NULL,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,'EPSG','7972','EPSG','7969',NULL,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,'EPSG','7972','EPSG','7970',NULL,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,'EPSG','7972','EPSG','7971',NULL,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,'EPSG','7982','EPSG','7977',NULL,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,'EPSG','7980','EPSG','7984',NULL,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,'EPSG','7980','EPSG','7984','EPSG','7985','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,'EPSG','1147','EPSG','1146',NULL,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','1763','EPSG','1193',NULL,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,'EPSG','1755','EPSG','1125',NULL,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','1262','EPSG','1169',NULL,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','1265','EPSG','1227',NULL,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','1355',NULL,'EPSG','1759','EPSG','1123',NULL,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','1273','EPSG','1149',NULL,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','1763','EPSG','1276',NULL,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','1763','EPSG','1277',NULL,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','1278','EPSG','1150',NULL,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','1279','EPSG','1150',NULL,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','1280','EPSG','1150',NULL,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','1437','EPSG','1149',NULL,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','1274','EPSG','1283',NULL,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','1266','EPSG','1294',NULL,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','1297','EPSG','1302',NULL,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','1298','EPSG','1302',NULL,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','1299','EPSG','1302',NULL,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','1300','EPSG','1302',NULL,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','1301','EPSG','1302',NULL,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','1309','EPSG','1149',NULL,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','1310','EPSG','1149',NULL,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','1312','EPSG','1188',NULL,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','1313','EPSG','1188',NULL,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,'EPSG','1757','EPSG','1306',NULL,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,'EPSG','8361','EPSG','8362',NULL,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','1454','EPSG','1188',NULL,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','1455','EPSG','1188',NULL,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','1456','EPSG','1188',NULL,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','1457','EPSG','1188',NULL,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','1451','EPSG','1188',NULL,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','1458','EPSG','1150',NULL,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','1459','EPSG','1150',NULL,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','1460','EPSG','1150',NULL,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','1461','EPSG','1188',NULL,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','1462','EPSG','1188',NULL,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','1463','EPSG','1188',NULL,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','1464','EPSG','1150',NULL,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','1472','EPSG','1473',NULL,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','1599','EPSG','1473',NULL,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,'EPSG','1600','EPSG','1473',NULL,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,'EPSG','1601','EPSG','1473',NULL,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,'EPSG','1602','EPSG','1473',NULL,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,'EPSG','8365','EPSG','8364',NULL,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,'EPSG','8364','EPSG','8367',NULL,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','1506','EPSG','1150',NULL,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','1507','EPSG','1150',NULL,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','1509','EPSG','1511',NULL,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,'EPSG','1241','EPSG','1474',NULL,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,'EPSG','1241','EPSG','1475',NULL,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,'EPSG','1241','EPSG','1476',NULL,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,'EPSG','1241','EPSG','1477',NULL,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,'EPSG','1241','EPSG','1478',NULL,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,'EPSG','1241','EPSG','1479',NULL,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,'EPSG','1241','EPSG','1480',NULL,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,'EPSG','1241','EPSG','1481',NULL,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,'EPSG','1241','EPSG','1482',NULL,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,'EPSG','1241','EPSG','1483',NULL,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,'EPSG','1241','EPSG','1484',NULL,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,'EPSG','1241','EPSG','1485',NULL,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,'EPSG','1241','EPSG','1486',NULL,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,'EPSG','1241','EPSG','1487',NULL,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,'EPSG','1241','EPSG','1488',NULL,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,'EPSG','1241','EPSG','1489',NULL,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,'EPSG','1241','EPSG','1490',NULL,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,'EPSG','1241','EPSG','1491',NULL,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,'EPSG','1241','EPSG','1492',NULL,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,'EPSG','1241','EPSG','1493',NULL,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,'EPSG','1241','EPSG','1494',NULL,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,'EPSG','1241','EPSG','1495',NULL,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,'EPSG','1747','EPSG','1496',NULL,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,'EPSG','1241','EPSG','1497',NULL,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,'EPSG','1241','EPSG','1498',NULL,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,'EPSG','1241','EPSG','1499',NULL,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,'EPSG','1241','EPSG','1500',NULL,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,'EPSG','1241','EPSG','1501',NULL,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,'EPSG','1241','EPSG','1502',NULL,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,'EPSG','1241','EPSG','1503',NULL,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,'EPSG','1241','EPSG','1515',NULL,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,'EPSG','1243','EPSG','1515',NULL,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,'EPSG','1454','EPSG','1520',NULL,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,'EPSG','1241','EPSG','1521',NULL,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,'EPSG','1241','EPSG','1522',NULL,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,'EPSG','1241','EPSG','1523',NULL,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,'EPSG','1241','EPSG','1524',NULL,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,'EPSG','1241','EPSG','1525',NULL,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,'EPSG','1241','EPSG','1526',NULL,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,'EPSG','1528','EPSG','1527',NULL,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,'EPSG','1539','EPSG','1540',NULL,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,'EPSG','1541','EPSG','1240',NULL,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,'EPSG','1545','EPSG','1237',NULL,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,'EPSG','1241','EPSG','1553',NULL,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,'EPSG','1241','EPSG','1554',NULL,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','1559','EPSG','1150',NULL,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,'EPSG','1560','EPSG','1240',NULL,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,'EPSG','1568','EPSG','1565',NULL,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','1576','EPSG','1473',NULL,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','1574','EPSG','1188',NULL,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','1572','EPSG','1188',NULL,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','1584','EPSG','1240',NULL,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','1588','EPSG','1149',NULL,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','1570','EPSG','1240',NULL,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','1571','EPSG','1149',NULL,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','1591','EPSG','1149',NULL,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','1578','EPSG','1580',NULL,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','1579','EPSG','1580',NULL,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','1594','EPSG','1150',NULL,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','1595','EPSG','1150',NULL,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','1596','EPSG','1150',NULL,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','1593','EPSG','1150',NULL,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,'EPSG','1611','EPSG','1149',NULL,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,'EPSG','1616','EPSG','1237',NULL,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','1454','EPSG','1741',NULL,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','1461','EPSG','1731',NULL,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','1313','EPSG','1752',NULL,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) (3) (code 8635) assuming that NAD83(CSRS) is equivalent to WGS 84.','Approximation at the +/- 1m level.','EPSG','4267','EPSG','4326','EPSG','2376',NULL,'EPSG','1313','EPSG','1702',NULL,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,'EPSG','1241','EPSG','1704',NULL,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,'EPSG','1241','EPSG','1705',NULL,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,'EPSG','1241','EPSG','1706',NULL,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,'EPSG','1241','EPSG','1707',NULL,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','1241','EPSG','1717',NULL,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','1241','EPSG','1728',NULL,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','1241','EPSG','1708',NULL,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','1241','EPSG','1739',NULL,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','1241','EPSG','1750',NULL,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','1241','EPSG','1712',NULL,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','1241','EPSG','1714',NULL,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','1241','EPSG','1713',NULL,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','1241','EPSG','1748',NULL,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','1241','EPSG','1742',NULL,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','1241','EPSG','1709',NULL,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','1241','EPSG','1743',NULL,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','1241','EPSG','1718',NULL,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','1241','EPSG','1719',NULL,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','1241','EPSG','1721',NULL,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','1241','EPSG','1720',NULL,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','1241','EPSG','1725',NULL,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','1241','EPSG','1722',NULL,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','1241','EPSG','1710',NULL,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','1241','EPSG','1723',NULL,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','1241','EPSG','1711',NULL,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','1241','EPSG','1715',NULL,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','1241','EPSG','1716',NULL,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','1241','EPSG','1724',NULL,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','1241','EPSG','1744',NULL,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','1241','EPSG','1749',NULL,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','1241','EPSG','1726',NULL,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','1241','EPSG','1727',NULL,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','1241','EPSG','1729',NULL,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','1241','EPSG','1745',NULL,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','1241','EPSG','1730',NULL,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','1241','EPSG','1737',NULL,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','1241','EPSG','1732',NULL,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','1241','EPSG','1733',NULL,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','1241','EPSG','1734',NULL,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','1241','EPSG','1735',NULL,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','1241','EPSG','1746',NULL,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','1241','EPSG','1736',NULL,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','1241','EPSG','1747',NULL,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','1241','EPSG','1738',NULL,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','1241','EPSG','1740',NULL,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','1805','EPSG','1240',NULL,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','1806','EPSG','1240',NULL,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','1828','EPSG','1238',NULL,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,'EPSG','1839','EPSG','1240',NULL,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','1313','EPSG','1849',NULL,NULL,'EPSG-Can AB',0);
INSERT INTO "concatenated_operation" VALUES('EPSG','8636','Carthage (Paris) to WGS 84 (1)','','For military purposes.','EPSG','4816','EPSG','4326','EPSG','1618',NULL,'EPSG','1881','EPSG','1130',NULL,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','1756','EPSG','1944',NULL,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','1260','EPSG','1837',NULL,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','1762','EPSG','1654',NULL,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','1882','EPSG','1253',NULL,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','1883','EPSG','1897',NULL,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','1884','EPSG','1623',NULL,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','1891','EPSG','1272',NULL,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','1761','EPSG','1891','EPSG','1272','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,'EPSG','1757','EPSG','1618',NULL,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,'EPSG','1902','EPSG','1240',NULL,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','1313','EPSG','1950','EPSG','1946','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','1991','EPSG','1986',NULL,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','1991','EPSG','1990',NULL,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,'EPSG','1071','EPSG','1073',NULL,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','1063','EPSG','1065',NULL,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','1064','EPSG','1065',NULL,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,'EPSG','1902','EPSG','1240',NULL,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,'EPSG','15790','EPSG','1240',NULL,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,'EPSG','15792','EPSG','1240',NULL,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,'EPSG','15896','EPSG','1158',NULL,NULL,'OGP-Mys',0);
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);
+431
View File
@@ -0,0 +1,431 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "concatenated_operation_step" VALUES('EPSG','3896',1,'EPSG','3895');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','3896',2,'EPSG','1618');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','3966',1,'EPSG','3913');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','3966',2,'EPSG','3962');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','4435',1,'EPSG','1461');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','4435',2,'EPSG','1495');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','4837',1,'EPSG','1672');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','4837',2,'EPSG','1311');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5190',1,'EPSG','5134');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5190',2,'EPSG','5189');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5192',1,'EPSG','5134');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5192',2,'EPSG','5191');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5230',1,'EPSG','1884');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5230',2,'EPSG','4836');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5240',1,'EPSG','5238');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5240',2,'EPSG','5227');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5242',1,'EPSG','1884');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5242',2,'EPSG','5239');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5838',1,'EPSG','1756');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','5838',2,'EPSG','1988');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','6714',1,'EPSG','6712');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','6714',2,'EPSG','6713');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','6739',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','6739',2,'EPSG','1496');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',1,'EPSG','1265');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',2,'EPSG','6873');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',1,'EPSG','1763');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',2,'EPSG','15958');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',1,'EPSG','7963');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',2,'EPSG','7964');
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','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',2,'EPSG','7969');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',1,'EPSG','7972');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',2,'EPSG','7970');
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','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','7984');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',1,'EPSG','7980');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',2,'EPSG','7984');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',3,'EPSG','7985');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','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');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8094',2,'EPSG','1193');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8174',1,'EPSG','1755');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8174',2,'EPSG','1125');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8175',1,'EPSG','1262');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8175',2,'EPSG','1169');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',1,'EPSG','1265');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',2,'EPSG','1227');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',1,'EPSG','1759');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',2,'EPSG','1123');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','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');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8186',2,'EPSG','1276');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8188',1,'EPSG','1763');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8188',2,'EPSG','1277');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8190',1,'EPSG','1278');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8190',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8192',1,'EPSG','1279');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8192',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8194',1,'EPSG','1280');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8194',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8195',1,'EPSG','1437');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8195',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8199',1,'EPSG','1274');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8199',2,'EPSG','1283');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8211',1,'EPSG','1266');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8211',2,'EPSG','1294');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8215',1,'EPSG','1297');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8215',2,'EPSG','1302');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8217',1,'EPSG','1298');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8217',2,'EPSG','1302');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8219',1,'EPSG','1299');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8219',2,'EPSG','1302');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8221',1,'EPSG','1300');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8221',2,'EPSG','1302');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8223',1,'EPSG','1301');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8223',2,'EPSG','1302');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8234',1,'EPSG','1309');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8234',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8236',1,'EPSG','1310');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8236',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8243',1,'EPSG','1312');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8243',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8245',1,'EPSG','1313');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8245',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8263',1,'EPSG','1757');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8263',2,'EPSG','1306');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8363',1,'EPSG','8361');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8363',2,'EPSG','8362');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8386',1,'EPSG','1454');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8386',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8388',1,'EPSG','1455');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8388',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8390',1,'EPSG','1456');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8390',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8392',1,'EPSG','1457');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8392',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8394',1,'EPSG','1451');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8394',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8396',1,'EPSG','1458');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8396',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8398',1,'EPSG','1459');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8398',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8400',1,'EPSG','1460');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8400',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8402',1,'EPSG','1461');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8402',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8404',1,'EPSG','1462');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8404',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8406',1,'EPSG','1463');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8406',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8408',1,'EPSG','1464');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8408',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8418',1,'EPSG','1472');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8418',2,'EPSG','1473');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8419',1,'EPSG','1599');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8419',2,'EPSG','1473');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8420',1,'EPSG','1600');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8420',2,'EPSG','1473');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8421',1,'EPSG','1601');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8421',2,'EPSG','1473');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8422',1,'EPSG','1602');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8422',2,'EPSG','1473');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8442',1,'EPSG','8365');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8442',2,'EPSG','8364');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8443',1,'EPSG','8364');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8443',2,'EPSG','8367');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8453',1,'EPSG','1506');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8453',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8454',1,'EPSG','1507');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8454',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8457',1,'EPSG','1509');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8457',2,'EPSG','1511');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8460',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8460',2,'EPSG','1474');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8461',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8461',2,'EPSG','1475');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8462',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8462',2,'EPSG','1476');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8463',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8463',2,'EPSG','1477');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8464',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8464',2,'EPSG','1478');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8465',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8465',2,'EPSG','1479');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8466',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8466',2,'EPSG','1480');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8467',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8467',2,'EPSG','1481');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8468',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8468',2,'EPSG','1482');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8469',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8469',2,'EPSG','1483');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8470',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8470',2,'EPSG','1484');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8471',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8471',2,'EPSG','1485');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8472',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8472',2,'EPSG','1486');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8473',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8473',2,'EPSG','1487');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8474',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8474',2,'EPSG','1488');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8475',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8475',2,'EPSG','1489');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8476',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8476',2,'EPSG','1490');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8477',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8477',2,'EPSG','1491');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8478',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8478',2,'EPSG','1492');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8479',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8479',2,'EPSG','1493');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8480',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8480',2,'EPSG','1494');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8481',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8481',2,'EPSG','1495');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8482',1,'EPSG','1747');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8482',2,'EPSG','1496');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8483',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8483',2,'EPSG','1497');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8484',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8484',2,'EPSG','1498');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8485',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8485',2,'EPSG','1499');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8486',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8486',2,'EPSG','1500');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8487',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8487',2,'EPSG','1501');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8488',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8488',2,'EPSG','1502');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8489',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8489',2,'EPSG','1503');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8496',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8496',2,'EPSG','1515');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8497',1,'EPSG','1243');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8497',2,'EPSG','1515');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8508',1,'EPSG','1454');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8508',2,'EPSG','1520');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8509',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8509',2,'EPSG','1521');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8510',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8510',2,'EPSG','1522');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8511',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8511',2,'EPSG','1523');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8512',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8512',2,'EPSG','1524');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8513',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8513',2,'EPSG','1525');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8514',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8514',2,'EPSG','1526');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8517',1,'EPSG','1528');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8517',2,'EPSG','1527');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8530',1,'EPSG','1539');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8530',2,'EPSG','1540');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8532',1,'EPSG','1541');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8532',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8537',1,'EPSG','1545');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8537',2,'EPSG','1237');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8553',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8553',2,'EPSG','1553');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8554',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8554',2,'EPSG','1554');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8560',1,'EPSG','1559');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8560',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8562',1,'EPSG','1560');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8562',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8563',1,'EPSG','1568');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8563',2,'EPSG','1565');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8564',1,'EPSG','1576');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8564',2,'EPSG','1473');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8565',1,'EPSG','1574');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8565',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8566',1,'EPSG','1572');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8566',2,'EPSG','1188');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8568',1,'EPSG','1584');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8568',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8569',1,'EPSG','1588');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8569',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8571',1,'EPSG','1570');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8571',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8572',1,'EPSG','1571');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8572',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8573',1,'EPSG','1591');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8573',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8574',1,'EPSG','1578');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8574',2,'EPSG','1580');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8575',1,'EPSG','1579');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8575',2,'EPSG','1580');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8576',1,'EPSG','1594');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8576',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8577',1,'EPSG','1595');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8577',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8578',1,'EPSG','1596');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8578',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8579',1,'EPSG','1593');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8579',2,'EPSG','1150');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8580',1,'EPSG','1611');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8580',2,'EPSG','1149');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8581',1,'EPSG','1616');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8581',2,'EPSG','1237');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8582',1,'EPSG','1454');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8582',2,'EPSG','1741');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8583',1,'EPSG','1461');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8583',2,'EPSG','1731');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8584',1,'EPSG','1313');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8584',2,'EPSG','1752');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8585',1,'EPSG','1313');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8585',2,'EPSG','1702');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8586',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8586',2,'EPSG','1704');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8587',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8587',2,'EPSG','1705');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8588',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8588',2,'EPSG','1706');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8589',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8589',2,'EPSG','1707');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8590',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8590',2,'EPSG','1717');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8591',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8591',2,'EPSG','1728');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8592',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8592',2,'EPSG','1708');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8593',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8593',2,'EPSG','1739');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8594',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8594',2,'EPSG','1750');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8595',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8595',2,'EPSG','1712');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8596',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8596',2,'EPSG','1714');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8597',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8597',2,'EPSG','1713');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8598',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8598',2,'EPSG','1748');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8599',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8599',2,'EPSG','1742');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8600',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8600',2,'EPSG','1709');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8601',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8601',2,'EPSG','1743');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8602',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8602',2,'EPSG','1718');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8603',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8603',2,'EPSG','1719');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8604',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8604',2,'EPSG','1721');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8605',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8605',2,'EPSG','1720');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8606',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8606',2,'EPSG','1725');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8607',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8607',2,'EPSG','1722');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8608',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8608',2,'EPSG','1710');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8609',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8609',2,'EPSG','1723');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8610',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8610',2,'EPSG','1711');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8611',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8611',2,'EPSG','1715');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8612',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8612',2,'EPSG','1716');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8613',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8613',2,'EPSG','1724');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8614',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8614',2,'EPSG','1744');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8615',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8615',2,'EPSG','1749');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8616',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8616',2,'EPSG','1726');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8617',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8617',2,'EPSG','1727');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8618',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8618',2,'EPSG','1729');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8619',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8619',2,'EPSG','1745');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8620',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8620',2,'EPSG','1730');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8621',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8621',2,'EPSG','1737');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8622',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8622',2,'EPSG','1732');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8623',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8623',2,'EPSG','1733');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8624',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8624',2,'EPSG','1734');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8625',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8625',2,'EPSG','1735');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8626',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8626',2,'EPSG','1746');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8627',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8627',2,'EPSG','1736');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8628',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8628',2,'EPSG','1747');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8629',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8629',2,'EPSG','1738');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8630',1,'EPSG','1241');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8630',2,'EPSG','1740');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8631',1,'EPSG','1805');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8631',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8632',1,'EPSG','1806');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8632',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8633',1,'EPSG','1828');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8633',2,'EPSG','1238');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8634',1,'EPSG','1839');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8634',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8635',1,'EPSG','1313');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8635',2,'EPSG','1849');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8636',1,'EPSG','1881');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8636',2,'EPSG','1130');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8637',1,'EPSG','1756');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8637',2,'EPSG','1944');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8638',1,'EPSG','1260');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8638',2,'EPSG','1837');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8639',1,'EPSG','1762');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8639',2,'EPSG','1654');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8640',1,'EPSG','1882');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8640',2,'EPSG','1253');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8641',1,'EPSG','1883');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8641',2,'EPSG','1897');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8642',1,'EPSG','1884');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8642',2,'EPSG','1623');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8643',1,'EPSG','1891');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8643',2,'EPSG','1272');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',1,'EPSG','1761');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',2,'EPSG','1891');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',3,'EPSG','1272');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8645',1,'EPSG','1757');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8645',2,'EPSG','1618');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8646',1,'EPSG','1902');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8646',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',1,'EPSG','1313');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',2,'EPSG','1950');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',3,'EPSG','1946');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8648',1,'EPSG','1991');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8648',2,'EPSG','1986');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8649',1,'EPSG','1991');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8649',2,'EPSG','1990');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8650',1,'EPSG','1071');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8650',2,'EPSG','1073');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8651',1,'EPSG','1063');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8651',2,'EPSG','1065');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8652',1,'EPSG','1064');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8652',2,'EPSG','1065');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8655',1,'EPSG','1902');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8655',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8656',1,'EPSG','15790');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8656',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8657',1,'EPSG','15792');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8657',2,'EPSG','1240');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8659',1,'EPSG','15896');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','8659',2,'EPSG','1158');
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','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');
+5 -23
View File
@@ -739,15 +739,6 @@ INSERT INTO "conversion" VALUES('EPSG','7823','CS63 zone X6',NULL,NULL,'EPSG','4
INSERT INTO "conversion" VALUES('EPSG','7824','CS63 zone X7',NULL,NULL,'EPSG','4434','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',41.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',7300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','7875','St. Helena Local Grid 1971',NULL,NULL,'EPSG','3183','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',-15.58,'EPSG','9110','EPSG','8802','Longitude of natural origin',-5.43,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','7876','St. Helena Local Grid (Tritan)',NULL,NULL,'EPSG','3183','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',-15.58,'EPSG','9110','EPSG','8802','Longitude of natural origin',-5.43,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',299483.737,'EPSG','9001','EPSG','8807','False northing',2000527.879,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','7963','Poolbeg height (ft(Br36)) to Poolbeg height (m)',NULL,NULL,'EPSG','1305','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',0.3048007491,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7972','NGVD29 height (ftUS) to NGVD29 height (m)',NULL,NULL,'EPSG','1323','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',0.304800609601219,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7978','NGVD29 height (ftUS) to NGVD29 depth (ftUS)',NULL,NULL,'EPSG','1323','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7982','HKPD height to HKPD depth',NULL,NULL,'EPSG','3334','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7984','KOC WD height to KOC WD depth',NULL,NULL,'EPSG','3267','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7985','KOC WD depth to KOC WD depth (ft)',NULL,NULL,'EPSG','3267','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7988','NAVD88 height to NAVD88 height (ftUS)',NULL,NULL,'EPSG','3664','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',3.28083333333333,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7989','NAVD88 height to NAVD88 depth',NULL,NULL,'EPSG','4161','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7990','NAVD88 height (ftUS) to NAVD88 depth (ftUS)',NULL,NULL,'EPSG','3664','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','7993','Albany Grid 2020',NULL,NULL,'EPSG','4439','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',117.53,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0000044,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',4100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','7994','Barrow Island Grid 2020',NULL,NULL,'EPSG','4438','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',115.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0000022,'EPSG','9201','EPSG','8806','False easting',60000.0,'EPSG','9001','EPSG','8807','False northing',2700000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','7995','Broome Grid 2020',NULL,NULL,'EPSG','4441','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',122.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00000298,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',2300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -770,15 +761,8 @@ INSERT INTO "conversion" VALUES('EPSG','8011','Perth Coastal Grid',NULL,NULL,'EP
INSERT INTO "conversion" VALUES('EPSG','8012','Port Hedland Grid 2020',NULL,NULL,'EPSG','4466','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',118.36,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00000135,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',2500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8033','TM Zone 20N (US survey feet)',NULL,NULL,'EPSG','4467','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8034','TM Zone 21N (US survey feet)',NULL,NULL,'EPSG','4468','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-57.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8038','Instantaneous Water Level height to Instantaneous Water Level depth',NULL,NULL,'EPSG','1262','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8039','MSL height to MSL depth',NULL,NULL,'EPSG','1262','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8040','Gusterberg Grid',NULL,NULL,'EPSG','4455','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',48.021847,'EPSG','9110','EPSG','8802','Longitude of natural origin',31.481505,'EPSG','9110','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8041','St. Stephen Grid',NULL,NULL,'EPSG','4456','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',48.123154,'EPSG','9110','EPSG','8802','Longitude of natural origin',34.022732,'EPSG','9110','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8054','MSL height to MSL height (ft)',NULL,NULL,'EPSG','1262','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8055','MSL height to MSL height (ftUS)',NULL,NULL,'EPSG','1245','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',3.28083333333333,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8056','MSL depth to MSL depth (ft)',NULL,NULL,'EPSG','1262','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8057','MSL depth to MSL depth (ftUS)',NULL,NULL,'EPSG','1245','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',3.28083333333333,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8060','Baltic 1977 height to Baltic 1977 depth',NULL,NULL,'EPSG','2423','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8061','Pima County zone 1 East (ft)',NULL,NULL,'EPSG','4472','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',32.15,'EPSG','9110','EPSG','8812','Longitude of projection centre',-111.24,'EPSG','9110','EPSG','8813','Azimuth of initial line',45.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',45.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.00011,'EPSG','9201','EPSG','8816','Easting at projection centre',160000.0,'EPSG','9002','EPSG','8817','Northing at projection centre',800000.0,'EPSG','9002',0);
INSERT INTO "conversion" VALUES('EPSG','8062','Pima County zone 2 Central (ft)',NULL,NULL,'EPSG','4460','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00009,'EPSG','9201','EPSG','8806','False easting',1800000.0,'EPSG','9002','EPSG','8807','False northing',1000000.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8063','Pima County zone 3 West (ft)',NULL,NULL,'EPSG','4450','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-113.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000055,'EPSG','9201','EPSG','8806','False easting',600000.0,'EPSG','9002','EPSG','8807','False northing',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -786,7 +770,6 @@ INSERT INTO "conversion" VALUES('EPSG','8064','Pima County zone 4 Mt. Lemmon (ft
INSERT INTO "conversion" VALUES('EPSG','8080','MTM Nova Scotia zone 4 v2',NULL,NULL,'EPSG','1534','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-61.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',24500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8081','MTM Nova Scotia zone 5 v2',NULL,NULL,'EPSG','1535','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-64.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',25500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8087','Iceland Lambert 2016',NULL,NULL,'EPSG','1120','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',65.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-19.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',64.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',65.45,'EPSG','9110','EPSG','8826','Easting at false origin',2700000.0,'EPSG','9001','EPSG','8827','Northing at false origin',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8229','NAVD88 height to NAVD88 height (ft)',NULL,NULL,'EPSG','4464','EPSG','1069','Change of Vertical Unit','EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8273','Oregon Burns-Harper zone (meters)',NULL,NULL,'EPSG','4459','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00014,'EPSG','9201','EPSG','8806','False easting',90000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8274','Oregon Burns-Harper zone (International feet)',NULL,NULL,'EPSG','4459','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00014,'EPSG','9201','EPSG','8806','False easting',295275.5906,'EPSG','9002','EPSG','8807','False northing',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8275','Oregon Canyon City-Burns zone (meters)',NULL,NULL,'EPSG','4465','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00022,'EPSG','9201','EPSG','8806','False easting',20000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -825,10 +808,6 @@ INSERT INTO "conversion" VALUES('EPSG','8307','Oregon Warner Highway zone (meter
INSERT INTO "conversion" VALUES('EPSG','8308','Oregon Warner Highway zone (International feet)',NULL,NULL,'EPSG','4486','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000245,'EPSG','9201','EPSG','8806','False easting',131233.5958,'EPSG','9002','EPSG','8807','False northing',196850.3937,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8309','Oregon Willamette Pass zone (meters)',NULL,NULL,'EPSG','4488','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000223,'EPSG','9201','EPSG','8806','False easting',20000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8310','Oregon Willamette Pass zone (International feet)',NULL,NULL,'EPSG','4488','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000223,'EPSG','9201','EPSG','8806','False easting',65616.7979,'EPSG','9002','EPSG','8807','False northing',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8354','Black Sea height to Black Sea depth',NULL,NULL,'EPSG','3251','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8355','AIOC95 height to AIOC95 depth',NULL,NULL,'EPSG','2592','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8356','Caspian height to Caspian depth',NULL,NULL,'EPSG','1291','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8359','Baltic 1957 height to Baltic 1957 depth',NULL,NULL,'EPSG','1306','EPSG','1068','Height Depth Reversal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "conversion" VALUES('EPSG','8373','NCRS Las Vegas zone (m)',NULL,NULL,'EPSG','4485','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.58,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8374','NCRS Las Vegas zone (ftUS)',NULL,NULL,'EPSG','4485','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.58,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001,'EPSG','9201','EPSG','8806','False easting',328083.3333,'EPSG','9003','EPSG','8807','False northing',656166.6667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8375','NCRS Las Vegas high elevation zone (m)',NULL,NULL,'EPSG','4487','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.58,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000135,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',400000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -858,8 +837,8 @@ INSERT INTO "conversion" VALUES('EPSG','8515','Kansas regional zone 19 Coffeyvil
INSERT INTO "conversion" VALUES('EPSG','8516','Kansas regional zone 20 Pittsburg (ftUS)',NULL,NULL,'EPSG','4513','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-95.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000031,'EPSG','9201','EPSG','8806','False easting',20500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8825','Idaho Transverse Mercator',NULL,NULL,'EPSG','1381','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',2500000.0,'EPSG','9001','EPSG','8807','False northing',1200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','8854','Equal Earth Greenwich',NULL,NULL,'EPSG','1262','EPSG','1078','Equal Earth','EPSG','8802','Longitude of natural origin',0.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',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,0);
INSERT INTO "conversion" VALUES('EPSG','8855','Equal Earth Americas',NULL,NULL,'EPSG','1262','EPSG','1078','Equal Earth','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',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,0);
INSERT INTO "conversion" VALUES('EPSG','8856','Equal Earth Asia-Pacific',NULL,NULL,'EPSG','1262','EPSG','1078','Equal Earth','EPSG','8802','Longitude of natural origin',150.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',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,0);
INSERT INTO "conversion" VALUES('EPSG','8855','Equal Earth Americas',NULL,NULL,'EPSG','4520','EPSG','1078','Equal Earth','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',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,0);
INSERT INTO "conversion" VALUES('EPSG','8856','Equal Earth Asia-Pacific',NULL,NULL,'EPSG','4523','EPSG','1078','Equal Earth','EPSG','8802','Longitude of natural origin',150.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',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,0);
INSERT INTO "conversion" VALUES('EPSG','9058','Vietnam TM-3 103-00',NULL,NULL,'EPSG','4541','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',103.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','9190','NIWA Albers',NULL,NULL,'EPSG','3508','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',-40.0,'EPSG','9102','EPSG','8822','Longitude of false origin',175.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-30.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-50.0,'EPSG','9102','EPSG','8826','Easting at false origin',0.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','9192','Vietnam TM-3 104-00',NULL,NULL,'EPSG','4538','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',104.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -877,6 +856,9 @@ INSERT INTO "conversion" VALUES('EPSG','9203','Vietnam TM-3 108-15',NULL,NULL,'E
INSERT INTO "conversion" VALUES('EPSG','9204','Vietnam TM-3 108-30',NULL,NULL,'EPSG','4560','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',108.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','9219','South Africa Basic Survey Unit Albers 25E',NULL,NULL,'EPSG','4567','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',-30.0,'EPSG','9102','EPSG','8822','Longitude of false origin',25.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-22.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-38.0,'EPSG','9102','EPSG','8826','Easting at false origin',1400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','9220','South Africa Basic Survey Unit Albers 44E',NULL,NULL,'EPSG','4568','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',-42.0,'EPSG','9102','EPSG','8822','Longitude of false origin',44.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-34.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-50.0,'EPSG','9102','EPSG','8826','Easting at false origin',1200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','9268','Austria West',NULL,NULL,'EPSG','1706','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',10.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','9269','Austria Central',NULL,NULL,'EPSG','1707','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',13.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','9270','Austria East',NULL,NULL,'EPSG','1708','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',16.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','10101','Alabama CS27 East zone',NULL,NULL,'EPSG','2154','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','10102','Alabama CS27 West zone',NULL,NULL,'EPSG','2155','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('EPSG','10131','SPCS83 Alabama East zone (meters)',NULL,NULL,'EPSG','2154','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99996,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+70
View File
@@ -1,5 +1,26 @@
-- This file is hand generated.
-- grid_alternatives entries created from existing ones
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)
SELECT grid_name,
'au_ga_AUSGeoid98.tif',
'AUSGeoid98.gtx',
'GTiff',
'geoid_like',
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%';
INSERT INTO "geodetic_crs" VALUES('OGC','CRS84','WGS 84 (CRS84)',NULL,NULL,'geographic 2D','EPSG','6424','EPSG','6326','EPSG','1262',NULL,0);
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);
@@ -26,6 +47,17 @@ UPDATE grid_transformation SET interpolation_crs_auth_name = 'EPSG',
interpolation_crs_code = '4289'
WHERE auth_name = 'EPSG' AND code = '7001';
-- EPSG:1312 'NAD27 to NAD83 (3)' / NTv1_0.gsb has a accuracy of 1m whereas
-- EPSG:1313 'NAD27 to NAD83 (4)' / NTv2_0.gsb has a accuracy of 1.5m
-- so we will never select automatically NTv2_0.gsb. Worse the advertize
-- accuracy of the NTv1 method
UPDATE grid_transformation SET accuracy = 2.0 WHERE auth_name = 'EPSG' AND code = '1312';
-- Same for EPSG:1462 vs EPSG:1573
UPDATE grid_transformation SET accuracy = 2.0 WHERE auth_name = 'EPSG' AND code = '1462';
-- Define the allowed authorities, and their precedence, when researching a
-- coordinate operation
@@ -65,3 +97,41 @@ INSERT INTO "coordinate_system" VALUES('PROJ','ENh','Cartesian',3);
INSERT INTO "axis" VALUES('PROJ','1','Easting','E','east','PROJ','ENh',1,'EPSG','9001');
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;
INSERT INTO "geoid_model" SELECT 'GEOID03', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'geoid03%' AND deprecated = 0;
INSERT INTO "geoid_model" SELECT 'GEOID06', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'geoid06%' AND deprecated = 0;
INSERT INTO "geoid_model" SELECT 'GEOID09', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'geoid09%' AND deprecated = 0;
-- Geoid12A and Geoid12B are identical
INSERT INTO "geoid_model" SELECT 'GEOID12A', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g2012b%' AND deprecated = 0;
INSERT INTO "geoid_model" SELECT 'GEOID12B', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g2012b%' AND deprecated = 0;
INSERT INTO "geoid_model" SELECT 'GEOID18', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g2018%' AND deprecated = 0;
---- PROJ historic +datum aliases -----
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6326','WGS84','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6121','GGRS87','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6269','NAD83','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6267','NAD27','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6314','potsdam','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6223','carthage','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6312','hermannskogel','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6299','ire65','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6272','nzgd49','PROJ');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6277','OSGB36','PROJ');
+2
View File
@@ -454,3 +454,5 @@ INSERT INTO "deprecation" VALUES('projected_crs','EPSG','7082','EPSG','8456','EP
INSERT INTO "deprecation" VALUES('projected_crs','EPSG','7082','EPSG','8455','EPSG');
INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3911','EPSG','8686','EPSG');
INSERT INTO "deprecation" VALUES('geodetic_crs','EPSG','8449','EPSG','8860','EPSG');
INSERT INTO "deprecation" VALUES('geodetic_crs','EPSG','4280','EPSG','4211','EPSG');
INSERT INTO "deprecation" VALUES('geodetic_crs','EPSG','4808','EPSG','4813','EPSG');
+1070 -567
View File
File diff suppressed because it is too large Load Diff
+52 -44
View File
@@ -10,53 +10,53 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','3888','IGRS',NULL,NULL,'geographic 3D'
INSERT INTO "geodetic_crs" VALUES('EPSG','3889','IGRS',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1029','EPSG','1124',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','3906','MGI 1901',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1031','EPSG','2370',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4000','MOLDREF99',NULL,NULL,'geocentric','EPSG','6500','EPSG','1032','EPSG','1162',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4001','Unknown datum based upon the Airy 1830 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6001','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4002','Unknown datum based upon the Airy Modified 1849 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6002','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4003','Unknown datum based upon the Australian National Spheroid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6003','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4004','Unknown datum based upon the Bessel 1841 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6004','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4005','Unknown datum based upon the Bessel Modified ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6005','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4006','Unknown datum based upon the Bessel Namibia ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6006','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4007','Unknown datum based upon the Clarke 1858 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6007','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4008','Unknown datum based upon the Clarke 1866 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6008','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4001','Unknown datum based upon the Airy 1830 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6001','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4002','Unknown datum based upon the Airy Modified 1849 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6002','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4003','Unknown datum based upon the Australian National Spheroid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6003','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4004','Unknown datum based upon the Bessel 1841 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6004','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4005','Unknown datum based upon the Bessel Modified ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6005','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4006','Unknown datum based upon the Bessel Namibia ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6006','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4007','Unknown datum based upon the Clarke 1858 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6007','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4008','Unknown datum based upon the Clarke 1866 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6008','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4009','Unknown datum based upon the Clarke 1866 Michigan ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6009','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4010','Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6010','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4011','Unknown datum based upon the Clarke 1880 (IGN) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6011','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4012','Unknown datum based upon the Clarke 1880 (RGS) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6012','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4013','Unknown datum based upon the Clarke 1880 (Arc) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6013','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4014','Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6014','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4015','Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6015','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4016','Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6016','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4010','Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6010','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4011','Unknown datum based upon the Clarke 1880 (IGN) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6011','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4012','Unknown datum based upon the Clarke 1880 (RGS) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6012','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4013','Unknown datum based upon the Clarke 1880 (Arc) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6013','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4014','Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6014','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4015','Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6015','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4016','Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6016','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4017','MOLDREF99',NULL,NULL,'geographic 3D','EPSG','6423','EPSG','1032','EPSG','1162',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4018','Unknown datum based upon the Everest 1830 Modified ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6018','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4019','Unknown datum based upon the GRS 1980 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6019','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4020','Unknown datum based upon the Helmert 1906 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6020','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4021','Unknown datum based upon the Indonesian National Spheroid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6021','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4022','Unknown datum based upon the International 1924 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6022','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4018','Unknown datum based upon the Everest 1830 Modified ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6018','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4019','Unknown datum based upon the GRS 1980 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6019','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4020','Unknown datum based upon the Helmert 1906 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6020','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4021','Unknown datum based upon the Indonesian National Spheroid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6021','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4022','Unknown datum based upon the International 1924 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6022','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4023','MOLDREF99',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1032','EPSG','1162',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4024','Unknown datum based upon the Krassowsky 1940 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6024','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4025','Unknown datum based upon the NWL 9D ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6025','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4027','Unknown datum based upon the Plessis 1817 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6027','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4028','Unknown datum based upon the Struve 1860 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6028','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4029','Unknown datum based upon the War Office ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6029','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4030','Unknown datum based upon the WGS 84 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6030','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4031','Unknown datum based upon the GEM 10C ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6031','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4032','Unknown datum based upon the OSU86F ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6032','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4033','Unknown datum based upon the OSU91A ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6033','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4034','Unknown datum based upon the Clarke 1880 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6034','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4024','Unknown datum based upon the Krassowsky 1940 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6024','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4025','Unknown datum based upon the NWL 9D ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6025','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4027','Unknown datum based upon the Plessis 1817 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6027','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4028','Unknown datum based upon the Struve 1860 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6028','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4029','Unknown datum based upon the War Office ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6029','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4030','Unknown datum based upon the WGS 84 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6030','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4031','Unknown datum based upon the GEM 10C ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6031','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4032','Unknown datum based upon the OSU86F ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6032','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4033','Unknown datum based upon the OSU91A ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6033','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4034','Unknown datum based upon the Clarke 1880 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6034','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4035','Unknown datum based upon the Authalic Sphere',NULL,NULL,'geographic 2D','EPSG','6402','EPSG','6035','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4036','Unknown datum based upon the GRS 1967 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6036','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4036','Unknown datum based upon the GRS 1967 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6036','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4039','RGRDC 2005',NULL,NULL,'geocentric','EPSG','6500','EPSG','1033','EPSG','3613',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4040','RGRDC 2005',NULL,NULL,'geographic 3D','EPSG','6423','EPSG','1033','EPSG','3613',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4041','Unknown datum based upon the Average Terrestrial System 1977 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6041','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4042','Unknown datum based upon the Everest (1830 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6042','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4043','Unknown datum based upon the WGS 72 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6043','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4044','Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6044','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4045','Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6045','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4041','Unknown datum based upon the Average Terrestrial System 1977 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6041','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4042','Unknown datum based upon the Everest (1830 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6042','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4043','Unknown datum based upon the WGS 72 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6043','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4044','Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6044','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4045','Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6045','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4046','RGRDC 2005',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1033','EPSG','3613',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4047','Unspecified datum based upon the GRS 1980 Authalic Sphere',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6047','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4052','Unspecified datum based upon the Clarke 1866 Authalic Sphere',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6052','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4053','Unspecified datum based upon the International 1924 Authalic Sphere',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6053','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4054','Unspecified datum based upon the Hughes 1980 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6054','EPSG','1263',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4047','Unspecified datum based upon the GRS 1980 Authalic Sphere',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6047','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4052','Unspecified datum based upon the Clarke 1866 Authalic Sphere',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6052','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4053','Unspecified datum based upon the International 1924 Authalic Sphere',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6053','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4054','Unspecified datum based upon the Hughes 1980 ellipsoid',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6054','EPSG','1263',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4055','Popular Visualisation CRS',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6055','EPSG','1262',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4073','SREF98',NULL,NULL,'geocentric','EPSG','6500','EPSG','1034','EPSG','4543',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4074','SREF98',NULL,NULL,'geographic 3D','EPSG','6423','EPSG','1034','EPSG','4543',NULL,0);
@@ -104,8 +104,8 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','4156','S-JTSK',NULL,NULL,'geographic 2
INSERT INTO "geodetic_crs" VALUES('EPSG','4157','Mount Dillon',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6157','EPSG','1322',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4158','Naparima 1955',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6158','EPSG','3143',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4159','ELD79',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6159','EPSG','1143',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4160','Chos Malal 1914',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6160','EPSG','1292',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4161','Pampa del Castillo',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6161','EPSG','1265',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4160','Chos Malal 1914',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6160','EPSG','4562',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4161','Pampa del Castillo',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6161','EPSG','4563',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4162','Korean 1985',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6162','EPSG','3266',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4163','Yemen NGN96',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6163','EPSG','1257',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4164','South Yemen',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6164','EPSG','1340',NULL,0);
@@ -220,7 +220,7 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','4276','NSWC 9Z-2',NULL,NULL,'geographi
INSERT INTO "geodetic_crs" VALUES('EPSG','4277','OSGB 1936',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6277','EPSG','4390',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4278','OSGB70',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6278','EPSG','1264',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4279','OS(SN)80',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6279','EPSG','1354',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4280','Padang',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6280','EPSG','1355',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4280','Padang',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6280','EPSG','1355',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4281','Palestine 1923',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6281','EPSG','1356',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4282','Pointe Noire',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6282','EPSG','1072',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4283','GDA94',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6283','EPSG','4177',NULL,0);
@@ -506,7 +506,7 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','4804','Makassar (Jakarta)',NULL,NULL,'
INSERT INTO "geodetic_crs" VALUES('EPSG','4805','MGI (Ferro)',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6805','EPSG','1321',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4806','Monte Mario (Rome)',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6806','EPSG','3343',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4807','NTF (Paris)',NULL,NULL,'geographic 2D','EPSG','6403','EPSG','6807','EPSG','3694',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4808','Padang (Jakarta)',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6808','EPSG','1355',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4808','Padang (Jakarta)',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6808','EPSG','1355',NULL,1);
INSERT INTO "geodetic_crs" VALUES('EPSG','4809','Belge 1950 (Brussels)',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','6809','EPSG','1347',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4810','Tananarive (Paris)',NULL,NULL,'geographic 2D','EPSG','6403','EPSG','6810','EPSG','3273',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','4811','Voirol 1875 (Paris)',NULL,NULL,'geographic 2D','EPSG','6403','EPSG','6811','EPSG','1365',NULL,0);
@@ -1026,3 +1026,11 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','9153','SIRGAS-Chile 2016',NULL,NULL,'g
INSERT INTO "geodetic_crs" VALUES('EPSG','9182','SIRGAS-Chile',NULL,NULL,'geocentric','EPSG','6500','EPSG','1254','EPSG','1066',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9183','SIRGAS-Chile',NULL,NULL,'geographic 3D','EPSG','6423','EPSG','1254','EPSG','1066',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9184','SIRGAS-Chile',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1254','EPSG','1066',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9248','Tapi Aike',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1257','EPSG','4569',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9251','MMN',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1258','EPSG','2357',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9253','MMS',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1259','EPSG','2357',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9266','MGI',NULL,NULL,'geocentric','EPSG','6500','EPSG','6312','EPSG','1037',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9267','MGI',NULL,NULL,'geographic 3D','EPSG','6423','EPSG','6312','EPSG','1037',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9331','KSA-GRF17',NULL,NULL,'geocentric','EPSG','6500','EPSG','1268','EPSG','1206',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9332','KSA-GRF17',NULL,NULL,'geographic 3D','EPSG','6423','EPSG','1268','EPSG','1206',NULL,0);
INSERT INTO "geodetic_crs" VALUES('EPSG','9333','KSA-GRF17',NULL,NULL,'geographic 2D','EPSG','6422','EPSG','1268','EPSG','1206',NULL,0);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+128 -69
View File
@@ -4,7 +4,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','1068','Guam 1963 to NAD83(HARN)
INSERT INTO "grid_transformation" VALUES('EPSG','1069','Guam 1963 to WGS 84 (2)','Parameter files are from Guam 1963 to NAD83(HARN) (1) (code 1068), but for many purposes NAD83(HARN) can be considered to be coincident with WGS 84 within the accuracy of the transformation.','Accuracy 5m.','EPSG','9613','NADCON','EPSG','4675','EPSG','4326','EPSG','3255',5.0,'EPSG','8657','Latitude difference file','guhpgn.las','EPSG','8658','Longitude difference file','guhpgn.los',NULL,NULL,'EPSG-Gum',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1241','NAD27 to NAD83 (1)','Uses NADCON method which expects longitudes positive west; EPSG GeogCRS NAD27 (code 4267) and NAD83 (code 4269) have longitudes positive east.','Accuracy at 67% confidence level is 0.15m onshore, 5m nearshore and undetermined farther offshore.','EPSG','9613','NADCON','EPSG','4267','EPSG','4269','EPSG','2374',0.15,'EPSG','8657','Latitude difference file','conus.las','EPSG','8658','Longitude difference file','conus.los',NULL,NULL,'NGS-Usa Conus',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1243','NAD27 to NAD83 (2)','Uses NADCON method which expects longitudes positive west; EPSG GeogCRS NAD27 (code 4267) and NAD83 (code 4269) have longitudes positive east. May be used as transformation to WGS 84 - see NAD27 to WGS 84 (85) (code 15864).','Accuracy at 67% confidence level is 0.5m onshore, 5m nearshore and undetermined farther offshore.','EPSG','9613','NADCON','EPSG','4267','EPSG','4269','EPSG','2373',0.5,'EPSG','8657','Latitude difference file','alaska.las','EPSG','8658','Longitude difference file','alaska.los',NULL,NULL,'NGS-Usa AK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1295','RGNC91-93 to NEA74 Noumea (4)','Emulation using NTv2 method of tfm NEA74 Noumea to RGNC91-93 (3) (code 15943). Note reversal of sign of parameter values in grid file.','Accuracy 5-10cm.','EPSG','9615','NTv2','EPSG','4749','EPSG','4644','EPSG','2823',0.05,'EPSG','8656','Latitude and longitude difference file','RGNC1991_NEA74Noumea.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Ncl 0.05m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1295','RGNC91-93 to NEA74 Noumea (4)','Emulation using NTv2 method of tfm NEA74 Noumea to RGNC91-93 (3) (code 9328). Note reversal of sign of parameter values in grid file.','Accuracy 5-10cm.','EPSG','9615','NTv2','EPSG','4749','EPSG','4644','EPSG','2823',0.05,'EPSG','8656','Latitude and longitude difference file','RGNC1991_NEA74Noumea.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Ncl 0.05m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1312','NAD27 to NAD83 (3)','Uses NTv1 method. Replaced in Quebec by code 1462 and elsewhere in 1997 by NTv2 (transformation code 1313). Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and NAD83 (code 4269) have longitudes positive east.','Historic record only - now superseded - see remarks.','EPSG','9614','NTv1','EPSG','4267','EPSG','4269','EPSG','1061',1.0,'EPSG','8656','Latitude and longitude difference file','NTv1_0.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GC-Can NT1',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1313','NAD27 to NAD83 (4)','Uses NTv2 data files. Replaces NTv1 (transformation code 1312) except in Quebec. Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and (code 4269) have longitudes positive east. May be used as tfm to WGS 84 - see code 1693.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','4269','EPSG','4517',1.5,'EPSG','8656','Latitude and longitude difference file','NTv2_0.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GC-Can NT2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1451','NAD27(CGQ77) to NAD83 (1)','Replaced by NAD27(CGQ77) to NAD83 (2) (code 1575). Uses NT method which expects longitudes positive west; EPSG GeogCRSs CGQ77 (code 4609) and NAD83 (code 4269) have longitudes positive east.','Historic record only - now superseded - see remarks.','EPSG','9614','NTv1','EPSG','4609','EPSG','4269','EPSG','1368',1.0,'EPSG','8656','Latitude and longitude difference file','PQV4.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC NT1',0);
@@ -74,21 +74,21 @@ INSERT INTO "grid_transformation" VALUES('EPSG','1600','NAD27 to NAD83(CSRS98) (
INSERT INTO "grid_transformation" VALUES('EPSG','1601','NAD83 to NAD83(CSRS98) (2)','Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1697.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','4140','EPSG','2375',NULL,'EPSG','8656','Latitude and longitude difference file','SK83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1602','NAD83 to NAD83(CSRS98) (3)','This gridded difference file AB_CSRS.DAC will need to be renamed to AB_CSRS.gsb to run in some software suites. Formats identical, but AB file is provincial fit only.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','4140','EPSG','2376',NULL,'EPSG','8656','Latitude and longitude difference file','AB_CSRS.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'AB Env-Can AB',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1670','NZGD49 to WGS 84 (3)','Parameter file is from NZGD49 to NZGD2000 (3) (code 1568) and assumes WGS 84 is coincident with NZGD2000 to the accuracy of the transformation.','Accuracy about 1m.','EPSG','9615','NTv2','EPSG','4272','EPSG','4326','EPSG','3285',1.0,'EPSG','8656','Latitude and longitude difference file','nzgd2kgrid0005.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Nzl 1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1688','ATS77 to WGS 84 (1)','Parameter file is from ATS77 to NAD83(CSRS) (1) (code 1841) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4122','EPSG','4326','EPSG','1447',1.0,'EPSG','8656','Latitude and longitude difference file','NB7783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can NB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1689','ATS77 to WGS 84 (2)','Parameter file is from ATS77 to NAD83(CSRS) (2) (code 1846) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4122','EPSG','4326','EPSG','1533',1.0,'EPSG','8656','Latitude and longitude difference file','PE7783V2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can PEI',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1688','ATS77 to WGS 84 (1)','Parameter file is from ATS77 to NAD83(CSRS)v2 (1) (code 9237) assuming that NAD83(CSRS)v2 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4122','EPSG','4326','EPSG','1447',1.5,'EPSG','8656','Latitude and longitude difference file','NB7783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can NB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1689','ATS77 to WGS 84 (2)','Parameter file is from ATS77 to NAD83(CSRS)v2 (2) (code 9236) assuming that NAD83(CSRS)v2 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4122','EPSG','4326','EPSG','1533',1.5,'EPSG','8656','Latitude and longitude difference file','PE7783V2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can PEI',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1690','NAD27(76) to WGS 84 (1)','Parameter file is from NAD27(76) to NAD83 (1) (code 1463) assuming that NAD83 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4608','EPSG','4326','EPSG','1367',1.0,'EPSG','8656','Latitude and longitude difference file','May76v20.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can On',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1691','NAD27(CGQ77) to WGS 84 (3)','Parameter file is from NAD27(CGQ77) to NAD83(CSRS) (1) (code 1845) assuming that NAD83(CSRS98) is equivalent to WGS 84 within the accuracy of the transformation. Also distributed with file name CGQ77-98.gsb.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4609','EPSG','4326','EPSG','1368',1.0,'EPSG','8656','Latitude and longitude difference file','CQ77NA83.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can Qc NT2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1692','NAD27 to WGS 84 (34)','Parameter file is from NAD27 to NAD83(CSRS) (1) (code 1844) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation. Also distributed as QUE27-98.gsb.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4267','EPSG','4326','EPSG','1368',1.0,'EPSG','8656','Latitude and longitude difference file','NA27SCRS.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1691','NAD27(CGQ77) to WGS 84 (3)','Parameter file is from NAD27(CGQ77) to NAD83(CSRS)v2 (1) (code 9240) assuming that NAD83(CSRS)v2 is equivalent to WGS 84 within the accuracy of the transformation. Also distributed with file name CGQ77-98.gsb.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4609','EPSG','4326','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','CQ77NA83.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can Qc NT2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1692','NAD27 to WGS 84 (34)','Parameter file is from NAD27 to NAD83(CSRS)v2 (1) (code 9239) assuming that NAD83(CSRS)v2 is equivalent to WGS 84 within the accuracy of the transformation. Also distributed as QUE27-98.gsb.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4267','EPSG','4326','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','NA27SCRS.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1693','NAD27 to WGS 84 (33)','Parameter file is from NAD27 to NAD83 (4) (code 1313) assuming that NAD83 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4267','EPSG','4326','EPSG','4517',1.0,'EPSG','8656','Latitude and longitude difference file','NTv2_0.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1694','American Samoa 1962 to WGS 84 (2)','Parameter files are from American Samoa 1962 to NAD83(HARN) (1) (code 1578), but for many purposes NAD83(HARN) can be considered to be coincident with WGS 84 within the accuracy of the transformation.','No accuracy stated for source transformation.','EPSG','9613','NADCON','EPSG','4169','EPSG','4326','EPSG','2288',5.0,'EPSG','8657','Latitude difference file','wshpgn.las','EPSG','8658','Longitude difference file','wshpgn.los',NULL,NULL,'EPSG-Asm W',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1695','American Samoa 1962 to WGS 84 (3)','Parameter files are from American Samoa 1962 to NAD83(HARN) (2) (code 1579), but for many purposes NAD83(HARN) can be considered to be coincident with WGS 84 within the accuracy of the transformation.','No accuracy stated for source transformation.','EPSG','9613','NADCON','EPSG','4169','EPSG','4326','EPSG','2289',5.0,'EPSG','8657','Latitude difference file','eshpgn.las','EPSG','8658','Longitude difference file','eshpgn.los',NULL,NULL,'EPSG-Asm E',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1696','NAD83 to WGS 84 (6)','Parameter file is from NAD83 to NAD83(CSRS) (1) (code 1843) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation. Also distributed with file name NAD83-98.gsb.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4269','EPSG','4326','EPSG','1368',1.0,'EPSG','8656','Latitude and longitude difference file','NA83SCRS.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1697','NAD83 to WGS 84 (7)','Parameter file is from NAD83 to NAD83(CSRS8) (2) (code 1848) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4269','EPSG','4326','EPSG','2375',1.0,'EPSG','8656','Latitude and longitude difference file','SK83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1696','NAD83 to WGS 84 (6)','Parameter file is from NAD83 to NAD83(CSRS)v2 (1) (code 9241) assuming that NAD83(CSRS)v2 is equivalent to WGS 84 within the accuracy of the transformation. Also distributed with file name NAD83-98.gsb.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4269','EPSG','4326','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','NA83SCRS.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1697','NAD83 to WGS 84 (7)','Parameter file is from NAD83 to NAD83(CSRS8)v3 (2) (code 9243) assuming that NAD83(CSRS)v3 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4269','EPSG','4326','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1698','St. George Island to WGS 84 (1)','Parameter files are from St. George Island to NAD83 (1) (code 1457) assuming that NAD83 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1 to 2m level.','EPSG','9613','NADCON','EPSG','4138','EPSG','4326','EPSG','1331',1.5,'EPSG','8657','Latitude difference file','stgeorge.las','EPSG','8658','Longitude difference file','stgeorge.los',NULL,NULL,'EPSG-Usa AK StG',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1699','St. Lawrence Island to WGS 84 (1)','Parameter files are from St. Lawrence Island to NAD83 (1) (code 1455) assuming that NAD83 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1 to 2m level.','EPSG','9613','NADCON','EPSG','4136','EPSG','4326','EPSG','1332',1.5,'EPSG','8657','Latitude difference file','stlrnc.las','EPSG','8658','Longitude difference file','stlrnc.los',NULL,NULL,'EPSG-Usa AK StL',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1700','St. Paul Island to WGS 84 (1)','Parameter files are from St. Paul Island to NAD83 (1) (code 1456) assuming that NAD83 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1 to 2m level.','EPSG','9613','NADCON','EPSG','4137','EPSG','4326','EPSG','1333',1.5,'EPSG','8657','Latitude difference file','stpaul.las','EPSG','8658','Longitude difference file','stpaul.los',NULL,NULL,'EPSG-Usa AK StP',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1702','NAD83 to WGS 84 (8)','Parameter file is from NAD83 to NAD83(CSRS) (3) (code 1849) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation. This file AB_CSRS.DAC will need to be renamed to AB_CSRS.gsb to run in some sodtware.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4269','EPSG','4326','EPSG','2376',1.0,'EPSG','8656','Latitude and longitude difference file','AB_CSRS.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can AB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1703','NAD27 to WGS 84 (32)','Parameter file is from NAD27 to NAD83(CSRS) (1) (code 1847) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4267','EPSG','4326','EPSG','2375',1.0,'EPSG','8656','Latitude and longitude difference file','SK27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1702','NAD83 to WGS 84 (8)','Parameter file is from NAD83 to NAD83(CSRS)v4 (3) (code 9244) assuming that NAD83(CSRS)v4 is equivalent to WGS 84 within the accuracy of the transformation. This file AB_CSRS.DAC will need to be renamed to AB_CSRS.gsb to run in some sodtware.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4269','EPSG','4326','EPSG','2376',1.5,'EPSG','8656','Latitude and longitude difference file','AB_CSRS.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can AB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1703','NAD27 to WGS 84 (32)','Parameter file is from NAD27 to NAD83(CSRS)v3 (2) (code 9242) assuming that NAD83(CSRS)v3 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4267','EPSG','4326','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1704','NAD83 to NAD83(HARN) (40)','Uses NADCON method which expects longitudes positive west; EPSG GeogCRSs NAD83 (code 4269) and NAD83(HARN) (code 4152) have longitudes positive east. May be taken as approximate transformation NAD83-WGS 84 - see code 1708.','Geodetic survey. Accuracy 0.05m at 67% confidence level.','EPSG','9613','NADCON','EPSG','4269','EPSG','4152','EPSG','1374',0.05,'EPSG','8657','Latitude difference file','arhpgn.las','EPSG','8658','Longitude difference file','arhpgn.los',NULL,NULL,'NGS-Usa AR',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1705','NAD83 to NAD83(HARN) (41)','Uses NADCON method which expects longitudes positive west; EPSG GeogCRSs NAD83 (code 4269) and NAD83(HARN) (code 4152) have longitudes positive east. May be taken as approximate transformation NAD83-WGS 84 - see code 1709.','Geodetic survey. Accuracy 0.05m at 67% confidence level.','EPSG','9613','NADCON','EPSG','4269','EPSG','4152','EPSG','1384',0.05,'EPSG','8657','Latitude difference file','iahpgn.las','EPSG','8658','Longitude difference file','iahpgn.los',NULL,NULL,'NGS-Usa IA',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1706','NAD83 to NAD83(HARN) (42)','Uses NADCON method which expects longitudes positive west; EPSG GeogCRSs NAD83 (code 4269) and NAD83(HARN) (code 4152) have longitudes positive east. May be taken as approximate transformation NAD83-WGS 84 - see code 1710.','Geodetic survey. Accuracy 0.05m at 67% confidence level.','EPSG','9613','NADCON','EPSG','4269','EPSG','4152','EPSG','1392',0.05,'EPSG','8657','Latitude difference file','mnhpgn.las','EPSG','8658','Longitude difference file','mnhpgn.los',NULL,NULL,'NGS-Usa MN',0);
@@ -139,16 +139,16 @@ INSERT INTO "grid_transformation" VALUES('EPSG','1750','NAD83 to WGS 84 (54)','P
INSERT INTO "grid_transformation" VALUES('EPSG','1752','NAD83 to NAD83(CSRS98) (3)','This gridded difference file AB_CSRS.DAC will need to be renamed to AB_CSRS.gsb to run in some software suites. Formats identical, but AB file is provincial fit only. Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1702.','?','EPSG','9615','NTv2','EPSG','4269','EPSG','4140','EPSG','2376',NULL,'EPSG','8656','Latitude and longitude difference file','AB_CSRS.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'AB Env-Can AB',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1803','AGD66 to GDA94 (11)','Replaces AGD66 to GDA94 variants 6, 7 and 10 (codes 1506 1507 1596). Input expects longitudes to be positive west; EPSG GeogCRS AGD66 (code 4202) and GDA94 (code 4283) both have longitudes positive east. May be used as tfm to WGS 84 - see code 15786.','0.1m accuracy.','EPSG','9615','NTv2','EPSG','4202','EPSG','4283','EPSG','2575',0.1,'EPSG','8656','Latitude and longitude difference file','A66 National (13.09.01).gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ICSM-Aus 0.1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1804','AGD84 to GDA94 (5)','Replaces AGD84 to GDA94 (4) (code 1593) which itself replaced variant 3 (code 1559). Input expects longitudes to be + west; EPSG GeogCRS AGD84 (code 4203) and GDA94 (code 4283) both have longitudes positive east. May be used as tfm to WGS 84 - see 15785','0.1m accuracy.','EPSG','9615','NTv2','EPSG','4203','EPSG','4283','EPSG','2576',0.1,'EPSG','8656','Latitude and longitude difference file','National 84 (02.07.01).gsb',NULL,NULL,NULL,NULL,NULL,NULL,'Auslig-Aus 0.1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1841','ATS77 to NAD83(CSRS) (1)','Introduced in 1999. Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1688.','Used in the GeoNB Coordinate Transformation Service. Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','4617','EPSG','1447',1.5,'EPSG','8656','Latitude and longitude difference file','NB7783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GIC-Can NB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1843','NAD83 to NAD83(CSRS) (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD83 (code 4269) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1696.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','4617','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','NAD83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1844','NAD27 to NAD83(CSRS) (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD27 (code 4267) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1692.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','4617','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','QUE27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1845','NAD27(CGQ77) to NAD83(CSRS) (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD27(CGQ77) (code 4609) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD27(CGQ77) to WGS 84 - see code 1691.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4609','EPSG','4617','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','CGQ77-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1846','ATS77 to NAD83(CSRS) (2)','Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1689.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','4617','EPSG','1533',1.5,'EPSG','8656','Latitude and longitude difference file','PE7783V2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'PEI DOT-Can PEI',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1847','NAD27 to NAD83(CSRS) (2)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1703.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','4617','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1848','NAD83 to NAD83(CSRS) (2)','Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1697.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','4617','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1849','NAD83 to NAD83(CSRS) (3)','This gridded difference file AB_CSRS.DAC will need to be renamed to AB_CSRS.gsb to run in some software suites. Formats identical, but AB file is provincial fit only. Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1702.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','4617','EPSG','2376',1.5,'EPSG','8656','Latitude and longitude difference file','AB_CSRS.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'AB Env-Can AB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1850','ATS77 to NAD83(CSRS) (3)','Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1851.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','4617','EPSG','2313',1.5,'EPSG','8656','Latitude and longitude difference file','NS778301.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NSGC-Can NS',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1851','ATS77 to WGS 84 (3)','Parameter file is from ATS77 to NAD83(CSRS) (3) (code 1850) assuming that NAD83(CSRS) is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1m level.','EPSG','9615','NTv2','EPSG','4122','EPSG','4326','EPSG','2313',1.0,'EPSG','8656','Latitude and longitude difference file','NS778301.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can NS',0);
INSERT INTO "grid_transformation" VALUES('EPSG','1841','ATS77 to NAD83(CSRS) (1)','Introduced in 1999. Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1688.','Used in the GeoNB Coordinate Transformation Service. Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','4617','EPSG','1447',1.5,'EPSG','8656','Latitude and longitude difference file','NB7783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GIC-Can NB',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1843','NAD83 to NAD83(CSRS) (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD83 (code 4269) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1696.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','4617','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','NAD83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1844','NAD27 to NAD83(CSRS) (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD27 (code 4267) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1692.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','4617','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','QUE27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1845','NAD27(CGQ77) to NAD83(CSRS) (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD27(CGQ77) (code 4609) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD27(CGQ77) to WGS 84 - see code 1691.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4609','EPSG','4617','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','CGQ77-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1846','ATS77 to NAD83(CSRS) (2)','Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1689.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','4617','EPSG','1533',1.5,'EPSG','8656','Latitude and longitude difference file','PE7783V2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'PEI DOT-Can PEI',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1847','NAD27 to NAD83(CSRS) (2)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1703.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','4617','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1848','NAD83 to NAD83(CSRS) (2)','Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1697.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','4617','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1849','NAD83 to NAD83(CSRS) (3)','This gridded difference file AB_CSRS.DAC will need to be renamed to AB_CSRS.gsb to run in some software suites. Formats identical, but AB file is provincial fit only. Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1702.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','4617','EPSG','2376',1.5,'EPSG','8656','Latitude and longitude difference file','AB_CSRS.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'AB Env-Can AB',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1850','ATS77 to NAD83(CSRS) (3)','Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1851.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','4617','EPSG','2313',1.5,'EPSG','8656','Latitude and longitude difference file','NS778301.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NSGC-Can NS',1);
INSERT INTO "grid_transformation" VALUES('EPSG','1851','ATS77 to WGS 84 (3)','Parameter file is from ATS77 to NAD83(CSRS)v3 (3) (code 9235) assuming that NAD83(CSRS)v3 is equivalent to WGS 84 within the accuracy of the transformation.','Approximation at the +/- 1-2m level.','EPSG','9615','NTv2','EPSG','4122','EPSG','4326','EPSG','2313',1.5,'EPSG','8656','Latitude and longitude difference file','NS778301.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Can NS',0);
INSERT INTO "grid_transformation" VALUES('EPSG','3858','WGS 84 to EGM2008 height (1)','Replaces WGS 84 to EGM96 height (1) (CT code 15781). Grid spacing is 2.5 arc-minutes. For a smaller spacing (in principle more exact but requiring greater computing resources) see CT code 3859. An executable using spherical harmonics is also available.','Derivation of gravity-related heights from GPS observations.','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4979','EPSG','3855','EPSG','1262',1.0,'EPSG','8666','Geoid (height correction) model file','Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz',NULL,NULL,NULL,NULL,NULL,NULL,'NGA-World',0);
INSERT INTO "grid_transformation" VALUES('EPSG','3859','WGS 84 to EGM2008 height (2)','Replaces WGS 84 to EGM96 height (1) (CT code 15781). Grid spacing is 1 arc-minute. For a larger grid spacing (in principle less exact but requiring less computing resources) see CT code 3858. An executable using spherical harmonics is also available.','Derivation of gravity-related heights from GPS observations.','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4979','EPSG','3855','EPSG','1262',0.5,'EPSG','8666','Geoid (height correction) model file','Und_min1x1_egm2008_isw=82_WGS84_TideFree.gz',NULL,NULL,NULL,NULL,NULL,NULL,'NGA-World',0);
INSERT INTO "grid_transformation" VALUES('EPSG','4459','NZGD2000 to NZVD2009 height (1)','Defines NZVD2009 vertical datum (datum code 1039, CRS code 4440).','Derivation of gravity-related heights from GPS observations.','EPSG','1030','Geographic3D to GravityRelatedHeight (NZgeoid)','EPSG','4959','EPSG','4440','EPSG','1175',0.1,'EPSG','8666','Geoid (height correction) model file','nzgeoid09.sid',NULL,NULL,NULL,NULL,NULL,NULL,'LINZ-NZ 2009',0);
@@ -163,9 +163,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','5334','ETRS89 to Belfast height
INSERT INTO "grid_transformation" VALUES('EPSG','5335','ETRS89 to Malin Head height (1)','May be used for transformations from WGS 84 to Malin Head. Replaced by ETRS89 to Malin Head height (2) (code 7959).','Derivation of gravity-related heights from GPS observations.','EPSG','1045','Geographic3D to GravityRelatedHeight (OSGM02-Ire)','EPSG','4937','EPSG','5731','EPSG','1305',0.04,'EPSG','8666','Geoid (height correction) model file','OSGM02_RoI.txt',NULL,NULL,NULL,NULL,NULL,NULL,'OS-Ire',0);
INSERT INTO "grid_transformation" VALUES('EPSG','5338','OSGB 1936 to ETRS89 (1)','Approximate alternative to official OSTN02 method (tfm code 7952). May be taken as approximate transformation OSGB 1936 to WGS 84 - see code 5339.','Accuracy at 2000 test points compared to official OSTN02 (tfm code 1039): latitude 0.5mm average, 17mm maximum; longitude 0.8mm average, 23mm maximum.','EPSG','9615','NTv2','EPSG','4277','EPSG','4258','EPSG','1264',0.03,'EPSG','8656','Latitude and longitude difference file','OSTN02_NTv2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OSGB-UK Gbr02 NT',0);
INSERT INTO "grid_transformation" VALUES('EPSG','5339','OSGB 1936 to WGS 84 (7)','Parameter values taken from OSGB 1936 to ETRS89 (1) (tfm code 5338) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the tfm. Within accuracy of the tfm equivalent to OSGB 1936 / British National Grid to WGS 84 (2) (tfm code 15956).','Accuracy 1m.','EPSG','9615','NTv2','EPSG','4277','EPSG','4326','EPSG','1264',1.0,'EPSG','8656','Latitude and longitude difference file','OSTN02_NTv2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-UK Gbr02 NT',0);
INSERT INTO "grid_transformation" VALUES('EPSG','5409','NGVD29 height to NAVD88 height (1)','Interpolation within the gridded data file may be made using any of the horizontal CRSs NAD27, NAD83 or NAD83(HARN).','Accuracy 2cm','EPSG','9658','VERTCON','EPSG','5702','EPSG','5703','EPSG','2950',0.02,'EPSG','8732','Vertical offset file','vertconw.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus W',1);
INSERT INTO "grid_transformation" VALUES('EPSG','5410','NGVD29 height to NAVD88 height (2)','Interpolation within the gridded data file may be made using any of the horizontal CRSs NAD27, NAD83 or NAD83(HARN).','Accuracy 2cm','EPSG','9658','VERTCON','EPSG','5702','EPSG','5703','EPSG','2949',0.02,'EPSG','8732','Vertical offset file','vertconc.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus C',1);
INSERT INTO "grid_transformation" VALUES('EPSG','5411','NGVD29 height to NAVD88 height (3)','Interpolation within the gridded data file may be made using any of the horizontal CRSs NAD27, NAD83 or NAD83(HARN).','Accuracy 2cm','EPSG','9658','VERTCON','EPSG','5702','EPSG','5703','EPSG','2948',0.02,'EPSG','8732','Vertical offset file','vertcone.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus E',1);
INSERT INTO "grid_transformation" VALUES('EPSG','5409','NGVD29 height to NAVD88 height (1)','Interpolation within the gridded data file may be made using any of the horizontal CRSs NAD27, NAD83 or NAD83(HARN).','Accuracy 2cm','EPSG','9658','Vertical Offset by Grid Interpolation (VERTCON)','EPSG','5702','EPSG','5703','EPSG','2950',0.02,'EPSG','8732','Vertical offset file','vertconw.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus W',1);
INSERT INTO "grid_transformation" VALUES('EPSG','5410','NGVD29 height to NAVD88 height (2)','Interpolation within the gridded data file may be made using any of the horizontal CRSs NAD27, NAD83 or NAD83(HARN).','Accuracy 2cm','EPSG','9658','Vertical Offset by Grid Interpolation (VERTCON)','EPSG','5702','EPSG','5703','EPSG','2949',0.02,'EPSG','8732','Vertical offset file','vertconc.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus C',1);
INSERT INTO "grid_transformation" VALUES('EPSG','5411','NGVD29 height to NAVD88 height (3)','Interpolation within the gridded data file may be made using any of the horizontal CRSs NAD27, NAD83 or NAD83(HARN).','Accuracy 2cm','EPSG','9658','Vertical Offset by Grid Interpolation (VERTCON)','EPSG','5702','EPSG','5703','EPSG','2948',0.02,'EPSG','8732','Vertical offset file','vertcone.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus E',1);
INSERT INTO "grid_transformation" VALUES('EPSG','5502','RGAF09 to Martinique 1987 height (1)','Replaces tfm from RRAF 1991, code 4561. May be used for transformations from WGS 84 to IGN 1987. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','5488','EPSG','5756','EPSG','3276',998.0,'EPSG','8666','Geoid (height correction) model file','gg10_mart.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Mtq',0);
INSERT INTO "grid_transformation" VALUES('EPSG','5503','RGAF09 to Guadeloupe 1988 height (1)','Replaces tfm from RRAF 1991, code 4562. May be used for transformations from WGS 84 to IGN 1988. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations. Accuracy 0.2m within onshore areas.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','5488','EPSG','5757','EPSG','2892',0.2,'EPSG','8666','Geoid (height correction) model file','gg10_gtbt.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp GT',0);
INSERT INTO "grid_transformation" VALUES('EPSG','5504','RGAF09 to IGN 1988 MG height (1)','Replaces tfm from RRAF 1991, code 4563. May be used for transformations from WGS 84 to IGN 1988 MG. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations. Accuracy 0.2m within onshore area.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','5488','EPSG','5617','EPSG','2894',0.2,'EPSG','8666','Geoid (height correction) model file','gg10_mg.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG',0);
@@ -192,10 +192,10 @@ INSERT INTO "grid_transformation" VALUES('EPSG','6139','CIGD11 to LCVD61 height
INSERT INTO "grid_transformation" VALUES('EPSG','6140','CIGD11 to CBVD61 height (ft) (1)','Care: source CRS heights are in metres, transformation file parameter values and target CRS heights are in feet.','Derivation of gravity-related heights from GPS observations.','EPSG','1050','Geographic3D to GravityRelatedHeight (CI)','EPSG','6134','EPSG','6132','EPSG','3207',0.03,'EPSG','8666','Geoid (height correction) model file','CBGM0811.TXT',NULL,NULL,NULL,NULL,NULL,NULL,'LSD-Cym',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6188','Lisbon to ETRS89 (4)','Derived from 1129 common stations in the national geodetic network. Residuals at 130 further test points average 0.09m, maximum 0.30m.','Decimetre accuracy.','EPSG','9615','NTv2','EPSG','4207','EPSG','4258','EPSG','1294',0.1,'EPSG','8656','Latitude and longitude difference file','DLx_ETRS89_geo.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'IGP-Prt 0.1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6189','Datum 73 to ETRS89 (6)','Derived from 1129 common stations in the national geodetic network. Residuals at 130 further test points average 0.06m, maximum 0.16m.','Decimetre accuracy.','EPSG','9615','NTv2','EPSG','4274','EPSG','4258','EPSG','1294',0.1,'EPSG','8656','Latitude and longitude difference file','D73_ETRS89_geo.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'IGP-Prt 0.1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6209','NAD27 to NAD83(CSRS) (4)','Introduced in 2011. Precision of 20 cm in area covered by the input data set and 40 cm anywhere else, with the exception of the northwest area of the province (near the border with Quebec) where the precision deteriorates to 80 cm.','Used in the GeoNB Coordinate Transformation Service.','EPSG','9615','NTv2','EPSG','4267','EPSG','4617','EPSG','1447',0.8,'EPSG','8656','Latitude and longitude difference file','NB2783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SNB-Can NB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6326','NAD83(2011) to NAVD88 height (1)','Uses Geoid12B hybrid model. Renamed from Geoid12A but with no data changes. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','6319','EPSG','5703','EPSG','1323',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bu0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6327','NAD83(2011) to NAVD88 height (2)','Uses Geoid12B hybrid model. Renamed from Geoid12A but with no data changes. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','6319','EPSG','5703','EPSG','1330',0.02,'EPSG','8666','Geoid (height correction) model file','g2012ba0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US AK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6648','NAD83(CSRS) to CGVD2013 height (1)','Uses CGG2013 model which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time.','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','4955','EPSG','6647','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013n83.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6209','NAD27 to NAD83(CSRS) (4)','Introduced in 2011. Precision of 20 cm in area covered by the input data set and 40 cm anywhere else, with the exception of the northwest area of the province (near the border with Quebec) where the precision deteriorates to 80 cm.','Used in the GeoNB Coordinate Transformation Service.','EPSG','9615','NTv2','EPSG','4267','EPSG','4617','EPSG','1447',0.8,'EPSG','8656','Latitude and longitude difference file','NB2783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SNB-Can NB',1);
INSERT INTO "grid_transformation" VALUES('EPSG','6326','NAD83(2011) to NAVD88 height (1)','Uses Geoid12B hybrid model. Renamed from Geoid12A but with no data changes. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6319','EPSG','5703','EPSG','1323',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bu0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6327','NAD83(2011) to NAVD88 height (2)','Uses Geoid12B hybrid model. Renamed from Geoid12A but with no data changes. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6319','EPSG','5703','EPSG','1330',0.02,'EPSG','8666','Geoid (height correction) model file','g2012ba0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US AK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6648','NAD83(CSRS) to CGVD2013 height (1)','Uses CGG2013 model which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time.','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','4955','EPSG','6647','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013n83.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013',1);
INSERT INTO "grid_transformation" VALUES('EPSG','6712','Tokyo to JGD2000 (2)','NTv2 grid derived by ESRI from that supplied by GSI in application tky2jgd. After Tohoku earthquake of 2011 accuracy in northern Honshu reduced to 1-5m and in this area replaced by Tokyo to JGD2011 (tfm code 6714).','Surveying, mapping and civil engineering.','EPSG','9615','NTv2','EPSG','4301','EPSG','4612','EPSG','3957',0.2,'EPSG','8656','Latitude and longitude difference file','tky2jgd.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Jpn',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6713','JGD2000 to JGD2011 (1)','NTv2 grid derived by ESRI from that supplied by GSI in application patchjgd.','Surveying, mapping and civil engineering purposes','EPSG','9615','NTv2','EPSG','4612','EPSG','6668','EPSG','4170',0.2,'EPSG','8656','Latitude and longitude difference file','touhokutaiheiyouoki2011.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Jpn N Honshu',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6740','Tokyo to JGD2011 (2)','Parameter values from Tokyo to JGD2000 (2) (tfm code 6712) as in area of applicability JGD2011 = JGD2000. NTv2 grid derived by ESRI from that supplied by GSI in application tky2jgd. See Tokyo to JGD2011 (1) (tfm code 6714) for northern Honshu area.','Surveying, mapping and civil engineering.','EPSG','9615','NTv2','EPSG','4301','EPSG','6668','EPSG','4194',0.2,'EPSG','8656','Latitude and longitude difference file','tky2jgd.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Jpn ex N Honshu',0);
@@ -203,12 +203,12 @@ INSERT INTO "grid_transformation" VALUES('EPSG','6946','TM75 to ETRS89 (3)','App
INSERT INTO "grid_transformation" VALUES('EPSG','6947','TM75 to WGS 84 (4)','Parameter values taken from TM75 to ETRS89 (3) (tfm code 6946) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the tfm. Within accuracy of the tfm equivalent to TM75 to WGS 84 (1) (tfm code 1042).','Emulation of polynomial (tfm code 1042). Accuracy 1m.','EPSG','9615','NTv2','EPSG','4300','EPSG','4326','EPSG','1305',1.0,'EPSG','8656','Latitude and longitude difference file','tm75_etrs89.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Ire NT',0);
INSERT INTO "grid_transformation" VALUES('EPSG','6948','RD/83 to ETRS89 (2)','Recommended by Saxony State Spatial Data and Land Survey Corporation for transformations based on official geospatial data of Saxony. See www.landesvermessung.sachsen.de/inhalt/etrs/method/method.html#ntv2.','Cadastre. Accuracy 3mm within Saxony; within the rest of RD/83 definition area results at least coincide with EPSG transformation code15868.','EPSG','9615','NTv2','EPSG','4745','EPSG','4258','EPSG','2545',0.03,'EPSG','8656','Latitude and longitude difference file','NTv2_SN.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GeoSN-Deu SN',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7000','Amersfoort to ETRS89 (7)','Consistent to within 1mm with official RNAPTRANS(TM)2008 at ground level onshore and at MSL offshore. The horizontal deviation using this NTv2 grid is approximately 1mm per 50m height difference from ground level or MSL.','Approximation of horizontal component of official 3D RDNAPTRANS(TM) transformation, which since 1st October 2000 has defined Amersfoort geodetic datum.','EPSG','9615','NTv2','EPSG','4289','EPSG','4258','EPSG','1275',0.001,'EPSG','8656','Latitude and longitude difference file','rdtrans2008.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'RDNAP-Nld 2008',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7001','ETRS89 to NAP height (1)','Alternative to vertical component of official 3D RDNAPTRANS(TM)2008. The naptrans2008 correction grid incorporates the NLGEO2004 geoid model plus a fixed offset.','Derivation of gravity-related heights from GPS observations. When used in conjunction with transformation Amersfoort to ETRS89 (7) (code 7000), this transformation is reversible.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4937','EPSG','5709','EPSG','1275',0.01,'EPSG','8666','Geoid (height correction) model file','naptrans2008.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'RDNAP-Nld 2008',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7646','NAD83(2011) to PRVD02 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','6319','EPSG','6641','EPSG','3294',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bp0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Pri 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7647','NAD83(2011) to VIVD09 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','6319','EPSG','6642','EPSG','3330',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bp0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Vir 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7648','NAD83(MA11) to GUVD04 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','6323','EPSG','6644','EPSG','3255',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bg0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Gum 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7649','NAD83(MA11) to NMVD03 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','6323','EPSG','6640','EPSG','4171',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bg0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Mnp 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7650','NAD83(PA11) to ASVD02 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','6320','EPSG','6643','EPSG','2288',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bs0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Asm 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7001','ETRS89 to NAP height (1)','Alternative to vertical component of official 3D RDNAPTRANS(TM)2008. The naptrans2008 correction grid incorporates the NLGEO2004 geoid model plus a fixed offset.','Derivation of gravity-related heights from GPS observations. When used in conjunction with transformation Amersfoort to ETRS89 (7) (code 7000), this transformation is reversible.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4937','EPSG','5709','EPSG','1275',0.01,'EPSG','8666','Geoid (height correction) model file','naptrans2008.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'RDNAP-Nld 2008',1);
INSERT INTO "grid_transformation" VALUES('EPSG','7646','NAD83(2011) to PRVD02 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6319','EPSG','6641','EPSG','3294',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bp0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Pri 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7647','NAD83(2011) to VIVD09 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6319','EPSG','6642','EPSG','3330',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bp0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Vir 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7648','NAD83(MA11) to GUVD04 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6324','EPSG','6644','EPSG','3255',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bg0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Gum 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7649','NAD83(MA11) to NMVD03 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6324','EPSG','6640','EPSG','4171',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bg0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Mnp 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7650','NAD83(PA11) to ASVD02 height (1)','Uses Geoid12B hybrid model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6321','EPSG','6643','EPSG','2288',0.02,'EPSG','8666','Geoid (height correction) model file','g2012bs0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Asm 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7655','PNG94 to PNG08 height (1)','','Derivation of gravity-related heights from GPS observations.','EPSG','1059','Geographic3D to GravityRelatedHeight (PNG)','EPSG','5545','EPSG','7447','EPSG','4384',0.2,'EPSG','8666','Geoid (height correction) model file','PNG08.DAT',NULL,NULL,NULL,NULL,NULL,NULL,'QC-Png',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7673','CH1903 to CHTRF95 (1)','Equivalent to concatenation of transformations 15486 and 1509 to within 2cm. Also used as transformation between CH1903 and ETRS89 (see code 7674).','Approximation (to better than 2m) using NTv2 method of results of FINELTRA programme concatenated with LV-95 parameters.','EPSG','9615','NTv2','EPSG','4149','EPSG','4151','EPSG','1286',0.25,'EPSG','8656','Latitude and longitude difference file','CHENyx06_ETRS.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che NTv2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7674','CH1903 to ETRS89 (2)','Replaces tfm code 1646. Equivalent to concatenation of transformations 15486 and 1647 to within 2cm. Also used as transformation between CH1903 and CHTRF95 (see code 7673). May be used as approximate tfm CH1903 to WGS 84 - see code 7788.','Approximation (to better than 2cm) using NTv2 method of results of FINELTRA programme concatenated with LV-95 parameters.','EPSG','9615','NTv2','EPSG','4149','EPSG','4258','EPSG','1286',0.25,'EPSG','8656','Latitude and longitude difference file','CHENyx06_ETRS.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che NTv2',0);
@@ -242,9 +242,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','7891','SHGD2015 to SHVD2015 hei
INSERT INTO "grid_transformation" VALUES('EPSG','7957','Canada velocity grid v6','NOTE: Before being deprecated this record had a second parameter (code 1048, value 8251) which has been removed due to being non-compliant with the data model.','Change of coordinate epoch for points referenced to NAD83(CSRS)v6.','EPSG','1070','Point motion by grid (Canada NTv2_Vel)','EPSG','8251','EPSG','8251','EPSG','1061',0.01,'EPSG','1050','Point motion velocity grid file','cvg60.cvb',NULL,NULL,NULL,NULL,NULL,NULL,'NRC-Can cvg6.0',1);
INSERT INTO "grid_transformation" VALUES('EPSG','7958','ETRS89 to Belfast height (2)','OSGM15 supersedes OSGM02 geoid model. Replaces ETRS89 to Belfast height (1) (tfm code 5334).','Derivation of gravity-related heights from OSGM15 geoid model.','EPSG','1072','Geographic3D to GravityRelatedHeight (OSGM15-Ire)','EPSG','4937','EPSG','5732','EPSG','2530',0.014,'EPSG','8666','Geoid (height correction) model file','OSGM15_Belfast.gri',NULL,NULL,NULL,NULL,NULL,NULL,'OS-UK NI 2015',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7959','ETRS89 to Malin Head height (2)','OSGM15 supersedes OSGM02 geoid model. Replaces ETRS89 to Malin Head height (1) (tfm code 5335).','Derivation of gravity-related heights from OSGM15 geoid model.','EPSG','1072','Geographic3D to GravityRelatedHeight (OSGM15-Ire)','EPSG','4937','EPSG','5731','EPSG','1305',0.023,'EPSG','8666','Geoid (height correction) model file','OSGM15_Malin.gri',NULL,NULL,NULL,NULL,NULL,NULL,'OS-Ire 2015',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7969','NGVD29 height (m) to NAVD88 height (1)','In this area the NGVD29 vertical reference surface is approximately 0.6 to 1.6m below the NAVD88 datum surface. Interpolation within the gridded data file may be made using either NAD27 or any of the realizations of NAD83 applicable to US conus.','Change of height to a different vertical reference surface.','EPSG','9658','VERTCON','EPSG','7968','EPSG','5703','EPSG','2950',0.02,'EPSG','8732','Vertical offset file','vertconw.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus W',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7970','NGVD29 height (m) to NAVD88 height (2)','In the SE of this area the NGVD29 surface is 0 to 0.1m above the NAVD88 surface; in the W it is 0.6 to 0.9m below the NAVD88 surface. Interpolation in the data file may be made using either NAD27 or any of the NAD83 realizations applicable to US conus.','Change of height to a different vertical reference surface.','EPSG','9658','VERTCON','EPSG','7968','EPSG','5703','EPSG','2949',0.02,'EPSG','8732','Vertical offset file','vertconc.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus C',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7971','NGVD29 height (m) to NAVD88 height (3)','In this area the NGVD29 vertical reference surface is approximately 0 to 0.5m above the NAVD88 surface. Interpolation within the gridded data file may be made using either NAD27 or any of the realisations of NAD83 applicable to US conus.','Change of height to a different vertical reference surface.','EPSG','9658','VERTCON','EPSG','7968','EPSG','5703','EPSG','2948',0.02,'EPSG','8732','Vertical offset file','vertcone.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus E',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7969','NGVD29 height (m) to NAVD88 height (1)','In this area the NGVD29 vertical reference surface is approximately 0.6 to 1.6m below the NAVD88 datum surface. Interpolation within the gridded data file may be made using either NAD27 or any of the realizations of NAD83 applicable to US conus.','Change of height to a different vertical reference surface.','EPSG','9658','Vertical Offset by Grid Interpolation (VERTCON)','EPSG','7968','EPSG','5703','EPSG','2950',0.02,'EPSG','8732','Vertical offset file','vertconw.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus W',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7970','NGVD29 height (m) to NAVD88 height (2)','In the SE of this area the NGVD29 surface is 0 to 0.1m above the NAVD88 surface; in the W it is 0.6 to 0.9m below the NAVD88 surface. Interpolation in the data file may be made using either NAD27 or any of the NAD83 realizations applicable to US conus.','Change of height to a different vertical reference surface.','EPSG','9658','Vertical Offset by Grid Interpolation (VERTCON)','EPSG','7968','EPSG','5703','EPSG','2949',0.02,'EPSG','8732','Vertical offset file','vertconc.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus C',0);
INSERT INTO "grid_transformation" VALUES('EPSG','7971','NGVD29 height (m) to NAVD88 height (3)','In this area the NGVD29 vertical reference surface is approximately 0 to 0.5m above the NAVD88 surface. Interpolation within the gridded data file may be made using either NAD27 or any of the realisations of NAD83 applicable to US conus.','Change of height to a different vertical reference surface.','EPSG','9658','Vertical Offset by Grid Interpolation (VERTCON)','EPSG','7968','EPSG','5703','EPSG','2948',0.02,'EPSG','8732','Vertical offset file','vertcone.94',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus E',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8037','WGS 84 to MSL height (1)','Parameter values are from WGS 84 to EGM2008 height (2) (tfm code 3859) assuming that the EGM2008 height surface approximates to MSL height within the accuracy of the transformation.','Derivation of gravity-related heights referenced to an unspecified mean sea level from GPS observations.','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4979','EPSG','5714','EPSG','1262',0.5,'EPSG','8666','Geoid (height correction) model file','Und_min1x1_egm2008_isw=82_WGS84_TideFree.gz',NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-World',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8268','GR96 to GVR2000 height (1)','Defines GVR2000. File is also available in NOAA VDatum format (ggeoid2000.gtx) and GeoTIFF format (ggeoid2000.tif).','Derivation of gravity-related heights from GNSS observations.','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4909','EPSG','8266','EPSG','4461',0.1,'EPSG','8666','Geoid (height correction) model file','gr2000g.gri',NULL,NULL,NULL,NULL,NULL,NULL,'SDFE-Grl',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8269','GR96 to GVR2016 height (1)','Defines GVR2016. File is also available in NOAA VDatum format (ggeoid2016.gtx) and GeoTIFF format (ggeoid2016.tif).','Derivation of gravity-related heights from GNSS observations.','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4909','EPSG','8267','EPSG','4454',0.1,'EPSG','8666','Geoid (height correction) model file','ggeoid16.gri',NULL,NULL,NULL,NULL,NULL,NULL,'SDFE-Grl',0);
@@ -261,14 +261,27 @@ INSERT INTO "grid_transformation" VALUES('EPSG','8445','GDA94 to GDA2020 (5)','S
INSERT INTO "grid_transformation" VALUES('EPSG','8446','GDA94 to GDA2020 (3)','Gives identical results to Helmert transformation GDA94 to GDA2020 (1) (code 8048). See GDA94 to GDA2020 (2) (code 8447) for alternative with local distortion modelling included. GDA2020 Technical Manual and fact sheet T1 give guidance on which to use.','Conformal transformation of GDA94 coordinates that have been derived through GNSS CORS.','EPSG','9615','NTv2','EPSG','4283','EPSG','7844','EPSG','2575',0.05,'EPSG','8656','Latitude and longitude difference file','GDA94_GDA2020_conformal.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ICSM-Aus NTv2 Conf',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8447','GDA94 to GDA2020 (2)','See GDA94 to GDA2020 (1) or (3) (codes 8048 and 8446) for alternative conformal-only transformation without local distortion modelling. GDA2020 Technical Manual and fact sheet T1 give guidance on which to use.','Transformation of GDA94 coordinates when localised distortion needs to be taken into account, e.g. if GDA94 coordinates were derived survey control monuments.','EPSG','9615','NTv2','EPSG','4283','EPSG','7844','EPSG','2575',0.05,'EPSG','8656','Latitude and longitude difference file','GDA94_GDA2020_conformal_and_distortion.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ICSM-Aus Conf and Dist',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8451','GDA2020 to AHD height (1)','Uncertainties given in accompanying file AUSGeoid2020_windows_binary_uncertainty.gsb','Derivation of gravity-related heights from GNSS observations.','EPSG','1048','Geographic3D to GravityRelatedHeight (Ausgeoid v2)','EPSG','7843','EPSG','5711','EPSG','4493',0.03,'EPSG','8666','Geoid (height correction) model file','AUSGeoid2020_windows_binary.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GA-Aus 2020',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8546','St. George Island to NAD83 (2)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4138','EPSG','4269','EPSG','1331',0.15,'EPSG','8657','Latitude difference file','nadcon5.sg1952.nad83_1986.stgeorge.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.sg1952.nad83_1986.stgeorge.lon.trn.20160901.b',NULL,NULL,'NGS-Usa AK StG Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8547','St. Lawrence Island to NAD83 (2)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4136','EPSG','4269','EPSG','1332',0.5,'EPSG','8657','Latitude difference file','nadcon5.sl1952.nad83_1986.stlawrence.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.sl1952.nad83_1986.stlawrence.lon.trn.20160901.b',NULL,NULL,'NGS-Usa AK StL Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8548','St. Paul Island to NAD83 (2)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4137','EPSG','4269','EPSG','1333',0.5,'EPSG','8657','Latitude difference file','nadcon5.sp1952.nad83_1986.stpaul.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.sp1952.nad83_1986.stpaul.lon.trn.20160901.b',NULL,NULL,'NGS-Usa AK StP Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8549','NAD27 to NAD83 (8)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; source and target CRSs have longitudes positive east in range -180° to +180°. Accuracy at 67% confidence level is 0.5m onshore, 5m nearshore and undetermined farther offshore.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4267','EPSG','4269','EPSG','1330',0.5,'EPSG','8657','Latitude difference file','nadcon5.nad27.nad83_1986.alaska.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.nad27.nad83_1986.alaska.lon.trn.20160901.b',NULL,NULL,'NGS-Usa AK Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8550','NAD83 to NAD83(HARN) (48)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4269','EPSG','4152','EPSG','2373',0.15,'EPSG','8657','Latitude difference file','nadcon5.nad83_1986.nad83_1992.alaska.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.nad83_1986.nad83_1992.alaska.lon.trn.20160901.b',NULL,NULL,'NGS-Usa AK Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8555','NAD27 to NAD83 (7)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; source and target CRSs have longitudes positive east in range -180° to +180°. Accuracy at 67% confidence level is 0.15m onshore, 1m nearshore and undetermined farther offshore.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4267','EPSG','4269','EPSG','4516',0.15,'EPSG','8657','Latitude difference file','nadcon5.nad27.nad83_1986.conus.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.nad27.nad83_1986.conus.lon.trn.20160901.b',NULL,NULL,'NGS-Usa Conus Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8556','NAD83 to NAD83(HARN) (47)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4269','EPSG','4152','EPSG','4516',0.05,'EPSG','8657','Latitude difference file','nadcon5.nad83_1986.nad83_harn.conus.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.nad83_1986.nad83_harn.conus.lon.trn.20160901.b',NULL,NULL,'NGS-Usa Conus Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8561','Old Hawaiian to NAD83 (2)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4135','EPSG','4269','EPSG','1334',0.2,'EPSG','8657','Latitude difference file','nadcon5.ohd.nad83_1986.hawaii.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.ohd.nad83_1986.hawaii.lon.trn.20160901.b',NULL,NULL,'NGS-Usa HI Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8660','NAD83 to NAD83(HARN) (49)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4269','EPSG','4152','EPSG','1334',0.05,'EPSG','8657','Latitude difference file','nadcon5.nad83_1986.nad83_1993.hawaii.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.nad83_1986.nad83_1993.hawaii.lon.trn.20160901.b',NULL,NULL,'NGS-Usa HI Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8662','American Samoa 1962 to NAD83(HARN) (3)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4169','EPSG','4152','EPSG','3109',5.0,'EPSG','8657','Latitude difference file','nadcon5.as62.nad83_1993.as.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.as62.nad83_1993.as.lon.trn.20160901.b',NULL,NULL,'NGS-Asm Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8665','Guam 1963 to NAD83(HARN) (2)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4675','EPSG','4152','EPSG','4525',5.0,'EPSG','8657','Latitude difference file','nadcon5.gu63.nad83_1993.guamcnmi.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.gu63.nad83_1993.guamcnmi.lon.trn.20160901.b',NULL,NULL,'NGS-Gum NADCON5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8668','Puerto Rico to NAD83 (2)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4139','EPSG','4269','EPSG','3634',0.15,'EPSG','8657','Latitude difference file','nadcon5.pr40.nad83_1986.prvi.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.pr40.nad83_1986.prvi.lon.trn.20160901.b',NULL,NULL,'NGS-Pri Vir Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8669','NAD83 to NAD83(HARN) (50)','Uses NADCON5 method which expects longitudes positive east in range 0-360°; EPSG source and target CRSs have longitudes positive east in range -180° to +180°.','Spatial referencing.','EPSG','1074','NADCON5 (2D)','EPSG','4269','EPSG','4152','EPSG','3634',0.15,'EPSG','8657','Latitude difference file','nadcon5.nad83_1986.nad83_1993.prvi.lat.trn.20160901.b','EPSG','8658','Longitude difference file','nadcon5.nad83_1986.nad83_1993.prvi.lon.trn.20160901.b',NULL,NULL,'NGS-Pri Vir Nadcon5',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8676','Canada velocity grid v6','','Change of coordinate epoch for points referenced to NAD83(CSRS)v6.','EPSG','1070','Point motion by grid (Canada NTv2_Vel)','EPSG','8251','EPSG','8251','EPSG','1061',0.01,'EPSG','1050','Point motion velocity grid file','cvg60.cvb',NULL,NULL,NULL,NULL,NULL,NULL,'NRC-Can cvg6.0',0);
INSERT INTO "grid_transformation" VALUES('EPSG','8885','RGF93 to NGF IGN69 height (3)','Replaces RGF93 to NGF IGN69 height (2) (code 8371). Accuracy at each 0.0333333333333° in longitude and 0.025° in latitude grid node is given within the geoid model file. Recommended interpolation method is bilinear.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','4965','EPSG','5720','EPSG','1326',0.01,'EPSG','8666','Geoid (height correction) model file','RAF18.tac',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra 18',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9105','ATS77 to NAD83 (1)','','Spatial referencing.','EPSG','9615','NTv2','EPSG','4122','EPSG','4269','EPSG','2313',0.5,'EPSG','8656','Latitude and longitude difference file','GS7783.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'NSGC-Can NS',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9106','ATS77 to NAD83(CSRS)v6 (4)','Derived through NAD83(CSRS)v6 but within accuracy of transformation may be assumed to apply to any version.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4122','EPSG','8252','EPSG','2313',0.06,'EPSG','8656','Latitude and longitude difference file','NS778302.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NSGC-Can NS v2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9106','ATS77 to NAD83(CSRS)v6 (4)','Derived through NAD83(CSRS)v6. Replaces ATS77 to NAD83(CSRS)v3 (3) (transformation code 9235).','Spatial referencing.','EPSG','9615','NTv2','EPSG','4122','EPSG','8252','EPSG','2313',0.06,'EPSG','8656','Latitude and longitude difference file','NS778302.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NSGC-Can NS v2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9107','NAD27 to NAD83(CSRS)v3 (5)','Derived through NAD83(CSRS)v3 but within accuracy of transformation may be assumed to apply to any version. For Toronto use NAD27 to NAD83(CSRS) (6) (CT code 9108).','Spatial referencing.','EPSG','9615','NTv2','EPSG','4267','EPSG','8240','EPSG','4537',1.5,'EPSG','8656','Latitude and longitude difference file','ON27CSv1.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'LIO-Can Ont ex Tor',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9108','NAD27 to NAD83(CSRS)v3 (6)','Derived through NAD83(CSRS)v3 but within accuracy of transformation may be assumed to apply to any version. For Ontario excluding Toronto use NAD27 to NAD83(CSRS) (5) (CT code 9107).','Spatial referencing.','EPSG','9615','NTv2','EPSG','4267','EPSG','8240','EPSG','4536',1.0,'EPSG','8656','Latitude and longitude difference file','TOR27CSv1.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'LIO-Can Ont Tor',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9109','NAD27(76) to NAD83(CSRS)v3 (1)','Derived through NAD83(CSRS)v3 but within accuracy of transformation may be assumed to apply to any version.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4608','EPSG','8240','EPSG','1367',1.0,'EPSG','8656','Latitude and longitude difference file','ON76CSv1.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'LIO-Can Ont',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9110','NAD83 to NAD83(CSRS)v3 (5)','Derived through NAD83(CSRS)v3 but within accuracy of transformation may be assumed to apply to any version.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4269','EPSG','8240','EPSG','1367',0.1,'EPSG','8656','Latitude and longitude difference file','ON83CSv1.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'LIO-Can Ont',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9110','NAD83 to NAD83(CSRS)v3 (5)','Derived through NAD83(CSRS)v3.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4269','EPSG','8240','EPSG','1367',0.1,'EPSG','8656','Latitude and longitude difference file','ON83CSv1.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'LIO-Can Ont',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9111','NAD27 to NAD83 (9)','','Spatial referencing.','EPSG','9615','NTv2','EPSG','4267','EPSG','4269','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK27-83.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ISC-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9112','NAD27 to NAD83(CSRS)v2 (7)','Derived through NAD83(CSRS)v2. Replaced by NAD27 to NAD83(CSRS) (8) (CT code 9113) for CRD, NAD27 to NAD83(CSRS) (9) (CT code 9114) forn north Vancouver Island and NAD27 to NAD83(CSRS) (10) (CT code 9115) for mainland.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4267','EPSG','8237','EPSG','2832',1.5,'EPSG','8656','Latitude and longitude difference file','BC_27_98.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC CSRSv2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9113','NAD27 to NAD83(CSRS)v3 (8)','Derived through NAD83(CSRS)v3.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4267','EPSG','8240','EPSG','4533',1.5,'EPSG','8656','Latitude and longitude difference file','CRD27_00.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC CRD',0);
@@ -276,14 +289,14 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9114','NAD27 to NAD83(CSRS)v3 (
INSERT INTO "grid_transformation" VALUES('EPSG','9115','NAD27 to NAD83(CSRS)v4 (10)','Derived through NAD83(CSRS)v4.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4267','EPSG','8246','EPSG','4535',1.5,'EPSG','8656','Latitude and longitude difference file','BC_27_05.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC mainland',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9116','NAD83 to NAD83(CSRS)v2 (6)','Derived through NAD83(CSRS)v2. Replaced by NAD83 to NAD83(CSRS) (7) (CT code 9117) for CRD, NAD83 to NAD83(CSRS) (8) (CT code 9118) for north Vancouver Island and NAD83 to NAD83(CSRS) (9) (CT code 9119) for mainland.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4269','EPSG','8237','EPSG','2832',0.1,'EPSG','8656','Latitude and longitude difference file','BC_93_98.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC CSRSv2',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9117','NAD83 to NAD83(CSRS)v3 (7)','Derived through NAD83(CSRS)v3.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4269','EPSG','8240','EPSG','4533',0.1,'EPSG','8656','Latitude and longitude difference file','CRD93_00.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC CRD',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9118','NAD27 to NAD83(CSRS)v3 (8)','Derived through NAD83(CSRS)v3.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4269','EPSG','8240','EPSG','4534',0.1,'EPSG','8656','Latitude and longitude difference file','NVI93_05.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC NVI',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9118','NAD83 to NAD83(CSRS)v3 (8)','Derived through NAD83(CSRS)v3.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4269','EPSG','8240','EPSG','4534',0.1,'EPSG','8656','Latitude and longitude difference file','NVI93_05.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC NVI',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9119','NAD83 to NAD83(CSRS)v4 (9)','Derived through NAD83(CSRS)v4.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4269','EPSG','8246','EPSG','4535',0.1,'EPSG','8656','Latitude and longitude difference file','BC_93_05.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC mainland',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9120','NAD83(CSRS)v2 to NAD83(CSRS)v3 (1)','','Spatial referencing.','EPSG','9615','NTv2','EPSG','8237','EPSG','8240','EPSG','4533',0.1,'EPSG','8656','Latitude and longitude difference file','CRD98_00.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC CRD',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9121','NAD83(CSRS)v2 to NAD83(CSRS)v3 (2)','','Spatial referencing.','EPSG','9615','NTv2','EPSG','8237','EPSG','8240','EPSG','4534',0.1,'EPSG','8656','Latitude and longitude difference file','NVI98_05.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC NVI',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9122','NAD83(CSRS)v2 to NAD83(CSRS)v4 (1)','','Spatial referencing.','EPSG','9615','NTv2','EPSG','8237','EPSG','8240','EPSG','4535',0.1,'EPSG','8656','Latitude and longitude difference file','BC_98_05.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC mainland',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9123','NAD83(CSRS) to CGVD28 height (1)','Derived through NAD83(CSRS)v3.','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','4955','EPSG','5713','EPSG','1061',0.05,'EPSG','8666','Geoid (height correction) model file','HT2_0.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2000',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9124','ITRF2008 to CGVD2013 height (1)','Uses CGG2013 model derived through NAD83(CSRS)v6 which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaced by model CGG2013a (CT code 9125).','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','7911','EPSG','6647','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013i83.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9125','ITRF2008 to CGVD2013 height (2)','Uses CGG2013a model derived through NAD83(CSRS)v6 which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaces model CGG2013 (CT code 9124).','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','7911','EPSG','6647','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013i08a.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013a',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9124','ITRF2008 to CGVD2013(CGG2013) height (1)','Uses CGG2013 model derived through NAD83(CSRS)v6 which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaced by CT code 9125.','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','7911','EPSG','6647','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013i83.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9125','ITRF2008 to CGVD2013(CGG2013a) height (2)','Uses CGG2013a model derived through NAD83(CSRS)v6 which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaces CT code 9124.','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','7911','EPSG','9245','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013i08a.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013a',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9131','RGAF09 to IGN 2008 LD height (1)','Replaces RGAF09 to IGN 1992 LD height (1) (CT code 5507). Accuracy 0.1-0.2m within onshore area.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','5488','EPSG','9130','EPSG','2893',0.2,'EPSG','8666','Geoid (height correction) model file','RALD2016.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Glp Des',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9132','RRAF 1991 to IGN 2008 LD height (1)','Replaces RRAF 1991 to IGN 1992 LD height (1) (CT code 4566). Accuracy 0.1-0.2m within onshore area.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','4557','EPSG','9130','EPSG','2893',0.2,'EPSG','8666','Geoid (height correction) model file','RALDW842016.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp Des',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9133','RGAF09 to Guadeloupe 1988 height (2)','Replaces RGAF09 to Guadeloupe 1988 height (1) (CT code 5503). Accuracy 0.01-0.05m within onshore areas.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','5488','EPSG','5757','EPSG','2892',0.05,'EPSG','8666','Geoid (height correction) model file','RAGTBT2016.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp GT 2016',0);
@@ -291,25 +304,71 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9134','RGAF09 to IGN 1988 LS he
INSERT INTO "grid_transformation" VALUES('EPSG','9135','RGAF09 to IGN 1988 MG height (2)','Replaces RGAF09 to IGN 1988 MG height (1), CT code 5504. Accuracy 0.0.5-0.1m within onshore area.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','5488','EPSG','5617','EPSG','2894',0.1,'EPSG','8666','Geoid (height correction) model file','RAMG2016.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG 2016',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9136','RGAF09 to Martinique 1987 height (2)','Replaces RGAF09 to Martinique 1987 height (1) (CT code 5502). Accuracy 0.01m to 0.05m within onshore area.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','5488','EPSG','5756','EPSG','3276',0.05,'EPSG','8666','Geoid (height correction) model file','RAMART2016.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Mtq 2016',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9137','RGSPM06 to Danger 1950 height (1)','Accuracy 0.10m to 0.20m within onshore area.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','4466','EPSG','5792','EPSG','1220',0.2,'EPSG','8666','Geoid (height correction) model file','GGSPM06v1.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-SPM',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9160','NAD83(HARN) to NAVD88 height (1)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2977',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9161','NAD83(HARN) to NAVD88 height (2)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2978',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u02.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9162','NAD83(HARN) to NAVD88 height (3)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2979',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u03.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9163','NAD83(HARN) to NAVD88 height (4)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2980',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u04.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9164','NAD83(HARN) to NAVD88 height (5)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2973',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u05.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9165','NAD83(HARN) to NAVD88 height (6)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2974',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u06.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9166','NAD83(HARN) to NAVD88 height (7)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2975',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u07.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9167','NAD83(HARN) to NAVD88 height (8)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','2976',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u08.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9168','NAD83(FBN) to NAVD88 height (1)','Uses Geoid03 hybrid model. Replaced by 2009 model (CT code 9173).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','8542','EPSG','5703','EPSG','1323',0.02,'EPSG','8666','Geoid (height correction) model file','geoid03_conus.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9169','NAD83(HARN) to NAVD88 height (9)','Uses Geoid06 hybrid model. Replaced by Geoid09 model (CT code 9174).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4957','EPSG','5703','EPSG','1330',0.02,'EPSG','8666','Geoid (height correction) model file','geoid06_ak.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US AK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9170','NAD83(FBN) to ASVD02 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7650).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','8542','EPSG','6643','EPSG','2288',0.05,'EPSG','8666','Geoid (height correction) model file','g2009s01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Asm 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9171','NAD83(FBN) to GUVD04 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7648).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','8542','EPSG','6644','EPSG','3255',0.05,'EPSG','8666','Geoid (height correction) model file','g2009g01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Gum 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9172','NAD83(FBN) to NMVD03 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7649).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','8542','EPSG','6640','EPSG','4171',0.05,'EPSG','8666','Geoid (height correction) model file','g2009g01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Mnp 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9173','NAD83(NSRS2007) to NAVD88 height (1)','Uses Geoid09 hybrid model. Replaced by 2012 model (CT code 6326).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4893','EPSG','5703','EPSG','1323',0.05,'EPSG','8666','Geoid (height correction) model file','geoid09_conus.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9174','NAD83(NSRS2007) to NAVD88 height (2)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 6327).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4893','EPSG','5703','EPSG','1330',0.05,'EPSG','8666','Geoid (height correction) model file','geoid09_ak.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US AK 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9175','NAD83(NSRS2007) to PRVD02 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7646).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4893','EPSG','6641','EPSG','3294',0.05,'EPSG','8666','Geoid (height correction) model file','g2009p01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Pri 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9176','NAD83(NSRS2007) to VIVD09 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7647).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4893','EPSG','6642','EPSG','3330',0.05,'EPSG','8666','Geoid (height correction) model file','g2009p01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Vir 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9160','NAD83(HARN) to NAVD88 height (1)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2977',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9161','NAD83(HARN) to NAVD88 height (2)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2978',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u02.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9162','NAD83(HARN) to NAVD88 height (3)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2979',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u03.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9163','NAD83(HARN) to NAVD88 height (4)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2980',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u04.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9164','NAD83(HARN) to NAVD88 height (5)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2973',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u05.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9165','NAD83(HARN) to NAVD88 height (6)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2974',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u06.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSW',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9166','NAD83(HARN) to NAVD88 height (7)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2975',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u07.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9167','NAD83(HARN) to NAVD88 height (8)','Uses Geoid99 hybrid model. Replaced by 2003 model (CT code 9168).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','2976',0.05,'EPSG','8666','Geoid (height correction) model file','g1999u08.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SE',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9168','NAD83(FBN) to NAVD88 height (1)','Uses Geoid03 hybrid model. Replaced by 2009 model (CT code 9173).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','8542','EPSG','5703','EPSG','1323',0.02,'EPSG','8666','Geoid (height correction) model file','geoid03_conus.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9169','NAD83(HARN) to NAVD88 height (9)','Uses Geoid06 hybrid model. Replaced by Geoid09 model (CT code 9174).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4957','EPSG','5703','EPSG','1330',0.02,'EPSG','8666','Geoid (height correction) model file','geoid06_ak.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US AK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9170','NAD83(FBN) to ASVD02 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7650).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','8542','EPSG','6643','EPSG','2288',0.05,'EPSG','8666','Geoid (height correction) model file','g2009s01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Asm 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9171','NAD83(FBN) to GUVD04 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7648).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','8542','EPSG','6644','EPSG','3255',0.05,'EPSG','8666','Geoid (height correction) model file','g2009g01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Gum 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9172','NAD83(FBN) to NMVD03 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7649).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','8542','EPSG','6640','EPSG','4171',0.05,'EPSG','8666','Geoid (height correction) model file','g2009g01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Mnp 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9173','NAD83(NSRS2007) to NAVD88 height (1)','Uses Geoid09 hybrid model. Replaced by 2012 model (CT code 6326).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4893','EPSG','5703','EPSG','1323',0.05,'EPSG','8666','Geoid (height correction) model file','geoid09_conus.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9174','NAD83(NSRS2007) to NAVD88 height (2)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 6327).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4893','EPSG','5703','EPSG','1330',0.05,'EPSG','8666','Geoid (height correction) model file','geoid09_ak.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US AK 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9175','NAD83(NSRS2007) to PRVD02 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7646).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4893','EPSG','6641','EPSG','3294',0.05,'EPSG','8666','Geoid (height correction) model file','g2009p01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Pri 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9176','NAD83(NSRS2007) to VIVD09 height (1)','Uses Geoid09 hybrid model. Replaced by Geoid12 model (CT code 7647).','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4893','EPSG','6642','EPSG','3330',0.05,'EPSG','8666','Geoid (height correction) model file','g2009p01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Vir 09',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9187','RGAF09 to IGN 1988 SB height (2)','Accuracy 0.05m to 0.1m. Replaces RGAF09 to IGN 1988 SB height (1), transformation code 5508.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','5488','EPSG','5619','EPSG','2891',0.1,'EPSG','8666','Geoid (height correction) model file','gg10_sbv2.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp StB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9188','RGAF09 to IGN 1988 SM height (2)','Accuracy 0.05m to 0.1m. Replaces RGAF09 to IGN 1988 SM height (1), transformation code 5505.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','5488','EPSG','5620','EPSG','2890',0.1,'EPSG','8666','Geoid (height correction) model file','gg10_smv2.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp StM',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9228','RGSPM06 to Danger 1950 height (2)','Accuracy 0.01m to 0.05m within onshore area. Replaces RGSPM06 to Danger 1950 height (1), CT code 9137.','Derivation of gravity-related heights from GPS observations.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','4466','EPSG','5792','EPSG','1220',0.05,'EPSG','8666','Geoid (height correction) model file','RASPM2018.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-SPM',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9229','NAD83(2011) to NAVD88 height (3)','Uses Geoid18 hybrid model. Replaces 12B model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6319','EPSG','5703','EPSG','1323',0.015,'EPSG','8666','Geoid (height correction) model file','g2018u0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus 18',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9230','NAD83(2011) to PRVD02 height (2)','Uses Geoid18 hybrid model. Replaces 12B model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6319','EPSG','6641','EPSG','3294',0.015,'EPSG','8666','Geoid (height correction) model file','g2018p0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Pri 12B',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9231','NAD83(2011) to VIVD09 height (2)','Uses Geoid18 hybrid model. Replaces 12B model. See information source for further information.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','6319','EPSG','6642','EPSG','3330',0.015,'EPSG','8666','Geoid (height correction) model file','g2018p0.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-Vir 18',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9232','ISN93 to ISN2016 (1)','Grid transformation based on Kriging between ISN93 and ISN2016. Accuracy is better than 5 cm in stable areas but can be around 25 cm in areas that have suffered deformation due to earthquake or volcanic eruption.','Spatial referencing.','EPSG','9615','NTv2','EPSG','4659','EPSG','8086','EPSG','1120',0.05,'EPSG','8656','Latitude and longitude difference file','ISN93_ISN2016.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'LMI-Isl',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9233','ISN2004 to ISN2016 (1)','Grid transformation based on Kriging between ISN2004 and ISN2016. Accuracy is better than 5 cm in stable areas but can be around 25 cm in areas that have suffered deformation due to earthquake or volcanic eruption.','Spatial referencing.','EPSG','9615','NTv2','EPSG','5324','EPSG','8086','EPSG','1120',0.05,'EPSG','8656','Latitude and longitude difference file','ISN2004_ISN2016.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'LMI-Isl',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9235','ATS77 to NAD83(CSRS)v3 (3)','Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1851. Replaced by ATS77 to NAD83(CSRS)v6 (4) (transformation code 9106).','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','8240','EPSG','2313',1.5,'EPSG','8656','Latitude and longitude difference file','NS778301.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NSGC-Can NS',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9236','ATS77 to NAD83(CSRS)v2 (2)','Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1689.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','8237','EPSG','1533',1.5,'EPSG','8656','Latitude and longitude difference file','PE7783V2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'PEI DOT-Can PEI',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9237','ATS77 to NAD83(CSRS)v2 (1)','Introduced in 1999. Can be taken as an approximate transformation ATS77 to WGS 84 - see code 1688.','Used in the GeoNB Coordinate Transformation Service. Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4122','EPSG','8237','EPSG','1447',1.5,'EPSG','8656','Latitude and longitude difference file','NB7783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GIC-Can NB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9238','NAD27 to NAD83(CSRS)v2 (4)','Introduced in 2011. Precision of 20 cm in area covered by the input data set and 40 cm anywhere else, with the exception of the northwest area of the province (near the border with Quebec) where the precision deteriorates to 80 cm.','Used in the GeoNB Coordinate Transformation Service.','EPSG','9615','NTv2','EPSG','4267','EPSG','8237','EPSG','1447',0.8,'EPSG','8656','Latitude and longitude difference file','NB2783v2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SNB-Can NB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9239','NAD27 to NAD83(CSRS)v2 (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD27 (code 4267) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1692.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','8237','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','QUE27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9240','NAD27(CGQ77) to NAD83(CSRS)v2 (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD27(CGQ77) (code 4609) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD27(CGQ77) to WGS 84 - see code 1691.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4609','EPSG','8237','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','CGQ77-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9241','NAD83 to NAD83(CSRS)v2 (1)','Uses NT method which expects longitudes positive west; EPSG GeogCRSs NAD83 (code 4269) and NAD83(CSRS) (code 4617) have longitudes positive east. Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1696.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','8237','EPSG','1368',1.5,'EPSG','8656','Latitude and longitude difference file','NAD83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9242','NAD27 to NAD83(CSRS)v3 (2)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1703.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4267','EPSG','8240','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9243','NAD83 to NAD83(CSRS)v3 (2)','Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1697.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','8240','EPSG','2375',1.5,'EPSG','8656','Latitude and longitude difference file','SK83-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9244','NAD83 to NAD83(CSRS)v4 (3)','This gridded difference file AB_CSRS.DAC will need to be renamed to AB_CSRS.gsb to run in some software suites. Formats identical, but AB file is provincial fit only. Can be taken as an approximate transformation NAD83 to WGS 84 - see code 1702.','Accuracy 1-2 metres.','EPSG','9615','NTv2','EPSG','4269','EPSG','8246','EPSG','2376',1.5,'EPSG','8656','Latitude and longitude difference file','AB_CSRS.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'AB Env-Can AB',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9246','NAD83(CSRS)v6 to CGVD2013(CGG2013) height (1)','Uses CGG2013 model which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaced by CGG2013a model (CT code 9247).','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','8251','EPSG','6647','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013n83.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9247','NAD83(CSRS)v6 to CGVD2013(CGG2013a) height (1)','Uses CGG2013a model which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaces CGG2013 model (CT code 9246).','Derivation of gravity-related heights from GPS observations.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','8251','EPSG','9245','EPSG','1061',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013n83a.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013a',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9256','POSGAR 2007 to SRVN16 height (1)','Uses Geoid-AR16. See information source for more information.','Derivation of gravity-related heights from GNSS observations.','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','5342','EPSG','9255','EPSG','4573',0.05,'EPSG','8666','Geoid (height correction) model file','GEOIDE-Ar16.gri',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Arg',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9275','GHA height to EVRF2000 Austria height (1)','Care! Austrian literature describes this transformation in direction EVRF2000 Austria height to GHA height with offset subtracted. EPSG method has offset as an addition. See method formula and example. The grid is implemented in BEV-Transformator.','Change of height to a different vertical reference surface.','EPSG','1080','Vertical Offset by Grid Interpolation (BEV AT)','EPSG','5778','EPSG','9274','EPSG','1037',0.05,'EPSG','8732','Vertical offset file','GV_HoehenGrid_V1.csv',NULL,NULL,NULL,NULL,'EPSG','4312','BEV-Aut',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9276','ETRS89 to EVRF2000 Austria height (1)','Austrian Geoid 2008. Accuracy 5cm (1 sigma). The transformation is implemented in BEV-Transformator.','Derivation of gravity-related heights from GNSS observations.','EPSG','1081','Geographic3D to GravityRelatedHeight (BEV AT)','EPSG','4937','EPSG','9274','EPSG','1037',0.05,'EPSG','8666','Geoid (height correction) model file','GEOID_GRS80_Oesterreich.csv',NULL,NULL,NULL,NULL,'EPSG','4167','BEV-Aut',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9277','MGI to EVRF2000 Austria height (1)','Austrian Geoid 2008 (Bessel ellipsoid). Accuracy 5cm (1 sigma). The transformation is implemented in BEV-Transformator.','Derivation of gravity-related heights from GNSS observations.','EPSG','1081','Geographic3D to GravityRelatedHeight (BEV AT)','EPSG','9267','EPSG','9274','EPSG','1037',0.05,'EPSG','8666','Geoid (height correction) model file','GEOID_BESSEL_Oesterreich.csv',NULL,NULL,NULL,NULL,'EPSG','4312','BEV-Aut',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9278','ETRS89 to GHA Austria height (1)','This transformation gives same result as concatenation of ETRS89 to EVRF2000 Austria height and EVRF2000 Austria height to GHA height transformations, CTs code 9276 and 9275. Accuracy 5cm (1 sigma). The transformation is implemented in BEV-Transformator.','Derivation of gravity-related heights from GNSS observations.','EPSG','1081','Geographic3D to GravityRelatedHeight (BEV AT)','EPSG','4937','EPSG','5778','EPSG','1037',0.05,'EPSG','8666','Geoid (height correction) model file','GV_Hoehengrid_plus_Geoid_V3.csv',NULL,NULL,NULL,NULL,NULL,NULL,'BEV-Aut',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9280','ITRF2005 to SA LLD height (1)','Hybrid geoid referenced to ITRF2005@2010.02. Accuracy 7cm at 1 sigma.','Derivation of gravity-related heights from GNSS observations.','EPSG','1082','Geographic3D to GravityRelatedHeight (SA 2010)','EPSG','7910','EPSG','9279','EPSG','3309',0.07,'EPSG','8666','Geoid (height correction) model file','SAGEOID2010.dat',NULL,NULL,NULL,NULL,NULL,NULL,'NGI-Zaf',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9282','Amersfoort to ETRS89 (9)','Consistent to within 1mm with official RNAPTRANS(TM)2018 at ground level onshore and at MSL offshore. The horizontal deviation using this NTv2 grid is approximately 1mm per 50m height difference from ground level or MSL.','Approximation of horizontal component of official 3D RDNAPTRANS(TM) transformation, which since 1st October 2000 has defined Amersfoort geodetic datum.','EPSG','9615','NTv2','EPSG','4289','EPSG','4258','EPSG','1275',0.001,'EPSG','8656','Latitude and longitude difference file','rdtrans2018.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Nld 2018',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9283','ETRS89 to NAP height (2)','Vertical component of official RDNAPTRANS(TM)2018 procedure. Replaces previous versions of RDNAPTRANS.','Derivation of gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4937','EPSG','5709','EPSG','1275',0.001,'EPSG','8666','Geoid (height correction) model file','nlgeo2018.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Nld 2018',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9312','NZVD2016 height to Auckland 1946 height (2)','Derived at 260 control points. Mean offset 0.292m, standard deviation 0.029m, maximum difference from mean 0.075m. Supersedes NZVD2016 height to Auckland 1946 height (1) (code 7860) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5759','EPSG','3764',0.02,'EPSG','8732','Vertical offset file','auckht1946-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ AUCK gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9313','NZVD2016 height to Bluff 1955 height (2)','Derived at 71 control points. Mean offset 0.273m, standard deviation 0.034m, maximum difference from mean 0.079m. Supersedes NZVD2016 height to Bluff 1955 height (1) (code 7861) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5760','EPSG','3801',0.02,'EPSG','8732','Vertical offset file','blufht1955-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ BLUF gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9314','NZVD2016 height to Dunedin 1958 height (2)','Derived at 197 control points. Mean offset 0.326m, standard deviation 0.043m, maximum difference from mean 0.152m. Supersedes NZVD2016 height to Dunedin 1958 height (1) (code 7862) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5761','EPSG','3803',0.02,'EPSG','8732','Vertical offset file','duneht1958-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ DUNE gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9315','NZVD2016 height to Dunedin-Bluff 1960 height (2)','Derived at 205 control points. Mean offset 0.254m, standard deviation 0.039m, maximum difference from mean 0.11m. Supersedes NZVD2016 height to Dunedin-Bluff 1960 height (1) (code 7863) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','4458','EPSG','3806',0.02,'EPSG','8732','Vertical offset file','dublht1960-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ DUBL gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9316','NZVD2016 height to Gisborne 1926 height (2)','Derived at 274 control points. Mean offset 0.343m, standard deviation 0.025m, maximum difference from mean 0.09m. Supersedes NZVD2016 height to Gisborne 1926 height (1) (code 7864) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5762','EPSG','3771',0.02,'EPSG','8732','Vertical offset file','gisbht1926-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ GISB gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9317','NZVD2016 height to Lyttelton 1937 height (2)','Derived at 923 control points. Mean offset 0.34m, standard deviation 0.041m, maximum difference from mean 0.149m. Supersedes NZVD2016 height to Lyttelton 1937 height (1) (code 7865) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5763','EPSG','3804',0.01,'EPSG','8732','Vertical offset file','lyttht1937-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ LYTT gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9318','NZVD2016 height to Moturiki 1953 height (2)','Derived at 519 control points. Mean offset 0.309m, standard deviation 0.071m, maximum difference from mean 0.231m. Supersedes NZVD2016 height to Moturiki 1953 height (1) (code 7866) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5764','EPSG','3768',0.02,'EPSG','8732','Vertical offset file','motuht1953-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ MOTU gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9319','NZVD2016 height to Napier 1962 height (2)','Derived at 207 control points. Mean offset 0.203m, standard deviation 0.034m, maximum difference from mean 0.096m. Supersedes NZVD2016 height to Napier 1962 height (1) (code 7867) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5765','EPSG','3772',0.02,'EPSG','8732','Vertical offset file','napiht1962-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ NAPI gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9320','NZVD2016 height to Nelson 1955 height (2)','Derived at 256 control points. Mean offset 0.329m, standard deviation 0.039m, maximum difference from mean 0.114m. Supersedes NZVD2016 height to Nelson 1955 height (1) (code 7868) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5766','EPSG','3802',0.02,'EPSG','8732','Vertical offset file','nelsht1955-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ NELS gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9321','NZVD2016 height to One Tree Point 1964 height (2)','Derived at 137 control points. Mean offset 0.077m, standard deviation 0.042m, maximum difference from mean 0.107m. Supersedes NZVD2016 height to One Tree Point 1964 height (1) (code 7869) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5767','EPSG','3762',0.01,'EPSG','8732','Vertical offset file','ontpht1964-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ ONTP gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9322','NZVD2016 height to Stewart Island 1977 height (2)','Derived at 4 control points. Mean offset 0.299m, standard deviation 0.025m, maximum difference from mean 0.039m. Supersedes NZVD2016 height to Stewart Island 1977 height (1) (code 7870) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5772','EPSG','3338',0.18,'EPSG','8732','Vertical offset file','stisht1977-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ STWT gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9323','NZVD2016 height to Taranaki 1970 height (2)','Derived at 125 control points. Mean offset 0.286m, standard deviation 0.026m, maximum difference from mean 0.07m. Supersedes NZVD2016 height to Taranaki 1970 height (1) (code 7871) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5769','EPSG','3769',0.02,'EPSG','8732','Vertical offset file','taraht1970-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ TARA gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9324','NZVD2016 height to Wellington 1953 height (2)','Derived at 137 control points. Mean offset 0.408m, standard deviation 0.054m, maximum difference from mean 0.112m. Supersedes NZVD2016 height to Wellington 1953 height (1) (code 7872) after change of grid file format.','Transformation between national and local height systems.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5770','EPSG','3773',0.02,'EPSG','8732','Vertical offset file','wellht1953-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ WGTN gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9325','NZGD2000 to NZVD2009 height (2)','Defines NZVD2009 vertical datum (datum code 1039, CRS code 4440). Supersedes NZGD2000 to NZVD2009 height (1) (code 4459) after change of grid file format.','Derivation of gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4959','EPSG','4440','EPSG','1175',0.1,'EPSG','8666','Geoid (height correction) model file','nzgeoid2009.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'LINZ-NZ 2009 gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9326','NZGD2000 to NZVD2016 height (2)','Defines NZVD2016 vertical datum (datum code 1169, CRS code 7839). Supersedes NZGD2000 to NZVD2016 height (1) (code 7840) after change of grid file format.','Derivation of gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4959','EPSG','7839','EPSG','1175',0.1,'EPSG','8666','Geoid (height correction) model file','nzgeoid2016.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'LINZ-NZ 2016 gtx',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9327','NTF to RGF93 (1)','May be emulated using NTv2 method - see tfm code 15958.','For applications requiring an accuracy of better than 1 metre.','EPSG','1087','Geocentric translation by Grid Interpolation (IGN)','EPSG','4275','EPSG','4171','EPSG','3694',1.0,'EPSG','8727','Geocentric translation file','gr3df97a.txt',NULL,NULL,NULL,NULL,'EPSG','4171','IGN-Fra 1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9328','NEA74 Noumea to RGNC91-93 (3)','Developed in July 2002 and officially adopted in August 2005. May be emulated using NTv2 method - see RGNC91-93 to NEA74 Noumea (4) (code 1295).','Accuracy 5-10cm.','EPSG','1087','Geocentric translation by Grid Interpolation (IGN)','EPSG','4644','EPSG','4749','EPSG','2823',0.05,'EPSG','8727','Geocentric translation file','gr3dnc03a.mnt',NULL,NULL,NULL,NULL,'EPSG','4749','BGN-Ncl 0.05m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9329','IGN72 Grande Terre to RGNC91-93 (4)','Developed in July 2002 and officially adopted in August 2005. May be emulated using NTv2 method - see RGNC91-93 to IGN72 Grande Terre (6) (code 15962).','Accuracy better than +/- 0.1 metre.','EPSG','1087','Geocentric translation by Grid Interpolation (IGN)','EPSG','4662','EPSG','4749','EPSG','2822',0.1,'EPSG','8727','Geocentric translation file','gr3dnc01b.mnt',NULL,NULL,NULL,NULL,'EPSG','4749','BGN-Ncl 0.1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9330','IGN72 Grande Terre to RGNC91-93 (5)','Developed in July 2002 and officially adopted in August 2005.','Accuracy 5-10cm.','EPSG','1087','Geocentric translation by Grid Interpolation (IGN)','EPSG','4662','EPSG','4749','EPSG','2823',0.05,'EPSG','8727','Geocentric translation file','gr3dnc02b.mnt',NULL,NULL,NULL,NULL,'EPSG','4749','BGN-Ncl Noum 0.05m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','9338','DHDN to ETRS89 (9)','Official transformation for the state of Baden-Württemberg. Used in ATKIS (Amtliches Topographisch-Kartographisches Informationssystem [Official Topographic and Cartographic Information System]).','Cadastre, engineering survey, topographic mapping (large scale).','EPSG','9615','NTv2','EPSG','4314','EPSG','4258','EPSG','4580',0.1,'EPSG','8656','Latitude and longitude difference file','BWTA2017.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'LGL-Deu BWTA2017',0);
INSERT INTO "grid_transformation" VALUES('EPSG','10000','RGF93 to NGF IGN69 height (1)','May be used for transformations from WGS 84 to NGF IGN69. Accuracy at each 0.1 deg x 0.1 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4965','EPSG','5720','EPSG','1326',0.5,'EPSG','8666','Geoid (height correction) model file','ggf97a.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra',0);
INSERT INTO "grid_transformation" VALUES('EPSG','10001','ETRS89 to NGF IGN69 height (1)','Parameter values taken from RGF93 to NGF IGN69 (1) (code 10000) assuming that RGF93 is equivalent to ETRS89 within the accuracy of the transformation. Accuracy at each 0.1 deg x 0.1 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4937','EPSG','5720','EPSG','1326',0.5,'EPSG','8666','Geoid (height correction) model file','ggf97a.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra',0);
INSERT INTO "grid_transformation" VALUES('EPSG','10002','RGF93 to IGN78 Corsica height (1)','May be used for transformations from WGS 84 to IGN78 Corsica. Accuracy at each 0.1 deg x 0.1 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4965','EPSG','5721','EPSG','1327',0.5,'EPSG','8666','Geoid (height correction) model file','ggf97a_corse.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra Cor',0);
@@ -323,14 +382,14 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10009','RRAF 1991 to Guadeloupe
INSERT INTO "grid_transformation" VALUES('EPSG','10010','RRAF 1991 to Guadeloupe 1988 height (6)','May be used for transformations from WGS 84 to IGN 1988. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4973','EPSG','5757','EPSG','2890',998.0,'EPSG','8666','Geoid (height correction) model file','ggg00_sm.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp StM',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10011','RGFG95 to NGG1977 height (1)','May be used for transformations from WGS 84 to NGG1977. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4967','EPSG','5755','EPSG','3146',998.0,'EPSG','8666','Geoid (height correction) model file','ggguy00.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Guf',0);
INSERT INTO "grid_transformation" VALUES('EPSG','10012','RGR92 to Reunion 1989 height (1)','May be used for transformations from WGS 84 to IGN 1989. Accuracy at each 0.02 deg x 0.02 degree grid node is given within the geoid model file.','Derivation of gravity-related heights from GPS observations.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4971','EPSG','5758','EPSG','3337',0.1,'EPSG','8666','Geoid (height correction) model file','ggr99.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Reu',0);
INSERT INTO "grid_transformation" VALUES('EPSG','10013','NAD83 to NAVD88 height (1)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2977',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10014','NAD83 to NAVD88 height (2)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2978',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u02.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10015','NAD83 to NAVD88 height (3)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2979',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u03.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10016','NAD83 to NAVD88 height (4)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2980',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u04.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10017','NAD83 to NAVD88 height (5)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2973',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u05.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10018','NAD83 to NAVD88 height (6)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2974',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u06.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10019','NAD83 to NAVD88 height (7)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2975',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u07.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10020','NAD83 to NAVD88 height (8)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (US .gtx)','EPSG','4269','EPSG','5703','EPSG','2976',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u08.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10013','NAD83 to NAVD88 height (1)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2977',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u01.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10014','NAD83 to NAVD88 height (2)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2978',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u02.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10015','NAD83 to NAVD88 height (3)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2979',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u03.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CNE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10016','NAD83 to NAVD88 height (4)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2980',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u04.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus NE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10017','NAD83 to NAVD88 height (5)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2973',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u05.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10018','NAD83 to NAVD88 height (6)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2974',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u06.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSW',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10019','NAD83 to NAVD88 height (7)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2975',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u07.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus CSE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10020','NAD83 to NAVD88 height (8)','Uses Geoid03 hybrid model. See information source for further information. Note: Source CRS is 2D, used in this application of the method as a pseudo-3D CRS.','Derivation of approximate gravity-related heights from GPS observations.','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','4269','EPSG','5703','EPSG','2976',0.05,'EPSG','8666','Geoid (height correction) model file','g2003u08.bin',NULL,NULL,NULL,NULL,NULL,NULL,'NGS-US Conus SE',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10021','ETRS89 to Newlyn height (1)','May be used for transformations from WGS 84 to Newlyn.','Derivation of gravity-related heights from GPS observations.','EPSG','9663','Geographic3D to GravityRelatedHeight (OSGM-GB)','EPSG','4937','EPSG','5701','EPSG','2792',0.02,'EPSG','8666','Geoid (height correction) model file','OSTN02_OSGM02_GB.txt',NULL,NULL,NULL,NULL,NULL,NULL,'OS-UK Gbr',0);
INSERT INTO "grid_transformation" VALUES('EPSG','10022','ETRS89 to Belfast height (1)','May be used for transformations from WGS 84 to Belfast.','Derivation of gravity-related heights from GPS observations.','EPSG','9663','Geographic3D to GravityRelatedHeight (OSGM-GB)','EPSG','4937','EPSG','5732','EPSG','2530',0.03,'EPSG','8666','Geoid (height correction) model file','OSTN02_OSGM02_GB.txt',NULL,NULL,NULL,NULL,NULL,NULL,'OS-UK NI',1);
INSERT INTO "grid_transformation" VALUES('EPSG','10023','ETRS89 to Douglas height (1)','May be used for transformations from WGS 84 to Douglas.','Derivation of gravity-related heights from GPS observations.','EPSG','9663','Geographic3D to GravityRelatedHeight (OSGM-GB)','EPSG','4937','EPSG','5750','EPSG','2803',0.02,'EPSG','8666','Geoid (height correction) model file','OSTN02_OSGM02_GB.txt',NULL,NULL,NULL,NULL,NULL,NULL,'OS-UK Man',0);
@@ -427,8 +486,8 @@ INSERT INTO "grid_transformation" VALUES('EPSG','15948','DHDN to ETRS89 (8)','De
INSERT INTO "grid_transformation" VALUES('EPSG','15949','DHDN to WGS 84 (4)','These parameter values are taken from DHDN to ETRS89 (8) (code 15948) as ETRS89 may be considered equivalent to WGS 84 within the accuracy of the transformation.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4314','EPSG','4326','EPSG','3339',1.0,'EPSG','8656','Latitude and longitude difference file','BETA2007.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Deu BeTA2007',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15954','RD/83 to WGS 84 (1)','These parameter values are taken from DHDN to ETRS89 (8) (code 15948) as RD/83 and ETRS89 may be considered equivalent to DHDN and WGS 84 respectively within the accuracy of the transformation.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4745','EPSG','4326','EPSG','2545',1.0,'EPSG','8656','Latitude and longitude difference file','BETA2007.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Deu BeTA2007',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15955','PD/83 to WGS 84 (1)','These parameter values are taken from DHDN to ETRS89 (8) (code 15948) as PD/83 and ETRS89 may be considered equivalent to DHDN and WGS 84 respectively within the accuracy of the transformation.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4746','EPSG','4326','EPSG','2544',1.0,'EPSG','8656','Latitude and longitude difference file','BETA2007.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Deu BeTA2007',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15958','RGF93 to NTF (2)','Emulation using NTv2 method of France Geocentric Interpolation method tfm NTF to RGF93 (1), code 1053. Note that grid file parameters are of opposite sign. May be taken as approximate transformation to ETRS89 or WGS 84 - see tfm codes 15959 and 15960.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4171','EPSG','4275','EPSG','3694',1.0,'EPSG','8656','Latitude and longitude difference file','rgf93_ntf.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Fra 1m emulation',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15959','ETRS89 to NTF (3)','These parameter values are taken from RGF93 to NTF (2) (code 15958) as RGF93 may be considered equivalent to ETRS89 within the accuracy of the transformation. Emulation of France Geocentric Interpolation method tfm code 1054: note reversal of sign.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4258','EPSG','4275','EPSG','3694',1.0,'EPSG','8656','Latitude and longitude difference file','rgf93_ntf.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Fra 1m emulation',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15960','WGS 84 to NTF (3)','These parameter values are taken from RGF93 to NTF (2) (code 15958) as RGF93 may be considered equivalent to WGS 84 within the accuracy of the transformation. Emulation of France Geocentric Interpolation method tfm code 15939: note reversal of sign.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4326','EPSG','4275','EPSG','3694',1.0,'EPSG','8656','Latitude and longitude difference file','rgf93_ntf.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Fra 1m emulation',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15958','RGF93 to NTF (2)','Emulation using NTv2 method of transformation NTF to RGF93 (1), code 9327. Note that grid file parameters are of opposite sign. May be taken as approximate transformation to ETRS89 or WGS 84 - see tfm codes 15959 and 15960.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4171','EPSG','4275','EPSG','3694',1.0,'EPSG','8656','Latitude and longitude difference file','rgf93_ntf.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Fra 1m emulation',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15959','ETRS89 to NTF (3)','These parameter values are taken from RGF93 to NTF (2) (code 15958) as RGF93 may be considered equivalent to ETRS89 within the accuracy of the transformation.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4258','EPSG','4275','EPSG','3694',1.0,'EPSG','8656','Latitude and longitude difference file','rgf93_ntf.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Fra 1m emulation',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15960','WGS 84 to NTF (3)','These parameter values are taken from RGF93 to NTF (2) (code 15958) as RGF93 may be considered equivalent to WGS 84 within the accuracy of the transformation.','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4326','EPSG','4275','EPSG','3694',1.0,'EPSG','8656','Latitude and longitude difference file','rgf93_ntf.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Fra 1m emulation',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15961','RGNC91-93 to NEA74 Noumea (4)','Emulation using NTv2 method of tfm NEA74 Noumea to RGNC91-93 (3) (code 15943). Note reversal of sign of parameter values in grid file.','Accuracy 5-10cm.','EPSG','9615','NTv2','EPSG','4749','EPSG','4644','EPSG','2823',0.05,'EPSG','8656','Latitude and longitude difference file','RGNC1991_IGN72GrandeTerre.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Ncl 0.05m',1);
INSERT INTO "grid_transformation" VALUES('EPSG','15962','RGNC91-93 to IGN72 Grande Terre (6)','Emulation using NTv2 method of tfm IGN72 Grande Terre to RGNC91-93 (4) (code 15945). Note reversal sign of of parameter values in grid file.','Accuracy better than +/- 0.1 metre.','EPSG','9615','NTv2','EPSG','4749','EPSG','4662','EPSG','2822',0.1,'EPSG','8656','Latitude and longitude difference file','RGNC1991_IGN72GrandeTerre.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Ncl 0.1m',0);
INSERT INTO "grid_transformation" VALUES('EPSG','15962','RGNC91-93 to IGN72 Grande Terre (6)','Emulation using NTv2 method of tfm IGN72 Grande Terre to RGNC91-93 (4) (code 9329). Note reversal sign of of parameter values in grid file.','Accuracy better than +/- 0.1 metre.','EPSG','9615','NTv2','EPSG','4749','EPSG','4662','EPSG','2822',0.1,'EPSG','8656','Latitude and longitude difference file','RGNC1991_IGN72GrandeTerre.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Ncl 0.1m',0);
+41
View File
@@ -49,3 +49,44 @@ INSERT INTO "grid_transformation" VALUES(
NULL,
'EPSG','8666','Geoid (height correction) model file','SWEN17_RH2000.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
----- Hopefully temporary entry for SeTa2016.gsb grid -----
INSERT INTO "area" VALUES('PROJ','SETA2016','Germany - Saarland','Germany - Saarland',49.10,49.64,6.345,7.45,0);
-- Advertize a 0.8 accuracy slightly better than the 0.9 of BETA2007 for sort purposes
INSERT INTO "grid_transformation" VALUES('PROJ','SETA2016','DHDN to ETRS89 (SETA2016)','DHDN to ETRS89 for Saarland. Using official SETA2016 grid but this transformation entry has been created temporarily by PROJ. Accuracy indication not to be considered as authoritative','For applications requiring an accuracy of better than 1 metre.','EPSG','9615','NTv2','EPSG','4314','EPSG','4258','PROJ','SETA2016',0.89,'EPSG','8656','Latitude and longitude difference file','SeTa2016.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'-',0);
-- Iceland
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_8089_TO_EPSG_5323','ISH2004 height to ISN2004',
NULL,NULL,
'PROJ','HEIGHT_TO_GEOGRAPHIC3D','GravityRelatedHeight to Geographic3D',
'EPSG','8089', -- source CRS (ISH2004 height)
'EPSG','5323', -- target CRS (ISN2004 geographic 3D)
'EPSG','1120', -- area of use: Iceland - onshore and offshore
NULL,
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2004.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_8089_TO_EPSG_4945','ISH2004 height to ISN93',
NULL,NULL,
'PROJ','HEIGHT_TO_GEOGRAPHIC3D','GravityRelatedHeight to Geographic3D',
'EPSG','8089', -- source CRS (ISH2004 height)
'EPSG','4945', -- target CRS (ISN93 geographic 3D)
'EPSG','1120', -- area of use: Iceland - onshore and offshore
NULL,
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN93.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "grid_transformation" VALUES(
'PROJ','EPSG_8089_TO_EPSG_8085','ISH2004 height to ISN2016',
NULL,NULL,
'PROJ','HEIGHT_TO_GEOGRAPHIC3D','GravityRelatedHeight to Geographic3D',
'EPSG','8089', -- source CRS (ISH2004 height)
'EPSG','8085', -- target CRS (ISN2016 geographic 3D)
'EPSG','1120', -- area of use: Iceland - onshore and offshore
NULL,
'EPSG','8666','Geoid (height correction) model file','Icegeoid_ISN2016.gtx',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+21 -8
View File
@@ -293,7 +293,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1517','Conakry 1905 to WGS 8
INSERT INTO "helmert_transformation" VALUES('EPSG','1518','Dabola 1981 to WGS 84 (1)','','Accuracy 25m in each axis.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4155','EPSG','4326','EPSG','3257',25.0,-83.0,37.0,124.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,'IGN-Gin',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','1527','Campo Inchauspe to WGS 84 (2)','Derived through ties at 2 stations (Cerro Colorado and Chihuido Sur) to 4 IGS stations in February 1995','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4221','EPSG','4326','EPSG','2325',0.5,-154.5,150.7,100.4,'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,'TOT-Arg Neu',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','1528','Chos Malal 1914 to Campo Inchauspe (1)','Derived through common coordinates at 5 stations.','Oil exploration. Accuracy 10 metres.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4160','EPSG','4221','EPSG','2325',10.0,160.0,26.0,41.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,'TOT-Arg Neu',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','1529','Hito XVIII to WGS 84 (1)','Derived through ties at 3 stations (RC03, TOTAL11 and MP12) to 3 IGS stations in November 1995','Oil exploration.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4254','EPSG','4326','EPSG','2357',0.5,18.38,192.45,96.82,'EPSG','9001',0.056,-0.142,-0.2,'EPSG','9104',-0.0013,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'TOT-Arg TdF',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','1529','Hito XVIII to WGS 84 (1)','Derived through ties at 3 stations (RC03, TOTAL11 and MP12) to 3 IGS stations in November 1995','Oil exploration.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4254','EPSG','4326','EPSG','1486',0.5,18.38,192.45,96.82,'EPSG','9001',0.056,-0.142,-0.2,'EPSG','9104',-0.0013,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'TOT-Arg TdF',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','1530','NAD27 to WGS 84 (30)','','Accuracy 3m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4267','EPSG','4326','EPSG','1077',3.0,-4.2,135.4,181.9,'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,'ICH-Cub',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','1531','Nahrwan 1967 to WGS 84 (4)','Parameter values adopted by Total are mean of those derived by Oceonics and Geoid through ties at platform AK1 to 4 IGS stations in March 1995.','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4270','EPSG','4326','EPSG','2392',0.5,-245.0,-153.9,382.8,'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,'TOT-UAE Abk',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','1532','M''poraloko to WGS 84 (2)','Derived as mean of Doris determinations at 3 stations in Port Gentil area in 1994.','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4266','EPSG','4326','EPSG','1100',0.5,-80.7,-132.5,41.1,'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,'Elf-Gab94',0);
@@ -966,8 +966,8 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','7836','Pulkovo 1942(58) to A
INSERT INTO "helmert_transformation" VALUES('EPSG','7892','SHGD2015 to WGS 84 (1)','SHGD2015 is realized by ITRF2008 at epoch 2015.0 and can be considered coincident with WGS 84 at epoch 2015.0 Accuracy 3 cm at 1/1/2015 then degrades by 3 cm/yr from 1/1/2015 depending upon epoch of WGS 84 due to motion of the Nubian Plate','For military purposes only. Accuracy 25m in each axis.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7886','EPSG','4326','EPSG','3183',1.0,0.0,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,'ENRD-Shn Hel',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7893','Astro DOS 71 to SHGD2015 (1)','Derived at 19 stations, RMS = 12cm. May be used as an approximate transformation to WGS 84 - see code 7894.','Medium Accuracy transformation to St Helena Geodetic Datum 2015.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4710','EPSG','7886','EPSG','3183',0.15,-323.65,551.39,-491.22,'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,'ENRD-Shn Hel 0.15m',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7894','Astro DOS 71 to WGS 84 (2)','Parameter values from Astro DOS 71 to SHGD2015 (1) (tfm code 7893). Assumes SHGD2015 and WGS 84 can be considered the same to within the accuracy of the transformation.','For applications requiring an accuracy of better than 1 metre.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4710','EPSG','4326','EPSG','3183',1.0,-323.65,551.39,-491.22,'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,'ENRD-Shn Hel',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7895','Astro DOS 71 to SHGD2015 (2)','Derived at 19 stations, RMS = 6cm. Note: Because of the large rotations about the Y- and Z-axes this transformation is not reversible. For the reverse transformation use SHGD2015 to Astro DOS 71 (2) (code 7896).','High Accuracy transformation to St Helena Geodetic Datum 2015. Not reversible - see remarks.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4710','EPSG','7886','EPSG','3183',0.1,-112.854,12.27,-18.913,'EPSG','9001',2.1692,16.8896,17.1961,'EPSG','9104',-19.54517,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ENRD-Shn Hel 0.1m',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7896','SHGD2015 to Astro DOS 71 (2)','Derived at 19 stations, RMS = 6cm. Note: Because of the large rotations about the Y- and Z-axes this transformation is not reversible. For the reverse transformation use Astro DOS 71 to SHGD2015 (2) (code 7895).','High Accuracy transformation from St Helena Geodetic Datum 2015. Not reversible - see remarks.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4710','EPSG','4710','EPSG','3183',0.1,112.771,-12.282,18.935,'EPSG','9001',-2.1692,-16.8896,-17.1961,'EPSG','9104',19.54517,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ENRD-Shn Hel 0.1m Rev',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7895','Astro DOS 71 to SHGD2015 (2)','Derived at 19 stations, RMS = 6cm. Note: Because of the large rotations about the Y- and Z-axes this transformation is not reversible. For the reverse transformation use SHGD2015 to Astro DOS 71 (2) (code 9226).','High Accuracy transformation to St Helena Geodetic Datum 2015. Not reversible - see remarks.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4710','EPSG','7886','EPSG','3183',0.1,-112.854,12.27,-18.913,'EPSG','9001',2.1692,16.8896,17.1961,'EPSG','9104',-19.54517,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ENRD-Shn Hel 0.1m',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7896','SHGD2015 to Astro DOS 71 (2)','Derived at 19 stations, RMS = 6cm. Note: Because of the large rotations about the Y- and Z-axes this transformation is not reversible. For the reverse transformation use Astro DOS 71 to SHGD2015 (2) (code 7895).','High Accuracy transformation from St Helena Geodetic Datum 2015. Not reversible - see remarks.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4710','EPSG','4710','EPSG','3183',0.1,112.771,-12.282,18.935,'EPSG','9001',-2.1692,-16.8896,-17.1961,'EPSG','9104',19.54517,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ENRD-Shn Hel 0.1m Rev',1);
INSERT INTO "helmert_transformation" VALUES('EPSG','7897','St. Helena Tritan to SHGD2015 (1)','Derived at 19 stations, RMS = 5cm. May be used as an approximate transformation to WGS 84 - see code 7898.','High Accuracy transformation to St Helena Geodetic Datum 2015.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7881','EPSG','7886','EPSG','3183',0.05,-0.077,0.079,0.086,'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,'ENRD-Shn Hel',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7898','St. Helena Tritan to WGS 84 (1)','Parameter values from Tritan St. Helena to SHGD2015 (1) (tfm code 7897). Assumes Tritan St. Helena and SHGD2015 can be considered the same to within the accuracy of the transformation.','For applications requiring an accuracy of better than 1 metre.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7881','EPSG','4326','EPSG','3183',1.0,-0.077,0.079,0.086,'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,'ENRD-Shn Hel',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7932','ITRF89 to ETRF89 (1)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','Definition of ETRF89.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4911','EPSG','7914','EPSG','1298',0.0,0.0,0.0,0.0,'EPSG','1033',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1034',0.11,0.57,-0.71,'EPSG','1032',0.0,'EPSG','1030',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'EUREF-Eur',0);
@@ -992,7 +992,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','7950','ITRF2005 to ETRF2000
INSERT INTO "helmert_transformation" VALUES('EPSG','7951','ITRF2008 to ETRF2000 (1)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','Realization of ETRS89 from ITRF2008 through ETRF2000.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','5332','EPSG','7930','EPSG','1298',0.0,52.1,49.3,-58.5,'EPSG','1025',0.891,5.39,-8.712,'EPSG','1031',1.34,'EPSG','1028',0.1,0.1,-1.8,'EPSG','1027',0.081,0.49,-0.792,'EPSG','1032',0.08,'EPSG','1030',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'EUREF-Eur 2000',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7960','PZ-90.11 to ITRF2008 (1)','','Geodesy.','EPSG','1066','Time-specific Coordinate Frame rotation (geocen)','EPSG','7679','EPSG','5332','EPSG','1262',0.004,-0.003,-0.001,0.0,'EPSG','9001',0.019,-0.042,0.002,'EPSG','1031',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'MTD-Rus',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','7961','WGS 84 (G1150) to PZ-90.02 (1)','','Geodesy.','EPSG','1066','Time-specific Coordinate Frame rotation (geocen)','EPSG','7660','EPSG','7677','EPSG','1262',0.17,0.36,-0.08,-0.18,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2002.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'MTD-Rus',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8048','GDA94 to GDA2020 (1)','Scale difference in ppb where 1/billion = 1E-9. Derivation excluded Cocos, Christmas and Macquarie Islands but is applied there. See codes 8444-46 for equivalents using NTv2 method. See code 8447 for alternative including distortion model for Aus only.','Conformal transformation of GDA94 coordinates that have been derived through GNSS CORS.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4283','EPSG','7844','EPSG','4177',0.01,61.55,-10.87,-40.19,'EPSG','1025',-39.4924,-32.7221,-32.8979,'EPSG','1031',-9.994,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ICSM-Aus',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8048','GDA94 to GDA2020 (1)','Scale difference in ppb where 1/billion = 1E-9. See CT codes 8444-46 for NTv2 method giving equivalent results for Christmas Island, Cocos Islands and Australia respectively. See CT code 8447 for alternative including distortion model for Australia only.','Conformal transformation of GDA94 coordinates that have been derived through GNSS CORS.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4283','EPSG','7844','EPSG','4177',0.01,61.55,-10.87,-40.19,'EPSG','1025',-39.4924,-32.7221,-32.8979,'EPSG','1031',-9.994,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ICSM-Aus',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8049','ITRF2014 to GDA2020 (1)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. Derived at 109 stations of the Australian Reginal GNSS network (ARGN).','Geodesy. RMS residuals 26mm north, 12mm east and 179mm vertical, maximum residuals 49mm north, 24mm east and 464mm vertical.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','7789','EPSG','7842','EPSG','4177',0.001,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1027',1.50379,1.18346,1.20716,'EPSG','1032',0.0,'EPSG','1030',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'GA-Aus',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8069','ITRF88 to ITRF2014 (1)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. Derived by IERS from previously published information.','Geodesy','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4910','EPSG','7789','EPSG','1262',0.01,-25.4,0.5,154.8,'EPSG','1025',-0.1,0.0,-0.26,'EPSG','1031',-11.29,'EPSG','1028',-0.1,0.5,3.3,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8070','ITRF89 to ITRF2014 (1)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. Derived by IERS from previously published information.','Geodesy','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4911','EPSG','7789','EPSG','1262',0.01,-30.4,-35.5,130.8,'EPSG','1025',0.0,0.0,-0.26,'EPSG','1031',-8.19,'EPSG','1028',-0.1,0.5,3.3,'EPSG','1027',0.0,0.0,-0.02,'EPSG','1032',-0.12,'EPSG','1030',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0);
@@ -1011,7 +1011,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','8258','ITRF94 to NAD83(CSRS9
INSERT INTO "helmert_transformation" VALUES('EPSG','8259','ITRF96 to NAD83(CSRS)v2 (1)','Jointly derived by Canada and US at 12 North American VLBI stations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. See tfm code 6864 for US equivalent.','Geodesy. Defines NAD83(CSRS98) = NAD83(CSRS)v2 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4917','EPSG','8233','EPSG','1061',0.0,0.991,-1.9072,-0.5129,'EPSG','9001',-25.79,-9.65,-11.66,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1042',-0.0532,0.7423,0.0316,'EPSG','1032',0.0,'EPSG','1030',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv2',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8260','ITRF97 to NAD83(CSRS)v3 (1)','Concatenation of joint Canada-US transformation NAD83>ITRF96 (see tfm code 8259) and IGS value for ITRF96>ITRF97 transformation. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. See tfm 6865 for US equivalent.','Geodesy. Defines NAD83(CSRS)v3 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4918','EPSG','8238','EPSG','1061',0.0,0.9889,-1.9074,-0.503,'EPSG','9001',-25.915,-9.426,-11.599,'EPSG','1031',-0.935,'EPSG','1028',0.0007,-0.0001,0.0019,'EPSG','1042',-0.067,0.757,0.031,'EPSG','1032',-0.192,'EPSG','1030',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv3',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8261','ITRF2000 to NAD83(CSRS)v4 (1)','Concatenation of joint Canada-US NAD83>ITRF96 tfm (code 8259) with IGS value of ITRF96>ITRF97 and IERS tfm ITRF97>ITRF2000. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. See tfm code 6866 for US equivalent.','Geodesy. Defines NAD83(CSRS)v4 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4919','EPSG','8242','EPSG','1061',0.0,0.9956,-1.9013,-0.5214,'EPSG','9001',-25.915,-9.426,-11.599,'EPSG','1031',0.615,'EPSG','1028',0.0007,-0.0007,0.0005,'EPSG','1042',-0.067,0.757,0.051,'EPSG','1032',-0.182,'EPSG','1030',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv4',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8262','ITRF2005 to NAD83(CSRS)v5 (1)','Concatenation of joint Canada-US NAD83>ITRF96 transformation (code 8259) with IGS value for ITRF96>ITRF97 and IERS transformations ITRF97>ITRF2005. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','Geodesy. Defines NAD83(CSRS)v5 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4896','EPSG','8248','EPSG','1061',0.0,0.9963,-1.9024,-0.5219,'EPSG','9001',-25.915,-9.426,-11.599,'EPSG','1031',0.775,'EPSG','1028',0.0005,-0.0006,-0.0013,'EPSG','1042',-0.067,0.757,0.051,'EPSG','1032',-0.102,'EPSG','1030',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv5',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8262','ITRF2005 to NAD83(CSRS)v5 (1)','Concatenation of joint Canada-US NAD83>ITRF96 transformation (code 8259) with IGS value for ITRF96>ITRF97 and IERS transformations ITRF97>ITRF2005. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','Geodesy. Defines NAD83(CSRS)v5 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4896','EPSG','8248','EPSG','1061',0.0,0.9963,-1.9024,-0.5219,'EPSG','9001',-25.915,-9.426,-11.599,'EPSG','1031',0.775,'EPSG','1028',0.0005,-0.0006,-0.0013,'EPSG','1042',-0.067,0.757,0.051,'EPSG','1032',-0.102,'EPSG','1030',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv5',1);
INSERT INTO "helmert_transformation" VALUES('EPSG','8264','ITRF2008 to NAD83(CSRS)v6 (1)','Concatenation of joint Canada-US transformation NAD83>ITRF96 (code 8259) with IGS tfm ITRF96>97 and IERS tfms ITRF97>2008. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. See tfm code 7807 for US equivalent.','Geodesy. Defines NAD83(CSRS)v6 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','5332','EPSG','8250','EPSG','1061',0.0,0.99343,-1.90331,-0.52655,'EPSG','9001',-25.91467,-9.42645,-11.59935,'EPSG','1031',1.71504,'EPSG','1028',0.00079,-0.0006,-0.00134,'EPSG','1042',-0.06667,0.75744,0.05133,'EPSG','1032',-0.102,'EPSG','1030',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv6',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8265','ITRF2014 to NAD83(CSRS)v7 (1)','Concatenation of joint Canada-US tfm NAD83>ITRF96 (see tfm code 8259) with IGS value for ITRF96>ITRF97 and IERS values for ITRF97>ITRF2014 transformations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','Geodesy. Defines NAD83(CSRS)v7 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','7789','EPSG','8253','EPSG','1061',0.0,1.0053,-1.9092,-0.5416,'EPSG','9001',-26.7814,0.4203,-10.9321,'EPSG','1031',0.37,'EPSG','1028',0.0008,-0.0006,-0.0014,'EPSG','1042',-0.0667,0.7574,0.0513,'EPSG','1032',-0.07,'EPSG','1030',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv7',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8270','Saint Pierre et Miquelon 1950 to WGS 84 (2)','Replaces Saint Pierre et Miquelon 1950 to WGS 84 (1) (code 1923) from March 2006.','Accuracy +/- 0.5 to 1 metre.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4638','EPSG','4326','EPSG','3299',1.0,11.363,424.148,373.13,'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,'IGN-Spm 2017',0);
@@ -1040,7 +1040,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','8438','Macao 1920 to WGS 84
INSERT INTO "helmert_transformation" VALUES('EPSG','8439','Hong Kong Geodetic CS to WGS 84 (1)','Approximation at the +/- 1m level assuming that Hong Kong Geodetic CS is equivalent to WGS 84.','Accuracy +/- 1 metre.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','8427','EPSG','4326','EPSG','1118',1.0,0.0,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,'EPSG-Hkg',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8448','GDA2020 to WGS 84 (G1762) (1)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. Parameter values taken from ITRF2014 to GDA2020 (1) (code 8049), assuming WGS 84 (G1762) is equivalent to ITRF2014 within the accuracy of the transformation.','Spatial referencing.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','7842','EPSG','7664','EPSG','4177',0.2,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1027',-1.50379,-1.18346,-1.20716,'EPSG','1032',0.0,'EPSG','1030',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'GA-Aus 0.2m',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8450','GDA2020 to WGS 84 (2)','Approximation at the 3m level assuming WGS 84 is equivalent to ITRF2014 within the accuracy of the transformation. See GDA2020 to WGS 84 (G1762) (1) (code 8448) for a better approximation and ITRF2014 to GDA2020 (1) (code 8049) for actual relationship.','Spatial referencing with 3-metre accuracy.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7844','EPSG','4326','EPSG','4177',3.0,0.0,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,'GA-Aus 3m',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8452','Padang to WGS 84 (1)','Note: U.S. Defense Mapping Agency TR8350.2 September 1987 gives source CRS as Batavia and area as Sumatra. The Batavia (Genuk) CRS applies to Java, not Sumatra. EPSG presumes the source CRS should be Padang. Derived at 5 stations.','For military purposes. Accuracy 3m in each axis.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4280','EPSG','4326','EPSG','1355',6.0,-377.0,681.0,-50.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,'DMA-Idn Sumatra',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8452','Batavia to WGS 84 (1)','Derived at 5 stations. Note: U.S. DMA TR8350.2 September 1987 gives source CRS as Batavia and area as Sumatra. The Batavia (Genuk) CRS applies to Java and western Sumatra. EPSG presumes this CT applies to both. Sometimes found applied to all Sumatra.','For military purposes. Accuracy 3m in each axis.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4211','EPSG','4326','EPSG','1285',6.0,-377.0,681.0,-50.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,'DMA-Idn Sumatra',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8674','La Canoa to PSAD56 (1)','In Venezuela PSAD56 is coincident with La Canoa.','Spatial referencing.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4247','EPSG','4248','EPSG','3327',0.0,0.0,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,'LAG-Ven E',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8680','MGI 1901 to ETRS89 (7)','Derived at 1385 points across the area of Bosnia and Herzegovina. May be taken as approximate transformation MGI 1901 to WGS 84 (see code 8823).','For applications to an accuracy of 1 metre.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','3906','EPSG','4258','EPSG','1050',1.0,489.88,183.912,533.711,'EPSG','9001',5.76545,4.69994,-12.58211,'EPSG','9104',1.00646,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'FGA-Bih',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','8681','MGI 1901 to WGS 84 (12)','Parameter values from MGI 1901 to ETRS89 (7) (code 8680). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.','For applications to an accuracy of 1 metre.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','3906','EPSG','4258','EPSG','1050',1.0,489.88,183.912,533.711,'EPSG','9001',5.76545,4.69994,-12.58211,'EPSG','9104',1.00646,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'FGA-Bih',1);
@@ -1166,6 +1166,19 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','9189','WGS 84 to IG05/12 Int
INSERT INTO "helmert_transformation" VALUES('EPSG','9223','WGS 84 to ETRS89 (2)','Parameter values derived from ITRF2008 to ETRF2000 (1), code 7951, as a time-specific transformation @2014.81, assuming ITRF2008 = WGS 84 (G1762) = WGS 84 and ETRF2000 = ETRS89.','Oil and gas exploration and production.','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','4936','EPSG','4978','EPSG','4566',0.1,0.054,0.051,-0.085,'EPSG','9001',0.0021,0.0126,-0.0204,'EPSG','9104',0.0025,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2014.81,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ONE-Deu/Nld 2014.81',1);
INSERT INTO "helmert_transformation" VALUES('EPSG','9224','ED50 to ETRS89 (15)','Parameter values from ED50 to WGS 84 (36) assuming that ETRS89 is equivalent to WGS 84 at epoch 1989.00..','Oil and gas exploration and production..','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4230','EPSG','4258','EPSG','4566',1.0,-157.89,-17.16,-78.41,'EPSG','9001',2.118,2.697,-1.434,'EPSG','9104',-5.38,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ONE-Ger Nsea',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9225','WGS 84 to ETRS89 (2)','Parameter values derived from ITRF2008 to ETRF2000 (1), code 7951, as a time-specific transformation @2014.81, assuming ITRF2008 = WGS 84 (G1762) = WGS 84 and ETRF2000 = ETRS89.','Oil and gas exploration and production.','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','4978','EPSG','4936','EPSG','4566',0.1,0.054,0.051,-0.085,'EPSG','9001',0.0021,0.0126,-0.0204,'EPSG','9104',0.0025,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2014.81,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ONE-Deu/Nld 2014.81',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9226','SHGD2015 to Astro DOS 71 (2)','Derived at 19 stations, RMS = 6cm. Note: Because of the large rotations about the Y- and Z-axes this transformation is not reversible. For the reverse transformation use Astro DOS 71 to SHGD2015 (2) (code 7895).','High Accuracy transformation from St Helena Geodetic Datum 2015. Not reversible - see remarks.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','7886','EPSG','4710','EPSG','3183',0.1,112.771,-12.282,18.935,'EPSG','9001',-2.1692,-16.8896,-17.1961,'EPSG','9104',19.54517,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ENRD-Shn Hel 0.1m Rev',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9227','ITRF2005 to NAD83(CSRS)v5 (1)','Concatenation of joint Canada-US NAD83>ITRF96 transformation (code 8259) with IGS value for ITRF96>ITRF97 and IERS transformations ITRF97>ITRF2005. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','Geodesy. Defines NAD83(CSRS)v5 and is therefore treated as errorless.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','4896','EPSG','8247','EPSG','1061',0.0,0.9963,-1.9024,-0.5219,'EPSG','9001',-25.915,-9.426,-11.599,'EPSG','1031',0.775,'EPSG','1028',0.0005,-0.0006,-0.0013,'EPSG','1042',-0.067,0.757,0.051,'EPSG','1032',-0.102,'EPSG','1030',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv5',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9234','Kalianpur 1962 to WGS 84 (5)','Derived by Western Geophysical for UTP 1996 East Sind 2D survey. Very similar parameter values (higher resolution but no better accuracy) were used by BGP for the ENI 2006 East Sind 2D survey.','Oil exploration.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4145','EPSG','4326','EPSG','2983',3.0,230.25,632.76,161.03,'EPSG','9001',-1.114,1.115,1.212,'EPSG','9104',12.584,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'utp-Pak E Sind',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9257','Chos Malal 1914 to WGS 84 (2)','Derived through common coordinates at 13 stations.','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4160','EPSG','4326','EPSG','4561',2.5,8.88,184.86,106.69,'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,'YPF-Arg Cuyo',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9258','Chos Malal 1914 to WGS 84 (3)','Derived through common coordinates at 43 stations.','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4160','EPSG','4326','EPSG','1292',2.5,15.75,164.93,126.18,'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,'YPF-Arg Neuq',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9259','Pampa del Castillo to WGS 84 (2)','Derived through common coordinates at 22 stations. Used by YPF throughout the Golfo San Jorge basin.','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4161','EPSG','4326','EPSG','4572',2.5,-233.43,6.65,173.64,'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,'YPF-Arg GSJB',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9260','Tapi Aike to WGS 84 (1)','Used by YPF throughout the Tapi Aike basin.','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9248','EPSG','4326','EPSG','4569',5.0,-192.26,65.72,132.08,'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,'YPF-Arg TapiAike',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9261','MMN to WGS 84 (1)','','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9251','EPSG','4326','EPSG','2357',2.5,-9.5,122.9,138.2,'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,'YPF-Arg MMN',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9262','MMS to WGS 84 (1)','','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9253','EPSG','4326','EPSG','2357',2.5,-78.1,101.6,133.3,'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,'YPF-Arg MMS',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9263','Hito XVIII 1963 to WGS 84 (3)','','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4254','EPSG','4326','EPSG','2357',2.5,18.2,190.7,100.9,'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,'YPF-Arg TdF Hito',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9264','POSGAR 2007 to WGS 84 (2)','Derived as average at all points common between the POSGAR 94 and POSGAR 2007 networks. POSGAR 94 was adjusted to the WGS 84 coordinates of 20 stations in March to May 1994. Accuracy 0.1m in 1994 + 1.5cm per year.','Oil and gas exploration and production.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5340','EPSG','4326','EPSG','1033',0.5,-0.41,0.46,-0.35,'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,'YPF-Arg',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9281','Amersfoort to ETRS89 (8)','Derived using ETRF2014. In RDNAPTRANS2018 software used assuming an ETRS89 ellipsoidal height of 43m and with an additional correction grid (corrections of up to 0.25m). Replaces Amersfoort to ETRS89 (5) and (6) (tfm codes 4830 and 4831).','Accuracy 0.25m','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4289','EPSG','4258','EPSG','1275',0.25,565.7381,50.4018,465.2904,'EPSG','9001',1.91514,-1.60363,9.09546,'EPSG','9109',4.07244,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Nld 2018',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','9334','ITRF2014 to KSA-GRF17 (1)','Arabian plate rotations derived during KSA-GRF17 adjustment from observations at 41 sites with at least 2.5 years of continuous observations.','Geodesy.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','7789','EPSG','9331','EPSG','1206',0.001,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1027',-1.199,0.107,-1.468,'EPSG','1032',0.0,'EPSG','1030',2017.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'GCS-Sau',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','10085','Trinidad 1903 to WGS 84 (2)','Parameter values provided to EOG by Trinidad Ministry of Energy and Energy Industries. Used by EOG offshore Trinidad (including Pelican, Kiskadee and Ibis fields) since 1996.','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4302','EPSG','4326','EPSG','1339',3.0,-61.0,285.2,471.6,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EOG-Tto Trin',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','10086','JAD69 to WGS 72 (1)','Derived in 1977 through Transit observations at 2 stations by US DMA.','For military mapping.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4242','EPSG','4322','EPSG','3342',15.0,48.0,208.0,382.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SD-Jam',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','10089','Aratu to WGS 84 (5)','Used by ExxonMobil for block BMS1. See WGS 84 (13) (tfm code 5051) which Petrobras now recommends for the area.','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4208','EPSG','4326','EPSG','2962',7.0,-163.466,317.396,-147.538,'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,'EXM-Bra Santos',0);
@@ -1190,7 +1203,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','15700','Gulshan 303 to WGS 8
INSERT INTO "helmert_transformation" VALUES('EPSG','15701','Kalianpur 1962 to WGS 84 (2)','Derived at Geodetic Survey office in Karachi in 1997.','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4145','EPSG','4326','EPSG','2985',1.0,275.57,676.78,229.6,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'TFE-Pak Indus',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15702','Kalianpur 1962 to WGS 84 (3)','Derived at station S0001, an approximate offset to Survey of India primary station Kat Baman, in 1992 from 180 single point Transit passes observed in 1991 by Fugro-Geodetic for UTP.','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4145','EPSG','4326','EPSG','2984',3.0,278.9,684.39,226.05,'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,'utp-Pak Badin',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15703','Kalianpur 1962 to WGS 84 (4)','Derived at Chitrawala triangulation station by Fugro-Geodetic for UTP.','Oil exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4145','EPSG','4326','EPSG','2982',3.0,271.905,669.593,231.495,'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,'utp-Pak Karachi',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15704','Kalianpur 1962 to WGS 84 (5)','Derived by Western Geophysical for UTP 1996 East Sind 2D survey.','Oil exploration.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4145','EPSG','4326','EPSG','2983',3.0,230.25,632.76,161.03,'EPSG','9001',-1.114,1.115,1.212,'EPSG','9104',12.584,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'utp-Pak E Sind',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15704','Kalianpur 1962 to WGS 84 (5)','Derived by Western Geophysical for UTP 1996 East Sind 2D survey.','Oil exploration.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4145','EPSG','4326','EPSG','2983',3.0,230.25,632.76,161.03,'EPSG','9001',-1.114,1.115,1.212,'EPSG','9104',12.584,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'utp-Pak E Sind',1);
INSERT INTO "helmert_transformation" VALUES('EPSG','15705','Minna to WGS 84 (12)','Derived via WGS 72(BE). Minna to WGS 72(BE) transformation derived in 1981 for Mobil E&P Nigeria (MEPCON) by Geodetic Survey through Transit translocation at six stations in southern Nigeria. Used by MEPCON in blocks OPL 215 and 221.','Oil industry exploration.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4263','EPSG','4326','EPSG','3819',8.0,-83.13,-104.95,114.63,'EPSG','9001',0.0,0.0,0.554,'EPSG','9104',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'WGC-Nga 211',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15706','Minna to WGS 84 (13)','Used by Elf in Blocks OPL 222 and OPL 223 and by Mobil in 1994.','Oil industry exploration.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4263','EPSG','4326','EPSG','1717',7.0,-93.6,-83.7,113.8,'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,'Elf-Nga',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15707','ELD79 to WGS 84 (6)','Used by Petrocanada and previous licence holders in Amal field, concession 12.','Oil exploration and production','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4159','EPSG','4326','EPSG','2987',10.0,-118.996,-111.177,-198.687,'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,'PCan-Lby Amal',0);
@@ -1317,7 +1330,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','15833','RGPF to WGS 84 (2)',
INSERT INTO "helmert_transformation" VALUES('EPSG','15842','Hong Kong 1963(67) to WGS 84 (1)','Derived at 2 satellite stations. Care: does not use Hong Kong 1963 (code 4838) as the source CRS.','Military mapping. Accuracy +/- 1m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4739','EPSG','4326','EPSG','1118',1.0,-156.0,-271.0,-189.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,'UKHO-Hkg',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15843','PZ-90 to WGS 84 (1)','Derived through Glonass and GPS at 30 stations throughout USSR - Former Soviet Union (FSU).','Geodetic applications. Accuracy better than 1.5 metres.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4740','EPSG','4326','EPSG','1262',1.5,0.0,0.0,1.5,'EPSG','9001',0.0,0.0,-0.076,'EPSG','9104',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'GiK-World',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15844','Pulkovo 1942 to PZ-90 (1)','Derived through Glonass at 30 stations throughout USSR - Former Soviet Union (FSU). Mandated for use in Russia by GosStandard of Russia Decree #327 of August 9, 2001.','Accuracy within area of primary CS42 control = 1 to 2m; accuracy at distant points 3 to 4 m.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4284','EPSG','4740','EPSG','2423',4.0,25.0,-141.0,-80.0,'EPSG','9001',0.0,-0.35,-0.66,'EPSG','9104',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'GiK-Rus',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15845','Pampa del Castillo to WGS 84 (1)','Transformation parameter precision given to millimetres in information source but due to accuracy rounded to nearest decimetre for EPSG database.','Geodetic surveying within the oil industry. Accuracy 25 m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4161','EPSG','4326','EPSG','1265',25.0,27.5,14.0,186.4,'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,'UNO-Arg ComRiv',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15845','Pampa del Castillo to WGS 84 (1)','Transformation parameter precision given to millimetres in information source but due to accuracy rounded to nearest decimetre for EPSG database.','Geodetic surveying within the oil industry. Accuracy 25 m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4161','EPSG','4326','EPSG','1265',25.0,27.5,14.0,186.4,'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,'UNO-Arg ComRiv',1);
INSERT INTO "helmert_transformation" VALUES('EPSG','15846','Egypt Gulf of Suez S-650 TL to WGS 84 (2)','Sometime referred to as "Egypt 1907 to WGS 84". However, application to WGS 84 coordinates of the reverse of this tfm results in Gulf of Suez S-650 TL, not Egypt 1907, position. Gulf of Suez S-650 TL and Egypt 1907 CRSs differ by some 20 metres.','Used for oil exploration by GUPCO.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4706','EPSG','4326','EPSG','2341',5.0,-146.21,112.63,4.05,'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,'Racal-Egy GoS',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15847','MOP78 to WGS 84 (2)','Replaces information from 2001 (tfm code 1925).','Accuracy +/- 10 metres.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4639','EPSG','4326','EPSG','2815',10.0,253.0,-132.0,-127.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,'IGN-Wlf Wallis',0);
INSERT INTO "helmert_transformation" VALUES('EPSG','15848','ST84 Ile des Pins to WGS 84 (2)','','Accuracy +/- 10 metres.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4642','EPSG','4326','EPSG','2820',10.0,-13.0,-348.0,292.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,'IGN-Ncl Pins',0);
+1012 -922
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,2 +1,2 @@
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v9.8.2');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2019-09-23');
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v9.8.7');
INSERT INTO "metadata" VALUES('EPSG.DATE', '2020-02-25');
+22 -1
View File
@@ -122,7 +122,7 @@ INSERT INTO "other_transformation" VALUES('EPSG','1519','Bern 1898 (Bern) to CH1
INSERT INTO "other_transformation" VALUES('EPSG','1755','Bogota 1975 (Bogota) to Bogota 1975 (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4802','EPSG','4218','EPSG','3229',0.0,'EPSG','8602','Longitude offset',-74.04513,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGAC-Col',0);
INSERT INTO "other_transformation" VALUES('EPSG','1756','Lisbon (Lisbon) to Lisbon (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4803','EPSG','4207','EPSG','1294',0.0,'EPSG','8602','Longitude offset',-9.0754862,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGC-Prt',0);
INSERT INTO "other_transformation" VALUES('EPSG','1757','MGI (Ferro) to MGI (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4805','EPSG','4312','EPSG','1321',0.0,'EPSG','8602','Longitude offset',-17.4,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BEV-Aut balk',1);
INSERT INTO "other_transformation" VALUES('EPSG','1758','Padang (Jakarta) to Padang (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4808','EPSG','4280','EPSG','1355',0.0,'EPSG','8602','Longitude offset',106.482779,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Idn Sumatra',0);
INSERT INTO "other_transformation" VALUES('EPSG','1758','Padang (Jakarta) to Padang (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4808','EPSG','4280','EPSG','1355',0.0,'EPSG','8602','Longitude offset',106.482779,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Idn Sumatra',1);
INSERT INTO "other_transformation" VALUES('EPSG','1759','Batavia (Jakarta) to Batavia (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4813','EPSG','4211','EPSG','1285',0.0,'EPSG','8602','Longitude offset',106.482779,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Idn Java',0);
INSERT INTO "other_transformation" VALUES('EPSG','1760','RT38 (Stockholm) to RT38 (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4814','EPSG','4308','EPSG','3313',0.0,'EPSG','8602','Longitude offset',18.03298,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NLS-Swe',0);
INSERT INTO "other_transformation" VALUES('EPSG','1761','Greek (Athens) to Greek (1)','','Change of prime meridian.','EPSG','9601','Longitude rotation','EPSG','4815','EPSG','4120','EPSG','3254',0.0,'EPSG','8602','Longitude offset',23.4258815,'EPSG','9110',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NTU-Grc',0);
@@ -192,11 +192,32 @@ INSERT INTO "other_transformation" VALUES('EPSG','7653','EGM96 height to Kumul 3
INSERT INTO "other_transformation" VALUES('EPSG','7654','EGM2008 height to Kiunga height (1)','','Derivation of heights referenced to Kiunga vertical CRS (CRS code 7652).','EPSG','9616','Vertical Offset','EPSG','3855','EPSG','7652','EPSG','4383',0.0,'EPSG','8603','Vertical Offset',-3.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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'QC-Png Kiunga',0);
INSERT INTO "other_transformation" VALUES('EPSG','7873','EGM96 height to POM96 height (1)','','Derivation of POM96 heights.','EPSG','9616','Vertical Offset','EPSG','5773','EPSG','7832','EPSG','4425',0.0,'EPSG','8603','Vertical Offset',-1.58,'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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'QC-Png Gulf-Cen',0);
INSERT INTO "other_transformation" VALUES('EPSG','7874','EGM2008 height to POM08 height (1)','','Derivation of POM08 heights.','EPSG','9616','Vertical Offset','EPSG','3855','EPSG','7841','EPSG','4425',0.0,'EPSG','8603','Vertical Offset',-0.93,'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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'QC-Png Gulf-Cen',0);
INSERT INTO "other_transformation" VALUES('EPSG','7963','Poolbeg height (ft(Br36)) to Poolbeg height (m)','Change of unit from British foot (1936) [ft(BR36)] to metre.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5754','EPSG','7962','EPSG','1305',NULL,'EPSG','1051','Unit conversion scalar',0.3048007491,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7964','Poolbeg height (m) to Malin Head height (1)','Poolbeg vertical reference surface is 2.7m below Malin Head surface. Transformations are subject to localised anomalies.','Change of height to a different vertical reference surface for topographic mapping and engineering survey. Accuracy 0.1m.','EPSG','9616','Vertical Offset','EPSG','7962','EPSG','5731','EPSG','1305',0.1,'EPSG','8603','Vertical Offset',-2.7,'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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'OSI-Ire',0);
INSERT INTO "other_transformation" VALUES('EPSG','7966','Poolbeg height (m) to Belfast height (1)','Poolbeg vertical reference surface is 2.7m below Belfast surface. Transformations are subject to localised anomalies.','Change of height to a different vertical reference surface for topographic mapping and engineering survey. Accuracy 0.1m.','EPSG','9616','Vertical Offset','EPSG','7962','EPSG','5732','EPSG','1305',0.1,'EPSG','8603','Vertical Offset',-2.7,'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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'OSI-Ire',0);
INSERT INTO "other_transformation" VALUES('EPSG','7972','NGVD29 height (ftUS) to NGVD29 height (m)','Change of unit from US survey foot (ftUS) to metre. 1 ftUS = (12/39.37)m ≈ 0.304800609601219m.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5702','EPSG','7968','EPSG','1323',NULL,'EPSG','1051','Unit conversion scalar',0.304800609601219,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7977','HKPD depth to HKCD depth (1)','The HKPD vertical reference surface is 0.146m above the HKCD surface.','Change of depth to a different vertical reference surface.','EPSG','9616','Vertical Offset','EPSG','7976','EPSG','5739','EPSG','3335',0.0,'EPSG','8603','Vertical Offset',-0.146,'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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SMO-HK',0);
INSERT INTO "other_transformation" VALUES('EPSG','7978','NGVD29 height (ftUS) to NGVD29 depth (ftUS)','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5702','EPSG','6359','EPSG','1323',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7980','KOC CD height to KOC WD height (1)','The KOC CD vertical reference surface is 4.74m (15.55ft) below KOC WD surface.','Change of height to a different vertical reference surface.','EPSG','9616','Vertical Offset','EPSG','5790','EPSG','7979','EPSG','3267',0.1,'EPSG','8603','Vertical Offset',-4.74,'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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'KOC-Kwt',0);
INSERT INTO "other_transformation" VALUES('EPSG','7981','Kuwait PWD height to KOC WD height (1)','The KOC WD vertical reference surface is 4.25m above the Kuwait PWD surface.','Change of height to a different vertical reference surface.','EPSG','9616','Vertical Offset','EPSG','5788','EPSG','7979','EPSG','3267',0.1,'EPSG','8603','Vertical Offset',-4.25,'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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'KOC-Kwt',0);
INSERT INTO "other_transformation" VALUES('EPSG','7982','HKPD height to HKPD depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5738','EPSG','7976','EPSG','3334',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7984','KOC WD height to KOC WD depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','7979','EPSG','5789','EPSG','3267',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7985','KOC WD depth to KOC WD depth (ft)','Change of unit from metre to International foot (ft). 1ft = 0.3048m.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5789','EPSG','5614','EPSG','3267',NULL,'EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7988','NAVD88 height to NAVD88 height (ftUS)','Change of unit from metre to US survey foot. 1 ftUS = (12/39.37)m ≈ 0.304800609601219m.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5703','EPSG','6360','EPSG','3664',NULL,'EPSG','1051','Unit conversion scalar',3.28083333333333,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7989','NAVD88 height to NAVD88 depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5703','EPSG','6357','EPSG','4161',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','7990','NAVD88 height (ftUS) to NAVD88 depth (ftUS)','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','6360','EPSG','6358','EPSG','3664',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8038','Instantaneous Water Level height to Instantaneous Water Level depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5829','EPSG','5831','EPSG','1262',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8039','MSL height to MSL depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5714','EPSG','5715','EPSG','1262',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8054','MSL height to MSL height (ft)','Change of unit from metre to International foot (ft). 1ft = 0.3048m.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5714','EPSG','8050','EPSG','1262',NULL,'EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8055','MSL height to MSL height (ftUS)','Change of unit from metre to US survey foot (ftUS). 1 ftUS = (12/39.37)m ≈ 0.304800609601219m.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5714','EPSG','8052','EPSG','1245',NULL,'EPSG','1051','Unit conversion scalar',3.28083333333333,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8056','MSL depth to MSL depth (ft)','Change of unit from metre to International foot (ft). 1ft = 0.3048m.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5715','EPSG','8051','EPSG','1262',NULL,'EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8057','MSL depth to MSL depth (ftUS)','Change of unit from metre to US survey foot (ftUS). 1 ftUS = (12/39.37)m ≈ 0.304800609601219m.','Change of unit to facilitate transformation of heights or depths through concatenated operations.','EPSG','1069','Change of Vertical Unit','EPSG','5715','EPSG','8053','EPSG','1245',NULL,'EPSG','1051','Unit conversion scalar',3.28083333333333,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8060','Baltic 1977 height to Baltic 1977 depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5705','EPSG','5612','EPSG','2423',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8229','NAVD88 height to NAVD88 height (ft)','Change of unit from metre to International foot (ft). 1ft = 0.3048m.','Change of unit to facilitate transformation of heights or depths through concatenated operations for States of the US which have adopted International feet for their State Plane coordinate systems.','EPSG','1069','Change of Vertical Unit','EPSG','5703','EPSG','8228','EPSG','4464',NULL,'EPSG','1051','Unit conversion scalar',3.28083989501312,'EPSG','9201',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8354','Black Sea height to Black Sea depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5735','EPSG','5336','EPSG','3251',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8355','AIOC95 height to AIOC95 depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5797','EPSG','5734','EPSG','2592',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8356','Caspian height to Caspian depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','5611','EPSG','5706','EPSG','1291',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','8359','Baltic 1957 height to Baltic 1957 depth','Change of axis positive direction from up to down.','Change of axis positive direction to facilitate transformation of heights or depths through concatenated operations.','EPSG','1068','Height Depth Reversal','EPSG','8357','EPSG','8358','EPSG','1306',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 "other_transformation" VALUES('EPSG','10087','Jamaica 1875 / Jamaica (Old Grid) to JAD69 / Jamaica National Grid (1)','Derived by least squares fit at primary triangulation stations. Accuracy will be less outside of this network due to extrapolation.','Topographic mapping.','EPSG','9624','Affine parametric transformation','EPSG','24100','EPSG','24200','EPSG','3342',1.5,'EPSG','8623','A0',82357.457,'EPSG','9001','EPSG','8624','A1',0.304794369,'EPSG','9203','EPSG','8625','A2',1.5417425e-05,'EPSG','9203','EPSG','8639','B0',28091.324,'EPSG','9001','EPSG','8640','B1',-1.5417425e-05,'EPSG','9203','EPSG','8641','B2',0.304794369,'EPSG','9203',NULL,NULL,NULL,NULL,NULL,NULL,'SD-Jam',0);
INSERT INTO "other_transformation" VALUES('EPSG','10088','JAD69 / Jamaica National Grid to Jamaica 1875 / Jamaica (Old Grid) (1)','Derived by least squares fit at primary triangulation stations. Accuracy will be less outside of this network due to extrapolation.','Topographic mapping.','EPSG','9624','Affine parametric transformation','EPSG','24200','EPSG','24100','EPSG','3342',1.5,'EPSG','8623','A0',-270201.96,'EPSG','9005','EPSG','8624','A1',0.00016595792,'EPSG','9203','EPSG','8625','A2',3.2809005,'EPSG','9203','EPSG','8639','B0',-92178.51,'EPSG','9005','EPSG','8640','B1',3.2809005,'EPSG','9203','EPSG','8641','B2',-0.00016595792,'EPSG','9203',NULL,NULL,NULL,NULL,NULL,NULL,'SD-Jam',1);
INSERT INTO "other_transformation" VALUES('EPSG','10095','Mauritania 1999 / UTM zone 28N to WGS 84 / UTM zone 28N (1)','Parameter values consistent with the OGP Affine parametric transformation method derived by OGP from the published Helmert 2D parameter values.','Minerals management.','EPSG','9624','Affine parametric transformation','EPSG','3103','EPSG','32628','EPSG','2971',40.0,'EPSG','8623','A0',NULL,'EPSG',NULL,'EPSG','8624','A1',NULL,'EPSG',NULL,'EPSG','8625','A2',NULL,'EPSG',NULL,'EPSG','8639','B0',NULL,'EPSG',NULL,'EPSG','8640','B1',NULL,'EPSG',NULL,'EPSG','8641','B2',NULL,'EPSG',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'MMI-Mau W',1);
+83 -112
View File
@@ -43,14 +43,13 @@ CREATE TABLE ellipsoid (
deprecated BOOLEAN NOT NULL CHECK (deprecated IN (0, 1)),
CONSTRAINT pk_ellipsoid PRIMARY KEY (auth_name, code),
CONSTRAINT fk_ellipsoid_celestial_body FOREIGN KEY (celestial_body_auth_name, celestial_body_code) REFERENCES celestial_body(auth_name, code),
CONSTRAINT fk_ellipsoid_unit_of_measure FOREIGN KEY (uom_auth_name, uom_code) REFERENCES unit_of_measure(auth_name, code)
CONSTRAINT fk_ellipsoid_unit_of_measure FOREIGN KEY (uom_auth_name, uom_code) REFERENCES unit_of_measure(auth_name, code),
CONSTRAINT check_ellipsoid_inv_flattening_semi_minor_mutually_exclusive CHECK ((inv_flattening IS NULL AND semi_minor_axis IS NOT NULL) OR (inv_flattening IS NOT NULL AND semi_minor_axis IS NULL))
);
CREATE TRIGGER ellipsoid_insert_trigger
BEFORE INSERT ON ellipsoid
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on ellipsoid violates constraint: inv_flattening (exclusive) or semi_minor_axis should be defined')
WHERE (NEW.inv_flattening IS NULL AND NEW.semi_minor_axis IS NULL) OR (NEW.inv_flattening IS NOT NULL AND NEW.semi_minor_axis IS NOT NULL);
SELECT RAISE(ABORT, 'insert on ellipsoid violates constraint: uom should be of type ''length''')
WHERE (SELECT type FROM unit_of_measure WHERE auth_name = NEW.uom_auth_name AND code = NEW.uom_code) != 'length';
END;
@@ -65,18 +64,10 @@ CREATE TABLE area(
west_lon FLOAT CHECK (west_lon BETWEEN -180 AND 180),
east_lon FLOAT CHECK (east_lon BETWEEN -180 AND 180),
deprecated BOOLEAN NOT NULL CHECK (deprecated IN (0, 1)),
CONSTRAINT pk_area PRIMARY KEY (auth_name, code)
CONSTRAINT pk_area PRIMARY KEY (auth_name, code),
CONSTRAINT check_area_lat CHECK (south_lat <= north_lat)
);
CREATE TRIGGER area_insert_trigger
BEFORE INSERT ON area
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on area violates constraint: south_lat <= north_lat')
WHERE NEW.south_lat > NEW.north_lat;
SELECT RAISE(ABORT, 'insert on area violates constraint: west_lon <= east_lon OR (east_lon + 360 - west_lon <= 200)')
WHERE NOT(NEW.west_lon <= NEW.east_lon OR (NEW.east_lon + 360 - NEW.west_lon <= 200));
END;
CREATE TABLE prime_meridian(
auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1),
code TEXT NOT NULL CHECK (length(code) >= 1),
@@ -108,6 +99,7 @@ CREATE TABLE geodetic_datum (
prime_meridian_code TEXT NOT NULL,
area_of_use_auth_name TEXT NOT NULL,
area_of_use_code TEXT NOT NULL,
publication_date TEXT, --- YYYY-MM-DD format
deprecated BOOLEAN NOT NULL CHECK (deprecated IN (0, 1)),
CONSTRAINT pk_geodetic_datum PRIMARY KEY (auth_name, code),
CONSTRAINT fk_geodetic_datum_ellipsoid FOREIGN KEY (ellipsoid_auth_name, ellipsoid_code) REFERENCES ellipsoid(auth_name, code),
@@ -134,6 +126,7 @@ CREATE TABLE vertical_datum (
scope TEXT,
area_of_use_auth_name TEXT NOT NULL,
area_of_use_code TEXT NOT NULL,
publication_date TEXT CHECK (NULL OR length(publication_date) = 10), --- YYYY-MM-DD format
deprecated BOOLEAN NOT NULL CHECK (deprecated IN (0, 1)),
CONSTRAINT pk_vertical_datum PRIMARY KEY (auth_name, code),
CONSTRAINT fk_vertical_datum_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code)
@@ -151,20 +144,12 @@ CREATE TABLE coordinate_system(
code TEXT NOT NULL CHECK (length(code) >= 1),
type TEXT NOT NULL CHECK (type IN ('Cartesian', 'vertical', 'ellipsoidal', 'spherical')),
dimension SMALLINT NOT NULL CHECK (dimension BETWEEN 1 AND 3),
CONSTRAINT pk_coordinate_system PRIMARY KEY (auth_name, code)
CONSTRAINT pk_coordinate_system PRIMARY KEY (auth_name, code),
CONSTRAINT check_cs_vertical CHECK (type != 'vertical' OR dimension = 1),
CONSTRAINT check_cs_cartesian CHECK (type != 'Cartesian' OR dimension IN (2,3)),
CONSTRAINT check_cs_ellipsoidal CHECK (type != 'ellipsoidal' OR dimension IN (2,3))
);
CREATE TRIGGER coordinate_system_insert_trigger
BEFORE INSERT ON coordinate_system
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on coordinate_system violates constraint: dimension must be equal to 1 for type = ''vertical''')
WHERE NEW.type = 'vertical' AND NEW.dimension != 1;
SELECT RAISE(ABORT, 'insert on coordinate_system violates constraint: dimension must be equal to 2 or 3 for type = ''Cartesian''')
WHERE NEW.type = 'Cartesian' AND NEW.dimension NOT IN (2, 3);
SELECT RAISE(ABORT, 'insert on coordinate_system violates constraint: dimension must be equal to 2 or 3 for type = ''ellipsoidal''')
WHERE NEW.type = 'ellipsoidal' AND NEW.dimension NOT IN (2, 3);
END;
CREATE TABLE axis(
auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1),
code TEXT NOT NULL CHECK (length(code) >= 1),
@@ -206,7 +191,12 @@ CREATE TABLE geodetic_crs(
CONSTRAINT pk_geodetic_crs PRIMARY KEY (auth_name, code),
CONSTRAINT fk_geodetic_crs_coordinate_system FOREIGN KEY (coordinate_system_auth_name, coordinate_system_code) REFERENCES coordinate_system(auth_name, code),
CONSTRAINT fk_geodetic_crs_datum FOREIGN KEY (datum_auth_name, datum_code) REFERENCES geodetic_datum(auth_name, code),
CONSTRAINT fk_geodetic_crs_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code)
CONSTRAINT fk_geodetic_crs_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code),
CONSTRAINT check_geodetic_crs_cs CHECK (NOT ((coordinate_system_auth_name IS NULL OR coordinate_system_code IS NULL) AND text_definition IS NULL)),
CONSTRAINT check_geodetic_crs_cs_bis CHECK (NOT ((NOT(coordinate_system_auth_name IS NULL OR coordinate_system_code IS NULL)) AND text_definition IS NOT NULL)),
CONSTRAINT check_geodetic_crs_datum CHECK (NOT ((datum_auth_name IS NULL OR datum_code IS NULL) AND text_definition IS NULL)),
CONSTRAINT check_geodetic_crs_datum_bis CHECK (NOT ((NOT(datum_auth_name IS NULL OR datum_code IS NULL)) AND text_definition IS NOT NULL)),
CONSTRAINT check_geodetic_crs_area CHECK (NOT ((area_of_use_auth_name IS NULL OR area_of_use_code IS NULL) AND text_definition IS NULL))
);
CREATE TRIGGER geodetic_crs_insert_trigger
@@ -216,24 +206,9 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: (auth_name, code) must not already exist in crs_view')
WHERE EXISTS (SELECT 1 FROM crs_view WHERE crs_view.auth_name = NEW.auth_name AND crs_view.code = NEW.code);
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: coordinate_system must be defined when text_definition is NULL')
WHERE (NEW.coordinate_system_auth_name IS NULL OR NEW.coordinate_system_code IS NULL) AND NEW.text_definition IS NULL;
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: datum must be defined when text_definition is NULL')
WHERE (NEW.datum_auth_name IS NULL OR NEW.datum_code IS NULL) AND NEW.text_definition IS NULL;
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: coordinate_system must NOT be defined when text_definition is NOT NULL')
WHERE (NOT(NEW.coordinate_system_auth_name IS NULL OR NEW.coordinate_system_code IS NULL)) AND NEW.text_definition IS NOT NULL;
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: datum must NOT be defined when text_definition is NOT NULL')
WHERE (NOT(NEW.datum_auth_name IS NULL OR NEW.datum_code IS NULL)) AND NEW.text_definition IS NOT NULL;
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: datum must not be deprecated when geodetic_crs is not deprecated')
WHERE EXISTS(SELECT 1 FROM geodetic_datum datum WHERE datum.auth_name = NEW.datum_auth_name AND datum.code = NEW.datum_code AND datum.deprecated != 0) AND NEW.deprecated = 0 AND NEW.text_definition IS NOT NULL;
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: area_of_use must be defined when text_definition is NULL')
WHERE (NEW.area_of_use_auth_name IS NULL OR NEW.area_of_use_code IS NULL) AND NEW.text_definition IS NULL;
SELECT RAISE(ABORT, 'insert on geodetic_crs violates constraint: area_of_use must not be deprecated when geodetic_crs is not deprecated')
WHERE EXISTS(SELECT 1 FROM area WHERE area.auth_name = NEW.area_of_use_auth_name AND area.code = NEW.area_of_use_code AND area.deprecated != 0) AND NEW.deprecated = 0 AND NEW.text_definition IS NOT NULL;
@@ -690,7 +665,12 @@ CREATE TABLE projected_crs(
CONSTRAINT fk_projected_crs_coordinate_system FOREIGN KEY (coordinate_system_auth_name, coordinate_system_code) REFERENCES coordinate_system(auth_name, code),
CONSTRAINT fk_projected_crs_geodetic_crs FOREIGN KEY (geodetic_crs_auth_name, geodetic_crs_code) REFERENCES geodetic_crs(auth_name, code),
CONSTRAINT fk_projected_crs_conversion FOREIGN KEY (conversion_auth_name, conversion_code) REFERENCES conversion_table(auth_name, code),
CONSTRAINT fk_projected_crs_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code)
CONSTRAINT fk_projected_crs_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code),
CONSTRAINT check_projected_crs_cs CHECK (NOT((coordinate_system_auth_name IS NULL OR coordinate_system_code IS NULL) AND text_definition IS NULL)),
CONSTRAINT check_projected_crs_cs_bis CHECK (NOT((NOT(coordinate_system_auth_name IS NULL OR coordinate_system_code IS NULL)) AND text_definition IS NOT NULL)),
CONSTRAINT check_projected_crs_geodetic_crs CHECK (NOT((geodetic_crs_auth_name IS NULL OR geodetic_crs_code IS NULL) AND text_definition IS NULL)),
CONSTRAINT check_projected_crs_conversion CHECK (NOT((NOT(conversion_auth_name IS NULL OR conversion_code IS NULL)) AND text_definition IS NOT NULL)),
CONSTRAINT check_projected_crs_area CHECK (NOT((area_of_use_auth_name IS NULL OR area_of_use_code IS NULL) AND text_definition IS NULL))
);
CREATE TRIGGER projected_crs_insert_trigger
@@ -700,14 +680,8 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: (auth_name, code) must not already exist in crs_view')
WHERE EXISTS (SELECT 1 FROM crs_view WHERE crs_view.auth_name = NEW.auth_name AND crs_view.code = NEW.code);
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: coordinate_system must be defined when text_definition is NULL')
WHERE (NEW.coordinate_system_auth_name IS NULL OR NEW.coordinate_system_code IS NULL) AND NEW.text_definition IS NULL;
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: geodetic_crs must be defined when text_definition is NULL')
WHERE (NEW.geodetic_crs_auth_name IS NULL OR NEW.geodetic_crs_code IS NULL) AND NEW.text_definition IS NULL;
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: geodetic_crs must not be deprecated when projected_crs is not deprecated')
WHERE EXISTS(SELECT 1 FROM geodetic_crs WHERE geodetic_crs.auth_name = NEW.geodetic_crs_auth_name AND geodetic_crs.code = NEW.geodetic_crs_code AND geodetic_crs.deprecated != 0) AND NEW.deprecated = 0 AND NOT (NEW.auth_name = 'ESRI' AND NEW.geodetic_crs_auth_name != 'ESRI');
WHERE EXISTS(SELECT 1 FROM geodetic_crs WHERE geodetic_crs.auth_name = NEW.geodetic_crs_auth_name AND geodetic_crs.code = NEW.geodetic_crs_code AND geodetic_crs.deprecated != 0 AND geodetic_crs.name NOT LIKE 'Unknown datum%' AND geodetic_crs.name NOT LIKE 'Unspecified datum%') AND NEW.deprecated = 0 AND NOT (NEW.auth_name = 'ESRI' AND NEW.geodetic_crs_auth_name != 'ESRI');
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: conversion must exist when text_definition is NULL')
WHERE NOT EXISTS(SELECT 1 FROM conversion WHERE conversion.auth_name = NEW.conversion_auth_name AND conversion.code = NEW.conversion_code) AND NEW.text_definition IS NULL;
@@ -715,18 +689,9 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: conversion must not be deprecated when projected_crs is not deprecated')
WHERE EXISTS(SELECT 1 FROM conversion WHERE conversion.auth_name = NEW.conversion_auth_name AND conversion.code = NEW.conversion_code AND conversion.deprecated != 0) AND NEW.deprecated = 0;
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: coordinate_system must NOT be defined when text_definition is NOT NULL')
WHERE (NOT(NEW.coordinate_system_auth_name IS NULL OR NEW.coordinate_system_code IS NULL)) AND NEW.text_definition IS NOT NULL;
--SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: geodetic_crs must NOT be defined when text_definition is NOT NULL')
-- WHERE (NOT(NEW.geodetic_crs_auth_name IS NULL OR NEW.geodetic_crs_code IS NULL)) AND NEW.text_definition IS NOT NULL;
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: conversion must NOT be defined when text_definition is NULL')
WHERE (NOT(NEW.conversion_auth_name IS NULL OR NEW.conversion_code IS NULL)) AND NEW.text_definition IS NOT NULL;
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: area_of_use must be defined when text_definition is NULL')
WHERE (NEW.area_of_use_auth_name IS NULL OR NEW.area_of_use_code IS NULL) AND NEW.text_definition IS NULL;
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: area_of_use must not be deprecated when projected_crs is not deprecated')
WHERE EXISTS(SELECT 1 FROM area WHERE area.auth_name = NEW.area_of_use_auth_name AND area.code = NEW.area_of_use_code AND area.deprecated != 0) AND NEW.deprecated = 0 AND NEW.text_definition IS NOT NULL;
@@ -1125,40 +1090,35 @@ END;
-- Table that contain alternative names for original grid names coming from the authority
CREATE TABLE grid_alternatives(
original_grid_name TEXT NOT NULL PRIMARY KEY, -- original grid name (e.g. Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz). For LOS/LAS format, the .las files
proj_grid_name TEXT NOT NULL, -- PROJ grid name (e.g egm08_25.gtx)
proj_grid_format TEXT NOT NULL, -- one of 'CTable2', 'NTv1', 'NTv2', 'GTX'
proj_method TEXT NOT NULL, -- hgridshift or vgridshift
proj_grid_name TEXT NOT NULL, -- PROJ >= 7 grid name (e.g us_nga_egm08_25.tif)
old_proj_grid_name TEXT, -- PROJ < 7 grid name (e.g egm08_25.gtx)
proj_grid_format TEXT NOT NULL, -- 'GTiff', 'GTX', 'NTv2'
proj_method TEXT NOT NULL, -- hgridshift, vgridshift or geoid_like
inverse_direction BOOLEAN NOT NULL CHECK (inverse_direction IN (0, 1)), -- whether the PROJ grid direction is reversed w.r.t to the authority one (TRUE in that case)
package_name TEXT, -- package name that contains the file
package_name TEXT, -- no longer used. Must be NULL
url TEXT, -- optional URL where to download the PROJ grid
direct_download BOOLEAN CHECK (direct_download IN (0, 1)), -- whether the URL can be used directly (if 0, authentication etc might be needed)
open_license BOOLEAN CHECK (open_license IN (0, 1)),
directory TEXT, -- optional directory where the file might be located
CONSTRAINT fk_grid_alternatives_grid_packages FOREIGN KEY (package_name) REFERENCES grid_packages(package_name)
CONSTRAINT fk_grid_alternatives_grid_packages FOREIGN KEY (package_name) REFERENCES grid_packages(package_name),
CONSTRAINT check_grid_alternatives_grid_fromat CHECK (proj_grid_format IN ('GTiff', 'GTX', 'NTv2')),
CONSTRAINT check_grid_alternatives_proj_method CHECK (proj_method IN ('hgridshift', 'vgridshift', 'geoid_like', 'geocentricoffset')),
CONSTRAINT check_grid_alternatives_inverse_direction CHECK (NOT(proj_method = 'geoid_like' AND inverse_direction = 1)),
CONSTRAINT check_grid_alternatives_package_name CHECK (package_name IS NULL),
CONSTRAINT check_grid_alternatives_direct_download_url CHECK (NOT(direct_download IS NULL AND url IS NOT NULL)),
CONSTRAINT check_grid_alternatives_open_license_url CHECK (NOT(open_license IS NULL AND url IS NOT NULL)),
CONSTRAINT check_grid_alternatives_constraint_cdn CHECK (NOT(url LIKE 'https://cdn.proj.org/%' AND (direct_download = 0 OR open_license = 0 OR url != 'https://cdn.proj.org/' || proj_grid_name)))
);
CREATE INDEX idx_grid_alternatives_proj_grid_name ON grid_alternatives(proj_grid_name);
CREATE INDEX idx_grid_alternatives_old_proj_grid_name ON grid_alternatives(old_proj_grid_name);
CREATE TRIGGER grid_alternatives_insert_trigger
BEFORE INSERT ON grid_alternatives
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: proj_grid_format must be one of ''CTable2'', ''NTv1'', ''NTv2'', ''GTX''')
WHERE NEW.proj_grid_format NOT IN ('CTable2', 'NTv1', 'NTv2', 'GTX');
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: proj_method must be one of ''hgridshift'', ''vgridshift''')
WHERE NEW.proj_method NOT IN ('hgridshift', 'vgridshift');
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: proj_method must be ''hgridshift'' when proj_grid_format is ''CTable2'', ''NTv1'', ''NTv2''')
WHERE NEW.proj_method != 'hgridshift' AND NEW.proj_grid_format IN ('CTable2', 'NTv1', 'NTv2');
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: proj_method must be ''vridshift'' when proj_grid_format is ''GTX''')
WHERE NEW.proj_method != 'vgridshift' AND NEW.proj_grid_format IN ('GTX');
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: original_grid_name must be referenced in grid_transformation.grid_name')
WHERE NEW.original_grid_name NOT IN ('null') AND NEW.original_grid_name NOT IN (SELECT grid_name FROM grid_transformation);
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: NEW.inverse_direction must be 0 when original_grid_name = proj_grid_name')
WHERE NEW.original_grid_name = NEW.proj_grid_name AND NEW.inverse_direction != 0;
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: package_name must be NULL when url is not NULL')
WHERE NEW.package_name IS NOT NULL AND NEW.url IS NOT NULL;
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: direct_download must be set when url is not NULL')
WHERE NEW.direct_download IS NULL AND NEW.url IS NOT NULL;
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: open_license must be set when url is not NULL')
WHERE NEW.open_license IS NULL AND NEW.url IS NOT NULL;
WHERE NEW.original_grid_name NOT LIKE 'NOT-YET-IN-GRID-TRANSFORMATION-%' AND NEW.original_grid_name NOT IN (SELECT grid_name FROM grid_transformation);
END;
CREATE TABLE other_transformation(
@@ -1251,7 +1211,8 @@ CREATE TABLE other_transformation(
CONSTRAINT fk_other_transformation_param4_uom FOREIGN KEY (param4_uom_auth_name, param4_uom_code) REFERENCES unit_of_measure(auth_name, code),
CONSTRAINT fk_other_transformation_param5_uom FOREIGN KEY (param5_uom_auth_name, param5_uom_code) REFERENCES unit_of_measure(auth_name, code),
CONSTRAINT fk_other_transformation_param6_uom FOREIGN KEY (param6_uom_auth_name, param6_uom_code) REFERENCES unit_of_measure(auth_name, code),
CONSTRAINT fk_other_transformation_param7_uom FOREIGN KEY (param7_uom_auth_name, param7_uom_code) REFERENCES unit_of_measure(auth_name, code)
CONSTRAINT fk_other_transformation_param7_uom FOREIGN KEY (param7_uom_auth_name, param7_uom_code) REFERENCES unit_of_measure(auth_name, code),
CONSTRAINT check_other_transformation_method CHECK (NOT (method_auth_name = 'PROJ' AND method_code NOT IN ('PROJString', 'WKT')))
);
CREATE TRIGGER other_transformation_insert_trigger
@@ -1266,9 +1227,6 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on other_transformation violates constraint: target_crs(auth_name, code) not found')
WHERE NOT EXISTS (SELECT 1 FROM crs_view WHERE crs_view.auth_name = NEW.target_crs_auth_name AND crs_view.code = NEW.target_crs_code);
SELECT RAISE(ABORT, 'insert on other_transformation violates constraint: method_code should be in (PROJString, WKT) when method_auth_name = PROJ')
WHERE NEW.method_auth_name = 'PROJ' AND NEW.method_code NOT IN ('PROJString', 'WKT');
SELECT RAISE(ABORT, 'insert on other_transformation violates constraint: source_crs must not be deprecated when other_transformation is not deprecated')
WHERE EXISTS(SELECT 1 FROM crs_view crs WHERE crs.auth_name = NEW.source_crs_auth_name AND crs.code = NEW.source_crs_code AND crs.deprecated != 0) AND NEW.deprecated = 0 AND NOT (NEW.auth_name = 'ESRI');
SELECT RAISE(ABORT, 'insert on other_transformation violates constraint: target_crs must not be deprecated when other_transformation is not deprecated')
@@ -1297,15 +1255,6 @@ CREATE TABLE concatenated_operation(
accuracy FLOAT CHECK (accuracy >= 0),
step1_auth_name TEXT NOT NULL,
step1_code TEXT NOT NULL,
step2_auth_name TEXT NOT NULL,
step2_code TEXT NOT NULL,
step3_auth_name TEXT,
step3_code TEXT,
operation_version TEXT, -- normally mandatory in OGC Topic 2 but optional here
deprecated BOOLEAN NOT NULL CHECK (deprecated IN (0, 1)),
@@ -1314,9 +1263,6 @@ CREATE TABLE concatenated_operation(
--CONSTRAINT fk_concatenated_operation_coordinate_operation FOREIGN KEY (auth_name, code) REFERENCES coordinate_operation(auth_name, code),
--CONSTRAINT fk_concatenated_operation_source_crs FOREIGN KEY (source_crs_auth_name, source_crs_code) REFERENCES crs(auth_name, code),
--CONSTRAINT fk_concatenated_operation_target_crs FOREIGN KEY (target_crs_auth_name, target_crs_code) REFERENCES crs(auth_name, code),
--CONSTRAINT fk_concatenated_operation_step1 FOREIGN KEY (step1_auth_name, step1_code) REFERENCES coordinate_operation(auth_name, code),
--CONSTRAINT fk_concatenated_operation_step2 FOREIGN KEY (step2_auth_name, step2_code) REFERENCES coordinate_operation(auth_name, code),
--CONSTRAINT fk_concatenated_operation_step3 FOREIGN KEY (step3_auth_name, step3_code) REFERENCES coordinate_operation(auth_name, code),
CONSTRAINT fk_concatenated_operation_transformation_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code)
);
@@ -1327,28 +1273,12 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: (auth_name, code) must not already exist in coordinate_operation_with_conversion_view')
WHERE EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.auth_name AND covwv.code = NEW.code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: step1(auth_name, code) must already exist in coordinate_operation_with_conversion_view')
WHERE NOT EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.step1_auth_name AND covwv.code = NEW.step1_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: step2(auth_name, code) must already exist in coordinate_operation_with_conversion_view')
WHERE NOT EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.step2_auth_name AND covwv.code = NEW.step2_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: step3(auth_name, code) must already exist in coordinate_operation_with_conversion_view')
WHERE NEW.step3_auth_name IS NOT NULL AND NOT EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.step3_auth_name AND covwv.code = NEW.step3_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: source_crs(auth_name, code) not found')
WHERE NOT EXISTS (SELECT 1 FROM crs_view WHERE crs_view.auth_name = NEW.source_crs_auth_name AND crs_view.code = NEW.source_crs_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: target_crs(auth_name, code) not found')
WHERE NOT EXISTS (SELECT 1 FROM crs_view WHERE crs_view.auth_name = NEW.target_crs_auth_name AND crs_view.code = NEW.target_crs_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: step1 should not be a concatenated_operation')
WHERE EXISTS(SELECT 1 FROM concatenated_operation WHERE auth_name = NEW.step1_auth_name AND code = NEW.step1_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: step2 should not be a concatenated_operation')
WHERE EXISTS(SELECT 1 FROM concatenated_operation WHERE auth_name = NEW.step2_auth_name AND code = NEW.step2_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: step3 should not be a concatenated_operation')
WHERE EXISTS(SELECT 1 FROM concatenated_operation WHERE auth_name = NEW.step3_auth_name AND code = NEW.step3_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: source_crs must not be deprecated when concatenated_operation is not deprecated')
WHERE EXISTS(SELECT 1 FROM crs_view crs WHERE crs.auth_name = NEW.source_crs_auth_name AND crs.code = NEW.source_crs_code AND crs.deprecated != 0) AND NEW.deprecated = 0 AND NOT (NEW.auth_name = 'ESRI');
SELECT RAISE(ABORT, 'insert on concatenated_operation violates constraint: target_crs must not be deprecated when concatenated_operation is not deprecated')
@@ -1357,6 +1287,45 @@ FOR EACH ROW BEGIN
WHERE EXISTS(SELECT 1 FROM area WHERE area.auth_name = NEW.area_of_use_auth_name AND area.code = NEW.area_of_use_code AND area.deprecated != 0) AND NEW.deprecated = 0;
END;
CREATE TABLE concatenated_operation_step(
operation_auth_name TEXT NOT NULL CHECK (length(operation_auth_name) >= 1),
operation_code TEXT NOT NULL CHECK (length(operation_code) >= 1),
step_number INTEGER NOT NULL CHECK (step_number >= 1),
step_auth_name TEXT NOT NULL CHECK (length(step_auth_name) >= 1),
step_code TEXT NOT NULL CHECK (length(step_code) >= 1),
CONSTRAINT pk_concatenated_operation_step PRIMARY KEY (operation_auth_name, operation_code, step_number)
--CONSTRAINT fk_concatenated_operation_step_to_operation FOREIGN KEY (step_auth_name, step_code) REFERENCES coordinate_operation(auth_name, code)
);
CREATE TRIGGER concatenated_operation_step_insert_trigger
BEFORE INSERT ON concatenated_operation_step
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on concatenated_operation_step violates constraint: (step_auth_name, step_code) must already exist in coordinate_operation_with_conversion_view')
WHERE NOT EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.step_auth_name AND covwv.code = NEW.step_code);
SELECT RAISE(ABORT, 'insert on concatenated_operation_step violates constraint: step should not be a concatenated_operation')
WHERE EXISTS(SELECT 1 FROM concatenated_operation WHERE auth_name = NEW.step_auth_name AND code = NEW.step_code);
END;
CREATE TABLE geoid_model(
name TEXT NOT NULL,
operation_auth_name TEXT NOT NULL,
operation_code TEXT NOT NULL,
CONSTRAINT pk_geoid_model PRIMARY KEY (name, operation_auth_name, operation_code)
-- CONSTRAINT fk_geoid_model_operation FOREIGN KEY (operation_auth_name, operation_code) REFERENCES coordinate_operation(auth_name, code)
);
CREATE TRIGGER geoid_model_insert_trigger
BEFORE INSERT ON geoid_model
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on geoid_model violates constraint: (operation_auth_name, operation_code) must already exist in coordinate_operation_with_conversion_view')
WHERE NOT EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.operation_auth_name AND covwv.code = NEW.operation_code);
END;
CREATE TABLE alias_name(
table_name TEXT NOT NULL CHECK (table_name IN (
@@ -1398,6 +1367,8 @@ CREATE TABLE supersession(
source TEXT
);
CREATE INDEX idx_supersession ON supersession(superseded_table_name, superseded_auth_name, superseded_code);
CREATE TRIGGER supersession_insert_trigger
BEFORE INSERT ON supersession
FOR EACH ROW BEGIN
+15 -5
View File
@@ -3565,8 +3565,8 @@ INSERT INTO "projected_crs" VALUES('EPSG','8838','MTRF-2000 / UTM zone 38N',NULL
INSERT INTO "projected_crs" VALUES('EPSG','8839','MTRF-2000 / UTM zone 39N',NULL,NULL,'EPSG','4400','EPSG','8818','EPSG','16039','EPSG','4528',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8840','MTRF-2000 / UTM zone 40N',NULL,NULL,'EPSG','4400','EPSG','8818','EPSG','16040','EPSG','3106',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8857','WGS 84 / Equal Earth Greenwich',NULL,NULL,'EPSG','4400','EPSG','4326','EPSG','8854','EPSG','1262',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8858','WGS 84 / Equal Earth Americas',NULL,NULL,'EPSG','4400','EPSG','4326','EPSG','8855','EPSG','1262',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8859','WGS 84 / Equal Earth Asia-Pacific',NULL,NULL,'EPSG','4400','EPSG','4326','EPSG','8856','EPSG','1262',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8858','WGS 84 / Equal Earth Americas',NULL,NULL,'EPSG','4400','EPSG','4326','EPSG','8855','EPSG','4520',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8859','WGS 84 / Equal Earth Asia-Pacific',NULL,NULL,'EPSG','4400','EPSG','4326','EPSG','8856','EPSG','4523',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8903','RGWF96 / UTM zone 1S',NULL,NULL,'EPSG','4400','EPSG','8900','EPSG','16101','EPSG','1255',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8908','CR-SIRGAS / CRTM05',NULL,NULL,'EPSG','4400','EPSG','8907','EPSG','5366','EPSG','3232',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','8909','CR-SIRGAS / UTM zone 16N',NULL,NULL,'EPSG','4400','EPSG','8907','EPSG','16016','EPSG','4532',NULL,0);
@@ -3601,6 +3601,16 @@ INSERT INTO "projected_crs" VALUES('EPSG','9217','VN-2000 / TM-3 108-15',NULL,NU
INSERT INTO "projected_crs" VALUES('EPSG','9218','VN-2000 / TM-3 108-30',NULL,NULL,'EPSG','4400','EPSG','4756','EPSG','9204','EPSG','4560',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9221','Hartebeesthoek94 / ZAF BSU Albers 25E',NULL,NULL,'EPSG','4500','EPSG','4148','EPSG','9219','EPSG','4567',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9222','Hartebeesthoek94 / ZAF BSU Albers 44E',NULL,NULL,'EPSG','4500','EPSG','4148','EPSG','9220','EPSG','4568',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9249','Tapi Aike / Argentina 1',NULL,NULL,'EPSG','4530','EPSG','9248','EPSG','18031','EPSG','4570',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9250','Tapi Aike / Argentina 2',NULL,NULL,'EPSG','4530','EPSG','9248','EPSG','18032','EPSG','4571',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9252','MMN / Argentina 2',NULL,NULL,'EPSG','4530','EPSG','9251','EPSG','18032','EPSG','2357',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9254','MMS / Argentina 2',NULL,NULL,'EPSG','4530','EPSG','9253','EPSG','18032','EPSG','2357',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9265','POSGAR 2007 / UTM zone 19S',NULL,NULL,'EPSG','4400','EPSG','5340','EPSG','16119','EPSG','2596',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9271','MGI / Austria West',NULL,NULL,'EPSG','4530','EPSG','4312','EPSG','9268','EPSG','1706',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9272','MGI / Austria Central',NULL,NULL,'EPSG','4530','EPSG','4312','EPSG','9269','EPSG','1707',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9273','MGI / Austria East',NULL,NULL,'EPSG','4530','EPSG','4312','EPSG','9270','EPSG','1708',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9284','Pampa del Castillo / Argentina 1',NULL,NULL,'EPSG','4530','EPSG','4161','EPSG','18031','EPSG','4564',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','9285','Pampa del Castillo / Argentina 3',NULL,NULL,'EPSG','4530','EPSG','4161','EPSG','18033','EPSG','4565',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','20004','Pulkovo 1995 / Gauss-Kruger zone 4',NULL,NULL,'EPSG','4530','EPSG','4200','EPSG','16204','EPSG','1763',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','20005','Pulkovo 1995 / Gauss-Kruger zone 5',NULL,NULL,'EPSG','4530','EPSG','4200','EPSG','16205','EPSG','1764',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','20006','Pulkovo 1995 / Gauss-Kruger zone 6',NULL,NULL,'EPSG','4530','EPSG','4200','EPSG','16206','EPSG','1765',NULL,0);
@@ -4479,9 +4489,9 @@ INSERT INTO "projected_crs" VALUES('EPSG','31284','MGI / Austria M28',NULL,NULL,
INSERT INTO "projected_crs" VALUES('EPSG','31285','MGI / Austria M31',NULL,NULL,'EPSG','4530','EPSG','4312','EPSG','18045','EPSG','1707',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31286','MGI / Austria M34',NULL,NULL,'EPSG','4530','EPSG','4312','EPSG','18046','EPSG','1708',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31287','MGI / Austria Lambert',NULL,NULL,'EPSG','4530','EPSG','4312','EPSG','19947','EPSG','1037',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31288','MGI (Ferro) / M28',NULL,NULL,'EPSG','4530','EPSG','4805','EPSG','18047','EPSG','1706',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31289','MGI (Ferro) / M31',NULL,NULL,'EPSG','4530','EPSG','4805','EPSG','18048','EPSG','1707',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31290','MGI (Ferro) / M34',NULL,NULL,'EPSG','4530','EPSG','4805','EPSG','18049','EPSG','1708',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31288','MGI (Ferro) / Austria zone M28',NULL,NULL,'EPSG','4530','EPSG','4805','EPSG','18047','EPSG','1706',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31289','MGI (Ferro) / Austria zone M31',NULL,NULL,'EPSG','4530','EPSG','4805','EPSG','18048','EPSG','1707',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31290','MGI (Ferro) / Austria zone M34',NULL,NULL,'EPSG','4530','EPSG','4805','EPSG','18049','EPSG','1708',NULL,0);
INSERT INTO "projected_crs" VALUES('EPSG','31291','MGI (Ferro) / Austria West Zone',NULL,NULL,'EPSG','4499','EPSG','4805','EPSG','18041','EPSG','1706',NULL,1);
INSERT INTO "projected_crs" VALUES('EPSG','31292','MGI (Ferro) / Austria Central Zone',NULL,NULL,'EPSG','4499','EPSG','4805','EPSG','18042','EPSG','1708',NULL,1);
INSERT INTO "projected_crs" VALUES('EPSG','31293','MGI (Ferro) / Austria East Zone',NULL,NULL,'EPSG','4499','EPSG','4805','EPSG','18043','EPSG','1707',NULL,1);
+22
View File
@@ -196,3 +196,25 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5506','grid_tran
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5503','grid_transformation','EPSG','9133','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5505','grid_transformation','EPSG','9188','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5508','grid_transformation','EPSG','9187','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9137','grid_transformation','EPSG','9228','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','6326','grid_transformation','EPSG','9229','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7646','grid_transformation','EPSG','9230','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7647','grid_transformation','EPSG','9231','EPSG');
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','4831','helmert_transformation','EPSG','9281','EPSG');
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','4830','helmert_transformation','EPSG','9281','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7000','grid_transformation','EPSG','9282','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7860','grid_transformation','EPSG','9312','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','4459','grid_transformation','EPSG','9325','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7840','grid_transformation','EPSG','9326','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7861','grid_transformation','EPSG','9313','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7872','grid_transformation','EPSG','9324','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7871','grid_transformation','EPSG','9323','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7870','grid_transformation','EPSG','9322','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7869','grid_transformation','EPSG','9321','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7868','grid_transformation','EPSG','9320','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7867','grid_transformation','EPSG','9319','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7866','grid_transformation','EPSG','9318','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7865','grid_transformation','EPSG','9317','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7864','grid_transformation','EPSG','9316','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7863','grid_transformation','EPSG','9315','EPSG');
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','7862','grid_transformation','EPSG','9314','EPSG');
+6 -1
View File
@@ -173,7 +173,7 @@ INSERT INTO "vertical_crs" VALUES('EPSG','6641','PRVD02 height',NULL,NULL,'EPSG'
INSERT INTO "vertical_crs" VALUES('EPSG','6642','VIVD09 height',NULL,NULL,'EPSG','6499','EPSG','1124','EPSG','3330',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6643','ASVD02 height',NULL,NULL,'EPSG','6499','EPSG','1125','EPSG','2288',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6644','GUVD04 height',NULL,NULL,'EPSG','6499','EPSG','1126','EPSG','3255',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6647','CGVD2013 height',NULL,NULL,'EPSG','6499','EPSG','1127','EPSG','1061',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6647','CGVD2013(CGG2013) height',NULL,NULL,'EPSG','6499','EPSG','1127','EPSG','1061',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6693','JSLD72 height',NULL,NULL,'EPSG','6499','EPSG','1129','EPSG','4168',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6694','JGD2000 (vertical) height',NULL,NULL,'EPSG','6499','EPSG','1130','EPSG','3263',0);
INSERT INTO "vertical_crs" VALUES('EPSG','6695','JGD2011 (vertical) height',NULL,NULL,'EPSG','6499','EPSG','1131','EPSG','3263',0);
@@ -216,3 +216,8 @@ INSERT INTO "vertical_crs" VALUES('EPSG','8897','EPSG example wellbore local ver
INSERT INTO "vertical_crs" VALUES('EPSG','8904','TWVD 2001 height',NULL,NULL,'EPSG','6499','EPSG','1224','EPSG','3982',0);
INSERT INTO "vertical_crs" VALUES('EPSG','8911','DACR52 height',NULL,NULL,'EPSG','6499','EPSG','1226','EPSG','3232',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9130','IGN 2008 LD height',NULL,NULL,'EPSG','6499','EPSG','1250','EPSG','2893',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9245','CGVD2013(CGG2013a) height',NULL,NULL,'EPSG','6499','EPSG','1256','EPSG','1061',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9255','SRVN16 height',NULL,NULL,'EPSG','6499','EPSG','1260','EPSG','4573',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9274','EVRF2000 Austria height',NULL,NULL,'EPSG','6499','EPSG','1261','EPSG','1037',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9279','SA LLD height',NULL,NULL,'EPSG','6499','EPSG','1262','EPSG','3309',0);
INSERT INTO "vertical_crs" VALUES('EPSG','9335','KSA-VRF14 height',NULL,NULL,'EPSG','6499','EPSG','1269','EPSG','3303',0);
+199 -194
View File
@@ -1,196 +1,201 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "vertical_datum" VALUES('EPSG','1027','EGM2008 geoid',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1028','Fao 1979',NULL,NULL,'EPSG','3625',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1030','N2000',NULL,NULL,'EPSG','3333',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1039','New Zealand Vertical Datum 2009',NULL,NULL,'EPSG','1175',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1040','Dunedin-Bluff 1960',NULL,NULL,'EPSG','3806',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1049','Incheon',NULL,NULL,'EPSG','3739',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1050','Trieste',NULL,NULL,'EPSG','2370',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1051','Genoa',NULL,NULL,'EPSG','3736',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1054','Sri Lanka Vertical Datum',NULL,NULL,'EPSG','3310',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1059','Faroe Islands Vertical Reference 2009',NULL,NULL,'EPSG','3248',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1079','Fehmarnbelt Vertical Reference 2010',NULL,NULL,'EPSG','3890',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1080','Lowest Astronomic Tide',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1082','Highest Astronomic Tide',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1083','Lower Low Water Large Tide',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1084','Higher High Water Large Tide',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1085','Indian Spring Low Water',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1086','Mean Lower Low Water Spring Tides',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1087','Mean Low Water Spring Tides',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1088','Mean High Water Spring Tides',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1089','Mean Lower Low Water',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1090','Mean Higher High Water',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1091','Mean Low Water',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1092','Mean High Water',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1093','Low Water',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1094','High Water',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1096','Norway Normal Null 2000',NULL,NULL,'EPSG','1352',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1097','Grand Cayman Vertical Datum 1954',NULL,NULL,'EPSG','3185',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1098','Little Cayman Vertical Datum 1961',NULL,NULL,'EPSG','4121',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1099','Cayman Brac Vertical Datum 1961',NULL,NULL,'EPSG','3207',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1101','Cais da Pontinha - Funchal',NULL,NULL,'EPSG','4125',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1102','Cais da Vila - Porto Santo',NULL,NULL,'EPSG','3680',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1103','Cais das Velas',NULL,NULL,'EPSG','2875',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1104','Horta',NULL,NULL,'EPSG','2873',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1105','Cais da Madalena',NULL,NULL,'EPSG','2874',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1106','Santa Cruz da Graciosa',NULL,NULL,'EPSG','3681',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1107','Cais da Figueirinha - Angra do Heroismo',NULL,NULL,'EPSG','2872',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1108','Santa Cruz das Flores',NULL,NULL,'EPSG','1344',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1109','Cais da Vila do Porto',NULL,NULL,'EPSG','4126',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1110','Ponta Delgada',NULL,NULL,'EPSG','2871',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1119','Northern Marianas Vertical Datum of 2003',NULL,NULL,'EPSG','4171',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1121','Tutuila Vertical Datum of 1962',NULL,NULL,'EPSG','2288',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1122','Guam Vertical Datum of 1963',NULL,NULL,'EPSG','3255',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1123','Puerto Rico Vertical Datum of 2002',NULL,NULL,'EPSG','3294',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1124','Virgin Islands Vertical Datum of 2009',NULL,NULL,'EPSG','3330',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1125','American Samoa Vertical Datum of 2002',NULL,NULL,'EPSG','2288',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1126','Guam Vertical Datum of 2004',NULL,NULL,'EPSG','3255',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1127','Canadian Geodetic Vertical Datum of 2013',NULL,NULL,'EPSG','1061',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1129','Japanese Standard Levelling Datum 1972',NULL,NULL,'EPSG','4168',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1130','Japanese Geodetic Datum 2000 (vertical)',NULL,NULL,'EPSG','3263',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1131','Japanese Geodetic Datum 2011 (vertical)',NULL,NULL,'EPSG','3263',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1140','Singapore Height Datum',NULL,NULL,'EPSG','1210',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1146','Ras Ghumays',NULL,NULL,'EPSG','4225',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1148','Famagusta 1960',NULL,NULL,'EPSG','3236',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1149','PNG08',NULL,NULL,'EPSG','4384',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1150','Kumul 34',NULL,NULL,'EPSG','4013',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1151','Kiunga',NULL,NULL,'EPSG','4383',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1161','Deutsches Haupthoehennetz 1912',NULL,NULL,'EPSG','3339',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1162','Latvian Height System 2000',NULL,NULL,'EPSG','3268',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1164','Ordnance Datum Newlyn (Offshore)',NULL,NULL,'EPSG','4391',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1169','New Zealand Vertical Datum 2016',NULL,NULL,'EPSG','1175',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1170','Deutsches Haupthoehennetz 2016',NULL,NULL,'EPSG','3339',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1171','Port Moresby 1996',NULL,NULL,'EPSG','4425',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1172','Port Moresby 2008',NULL,NULL,'EPSG','4425',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1175','Jamestown 1971',NULL,NULL,'EPSG','3183',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1176','St. Helena Tritan Vertical Datum 2011',NULL,NULL,'EPSG','3183',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 2015',NULL,NULL,'EPSG','3183',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1190','Landshaedarkerfi Islands 2004',NULL,NULL,'EPSG','3262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,NULL,'EPSG','4461',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1200','Greenland Vertical Reference 2016',NULL,NULL,'EPSG','4454',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1202','Baltic 1957',NULL,NULL,'EPSG','1306',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1205','EPSG example wellbore vertical datum',NULL,NULL,'EPSG','4393',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1210','Macao Height Datum',NULL,NULL,'EPSG','1147',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1213','Helsinki 1943',NULL,NULL,'EPSG','4522',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1215','Slovenian Vertical System 2010',NULL,NULL,'EPSG','3307',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1216','Serbian Vertical Reference System 2012',NULL,NULL,'EPSG','4543',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1219','MOMRA Vertical Geodetic Control',NULL,NULL,'EPSG','3303',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1224','Taiwan Vertical Datum 2001',NULL,NULL,'EPSG','3982',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1226','Datum Altimetrico de Costa Rica 1952',NULL,NULL,'EPSG','3232',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1250','IGN 2008 LD',NULL,NULL,'EPSG','2893',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,NULL,'EPSG','2792',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5102','National Geodetic Vertical Datum 1929',NULL,NULL,'EPSG','1323',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5103','North American Vertical Datum 1988',NULL,NULL,'EPSG','4161',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5104','Yellow Sea 1956',NULL,NULL,'EPSG','3228',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5105','Baltic 1977',NULL,NULL,'EPSG','2423',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5106','Caspian Sea',NULL,NULL,'EPSG','1291',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5107','Nivellement general de la France',NULL,NULL,'EPSG','1326',1);
INSERT INTO "vertical_datum" VALUES('EPSG','5109','Normaal Amsterdams Peil',NULL,NULL,'EPSG','1275',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5110','Ostend',NULL,NULL,'EPSG','1347',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5111','Australian Height Datum',NULL,NULL,'EPSG','4493',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5112','Australian Height Datum (Tasmania)',NULL,NULL,'EPSG','2947',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5113','Instantaneous Water Level',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5114','Canadian Geodetic Vertical Datum of 1928',NULL,NULL,'EPSG','1289',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5115','Piraeus Harbour 1986',NULL,NULL,'EPSG','3254',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5116','Helsinki 1960',NULL,NULL,'EPSG','3333',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5117','Rikets hojdsystem 1970',NULL,NULL,'EPSG','3313',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5118','Nivellement General de la France - Lallemand',NULL,NULL,'EPSG','1326',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5119','Nivellement General de la France - IGN69',NULL,NULL,'EPSG','1326',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5120','Nivellement General de la France - IGN78',NULL,NULL,'EPSG','1327',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5121','Maputo',NULL,NULL,'EPSG','3281',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5122','Japanese Standard Levelling Datum 1969',NULL,NULL,'EPSG','4166',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5123','PDO Height Datum 1993',NULL,NULL,'EPSG','3288',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5124','Fahud Height Datum',NULL,NULL,'EPSG','4009',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5125','Ha Tien 1960',NULL,NULL,'EPSG','1302',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5126','Hon Dau 1992',NULL,NULL,'EPSG','4015',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5127','Landesnivellement 1902',NULL,NULL,'EPSG','1286',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5128','Landeshohennetz 1995',NULL,NULL,'EPSG','1286',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5129','European Vertical Reference Frame 2000',NULL,NULL,'EPSG','1299',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5130','Malin Head',NULL,NULL,'EPSG','1305',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5131','Belfast Lough',NULL,NULL,'EPSG','2530',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5132','Dansk Normal Nul',NULL,NULL,'EPSG','3237',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5133','AIOC 1995',NULL,NULL,'EPSG','2592',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5134','Black Sea',NULL,NULL,'EPSG','3251',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5135','Hong Kong Principal Datum',NULL,NULL,'EPSG','3334',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5136','Hong Kong Chart Datum',NULL,NULL,'EPSG','3335',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5137','Yellow Sea 1985',NULL,NULL,'EPSG','3228',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5138','Ordnance Datum Newlyn (Orkney Isles)',NULL,NULL,'EPSG','2793',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5139','Fair Isle',NULL,NULL,'EPSG','2794',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5140','Lerwick',NULL,NULL,'EPSG','2795',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5141','Foula',NULL,NULL,'EPSG','2796',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5142','Sule Skerry',NULL,NULL,'EPSG','2797',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5143','North Rona',NULL,NULL,'EPSG','2798',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5144','Stornoway',NULL,NULL,'EPSG','2799',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5145','St Kilda',NULL,NULL,'EPSG','2800',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5146','Flannan Isles',NULL,NULL,'EPSG','2801',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5147','St Marys',NULL,NULL,'EPSG','2802',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5148','Douglas',NULL,NULL,'EPSG','2803',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5149','Fao',NULL,NULL,'EPSG','3390',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5150','Bandar Abbas',NULL,NULL,'EPSG','3336',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5151','Nivellement General de Nouvelle Caledonie',NULL,NULL,'EPSG','2822',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5152','Poolbeg',NULL,NULL,'EPSG','1305',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5153','Nivellement General Guyanais 1977',NULL,NULL,'EPSG','3146',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5154','Martinique 1987',NULL,NULL,'EPSG','3276',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5155','Guadeloupe 1988',NULL,NULL,'EPSG','2892',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5156','Reunion 1989',NULL,NULL,'EPSG','3337',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5157','Auckland 1946',NULL,NULL,'EPSG','3764',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5158','Bluff 1955',NULL,NULL,'EPSG','3801',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5159','Dunedin 1958',NULL,NULL,'EPSG','3803',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5160','Gisborne 1926',NULL,NULL,'EPSG','3771',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5161','Lyttelton 1937',NULL,NULL,'EPSG','3804',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5162','Moturiki 1953',NULL,NULL,'EPSG','3768',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5163','Napier 1962',NULL,NULL,'EPSG','3772',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5164','Nelson 1955',NULL,NULL,'EPSG','3802',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5165','One Tree Point 1964',NULL,NULL,'EPSG','3762',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5166','Tararu 1952',NULL,NULL,'EPSG','3818',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5167','Taranaki 1970',NULL,NULL,'EPSG','3769',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5168','Wellington 1953',NULL,NULL,'EPSG','3773',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5169','Waitangi (Chatham Island) 1959',NULL,NULL,'EPSG','3894',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5170','Stewart Island 1977',NULL,NULL,'EPSG','3338',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5171','EGM96 geoid',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5172','Nivellement General du Luxembourg',NULL,NULL,'EPSG','1146',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5173','Antalya',NULL,NULL,'EPSG','3322',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5174','Norway Normal Null 1954',NULL,NULL,'EPSG','1352',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5175','Durres',NULL,NULL,'EPSG','3212',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5176','Gebrauchshohen ADRIA',NULL,NULL,'EPSG','1037',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5177','Slovenian Vertical System 2000',NULL,NULL,'EPSG','3307',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5178','Cascais',NULL,NULL,'EPSG','1294',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5179','Constanta',NULL,NULL,'EPSG','3295',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5180','Alicante',NULL,NULL,'EPSG','4188',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5181','Deutsches Haupthoehennetz 1992',NULL,NULL,'EPSG','3339',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5182','Deutsches Haupthoehennetz 1985',NULL,NULL,'EPSG','2326',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5183','Staatlichen Nivellementnetzes 1976',NULL,NULL,'EPSG','1343',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5184','Baltic 1982',NULL,NULL,'EPSG','3224',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5185','Baltic 1980',NULL,NULL,'EPSG','1119',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5186','Kuwait PWD',NULL,NULL,'EPSG','3267',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5187','KOC Well Datum',NULL,NULL,'EPSG','3267',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5188','KOC Construction Datum',NULL,NULL,'EPSG','3267',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5189','Nivellement General de la Corse 1948',NULL,NULL,'EPSG','1327',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5190','Danger 1950',NULL,NULL,'EPSG','3299',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5191','Mayotte 1950',NULL,NULL,'EPSG','3340',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5192','Martinique 1955',NULL,NULL,'EPSG','3276',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5193','Guadeloupe 1951',NULL,NULL,'EPSG','2892',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5194','Lagos 1955',NULL,NULL,'EPSG','3287',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5195','Nivellement General de Polynesie Francaise',NULL,NULL,'EPSG','3134',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5196','IGN 1966',NULL,NULL,'EPSG','3124',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5197','Moorea SAU 1981',NULL,NULL,'EPSG','3125',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5198','Raiatea SAU 2001',NULL,NULL,'EPSG','3136',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5199','Maupiti SAU 2001',NULL,NULL,'EPSG','3126',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5200','Huahine SAU 2001',NULL,NULL,'EPSG','3135',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5201','Tahaa SAU 2001',NULL,NULL,'EPSG','3138',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5202','Bora Bora SAU 2001',NULL,NULL,'EPSG','3137',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5203','EGM84 geoid',NULL,NULL,'EPSG','1262',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5204','International Great Lakes Datum 1955',NULL,NULL,'EPSG','3468',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5205','International Great Lakes Datum 1985',NULL,NULL,'EPSG','3468',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990',NULL,NULL,'EPSG','3237',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5207','Croatian Vertical Reference System 1971',NULL,NULL,'EPSG','3234',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5208','Rikets hojdsystem 2000',NULL,NULL,'EPSG','3313',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5209','Rikets hojdsystem 1900',NULL,NULL,'EPSG','3313',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5210','IGN 1988 LS',NULL,NULL,'EPSG','2895',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5211','IGN 1988 MG',NULL,NULL,'EPSG','2894',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5212','IGN 1992 LD',NULL,NULL,'EPSG','2893',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5213','IGN 1988 SB',NULL,NULL,'EPSG','2891',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5214','IGN 1988 SM',NULL,NULL,'EPSG','2890',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5215','European Vertical Reference Frame 2007',NULL,NULL,'EPSG','3594',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1027','EGM2008 geoid',NULL,NULL,'EPSG','1262','2008-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1028','Fao 1979',NULL,NULL,'EPSG','3625','1979-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1030','N2000',NULL,NULL,'EPSG','3333','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1039','New Zealand Vertical Datum 2009',NULL,NULL,'EPSG','1175','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1040','Dunedin-Bluff 1960',NULL,NULL,'EPSG','3806','1960-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1049','Incheon',NULL,NULL,'EPSG','3739','1963-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1050','Trieste',NULL,NULL,'EPSG','2370','1875-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1051','Genoa',NULL,NULL,'EPSG','3736','1942-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1054','Sri Lanka Vertical Datum',NULL,NULL,'EPSG','3310','1932-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1059','Faroe Islands Vertical Reference 2009',NULL,NULL,'EPSG','3248','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1079','Fehmarnbelt Vertical Reference 2010',NULL,NULL,'EPSG','3890','2010-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1080','Lowest Astronomic Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1082','Highest Astronomic Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1083','Lower Low Water Large Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1084','Higher High Water Large Tide',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1085','Indian Spring Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1086','Mean Lower Low Water Spring Tides',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1087','Mean Low Water Spring Tides',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1088','Mean High Water Spring Tides',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1089','Mean Lower Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1090','Mean Higher High Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1091','Mean Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1092','Mean High Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1093','Low Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1094','High Water',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1096','Norway Normal Null 2000',NULL,NULL,'EPSG','1352','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1097','Grand Cayman Vertical Datum 1954',NULL,NULL,'EPSG','3185','1954-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1098','Little Cayman Vertical Datum 1961',NULL,NULL,'EPSG','4121','1961-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1099','Cayman Brac Vertical Datum 1961',NULL,NULL,'EPSG','3207','1961-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1101','Cais da Pontinha - Funchal',NULL,NULL,'EPSG','4125','1913-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1102','Cais da Vila - Porto Santo',NULL,NULL,'EPSG','3680','1936-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1103','Cais das Velas',NULL,NULL,'EPSG','2875','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1104','Horta',NULL,NULL,'EPSG','2873','1935-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1105','Cais da Madalena',NULL,NULL,'EPSG','2874','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1106','Santa Cruz da Graciosa',NULL,NULL,'EPSG','3681','1938-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1107','Cais da Figueirinha - Angra do Heroismo',NULL,NULL,'EPSG','2872','1951-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1108','Santa Cruz das Flores',NULL,NULL,'EPSG','1344','1965-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1109','Cais da Vila do Porto',NULL,NULL,'EPSG','4126','1965-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1110','Ponta Delgada',NULL,NULL,'EPSG','2871','1991-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1119','Northern Marianas Vertical Datum of 2003',NULL,NULL,'EPSG','4171','2003-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1121','Tutuila Vertical Datum of 1962',NULL,NULL,'EPSG','2288','1962-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1122','Guam Vertical Datum of 1963',NULL,NULL,'EPSG','3255','1963-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1123','Puerto Rico Vertical Datum of 2002',NULL,NULL,'EPSG','3294','2002-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1124','Virgin Islands Vertical Datum of 2009',NULL,NULL,'EPSG','3330','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1125','American Samoa Vertical Datum of 2002',NULL,NULL,'EPSG','2288','2002-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1126','Guam Vertical Datum of 2004',NULL,NULL,'EPSG','3255','2004-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1127','Canadian Geodetic Vertical Datum of 2013 (CGG2013)',NULL,NULL,'EPSG','1061','2013-11-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1129','Japanese Standard Levelling Datum 1972',NULL,NULL,'EPSG','4168','1972-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1130','Japanese Geodetic Datum 2000 (vertical)',NULL,NULL,'EPSG','3263','2002-04-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1131','Japanese Geodetic Datum 2011 (vertical)',NULL,NULL,'EPSG','3263','2011-10-31',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1140','Singapore Height Datum',NULL,NULL,'EPSG','1210','2009-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1146','Ras Ghumays',NULL,NULL,'EPSG','4225','1979-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1148','Famagusta 1960',NULL,NULL,'EPSG','3236',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1149','PNG08',NULL,NULL,'EPSG','4384','2011-10-14',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1150','Kumul 34',NULL,NULL,'EPSG','4013',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1151','Kiunga',NULL,NULL,'EPSG','4383',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1161','Deutsches Haupthoehennetz 1912',NULL,NULL,'EPSG','3339','1912-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1162','Latvian Height System 2000',NULL,NULL,'EPSG','3268','2005-07-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1164','Ordnance Datum Newlyn (Offshore)',NULL,NULL,'EPSG','4391','2016-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1169','New Zealand Vertical Datum 2016',NULL,NULL,'EPSG','1175','2016-06-27',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1170','Deutsches Haupthoehennetz 2016',NULL,NULL,'EPSG','3339','1996-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1171','Port Moresby 1996',NULL,NULL,'EPSG','4425',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1172','Port Moresby 2008',NULL,NULL,'EPSG','4425',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1175','Jamestown 1971',NULL,NULL,'EPSG','3183','1971-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1176','St. Helena Tritan Vertical Datum 2011',NULL,NULL,'EPSG','3183','2011-10-09',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 2015',NULL,NULL,'EPSG','3183','2015-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1190','Landshaedarkerfi Islands 2004',NULL,NULL,'EPSG','3262','2004-08-07',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,NULL,'EPSG','4461',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1200','Greenland Vertical Reference 2016',NULL,NULL,'EPSG','4454',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1202','Baltic 1957',NULL,NULL,'EPSG','1306','1957-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1205','EPSG example wellbore vertical datum',NULL,NULL,'EPSG','4393',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1210','Macao Height Datum',NULL,NULL,'EPSG','1147','1980-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1213','Helsinki 1943',NULL,NULL,'EPSG','4522','1943-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1215','Slovenian Vertical System 2010',NULL,NULL,'EPSG','3307','2010-10-10',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1216','Serbian Vertical Reference System 2012',NULL,NULL,'EPSG','4543',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1219','MOMRA Vertical Geodetic Control',NULL,NULL,'EPSG','3303','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1224','Taiwan Vertical Datum 2001',NULL,NULL,'EPSG','3982',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1226','Datum Altimetrico de Costa Rica 1952',NULL,NULL,'EPSG','3232','1952-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1250','IGN 2008 LD',NULL,NULL,'EPSG','2893','2008-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1256','Canadian Geodetic Vertical Datum of 2013 (CGG2013a)',NULL,NULL,'EPSG','1061','2015-12-05',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1260','Sistema de Referencia Vertical Nacional 2016',NULL,NULL,'EPSG','4573','2013-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1261','European Vertical Reference Frame 2000 Austria',NULL,NULL,'EPSG','1037',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','1262','South Africa Land Levelling Datum',NULL,NULL,'EPSG','3309','2010-05-11',0);
INSERT INTO "vertical_datum" VALUES('EPSG','1269','Kingdom of Saudi Arabia Vertical Reference Frame Jeddah 2014',NULL,NULL,'EPSG','3303','2014-10-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,NULL,'EPSG','2792',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5102','National Geodetic Vertical Datum 1929',NULL,NULL,'EPSG','1323','1929-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5103','North American Vertical Datum 1988',NULL,NULL,'EPSG','4161','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5104','Yellow Sea 1956',NULL,NULL,'EPSG','3228','1956-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5105','Baltic 1977',NULL,NULL,'EPSG','2423','1977-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5106','Caspian Sea',NULL,NULL,'EPSG','1291',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5107','Nivellement general de la France',NULL,NULL,'EPSG','1326',NULL,1);
INSERT INTO "vertical_datum" VALUES('EPSG','5109','Normaal Amsterdams Peil',NULL,NULL,'EPSG','1275',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5110','Ostend',NULL,NULL,'EPSG','1347','1981-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5111','Australian Height Datum',NULL,NULL,'EPSG','4493','1971-05-05',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5112','Australian Height Datum (Tasmania)',NULL,NULL,'EPSG','2947','1972-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5113','Instantaneous Water Level',NULL,NULL,'EPSG','1262',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5114','Canadian Geodetic Vertical Datum of 1928',NULL,NULL,'EPSG','1289','1928-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5115','Piraeus Harbour 1986',NULL,NULL,'EPSG','3254','1986-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5116','Helsinki 1960',NULL,NULL,'EPSG','3333','1960-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5117','Rikets hojdsystem 1970',NULL,NULL,'EPSG','3313','1970-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5118','Nivellement General de la France - Lallemand',NULL,NULL,'EPSG','1326',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5119','Nivellement General de la France - IGN69',NULL,NULL,'EPSG','1326','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5120','Nivellement General de la France - IGN78',NULL,NULL,'EPSG','1327','1978-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5121','Maputo',NULL,NULL,'EPSG','3281',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5122','Japanese Standard Levelling Datum 1969',NULL,NULL,'EPSG','4166','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5123','PDO Height Datum 1993',NULL,NULL,'EPSG','3288','1993-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5124','Fahud Height Datum',NULL,NULL,'EPSG','4009',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5125','Ha Tien 1960',NULL,NULL,'EPSG','1302','1960-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5126','Hon Dau 1992',NULL,NULL,'EPSG','4015','1992-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5127','Landesnivellement 1902',NULL,NULL,'EPSG','1286','1902-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5128','Landeshohennetz 1995',NULL,NULL,'EPSG','1286','1995-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5129','European Vertical Reference Frame 2000',NULL,NULL,'EPSG','1299','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5130','Malin Head',NULL,NULL,'EPSG','1305','1970-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5131','Belfast Lough',NULL,NULL,'EPSG','2530','1957-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5132','Dansk Normal Nul',NULL,NULL,'EPSG','3237',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5133','AIOC 1995',NULL,NULL,'EPSG','2592','1995-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5134','Black Sea',NULL,NULL,'EPSG','3251',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5135','Hong Kong Principal Datum',NULL,NULL,'EPSG','3334','1980-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5136','Hong Kong Chart Datum',NULL,NULL,'EPSG','3335',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5137','Yellow Sea 1985',NULL,NULL,'EPSG','3228','1985-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5138','Ordnance Datum Newlyn (Orkney Isles)',NULL,NULL,'EPSG','2793',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5139','Fair Isle',NULL,NULL,'EPSG','2794',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5140','Lerwick',NULL,NULL,'EPSG','2795',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5141','Foula',NULL,NULL,'EPSG','2796',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5142','Sule Skerry',NULL,NULL,'EPSG','2797',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5143','North Rona',NULL,NULL,'EPSG','2798',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5144','Stornoway',NULL,NULL,'EPSG','2799',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5145','St Kilda',NULL,NULL,'EPSG','2800',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5146','Flannan Isles',NULL,NULL,'EPSG','2801',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5147','St Marys',NULL,NULL,'EPSG','2802',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5148','Douglas',NULL,NULL,'EPSG','2803',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5149','Fao',NULL,NULL,'EPSG','3390',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5150','Bandar Abbas',NULL,NULL,'EPSG','3336','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5151','Nivellement General de Nouvelle Caledonie',NULL,NULL,'EPSG','2822','1969-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5152','Poolbeg',NULL,NULL,'EPSG','1305','1837-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5153','Nivellement General Guyanais 1977',NULL,NULL,'EPSG','3146','1977-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5154','Martinique 1987',NULL,NULL,'EPSG','3276','1987-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5155','Guadeloupe 1988',NULL,NULL,'EPSG','2892','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5156','Reunion 1989',NULL,NULL,'EPSG','3337','1989-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5157','Auckland 1946',NULL,NULL,'EPSG','3764','1946-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5158','Bluff 1955',NULL,NULL,'EPSG','3801','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5159','Dunedin 1958',NULL,NULL,'EPSG','3803','1958-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5160','Gisborne 1926',NULL,NULL,'EPSG','3771','1926-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5161','Lyttelton 1937',NULL,NULL,'EPSG','3804','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5162','Moturiki 1953',NULL,NULL,'EPSG','3768','1953-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5163','Napier 1962',NULL,NULL,'EPSG','3772','1962-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5164','Nelson 1955',NULL,NULL,'EPSG','3802','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5165','One Tree Point 1964',NULL,NULL,'EPSG','3762','1964-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5166','Tararu 1952',NULL,NULL,'EPSG','3818','1952-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5167','Taranaki 1970',NULL,NULL,'EPSG','3769','1970-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5168','Wellington 1953',NULL,NULL,'EPSG','3773','1953-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5169','Waitangi (Chatham Island) 1959',NULL,NULL,'EPSG','3894','1959-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5170','Stewart Island 1977',NULL,NULL,'EPSG','3338','1977-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5171','EGM96 geoid',NULL,NULL,'EPSG','1262','1996-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5172','Nivellement General du Luxembourg',NULL,NULL,'EPSG','1146','1995-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5173','Antalya',NULL,NULL,'EPSG','3322',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5174','Norway Normal Null 1954',NULL,NULL,'EPSG','1352','1974-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5175','Durres',NULL,NULL,'EPSG','3212',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5176','Gebrauchshohen ADRIA',NULL,NULL,'EPSG','1037',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5177','Slovenian Vertical System 2000',NULL,NULL,'EPSG','3307','1999-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5178','Cascais',NULL,NULL,'EPSG','1294','1938-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5179','Constanta',NULL,NULL,'EPSG','3295',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5180','Alicante',NULL,NULL,'EPSG','4188',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5181','Deutsches Haupthoehennetz 1992',NULL,NULL,'EPSG','3339','1992-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5182','Deutsches Haupthoehennetz 1985',NULL,NULL,'EPSG','2326','1985-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5183','Staatlichen Nivellementnetzes 1976',NULL,NULL,'EPSG','1343','1976-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5184','Baltic 1982',NULL,NULL,'EPSG','3224','1982-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5185','Baltic 1980',NULL,NULL,'EPSG','1119',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5186','Kuwait PWD',NULL,NULL,'EPSG','3267',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5187','KOC Well Datum',NULL,NULL,'EPSG','3267','1937-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5188','KOC Construction Datum',NULL,NULL,'EPSG','3267','1952-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5189','Nivellement General de la Corse 1948',NULL,NULL,'EPSG','1327','1948-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5190','Danger 1950',NULL,NULL,'EPSG','3299','1950-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5191','Mayotte 1950',NULL,NULL,'EPSG','3340','1950-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5192','Martinique 1955',NULL,NULL,'EPSG','3276','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5193','Guadeloupe 1951',NULL,NULL,'EPSG','2892','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5194','Lagos 1955',NULL,NULL,'EPSG','3287','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5195','Nivellement General de Polynesie Francaise',NULL,NULL,'EPSG','3134',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5196','IGN 1966',NULL,NULL,'EPSG','3124','1966-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5197','Moorea SAU 1981',NULL,NULL,'EPSG','3125','1981-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5198','Raiatea SAU 2001',NULL,NULL,'EPSG','3136','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5199','Maupiti SAU 2001',NULL,NULL,'EPSG','3126','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5200','Huahine SAU 2001',NULL,NULL,'EPSG','3135','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5201','Tahaa SAU 2001',NULL,NULL,'EPSG','3138','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5202','Bora Bora SAU 2001',NULL,NULL,'EPSG','3137','2001-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5203','EGM84 geoid',NULL,NULL,'EPSG','1262','1987-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5204','International Great Lakes Datum 1955',NULL,NULL,'EPSG','3468','1955-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5205','International Great Lakes Datum 1985',NULL,NULL,'EPSG','3468','1985-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990',NULL,NULL,'EPSG','3237',NULL,0);
INSERT INTO "vertical_datum" VALUES('EPSG','5207','Croatian Vertical Reference System 1971',NULL,NULL,'EPSG','3234','1971-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5208','Rikets hojdsystem 2000',NULL,NULL,'EPSG','3313','2000-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5209','Rikets hojdsystem 1900',NULL,NULL,'EPSG','3313','1900-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5210','IGN 1988 LS',NULL,NULL,'EPSG','2895','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5211','IGN 1988 MG',NULL,NULL,'EPSG','2894','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5212','IGN 1992 LD',NULL,NULL,'EPSG','2893','1992-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5213','IGN 1988 SB',NULL,NULL,'EPSG','2891','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5214','IGN 1988 SM',NULL,NULL,'EPSG','2890','1988-01-01',0);
INSERT INTO "vertical_datum" VALUES('EPSG','5215','European Vertical Reference Frame 2007',NULL,NULL,'EPSG','3594','2007-01-01',0);
+2 -1
View File
@@ -22,13 +22,14 @@ set(SQL_FILES
"${SQL_DIR}/grid_transformation_custom.sql"
"${SQL_DIR}/other_transformation.sql"
"${SQL_DIR}/concatenated_operation.sql"
"${SQL_DIR}/concatenated_operation_step.sql"
"${SQL_DIR}/alias_name.sql"
"${SQL_DIR}/supersession.sql"
"${SQL_DIR}/deprecation.sql"
"${SQL_DIR}/esri.sql"
"${SQL_DIR}/ignf.sql"
"${SQL_DIR}/grid_alternatives.sql"
"${SQL_DIR}/grid_alternatives_generated.sql"
"${SQL_DIR}/grid_alternatives_generated_noaa.sql"
"${SQL_DIR}/customizations.sql"
"${SQL_DIR}/commit.sql"
)
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

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